dołączam jeszcze zgodnie z sugestią Głosu z Sali (a był to głos Kol

advertisement
Math class – zad.lista
wolframalpha.com
„*” oprócz operacji mnożenia oznacza zadania [nieco] trudniejsze. (Tym bardziej warto się więc z nimi zmierzyć!)
Przypomnienie/wyjaśnienie: dla naturalnych a i b napis „a%b” oznacza w C/C++ resztę z dzielenia a przez b, czyli to
co matematycy i informatycy czasem (nawet całkiem często!) zapisują jako „a mod b”. Na wszelki wypadek
przypomnę też, że z kolei „a/b” oznacza w C/C++ (dla a i b naturalnych!) część całkowitą liczby a/b.
a
Zad. 0. Jak dla danych a i b zdefiniować a mod b przy użyciu   ? (Tzn. jak tradycyjnymi działaniami
b 
a
arytmetycznymi z a, b i   otrzymać wartość a mod b ?)
b 
a
Z½. Jak dla danych a i b zdefiniować   przy użyciu operacji mod? (Tzn. jak z a, b za pomocą tradycyjnych działań
b 
a
arytmetycznych oraz operacji mod otrzymać wartość   ?)
b 
Z¾. (x i y to liczby całk. dod.) Jakie wartości może przyjąć wyrażenie x mod y? Ile rozwiązań ma równanie x mod 11 =
x
x
5? A    5 ? A x mod 5 = 11? A    11 ?
11 
5
Z1. Jak przebiega działanie poniższych algorytmów? (Ustal, jakie wartości przyjmują kolejno zmienne i co pojawia się
na ekranie). Oczywiście warto (później) sprawdzić swoje przypuszczenia na komputerze. (Oczywiście wpisując to wraz
z odpowiednimi deklaracjami zmiennych w funkcji main).
a)
for (i=2017; i>0; i=i-9)
cout << i;
b)
z=0;
for (i=2017; i>0; i=i-9)
z=z+1;
c)
for (i=0; i<44; i=i+1)
if (i%3==0) cout << "Hehe!";
/* Chyba da sie domyslic, co robi ta
instrukcja z "if"?
I co znaczy "=="? - w odroznieniu od "="! */
d)
S=0;
for (i=0; i<100; i=i+1) S=S+i;
// Lepiej nie mylic "s" z "S"
// - to dwie rozne rzeczy!
e)
for (i=1; i<10; i=i+1)
for (j=0; j<10; j=j+1)
cout << i << j;
f)
s=0;
for (i=1; i<10; i=i+1)
for (j=0; j<i; j=j+1)
s=s+i;
g)
for (i=10; i>0; i=i-1)
for (j=1; j<10; j=j+1)
if (j<i) cout << i;
h)
a=0;
b=0;
for (i=0; i<1234; i=i+1)
if (i%3==0) if (i%2==1) a++; else b++;
Z1’. Czy umiesz dopisać coś do algorytmu h), tak żeby wartość b rosła przy każdym i niepodzielnym przez 3? Przy
użyciu tylko elementów C++, które powinniście już znać, daje się to zrobić nawet na dwa sposoby!
Z2. A co wypisze ten programik? (Informatycy mówią raczej „fragment kodu” – sorry!)
Zauważ, że ostatnia instrukcja wykona się
for (i=1; i<1000; i=i+1)
tylko raz – czyli już po wyjściu z pętli
cout << "Nigdy nie odpisuję zadań domowych!" << endl;
(mimo pięknego przecież wcięcia w
cout << "I love computer science!";
zapisie – komputer na estetykę nie jest w
ogóle czuły!).
A ten?
(miejsce na notatki)
for (i=1; i<1000; i=i+1)
{
cout << "Nigdy nie odpisuję zadań domowych!" << endl;
cout << "I love computer science!";
}
Niezłe, co?
Wobec tego zastosuj teraz polecenie Z1 do fragmentów:
a)
for (i=1; i<10; i=i+1)
{
for (j=1; j<10; j=j+1)
cout << i;
cout << endl;
}
Z2,5. I odwrotnie – spróbuj (pętlami!)
wygenerować na ekranie coś takiego:
b)
for (i=1; i<10; i=i+1)
{
for (j=1; j<i; j=j+1)
cout << j;
cout << endl;
}
a)
54321
54321
54321
54321
54321
b)
55555
4444
333
22
1
c)
12345
1234
123
12
1
c)
for (i=1; i<10; i=i+1)
{
cout << i;
for (j=1; j<6; j=j+1)
cout << j;
cout << i;
cout << endl;
}
d)
5
45
345
2345
12345
e)
12345
23451
34512
45123
51234
ę)
54321
45432
34543
23454
12345
Z3. Napisz program znajdujący sumę liczb nieparzystych dodatnich mniejszych od n (gdzie n wczyta się od
Użytkownika („cin”)).
Z4. (Święta za pasem) Co wypiszą programy: (" " to łańcuch (tekst) będący spacją – odstępem, "*" – to gwiazdka)
a)
for (i=44; i>0; i--)
{
for (j=1; j<i; j++) cout << " ";
for (j=i; j<44; j++) cout << "*";
}
b)
for (i=1; i<=4; i++)
for (j=1; j<=4; j++)
{
for (k=j; k<=3; k++) cout << " ";
for (k=1; k<=2*j; k++) cout << "*";
cout << endl;
}
cout << "
**" << endl;
c)
for (i=2; i<=6; i++)
for (j=1; j<=i; j++)
{
for (k=j; k<=5; k++) cout << " ";
for (k=1; k<=2*j; k++) cout << "*";
cout << endl;
}
cout << "
**" << endl;
d)
for (i=1; i<=16; i++)
{
j=i%4;
if (j==0) j=4;
for (k=j; k<=3; k++) cout << " ";
for (k=1; k<=2*j; k++) cout << "*";
cout << endl;
}
cout << "
**" << endl;
Z5. Napisz program, który pozwoli Ci się wreszcie dowiedzieć, dla których naturalnych liczb dwucyfrowych funkcja
f(x)=x377x2+1001 ma wartości niedodatnie.
Z6. Napisz program, dzięki któremu będziesz być może pierwszym człowiekiem, który dowie się, jaka jest najmniejsza
liczba trzycyfrowa spełniająca warunek x2 > 123x+999999.
Z7. Napisz program wypisujący dla danych liczb całkowitych a i b (zakładamy, że a  b) w kolejności malejącej
wszystkie wielokrotności siódemki z przedziału (a, b) i pisze, ile ich jest.
Z8. Napisz program obliczający sumę 12 – 33 + 52 – 73 + ... + 20172.
Z9. Napisz program, który dla danej całkowitej dodatniej liczby k wyświetli na ekranie k kolejnych potęg naturalnych
liczby k, oddzielając je przecinkami.
Np. dla k=6 powinno się wyświetlić: „1, 6, 36, 216, 1296, 7776” (bez przecinka na końcu!).
Z10. („O wdowim groszu”) W roku narodzin Chrystusa pewna wdowa złożyła 1gr na konto oprocentowane na 1% w
skali roku. Ile złotych będzie miał na tym koncie w nadchodzącego Sylwestra prapraprapraprapraprapraprapraprapraprapraprapraprapraprapraprapraprapraprapraprapraprapraprapraprapraprapraprapraprapraprapraprapraprapraprapraprapraprapraprapraprapraprapraprapraprapraprapraprapraprapraprapraprapraprapraprapraprapraprawnuk tej pani?
Napisz program, który to obliczy, używając najwyżej 2 zmiennych. (Wynik może zostać wyświetlony w postaci
wykładniczej i wiedząc to, powinnaś/-nieneś ją rozumieć!)
Tak rośnie funkcja wykładnicza...
Z11. W którym z powyższych zadań wygodnie/sensownie jest użyć pętli while?
Z12. Co powinien wypisać program:
a=123045600789;
while (a>0) { cout << a%10;
a = (a–(a%10))/10; } ?
12’. Jak zadziałałby ten program, gdyby początkową wartością a była liczba:
a) 54321, b) 10, c) jednocyfrowa, d) 0?
12’’. Jak można w C++ (znacznie) uprościć wartość w ostatnim podstawieniu?
Z13. Możliwie prosto (na kilka sposobów? :>) uzasadnij, że:
a) suma ujemnych potęg dwójki to 1;
b) 2/7+3/9+4/11+5/13+... =  (wskazówka: od czego jest większy [prawie] każdy składnik?);
c) suma odwrotności silni wszystkich liczb naturalnych jest skończona, czyli nie przekracza pewnej wartości.
(Wskazówka: jak można oszacować [prawie] każdy jej składnik?)
Z14. Napisz programik, który ustali, czy dane x jest doskonałe.
(Doskonałe są np. 6 (=1+2+3) i 28 (=1+2+4+7+14), bo (DEFINICJA!)
Liczba naturalna n jest doskonała.  n jest sumą swoich dzielników mniejszych od siebie (tzw. swoich dzielników właściwych).).
Z14½. Znajdź kolejne liczby doskonałe.
Z14¾ . Napisz program, który wypisze n (n podaje użytkownik) najmniejszych liczb doskonałych. (Wystarczy, że będzie
działał dla n<=4, bo już przy n=5 czas jego działania... – no właśnie: potrafisz ten czas oszacować? (Zad.
nieobowiązkowe (możliwa gratyfikacja!), rozwiązania (pełne rozumowanie + rachunki) proszę przesyłać mejlem.
Podpowiedź: z sensownym przybliżeniem (całkiem dobrym przy dużych x) można przyjąć, że czas ten jest
proporcjonalny do liczby wszystkich obrotów wewn. pętli. (Wiesz dlaczego?))
Uwaga: w poniższych zadaniach należy nie znać potęgowania w C++!
Z15. Napisz program znajdujący
a) pierwszą całkowitą potęgę dwójki przekraczającą milion;
b) największą liczbę naturalną, której silnia nie przekracza 1.000.000.000;
c) max{n: 1/1+1/2+1/3+...+1/n < s}, jeśli s jest dodatnią liczbą podaną przez użytkownika.
Z16. Napisz program[ik], który:
a) dla wczytanych naturalnych a i b (zakładamy spokojnie, że a<b) wypisze w kolejnych linijkach niepodzielne przez 3
wielokrotności piątki z przedziału* [a, b), numerując je kolejno;
(Czyli np. dla a=3 i b=20 powinno się wyświetlić: 1. 5
2. 10).
b) stwierdzi, ile liczb z przedziału* [12, k] (k podaje użytkownik) ma nieparzystą przedostatnią cyfrę;
c) będzie reagował na wprowadzane przez użytkownika liczby naturalne, pisząc „nie”, jeśli jest ona podzielna przez 3, a
„OK” i kończąc wczytywanie, jeśli nie;
(Czyli np. może przebiec tak o:
12
nie
27
nie
6
nie
12
nie
13
OK).
d) wypisze wszystkie liczby trójkątne z przedziału (a, b), oddzielając je przecinkami (ale nie stawiając oczywiście
przecinka po ostatniej!); (Czyli np. dla a = 3, b = 15,2 napisze „6, 10, 15”).
(Liczby trójkątne to sumy kolejnych liczb naturalnych, czyli kolejno 1 (=1), 3 (=1+2), 6 (=1+2+3), 10, ... Ponieważ stanowią one analogię silni
(dlaczegóż?!!), dowcipni informatycy nazywają je czasem słabniami i oznaczają: 1? (=1), 2? (=3) itd.).
e) dla podanego x rzeczywistego znajdzie sumę naturalnych potęg dwójki, które nie przekraczają x, tj. np. dla x=8
obliczy (i wypisze) wartość 20+21+22+23;
f) zliczy, ile jest sześciocyfrowych (= z przedziału* [100000, 999999]) sześcianów liczb naturalnych;
*
Przy oznaczaniu przedziałów nawias kwadratowy oznacza to samo co trójkątny – domkniętość z danej strony.
g) dla podanych całkowitych a i b wypisuje wyrażenie a*(a+1)+(a+1)*(a+2)+…+(b-1)*b, liczby ujemne otaczając
nawiasami, znak równości i jego wartość, tzn. np. dla a=2, b=1 napisze „(-2)*(-1)+(-1)*0+0*1=2”;
h) wypisze wszystkie pary liczb całkowitych x i y z przedziału [-100,100] spełniające równanie x3=xy+y2;
i) zliczy pary dwucyfrowych liczb a i b, suma sześcianów których jest mniejsza od 12345;
j) znajdzie wszystkie trójkąty pitagorejskie o wszystkich bokach mniejszych od 1000;
3 6 9 12 15
2 4 6 8 10
k) dla podanych m i n wyświetla coś, co dla (m, n) = (3, 5) wygląda tak:
;
12345
0
12
345
l) dla podanego n wyświetli n wierszy piramidki, która dla n=5 wygląda tak o:
(w kolejnych
6789
wierszach dopisywane są cyklicznie kolejne cyfry);
01234
ł) dla podanego naturalnego n drukuje w kolejnych liniach kolejno: kolejną liczbę naturalną i[1, n] i najmniejszą
liczbę naturalną, której silnia przekracza i. Aspirujący do uzyskania mojej pochwały niechaj spróbują zrobić to, nie
zmuszając komputera do liczenia kolejno kolejnych silni;
m) taką ramkę:
111111
2
2
3
3
4
4
5
5
666666
(a ściślej jej odpowiednik dla parametru n,
którego wartość (mniejszą niż 10) poda użytkownik
– w przykładzie po lewej n=6 – to chyba jasne?)
n) … i taką piramidkę jak po prawej (również sparametryzowaną):
1
121
12321
1234321
Z17. Napisz programi[cze]k, który po podaniu przez użytkownika naturalnych a i b (Załóżmy spokojnie, że a<b i że
nie będziemy musieli próbować obliczać 00, czego matematycy raczej nie definiują.) wyświetli
a) x a , x a 1 , x a 2 ,..., x b (gdzie x jest zadaną liczbą rzeczywistą).
1
1
1
1
,
,
, ...,
b)
(co oznacza „!” (w tym „0!”!), należy się w razie potrzeby dowiedzieć).
a ! (a  1)! (a  2)!
b!
c)
a 11 ,(a  1)11 ,(a  2)11 ,..., b11 .
d)
a a ,(a  1) a 1 ,(a  2) a 2 ,..., bb .
Z18. Zapisz pętlę for ( i=0; i<77; i++) for ( j=1; j<10; j++) cout << i << j;, używając [podwójnej] pętli while.
Z19. Znajdź rozkład na czynniki pierwsze danej liczby.
Z20. Sprawdź, czy dana liczba jest pierwsza (można dzięki rozwiązaniu Z19 LUB stwierdzając, ile dzielników ma dana
liczba (i co z tego?), LUB jeszcze inaczej... )
Znajdź:
20.a) k-tą liczbę pierwszą / k najmniejszych liczb pierwszych;
20.b) najmniejszą liczbę pierwszą większą od ...;
20.c) wszystkie liczby pierwsze z przedziału ...
Z21. Napisz program ustalający, czy
a) podany przez użytkownika rok jest przestępny.
UWAGA: Rok k jest przestępny. <=> (4|k  (100|k => 400|k ))
b) podana przez użytkownika data jest możliwa. Tj. użytkownik podaje 3 liczby naturalne – dzień, miesiąc i rok, a
program pisze „możliwe” / „niemożliwe”. (Np. niemożliwe są daty „31 4 2017”, „30 2 2018”, „29 2 2100”, „32
cokolwiek cokolwiek”, „5 13 2000”). Spróbuj to zrobić, nie rozwlekając niepotrzebnie sprawdzeń.
Z21. Wypisz (elementami, może być bez spacji i przecinków) wszystkie 4-elementowe podzbiory (każdy tylko raz!)
zbioru {0, 1, 2, ..., 9}. Tzn. program może wypisać kolejno: 0123, 0124, 0125, ..., 6789 i w ciągu tym nie pojawi się np.
napis 4012 (bo oznacza on ten sam zbiór, co wypisany już jako drugi).
Z22*. Napisz program, który po wczytaniu liczb naturalnych n i p poda zapis n w systemie o bazie p. Czyli np. dla
n=1234 i p=5 napisze 14414. W wersji alfa program może działać tylko dla p<10, ale w wersji beta powinien też radzić
sobie z większymi p („cyfry dwucyfrowe” najłatwiej chyba pisząc w nawiasach, tzn. np. największą cyfrę w systemie
dwunastkowym oznaczając przez „(11)”).
Z23. Pola niekoniecznie kwadratowej szachownicy opisujemy współrzędnymi (x,y), gdzie y jest numerem wiersza, a x –
kolumny, przy czym lewy dolny róg szachownicy to (1,1), a współrzędne rosną w prawo i do góry. Na pewnym polu
stoi goniec, który znienacka rusza na wycieczkę, poruszając się na ukos do góry w prawo, a po dojściu do każdej
krawędzi odbijając się od niej zgodnie z prawem odbicia. Napisz program, który wczyta liczby kolumn i wierszy
szachownicy oraz współrzędne początkowego położenia gońca, a w odpowiedzi poda jego trasę do momentu
zamknięcia cyklu, który następnie zacznie się powtarzać. Np. dla danych 3, 6, 1, 3 powinno się wypisać: (2,4), (3,5),
(2,6), (1,5), (2,4), (3,3), (2,2), (1,1), (2,2), (3,3), (2,4), (1,5), (2,6), (3,5), (2,4), (1,3), (2,2), (3,1), (2,2), (1,3).
Z24*. Napisz program podający wszystkie trójkąty pitagorejskie, których jeden z boków ma długość będącą podaną
liczbą naturalną. Przykładowa reakcja: dla podanej długości 15 wypisuje 9, 12, 15; 15, 20, 25 oraz 15, 112, 113, a dla
podanej długości 2 wypisuje „Nie ma!”.
Z25. Zrozum i dokończ definicję funkcji NWD („return” na końcu – co powinna zwracać?). Użyj jej w programie, w
którym użytkownik poda dwie liczby naturalne, a program powie mu, czy są względnie pierwsze (czy nie).
Z26. Dane są dwie liczby oraz ich NWD (ktoś miły obliczył). Jak bez rozkładania czegokolwiek na czynniki znaleźć
ich NWW?
Z27. A jak można użyć dwuargumentowej funkcji NWD (obliczającej – nie zgadniesz! – NWD dwóch liczb
naturalnych) do znalezienia NWD trzech danych liczb? (Tzn. zakładamy np., że za pomocą komputera potrafimy
(nieważne jak) ustalić NWD dwóch liczb, i pytanie, jak dzięki temu znaleźć NWD jakichś trzech liczb).
Z28. Czy jeśli trzy liczby są względnie pierwsze, to każde dwie z nich muszą być względnie pierwsze? A odwrotnie?
Z29. Napisz program, który wypisze coś takiego (ładniej pewnie będzie w kolejnych wierszach): F0=0, F1=1, F2=1, ...
(np. do Fn, gdzie n raczy podać użytkownik (ang. „user”)). Program niech używa zdefiniowanej przez nas ostatnio
funkcji (chociaż wiemy (? :>) już, że może się to okazać niezbyt roztropne). Przy jakich wartościach zaczyna wymagać
to od odbiorcy sporej dozy cierpliwości?
Z30. Przypominam: żeby obliczyć F3, nasza funkcja zostanie wywołana 5 razy. A ilu wywołań wymaga obliczenie F5?
Narysuj odpowiednie drzewko. A F6? A F7?
Oznaczmy te liczby przez wn, tzn. niech wn oznacza liczbę wywołań naszej funkcji przy obliczaniu Fn. Potrafisz podać
zależność rekurencyjną dla wn?
Z31. Ciągiem Tribonacciego nazywa się ciąg zdefiniowany podobnie jak Fibonacciego, ale taki, gdzie każdy kolejny
wyraz jest sumą trzech poprzednich. Zdefiniuj w C++ funkcję T(n), która będzie zwracać n-ty wyraz ciągu
Tribonacciego, przyjmując dowolne warunki początkowe (tzn. dowolne wartości, ale definiując ich dokładnie tyle, ilu
potrzeba!).
Ile wywołań tej funkcji nastąpi przy obliczaniu T(4)? A T(5)? A T(6)? Ile czasu i miejsca zajmie Ci narysowanie
odpowiednich drzewek wywołań w zeszycie?
Z32. Zdefiniuj (w C++) funkcję Fi(n), która jak F(n) będzie zwracać n-ty wyraz ciągu Fibonacciego, ale obliczy go
pętlą. (Taki sposób nazywamy iteracyjnym). Użyj tej funkcji tak samo jak F(n) w zad. 29. Jak dużo wyrazów ciągu
Fibonacciego można teraz śmiało obliczać?
2

n5
an  2  1,
. Warunki początkowe zadaj dowolnie,

3an  3  an 1 , n  5
Z33. Zdefiniuj ciąg spełniający zależność rekurencyjną: an  
ale sensownie (nie za dużo i nie za mało). Narysuj drzewko wywołań tej funkcji przy obliczaniu a8.
Z34. Zdefiniuj numerowany od 1 ciąg spełniający następującą zależność rekurencyjną:
 xn 3  x n , 5|n

5
. (Warunkami początkowymi zajmij się jak w Z33).
xn  
 x 2  x w przeciwnym razie
1
 n2
Narysuj drzewko wywołań tej funkcji przy obliczaniu x9. W Pascalu i innych językach programowania (ale nie C++)
dostępna jest funkcja sqr obliczająca kwadrat argumentu. Na co będzie miało wpływ jej użycie?
2a n 1 dla n nieparzystych podzielnych przez 3

Z35. Zdefiniuj ciąg określony wzorem: a n   n / 3 dla n parzystych
.
7 w pozostalych przypadkach

Podanie jakich argumentów spowoduje najwięcej wywołań tej funkcji?
c  c  c 5  ...  c n 1 dla n parzystych
Z36. Zdefiniuj ciąg spełniający zależność rekurencyjną c n   1 3
.
c 0 c n 1 + 7 dla n nieparzystych
(Warunkami początkowymi zajmij się jak w Z34). Narysuj drzewko wywołań tej funkcji przy obliczaniu c5.
Z37. a) A co liczy ta funkcja?
int Zagadka(int a, int b)
{
if (a==0) return b;
else return Zagadka(a-1,b)+1;
}
b) Czy po takiej modyfikacji będzie działać tak samo?
Ale dlaczego??
int Zagadkowa(int a, int b)
{
if (b==0) return a;
else return Zagadkowa(a-1,b)+1;
}
Z38. Pisząc program w pewnym popularnym języku
programowania, Hildegarda zdefiniowała funkcję:
Ile razy zostanie ona wywołana przy obliczaniu przez
program f(6)? Narysuj odpowiednie drzewko.
int f(int n)
{
if (n>3) return f(n-1)*2-f(n-2)*f(n-2);
else return 123;
}
1  3  5...n, n jest nieparzyste
Z39. Tzw. podwójną silnię określamy dla dodatnich liczb całkowitych wzorem n!!  
,
2  4  6...n, n jest parzyste
dodatkowo przyjmując: 0!! = 1. Napisz w C++ funkcję obliczającą podwójną silnię: a) rekurencyjnie, b) iteracyjnie.
Z40. Co mogą zrobić te funkcje?
int f0(int x,int y)
{
if (y==0) return 1;
return x*f0(x,y-1);
}
int f1(int x,int y)
{
if (y==0) return x;
return 1+f1(x,y-1);
}
int f3(int x,int y)
{
if (x<y) return 0;
return 1+f3(x-y,y);
}
int f2(int x,int y)
int f4(int x,int y)
{
{
if (x<y) return x;
if (y==0) return 0;
return f2(x-y,y);
return x+f4(x,y-1);
}
}
Przed komputerową (a następnie oczywiście matematyczną) weryfikacją wzorów na fn(x, y) dla kolejnych n gorąco
polecam obliczenie wartości tych funkcji dla małych argumentów na papierze!
Z41. Zdefiniuj funkcje:
ilelat(n), zwracającą liczbę pełnych lat pozostałych do zakończenia wieku zawierającego rok n w roku n,
iledzielników(n), zwracającą liczbę dzielników naturalnych argumentu,
min(a,b,c,d), zwracającą min(a,b,c,d).
Z42. Napisz programik podający (jako iloczyn, tj. np. „2*5*5*17”) rozkład na czynniki pierwsze wczytanej liczby.
A może umiesz gromadzić czynniki wielokrotne w potęgi (i pisać np. „2*5^2*17”)?
Jeśli z treści nie wynika co innego, w poniższych programach tablice wypełnij sobie najpierw wg uznania 7 liczbami
(kolejne wartości może podawać użytkownik albo Ty je wpisz jakkolwiek w programie).
Z43. Pozwól Użytkownikowi wpisać wartość x i niech program odpowie mu (jej?), ile razy wartość ta pojawia się w
tablicy.
Z44. Odwróć kolejność elementów tablicy, a) używając, b) nie używając drugiej tablicy.
Z45. Sprawdź, czy elementy tablicy tworzą ciąg a) różnowartościowy, b) rosnący, c) monotoniczny. Staraj się
zminimalizować czas działania programu!
Z46. Znajdź minimum tablicy.
Z47. Wyrzuć z tablicy pierwszy element i przesuń resztę, tzn. początek tablicy [4, 5, 8, 5, 3] ma wyglądać tak: [5, 8, 5,
3], a po trójce niech się dzieje, co chce.
Z48. Wyrzuć co drugi element tablicy, tzn. z [4, 5, 8, 5, 3, 2] niechaj wyjdzie [5, 5, 2] i dalej cokolwiek.
Z49. Posortuj tablicę malejąco, a następnie zapisz ją do pliku aqq.txt po jednym elemencie w wierszu.
Z50. W pliku aqq.txt zapisane są w kolejnych wierszach ułożone malejąco pewne liczby całkowite. Nie wiadomo, ile ich
jest, ale mimo to napisz program stwierdzający, ile razy (być może 0) podana przez użytkownika liczba występuje w tym
pliku. Dobrze by było, żeby program kończył przeglądanie pliku, kiedy nie ma ono już sensu.
Z51*. Dana jest posortowana tablica o n elementach (n nie jest znane, ale można przyjąć, że mniejsze niż 100). Napisz
program, który stwierdzi, czy podana przez użytkownika liczba występuje w tablicy (nieważne, ile razy), wykonując jak
najmniej porównań.
Z52. W danej tablicy dwuwymiarowej:
a) usuń pierwszy wiersz, a następne przesuń w górę (zmień oczywiście wartości zmiennych określających rozmiar);
b) znajdź sumę parzystych elementów z przekątnej – od lewego górnego rogu do prawego dolnego (ten podpkt robimy
dla tablic kwadratowych);
c) zlicz wartości nieparzyste w kolumnach o numerach parzystych;
d) znajdź sumy elementów o numerach parzystych z każdego wiersza i dopisz je jako kolejną kolumnę w tej tablicy;
e) usuń z tablicy co drugą kolumnę.
Z53. Napisz programik, który sprawdzi, ile kolumn macierzy wygląda tak samo jak kolumna 0. Staraj się nie wykonywać
niepotrzebnych porównań.
Z54. Wpisz do tablicy (odpowiednio je umieszczając) elementy 100 początkowych wierszy trójkąta Pascala. Po podaniu
przez użytkownika naturalnego n niechże wyświetli się wiersz nr n oraz suma jego elementów.
Z55. W pliku qq.txt (przykładowy możesz ściągnąć z http://www.math.uni.wroc.pl/~msliw) zapisanych jest (dowolnie
rozmieszczonych) 15 liczb stanowiących kolejne (wierszami) elementy macierzy 3×5. Zapisz ją ładnie w innym pliku.
Z56. Wpisz do tablicy 10000 wyników rzutów kostką (wygenerowanych, jak mówiliśmy na lekcji) i wypisz: a) jaka jest
ich średnia, b) ile jest dwójek, c) kiedy pojawiła się pierwsza szóstka, d) ile rzutów średnio dzieli dwie kolejne szóstki.
Czy wyniki te są zgodne z oczekiwaniami? (Jakie powinny być oczekiwania?)
Z57. Do 10000-elementowej tablicy wpisz sprawiedliwie wylosowane zera i jedynki (czyli zasymuluj w C++ 10000
rzutów monetą). Wypisz: a) w którym rzucie wypadło ostatnie zero, b) jak długi jest najdłuższy ciąg wyrzucanych
kolejno zer, c) ile jest takich ciągów, d) jaka jest średnia długość ciągu takich samych wyników.
e*) Ile powinno wyjść w d), gdybyśmy rzucili nieskończenie wiele razy monetą idealną?
Z58*. Dzięki tablicom dwuwymiarowym (= macierzom) można wygodnie nauczyć komputer rozumieć kółko i krzyżyk.
W najłatwiejszej wersji program może wczytywać ruchy wpisywane (w jakiś ustalony sposób oczywiście) na zmianę
przez dwóch siedzących przy nim graczy. Powinien jakoś zgrabnie wyświetlać planszę po każdym ruchu, oznajmiać
zakończenie gry i reagować na niepoprawne ruchy (pisząc np. „ERROR: Pole zajęte!”).
Proponowane modyfikacje: większa plansza, konieczność/możliwość ustawienia ciągu dłuższego niż trójelementowy (i
różne ich punktowanie?), granie, dopóki gracze nie powiedzą, że to już koniec, ... Wszystko można też w trzech
wymiarach! (Tablice trójwymiarowe chyba jasne, jak wyglądają?) No i komputer może grać przeciwko istocie ludzkiej!
(Tylko na ile mądrze? :> Na początek niech rusza się choćby zupełnie losowo!)
Z58’. W podobny sposób można zrealizować różne warianty innych gier planszowych, np. piłkarzyków, kropek
polegających na otaczaniu kropek przeciwnika, focusa (może i dla czterech osób?), go, szachów (na początek w wersji
dwóch graczy grających ze sobą naszym programem ), ...
Z58**. Można też pograć z komputerem w okręty (statki). Tutaj ciekawy jest problem początkowego rozstawienia – jak
kazać mu to zrobić? (Pewnie jakieś losowanie, ale trzeba wybierać tylko spośród jeszcze niezajętych pól, a z drugiej
strony najlepiej spośród wszystkich takich – żeby rozstawienie było jak najmniej przewidywalne dla przeciwnika).
Można też zadawać na początku rozmiary planszy (morza), żeby było ambitniej (bo po rozstawieniu kilku początkowych
(czasem nawet już od razu) może się okazać, że okręty się nie pomieszczą – program powinien inteligentnie na to
reagować).
Z59. a) Obejrzyj plik www.math.uni.wroc.pl/~msliw/bluegill.pgm (jak się zwie ten zwierz po polsku?? patrz też przypis 
poniżej) tekstowo i usuń z niego pierwsze trzy linijki. Pozostałość zapisz tekstowo (czyli np. w Wordzie musisz użyć
„Zapisz jako”) jako wej.txt i napisz program, który utworzy plik wyj.pgm, wyglądający tak: jako pierwsze trzy linijki ma
to, co skasowałaś/-eś z www.math.uni.wroc.pl/~msliw/bluegill.pgm (jak się zwie ten zwierz po polsku??):
„P2 302 178 255”, a w kolejnych wierszach zamiast liczb n z pliku wej.txt stoją wartości 255n (albo np. n/2; poćwicz
n  44 dla n  212
też jeszcze inne ciekawe przekształcenia, np. takie: 
(chociaż mądrzejsze jest raczej ciut inne –
n dla innych n
jakie?)). Teraz oglądnij oba pliki pgm w jakimś potrafiącym je odczytać programie graficznym (polecam GIMP-a!). 
Domyślasz się, co się dzieje?
b) Zawartość wej.txt z a) wpisz do tablicy 178302 (liczb w tym pliku powinno być właśnie tyle – domyślasz się, co o
tym świadczy? :>) i zamień np. jej górną połowę z dolną (tzn. każde t[w][k] powinno zamienić się z t[177w][k]; jasne?
uważaj, żeby nie zastosować tej zamiany, przebiegając całą tablicę – dlaczego?). Teraz do wyj.pgm wpisz te same dane
co poprzednio („P2 302 178 255”), a potem elementy zmienionej tablicy, wiersz po wierszu. Co się stało rybce?
Domyślasz się dlaczego?
c) A co wyjdzie jeśli do wyj.pgm przepisze się tylko np. 30200 początkowych liczb z wej.txt? Zdajesz sobie sprawę, że na
początku trzeba wówczas wpisać „P2 302 100 255”? A co wyjdzie, gdy przepisać 30200 końcowych liczb? Jak to
zrobić?
d) A jak umieścić w wyj.pgm tylko lewą górną ćwiartkę obrazka? (Pamiętaj o zmianie wymiarów!) A potrafisz odrąbać
rybce ogon? (Rybom robi się o wiele gorsze rzeczy! – http://www.krwaweswieta.pl...) A umieścić ją ogonem do góry
(obrócić)? Kazać płynąć w prawo (odbić symetrycznie)? Odbić względem środka obrazka? ... Przeskalować?? (Znaleźć
rybę podobną w skali np. 1:2). Albo dwukrotnie ją spłaszczyć? (Chodzi o powinowactwo prostokątne o osi OX i skali
(0,1)). A rozciągnąć??? (powinowactwo prostokątne o osi...)
e) Jak wygląda obrazek powstały wg tablicy, gdzie na pozycji (x, y) stoi 255((x+y) mod 2)? Stwórz takie obrazki o
różnych rozmiarach i oglądaj je w różnych powiększeniach. UWAGA: może być to niemiłe dla wrażliwego na kontrasty
oka!
 - Do tych samych eksperymentów możesz też użyć innych plików – np. www.math.uni.wroc.pl/~msliw/tygrys.pgm
(domyślasz się, co zawiera?), .../1a09.pgm (można postawić Agnieszkę do góry głową, zobaczyć, jak bardzo jesteście
symetryczni, ...), .../neptun.pgm (planeta słabo wyszła na zdjęciu bez kolorów, ale może da się coś poprawić? –
rozjaśnić? *zwiększyć kontrast?). Niektóre programy graficzne (np. GIMP) potrafią zapisywać obrazki w formacie pgm,
więc możesz wykonywać podobne operacje również na własnych plikach (trzeba tylko uważać na wiersz dostawiany
czasem w nagłówku – np. go zwyczajnie usunąć).
Z60. (Matrix – come back) Wypełnij ulubionym sposobem (ale potrafić musisz wszystkimi trzema, które przerabialiśmy
– losowo, z pliku i za pomocą użytkownika programu) macierz mn i poukładaj jej kolumny (nie zmieniając ich
elementów) według rosnących minimów. (Tzn. kolumną 0 ma być kolumna, której najmniejszy element jest najmniejszy
pośród najmniejszych elementów wszystkich kolumn, kolumną 1 – ta, której minimum jest drugie pośród najmniejszych
elementów wszystkich kolumn itd.).
Z61. Napisz funkcję obliczającą całkę oznaczoną [zdefiniowanej osobno] funkcji f.
Z62*. Napisz programik, który po wczytaniu naturalnych l i m poda zapis dziesiętny ich ilorazu (jeśli jest nieskończony,
powinien liczyć tak długo, aż dostanie okres, i wypisać go w ogólnie przyjęty sposób, tj. np. przy l=3, m=14 powinno się
z triumfem napisać „0,2(142857)”).
a) Napisz funkcję o naturalnym argumencie obliczającą sumę jego cyfr.
b) Napisz funkcję o naturalnym argumencie obliczającą ostateczną sumę jego cyfr (zwaną również
pierwiastkiem cyfrowym). Jeśli masz funkcję z zad. a), warto oczywiście ją wykorzystać (choć w zasadzie oczywiście
nie trzeba).
Ad 63a-b – w każdej z tych funkcji, niezależnie od drugiej i niezależnie od użycia a) w b), można użyć rekurencji bądź
nie – zastosuj metodę bliższą Twemu sercu (a potem spróbuj również zmierzyć się z dalszą!).
c) Popatrz na pierwiastki cyfrowe kolejnych liczb nat. *Udowodnisz?
d) Funkcję z zad. a) łatwo przerobić na sumującą kwadraty cyfr. Niestety pojęcie ostatecznej sumy kwadratów cyfr nie
ma sensu. – Dlaczego? – zbadaj ten problem. A jak jest np. z sześcianami?
Z63*.
Z26. A niechże komputer wylosuje resztę z dzielenia przez n (sensowne n ma podać użytkownik) i teraz użytkownik
niech odgadnie tę liczbę, przy czym po każdym jego strzale komp. ma pisać „Za dużo!” / „Za mało...”, ew. „OK” i
skończyć zabawę.
Z65. Co wyświetli program? (Niektórych wartości może nie dać się ustalić, a o innych można tylko powiedzieć, że na
pewno wynoszą tyle, co ...) UWAGA: takie programy mogą zawiesić komputer, bo taki skutek mogą mieć odwołania do
przypadkowych miejsc w pamięci! Przed ich ew. uruchomieniem zapisz zatem wszystko z uruchomionych programów,
czego wolał[a]byś nie stracić! Możesz też te newralgiczne momenty po prostu powycinać.
int a, *p1, *p2;
p2 = p1;
cout << p1 << " " << *p1 << " " << &p1 << " ";
cout << p2 << " " << *p2 << " " << &p2 << " " << &a << endl;
a=5; p1=&a; *p2=a;
cout << p1 << " " << *p1 << " " << &p1 << " ";
cout << p2 << " " << *p2 << " " << &p2 << " " << &a << endl;
//W tej części programu umiejętny programista wpisał pod adresem 123
//zmienną typu int o wartości 100.
p1=(int *)123; *p2=*p1; (*p1)++;
cout << p1 << " " << *p1 << " " << &p1 << " ";
cout << p2 << " " << *p2 << " " << &p2 << " " << &a << endl;
p1=p2;
cout << p1 << " " << *p1 << " " << &p1 << " ";
cout << p2 << " " << *p2 << " " << &p2 << " " << &a << endl;
Z66. Jakie wartości oznaczają (jeśli w ogóle mają sens): t, &t, &*t, *&t, *(t+3), t[-1], *a, t-1, *(t-2), p, &p, *(p+6), ...
pod koniec programu:
int t[4]={11,12,13,14}, a=123; int *p; p=&t[0]; p=p-1; *(p+4)=-44; t[5]=77; ?
(Eksperymentuj z C++, pamiętając, że niektóre wartości są przypadkowe, no i patrz uwaga w zad. powyżej).
Z67. Jak przekonać się, ile pamięci zajmuje zmienna danego typu (double albo np. wskaźnik)? A jeśli nie znalibyśmy
funkcji sizeof? I nie polegajmy na założeniu, że kolejno deklarowane zmienne C++ rozmieszcza w pamięci w jakiś
konkretny sposób!
Z68. Czemu po deklaracjach „int a; int b[10];” podstawienie „b=a” nie jest dozwolone? A gdyby podstawić b do a,
jakimi wartościami są (co znaczą, co mogą dawać): *b, *a, &a, &b, a[2], &b[2], (*a)+2, (*a+2), (*b)+2, (*b+2), ...?
Z69. Co się odbywa w poniższym programie?
int a=22, b=333; int * c = &a;
*((&b)+1)=111; *c=9; c--; *c=88; cout << ((&b)==c);
*Z70. A w tym? int * a; int * b; **((&b)+1)=111;
Jak nie używając zmiennej b, zmienić po takich deklaracjach jej wartość? (Załóżmy tu, że C++ umieszcza kolejno
deklarowane zmienne bezpośrednio przed poprzednimi).
UWAGA: Podstawienia w tym zadaniu mogą spowodować zawieszenie systemu – dlaczego? Jak zadbać o to, by na
pewno nie odwoływać się w nim do zakazanych obszarów pamięci? Umiemy to zrobić na dwa (podobne) sposoby, a
można też poczytać o operatorze new.
Z71. Wieloletnie prowadzone w Internecie badania
dowiodły niezbicie, że 102 jest kodem ASCII znaku
‘f’. Co się tu kolejno wyświetli?
char
cout
z++;
cout
cout
z='g';
<< int(z-1);
<< char(z);
<< char(z-'f');
Z72. Co wypisze w C++ polecenie cout << int ('4'+'5'-'6')?
Z73. Napisz a) funkcję, b) procedurę, która:
I) odwraca podany jako argument napis (czyli np. z „ATENA” powinna wyjść „ANETA”);
II) zmieni w danym napisie wszystkie małe litery na wielkie. (Tzn. z „ABra qa-d’AbRa” zrobi „ABRA QA-D’ABRA”).
Z74. Napisz funkcję (procedurę?), która dla podanego łańcucha Ł i znaku z:
a) zliczy, ile razy z występuje w Ł (tj. dla z = 'a' i Ł = „Ababa” powinna dawać 2, a dla z = 'b' i Ł = „terefere” – 0);
b) poda numer pierwszej pozycji Ł, na której stoi z, lub -1, jeśli takiej nie ma. Np. dla Ł = „Abrakadabra” i z = ‘a’ dałaby
3, ‘b’ – 1, ‘B’ – (-1);
c) usunie z Ł wszystkie wystąpienia z (czyli w przykładach z pktu a da „Abb” i „terefere”).
Z74’. Jw., tylko nie odróżniając wielkości liter.
Z75. Napisz funkcję (co powinna zwracać?), która stwierdzi, czy podany jej jako argument łańcuch jest palindromem.
Można założyć, że składa się z samych małych lub samych wielkich liter, ale ambitni mogliby zająć się
palindromicznymi zdaniami („Kobyla ma maly bok.”, „Wol utyl i ma mily tulow.”), czyli łańcuchami, w których należy
zignorować wszystkie znaki nieliterowe (natomiast można nie używać polskiej diakrytyki).
Z76. Napisz funkcję (co powinna zwracać?), która stwierdzi, czy podane jej jako argument dwa łańcuchy są anagramami.
Z77. Zdeszyfrujesz wiadomość ‘AHŁĄMLMWŚLGŁGNOLMUJHEEŹĄMCKŁĘ’, jeśli zaszyfrowałem ją z
Vigenere’em kluczem 'CHCĄC'?
Z78. Odczytaj wiadomość ‘JNŁ AIKUIUSWAŻEGPDN DORZI’. Podp. 0. Podp. 1.
Z79. Zapisz algorytm deszyfrowania wiadomości zapisanej szyfrem przedstawieniowym, jeśli przestawienie polegało na
zapisaniu oryginalnego tekstu kolumnami w n wierszach. Dla ułatwienia możesz (najpierw?) założyć, że liczba znaków
tekstu jest wielokrotnością n, a poza tym rozwiązać (najpierw?) przypadek konkretnego n – np. 2 lub 3.
Z80. Jak wiadomo (!?) odwrotność danej liczby to taka liczba, że jak się ją przez nią przemnoży, otrzyma się...
Tak samo w arytmetyce modularnej – np. w Z7 odwrotnością dwójki jest oczywiście czwórka, bo 24 to wszak...
Znajdź odwrotności mod 7 wszystkich elementów Z7 (czyli – przypomnę – reszt z dzielenia przez 7)
Jaka jest odwrotność jedynki mod 2016? A mod 2017? A odwrotność dwójki mod 2016? A mod 2017? A trójki (w obu
tych światach)?
Z80’. Znajdź (Możesz posłużyć się komputerem! A może nawet napiszesz stosowny program? Lepiej napisz!...)
odwrotności liczb 1, 2, 3, 123, 2016, 2017 mod 1234577.
Z81. A kto rozłoży na czynniki pierwsze liczbę 1219550231? A programem? A 1524157877488187881? (Wskazówka:
typ long long. Wsk. 2: to może potrwać... Co najmniej z minutę!)
A 123456789012345678901234567890123456789020132014? Można używać całego Internetu!
A 22001? A 2200+1? A 2200+7? 2365+239? 2578851611?
Z82. Napisz procedurkę, która wypisze ciąg liczb, na jaki zamieni się podany jako argument napis, jeśli dzielić go po n
znaków, gdzie n jest drugim jej argumentem. Np. naLiczby("MATMA",3) powinno dać 5062996, 5062912.
Z83. Jako szyfrogram algorytmu RSA o kluczu jawnym (2223383429, 7) otrzymałem:
a) 2062960583, b) (1547050037, 2071378202, 1208725881, 488288320, 1294264522).
Jaką liczbę i jaką wiadomość zapisałem, jeśli w b) grupowałem po dwa kody ASCII big endianem? :>
Z84. Jak wygląda dwójkowy (inaczej: binarny, jeszcze inaczej: zero-jedynkowy*) zapis liczby 213, a jak 811?
* - Jak myślisz – skąd ta zagadkowa nazwa? :>
Z85. Ilu cyfr potrzeba do zapisu liczby w systemie o podstawie b? Dlaczego?
Z86. Jak wygląda siódemkowy zapis liczb 7100+7 i 7100−1?
Z87. Jak w miarę szybko można obliczyć wartości największej liczby o 10-cyfrowym zapisie szóstkowym?
Z88. Jak wyglądają piątkowo: 7, 35, 175, 875, 4375, ...? Co będzie dalej? Wiesz dlaczego? :>
Z89. Jeśli przez ś oznaczymy liczbę 6 444 007 088 000 91911, to jaki zapis jedenastkowy ma liczba ś11, a jaki ś+110?
Z90. Zapisz liczby 123 i 999 w systemach o podstawach: 9, 11, 12, 16.
Z91. Ile mnożeń wykona się, obliczając schematem Hornera wartość 99-cyfrowej liczby piątkowej? Uzasadnij!
Z92. Przez l oznaczmy liczbę 123450,3216. Jak wygląda szóstkowy zapis liczb: x = l611, y = l/36, z = l/611 ?
Z93. Co wypisze się w poniższym programiku dla: a) l = 1986, p = 5; b) l = 10324, p = 4; c) l = 42736019, p = 9 ?
Programik: dopóki l>0, powtarzaj: { wypisz wartość (l mod p); do zmiennej l wstaw wartość (l div p) }.
Czary??
Z94. Liczba ś ma stucyfrowy zapis dwójkowy 1010...10. Znajdź najmniejsze naturalne n, dla którego ś div 2n = 0.
Z95. Zapisz liczbę 3/8: a) dwójkowo, b) ósemkowo, c) szesnastkowo, d) czwórkowo.
/32 dwójkowo i czwórkowo: a) z definicji, b) mądrzej (patrz parę zadań wyżej).
Z96. Zapisz
11
Z97. Zapisz
11
/27 trójkowo, dziewiątkowo, osiemnastkowo i piętnastkowo.
Z98. Jak wygląda pozycyjny zapis szóstkowy liczb: a =
13
11
; b = 99 100 ?
2100  399
2 3
Z99. Zapisz szesnastkowo: 110110001011000000011111010 2, 321034.
Z999. Zapisz 9tkowo: 210123, (10)906(72)81.
ZC. Zapisz Czwórkowo: 12809ABC16, 3210658.
ZCI. Ile wartości uda CI się zapisać na tetradzie? A na 4 B? Oszacuj tę wartość, nie używając maszyn liczących, a
następnie sprawdź dokładny wynik.
Z102. Ile bajtów, a ile bitów liczy gibibajt?
Z103. Co jest większe: 1024 MB czy 8000000 Kib? (Przedrostki rozumiemy zgodnie z układem SI, czyli nie tak jak
wielu informatyków). Oczywiście nie wykonuj niepotrzebnych rachunków (– nie trzeba rachować „do końca”).
Z104. Zapisz w ZM/U1/U2 na 2 B: a = 40, b = -40, c = -1, d = -1023, e = 220. Jaki jest zakres tego kodowania?
(Jaka jest największa, a jaką najmniejsza liczba, którą można tak zapisać?)
Z105*. Zapisz algorytm dodawania liczb zapisanych w kodzie SM, please.
Z106*. Co trzeba zrobić z wynikiem wykonanego normalnie binarnie dodawania kodów U1 dwóch liczb, żeby wynik był
kodem U1 ich sumy? (Rozpatrz chyba osobno sumę dwóch liczb ujemnych i dwóch liczb różnych znaków, ew.
rozdzielając jeszcze ten przypadek na sumę dodatnią i ujemną). Jest prosty sposób ustalenia, czy poprawka jest
konieczna. Jaki?
Z107. Zapisz w kodzie U2: a) -123 na 1 B, b) -66 na 1 B, c) -3 na 2 B, d) -1 na 4 B
e) najmniejszą możliwą liczbę na 4 B (Przy okazji podaj również jej wartość).
Dla pewności – polecam www.math.uni.wroc.pl/~msliw/U2.cpp.
PONIŻSZYM SIĘ CHYBA NIE ZAJMUJEMY!? ALE DO MATURKI WARTO PRZYNAJMNIEJ NIEKTÓRE
PRZEĆWICZYĆ!
Z71. Excel potrafi [pseudo]losowo wygenerować liczbę z przedziału 0,1). Mając do dyspozycji działania arytmetyczne i
funkcję podłoga, przekształć taką losową liczbę l, by mogła losowo przyjmować wartości ze zbioru: 0,7), 4,77), (5,55,
{0,1,2,...,5}, {4,5,...,88}, {0,2,4,...,66}, {9,19,29,...,99}, {66,71,76,...,101}, {13,17,21,...,2009}.
Z72. Jeden bok trójkąta pitagorejskiego ma długość ś. Jaką maksymalnie długość może mieć jego najdłuższy bok?
ZZ 73-76 należy umieć rozwiązać bez komputera.
(Chociaż warto oczywiście sprawdzić wyniki na sprzęcie, no i tym bardziej w razie potrzeby dowiedzieć się dzięki
komputerowi, co w ogóle robią używane tu funkcje! )
Z73. Co pojawi się w komórkach, jeśli:
a) w polu B2 wpisano: = 1+B1/100,
w polu C2 wpisano: = C1–1/(100^$A2),
w polu D2 wpisano: = C2+$B2,
w polu E2 wpisano: = SUMA(A$1:A2)
i obszar B2:E2 skopiowano do obszaru B3:E6?
b) w polu B2 wpisano: = 1+B1*10,
w polu C2 wpisano: = C1–1/(10^$A2),
w polu D2 wpisano: = D1–1/(10^A$2),
w polu E2 wpisano: = SUMA(A2:A$6)
i obszar B2:E2 skopiowano do obszaru B3:E6?
A
0
1
2
3
4
5
B
1
C
1
D
1
2
3
4
5
6
E
0
1
2
3
4
5
6
A
0
1
2
3
4
5
B
1
C
1
D
1
E
1
Z74. Wypełnij (liczbami) to, co obliczy komputer, gdy pole B2 wypełniono, jak pokazano, i skopiowano do obszaru
B2:D3.
a) w B2 jest: = A$1 + $A2
b) w B2 jest: = $A$1 + A2
A B C D
A B C D
1
2
3
1
2
3
2
3
4
1
2
3
1
2
3
2
3
4
Z75. A co pojawi się tu, jeśli pole D1 wypełniono, jak pokazano, i skopiowano do obszaru D1:E3?
a) w D1 jest: = LICZ.JEŻELI (A$1:B1;”<2”)
b) w D1 jest: = SUMA($A1:B1)
1
2
3
A
2
2
2
B
0
1
2
C
2
1
0
D
E
1
2
3
A
2
2
2
B
0
1
2
C
2
1
0
D
E
Z76. Jakie wartości może dać formuła
=JEŻELI(2009*LOS()<101;LICZBA.CAŁK(LOS()*3+44);LICZBA.CAŁK(LOS())+1)?
Z77. Spowoduj, by w komórce D9 z prawdopodobieństwem 20% pojawiło się 1, z prawdopodob. 40%  5, a z
prawdopodob. 40%  8. Można zrobić to przy użyciu komórki pomocniczej, ale na ocenę cel nie należy!
Z78. Kolonia bakterii szczepu Oscylococus abnormalis liczyła wczoraj 2008 osobników i co miesiąc podwaja swoją
liczebność, ale bezpośrednio potem ginie tysiąc osobników. Pokaż, jak dzięki Excelowi stwierdzić, kiedy (po ilu
miesiącach) liczba osobników w kolonii będzie w zapisie dziesiętnym stucyfrowa.
Z79. Po nieroztropnym wzięciu 10 tys. zł kredytu oprocentowanego na 5% miesięcznie pan Malinowski spłaca co
miesiąc raty w wysokości 900 zł. Pokaż, jak dzięki Excelowi stwierdzić, kiedy spłaci kredyt. (Zaokrągleniami można się
nie przejmować).
Z80. W wielkiej wannie jest 100 kg dziesięcioprocentowego roztworu siarczanu (VI) sodu. Co minutę wylewa się z niej
5 kg roztworu, a następnie dolewanych jest 5 kg czystej wody. Stwierdź za pomocą Excela, kiedy stężenie roztworu
spadnie poniżej 1%. Zakładamy (oczywiście!), że stężenie wyrównuje się natychmiast po każdym dolaniu.
Z81. W gabinecie chemicznym trwają doświadczenia. W 100-litrowym pojemniczku znajdowało się początkowo 10 l
wody, ale co minutę dolewa się tam 11 l kwasu azotowego (V) (jego gęstość to ok. 1,5 g/cm 3), a litr wody wyparowuje.
Na wykresie pokaż stężenie otrzymywanego roztworu w kolejnych minutach do wypełnienia pojemniczka.
Z82. W Excelu w komórki A1:C1 wpisujemy trzy liczby dodatnie. Zapisz formułę, która, wpisana do D1, spowoduje, że
pojawi się tam pole trójkąta o bokach A1, B1, C1, jeśli taki trójkąt istnieje, a 0 jeśli nie. Przydatny może być tzw. wzór
Herona.
Z83. Utwórz tablicę 10 na 10, w której pierwszy wiersz i pierwsza kolumna przechowują długości przyprostokątnych
trójkąta prostokątnego, a w wierszu p i kolumnie q stoi długość przeciwprostokątnej tego trójkąta, jeśli jest całkowita, a
w przeciwnym wypadku 0. Ile jest trójkątów pitagorejskich o wszystkich bokach krótszych od 22?
Z84.a) Stwierdź w Excelu, przy jakim kącie kula (armatnia / śnieżna) osiąga maksymalny zasięg, i ustal przy okazji, jak
zależy on od prędkości pocz.
b) Jak odczytać, po jakim czasie kula zakończy lot? Spróbuj ustalić, jak zależy on od kąta, pod którym kula startuje, a jak
od wartości prędkości pocz.
c) Naszkicuj (w Excelu!) wykresy: vx(t), vy(t), v(t), x(t), y(t), h(t); czy są zgodne z Twoimi wyobrażeniami?
Z85. Pociąg relacji AB jedzie z prędkością 90 km/h, a pociąg relacji BA – 120 km/h (TGV!). Oba wyjeżdżają w samo
południe. O której godzinie z dokładnością do 30 s się miną/zderzą, jeśli AB = 47 km? Zobrazuj sytuację na wykresie.
Z86. Jaka jest największa wartość wyrażenia xy/15 y2 dla x,y0,77? Ile powinny wynosić x i y? Uwaga: przy użyciu
Solvera warto zainicjować zmieniane zmienne jakimiś niezerowymi wartościami (inaczej może sobie nie poradzić). A
jak to zrobić, jeśli x i y mają dodatkowo być nieparzystymi wielokrotnościami liczby 4/11?
Z87. Przećwicz: http://www.pcworld.pl/artykuly/33710/Excel.2002.tabele.przestawne.html , polecam również (ew. w
zamian, gdybyś miał[a] zbyt różną wersję Office’a) wiele innych artykułów o tabelach przestawnych w tzw. Necie, np.
na http://pszyperski.republika.pl.
Z88. Skonstruuj arkusz z trójkątem Pascala modulo n.
Z89. Na płaszczyźnie tworzymy ciąg punktów, tak że pierwszy jest dowolny, a (xn+1, yn+1) to z równym
prawdopodobieństwem (0,4xn1; 0,4yn0,1) lub (0,76xn0,4yn; 0,4xn+0,76yn). Wygeneruj w ten sposób 6789
elementów takiego ciągu i zachwyć się otrzymanym smokiem Heighwaya.
Z90. Metodą Monte Carlo oszacuj pole obszaru:
a) pomiędzy oX a pierwszym garbem sinusoidy,
b) wyciętego z wnętrza elipsy prostą przechodzącą przez jedno z jej ognisk równoległą do jej mniejszej osi,
c) pomiędzy oX a krzywą Gaussa dla x(0,1).
Z91. Rozwiąż numerycznie równania różniczkowe: y’=y, (y’)2+y2=1, y’’=ky z wybranymi warunkami początkowymi.
Z92. Zasymuluj: rzut ukośny, ruch wahadła matematycznego (tłumiony?), ruch punktu materialnego w centralnym polu
grawitacyjnym.
Z93-95 (wraz z danymi) są autorstwa Centralnej Komisji Egzaminacyjnej
(ja je tylko nieznacznie podrasowałem).
Z93. („I Ty zostaniesz meteorologiem”) W pliku http://www.math.uni.wroc.pl/~msliw/1c/temp.txt znajdują się średnie
temperatury miesięczne w Warszawie w latach 1779-2006 (wrocławskich nie udało nam się zdobyć). W każdym wierszu
znajduje się 13 liczb oddzielonych pojedynczymi znakami odstępu: rok oraz średnie miesięczne temperatury w kolejnych
dwunastu miesiącach.
a) Podaj najniższą średnią roczną temperaturę (wynik podaj z dwoma miejscami po przecinku) oraz rok jej wystąpienia.
b) Dla każdego z dwunastu miesięcy podaj minimalną i maksymalną średnią miesięczną temperaturę odnotowaną w tym
miesiącu w latach 1779-2006. Sporządź wykres [punktowy] ilustrujący otrzymane zestawienie. Pamiętaj o prawidłowym
i czytelnym opisie wykresu!
d) Znajdź najdłuższy malejący ciąg średnich temperatur sierpnia w kolejnych latach. Podaj rok początkowy i rok
końcowy znalezionego ciągu oraz jego długość.
Z94. („I Ty możesz podjąć pracę w spółdzielni mieszkaniowej!”) Każde mieszkanie na osiedlu, którym zarządzasz, ma
tylko jednego właściciela (ale jedna osoba może być właścicielem kilku mieszkań). Wśród właścicieli nie ma dwóch
osób o tym samym imieniu i nazwisku. Plik http://www.math.uni.wroc.pl/~msliw/1c/adres.txt zawiera informacje o
mieszkaniach. W każdym wierszu znajdują się następujące dane rozdzielone pojedynczymi znakami odstępu:
identyfikator mieszkania, nazwa ulicy, numer klatki, numer mieszkania oraz metraż mieszkania. Plik
http://www.math.uni.wroc.pl/~msliw/1c/osoby.txt zawiera informacje o ich mieszkańcach. W każdym wierszu znajdują
się następujące dane rozdzielone pojedynczymi znakami odstępu: identyfikator mieszkania, nazwisko i imię właściciela,
liczba osób zamieszkujących mieszkanie.
a) Ile osób posiada więcej niż jedno mieszkanie?
b) Utwórz listę zawierającą identyfikatory mieszkań, w których średnio na osobę przypada mniej niż 6 m2.
c) Podaj nazwiska i imiona właścicieli mieszkań o powierzchni powyżej 90 m2 i zajmowanych tylko przez jedną osobę.
d) Podaj, ile jest kobiet, a ilu mężczyzn wśród właścicieli mieszkań (uwaga: jeżeli jedna osoba jest właścicielem więcej
niż jednego mieszkania, to liczymy ją tylko raz). Możesz wykorzystać fakt, że w danych imiona wszystkich kobiet (i
tylko kobiet) kończą się literą „a”.
Z95. („I Ty możesz kiedyś potrzebować lekarza...”) Dane są trzy pliki tekstowe, w każdym z nich dane w wierszu
oddzielone są znakami tabulacji. Plik http://www.math.uni.wroc.pl/~msliw/1c/lekarze.txt zawiera dane lekarzy: numer
identyfikacyjny lekarza, jego nazwisko, imię, specjalność, datę urodzenia, NIP i PESEL. Plik
http://www.math.uni.wroc.pl/~msliw/1c/pacjenci.txt zawiera dane pacjentów: numer identyfikacyjny pacjenta, jego
nazwisko, imię, PESEL i datę urodzenia. Plik http://www.math.uni.wroc.pl/~msliw/1c/wizyty.txt zawiera informacje na
temat domowych wizyt lekarskich przeprowadzonych przez lekarzy u pacjentów: numer identyfikacyjny lekarza, numer
identyfikacyjny pacjenta oraz datę wizyty lekarskiej przeprowadzonej przez lekarza u pacjenta.
a) Utwórz zestawienie zawierające nazwiska i imiona lekarzy oraz liczbę wizyt przeprowadzonych przez każdego z nich.
Informacje uporządkuj nierosnąco według liczby wizyt.
b) Utwórz zestawienie zawierające nazwiska i imiona pacjentów oraz liczbę wizyt lekarzy u każdego z pacjentów, którzy
urodzili się przed 1 lipca 1973. Informacje uporządkuj niemalejąco według liczby wizyt.
c) Utwórz zestawienie zawierające informacje: nazwisko, imię i specjalność lekarzy posiadających NIP rozpoczynający
się od cyfry 8 (btw.: o czym to świadczy?). Informacje uporządkuj alfabetycznie według nazw specjalności.
d) Utwórz zestawienie dla każdego pacjenta, zawierającego informację, u ilu lekarzy się leczył, to znaczy wskaż, ilu
różnych lekarzy było z wizytą u danego pacjenta. W zestawieniu podaj nazwisko, imię pacjenta oraz liczbę lekarzy.
Informacje uporządkuj alfabetycznie według nazwisk.
Z96. Zwróć uprzejmie uwagę, że pliki PGM, którymi zajmowaliśmy się w C++, można obrabiać też w Excelu, jeśli...
(Do 2007 roku niestety tylko niezbyt duże, bo arkusz excelowy miał wtedy tylko 256 kolumn).
Które z operacji, które wykonywaliśmy programując, w arkuszu robi się łatwiej, a które trudniej? Popróbuj na tych
plikach co poprzednio, ew. przystosowując je w C++ do potrzeb arkusza. Zauważ, że przy odpowiednim oddaleniu w
skoroszycie da się zobaczyć zarys obrazka! 
Z97. (10 pkt.) W pliku http://www.math.uni.wroc.pl/~msliw/q13.txt zasymulowałem przez wczorajszą noc całkiem sporo
ruchów w grze w okręty (każdy ruch kodowany jest wyborem litery i liczby – współrzędnych pola, w które strzela
gracz). a) Utwórz tabelkę podającą w jakiś uporządkowany sposób pola, w które strzelano (każde tylko raz!). b) Zapisz je
jako plik tekstowy, kodując każdy strzał w kolejności liczba-litera (bez odstępu!). c) Utwórz uporządkowaną
alfabetycznie listę wszystkich pól, w które strzelano, wraz z liczbą strzałów, które przyjęły.
Z98. Straszny smok Heighwaya z Z89 jest zwykłym atraktorem* pewnego układu odpowiednich przekształceń
zwężających (serio!). Inne można uzyskać np. tak: wyobraź sobie, że jesteś żabą, która wyrusza z początku układu
współrzędnych i co minutę zmienia swoje położenie, z równymi prawdopodobieństwami udając się w kierunku jednego z
punktów (1,0), (½,1) i (0,0), ale przeskakuje tylko połowę dzielącej ją od tego punktu odległości. Wygeneruj w Excelu
swoje kolejne położenia. Widzisz podobieństwo do Z89? (Wskazówka: napisz, jak mogą wyglądać współrzędne
kolejnego położenia w zależności od położenia po ostatnim skoku – chyba nietrudno je wyznaczyć? – choćby rachując
jakieś wektory, ale jest też przecież dość oczywisty wzorek na środek odcinka!)
Taki sposób generowania wyżej wspomnianych atraktorów (fraktali) nazywa się grą w chaos.
Pobadaj tę grę, zmieniając zasady (pamiętaj, że w Excelu możesz zapisywać odpowiednie parametry w wybranych
komórkach), np.:
- skacz w kierunku któregoś z punktów chętniej niż w kierunku innych,
- rozmieść te punkty inaczej,
- do wyboru miej nie trzy, a cztery albo pięć punktów,
- skacz nie o połowę dystansu, tylko o np. 1/3, 48%, 51% (teraz już pewnie wektorkami warto by było ustalić wzory na
kolejne położenia, chociaż można też dostrzec tu średnie ważone...).
W Z99-? komputera używaj tylko do nabycia wprawy i sprawdzania swoich odpowiedzi – będę oczekiwał
umiejętności ich rozwiązywania bez pomocy żółwia! PS. Ekran czyści się poleceniem cs.
Z99. Co rysuje żółw, kiedy poda mu się poniższe polecenia?
a) repeat 3 [ forward 100 left 90 ]
b) repeat 3 [ forward 100 left 120 ]
c) repeat 2016 [ forward 100 right 90 ]
d) repeat 2016 [ forward 1 right 1 ]
e) repeat 4 [ forward -44 repeat 2 [ lt 90 forward 44 lt 90 ] ]
f) repeat 4 [ fd 20 rt 90 rt 90 repeat 6 [ fd 10 lt 90 ] ]
Z100. Jak można oszczędzić żółwiowi nadmiernego spacerowania w Z99.d, tak żeby mimo to narysował to samo?
Z101. Co zmieni zamiana 100 na -100 w Z99.a-c? A left na right?
Z102. Czy „rt 180 fd 111” to to samo co „fd -111”?
*
Mój Word myśli, że chodzi mi o traktor! (Ale się myli!)
Z103. A co rysuje zagadka? Co znaczą jej
parametry? (Jej definicję możesz po prostu
skopiować do okienka, które pojawi się po
wciśnięciu „Edall” i które należy potem
zamknąć, żeby wrócić do trybu komend.
A wiadomo, jak ją potem wywołać? –
zupełnie podobnie jak np. procedurę left).
to zagadka :x :k
repeat 4 [ fd :x rt 90 ]
if :k>0 [ rt 45 fd :x * sqrt 2 ]
if :k=2 [ lt 45 fd -:x lt 45 fd :x * sqrt 2 ]
end
Z104. Co rysują procedury:
to rekurencja :n :a
if :n>0 [
fd :a
rekurencja :n-1 2*:a
]
end
Z105. W języku AlaLogo
PROC. TRÓJKĄCIK (x)
zdefiniowano procedury:
POWTÓRZ 3 RAZY:
Naszkicuj, co powstanie po
{IDŹ NAPRZÓD O x
wywołaniu procedury zagadkowa
SKRĘĆ W PRAWO O 120}
z parametrami 3 i 20, jeśli żółw
KONIEC PROC. TRÓJKĄCIK
porusza się po płaszczyźnie i na
początku stoi z twarzą zwróconą
na południe.
(Mam nadzieję, że umiesz przepisać i uruchomić je w naszym Logo!)
to rekursja :n :a
if :n>0 [
fd :a
rt 90
rekursja :n-1 :a*.9
]
end
PROC. ZAGADKOWA (s, x)
JEŚLI s=1, TO WYKONAJ TRÓJKĄCIK (x)
JEŚLI s>1, TO WYKONAJ
{TRÓJKĄCIK (x)
ZAGADKOWA(s-1,x/2)}
KONIEC PROC. ZAGADKOWA
Z106. A co narysuje HAHA 4 po następującej definicji HAHA :k?
IF :k>0 [ HAHA :k-1 FD 1 ] IF :k=0 [ BACK 7 ]
Z107. Napisz procedurkę rysującą:
a) 11 promieni tego samego okręgu dzielących go na przystające łuki.
Tak miałby wyglądać Twój rysunek, gdyby chodziło o 5 promieni:
b) kwadrat i kwadrat symetrycznie w niego wpisany,
c) trójkąt równoboczny i jedną Jego Wysokość,
d) sześciokąt foremny i jego dwie równoległe przekątne,
e) kratkę nn kwadratowych pól o bokach długości x,
f) taką piłę o n zębach:
g) n takich łamanych o bokach x i x/2 (odstępy między kolejnymi wynoszą x/2):
h) takie cóś:
(n kwadratów o boku a, a odległości między nimi wynoszą a)
i) taki płotek na komary:
(odcinków pionowych jest k, a każdy ma długość x i odległości między kolejnymi to również x)
j) takie coś (sześciokątów foremnych jest tu 2n):
k) to samo, co w niektórych z powyższych (których?), ale rekurencyjnie!
(Podp.: rekurencja polega na zauważeniu w problemie dla n tego samego
problemu dla n-1 i wywołaniu zatem tej samej procedury oraz ew. zrobieniu jeszcze pojedynczych
kroków, patrz Z104-106).
Z108. Narysuj następującą zagmatwaną mozaikę z n kwadratami, z których największy ma bok a.
(Podp.: Z104-106, a zwłaszcza...)
Z109. Napisz procedurkę rysującą Rekurencyjne Pazurki Śliwińskiego*. Potrzebne parametry ustal sobie sam[a]!
* - RPŚ stopnia 1 (stopnia 0 nie definiujemy):
Dla porównania RPŚ stopnia 3:
Z110.
Wstęp: Po wydaniu komendy perspective Żółw Nasz Kochany zaczyna umieć latać, tzn. porusza się w trzech
wymiarach (trochę dziwnie na ekranie oddawanych) i oprócz obrotów w płaszczyźnie swoich stóp może wykonać także
rightroll, downpitch (sprawdź, co to – empirycznie, w helpie albo Internecie) oraz... Aby przywrócić Żółwia do
normalnego trybu pracy, należy wpisać wrap.
Zrozum, co i dlaczego robi ciąg komend perspective fd 100 rt 90 fd 100 rr 90 fd 100 rt 90 fd 100 up 90 fd 100.
Wróć żółwiem do pktu startu: a) po jego dotychczasowym torze,
b) dorysowując dwie krawędzie prostopadłościanu równoległe do już narysowanych.
Z111. Narysuj lewą i prawą ścianę sześcianu, jeśli przednia jest równoległa do początkowej płaszczyzny ruchu żółwia.
Z112. Narysuj wszystkie krawędzie sześcianu: a) używając chytrze zdefiniowanej uprzednio procedury kwadrat,
b) nie podnosząc pisaka żółwia, ale tak, żeby jego trasa była jak najkrótsza (*niebanalne
zad. matematyczne: jaka trasa jest najkrótsza?), c) jakoś inaczej, wg własnego pomysłu.
Z113. Napisz procedurkę generującą takie coś (pionowo i poziomo ułożone kwadraty
w perspektywie żółwia):
Z114. Narysuj w perspektywie szkielet:
a) jakiegoś czworościanu, np. foremnego albo naroża sześcianu,
b) piramidy, np. Chefrena,
c) jakiegoś graniastosłupa, np. n-kątnego,
d) jakiegoś wielościanu (np. któregoś z a-c – którego?) wraz z niektórymi/wszystkimi
przekątnymi (nie mówię o przekątnych ścian!).
Z115. Bez używania komputera: a) naszkicuj drogę żółwia i oblicz jego przemieszczenie, jeśli na początku stoi, patrząc
w górę ekranu, i wykonuje kolejno komendy: leftroll 90 fd 1 uppitch 90 fd 2 downpitch 90 fd 1;
b) napisz ciąg poleceń left i rightroll, który da taki sam efekt, jak uppitch 90.
Z116. Wywołaj kilka razy „komendę” random 5. To nie jest żadna komenda, stąd zbulwersowanie żółwia (bo to tak,
jakby wpisać mu np. sin 30), ale czy domyślasz się, jakie wartości daje ta funkcja? Sprawdź w helpie! (Uwaga: funkcje
losujące w innych dialektach Logo mogą działać inaczej!)
A co może się narysować komendą repeat 100 [ fd 20 rt (90*random 4) ] ? Zastanów się, a potem sprawdź. (Aby
dokładniej zobaczyć, co robi żółw w kolejnych krokach, można dopisać komendę wait 30 – gdzie? (Jak dokładnie ona
działa?) Jest to tzw. spacer losowy, tutaj – po sieci kwadratowej. Jak kazać żółwiowi losowo spacerować po sieci
trójkątnej? A sześciokątnej? A jak pozwolić mu chodzić w (prawie) dowolnym kierunku? (Jeśli dodatkowo jego kroki
będą dostatecznie małe, stworzysz wówczas model ruchów Browna*!)
* - Znasz z biologii/chemii/fizyki? :>
Z117. Czy zdajesz sobie sprawę, że chodzenie przez żółwia po sieci trójkątnej lub kwadratowej to dość szczególne
przypadki? Dlaczego żadna regularna sieć nie powstanie, gdy będziemy kazać mu obracać się o wielokrotności 45 (i
iść naprzód o tę samą odległość)?
Z117’. Co zrobić, by żółw chodził (losowo) po sieci sześciokątnej (foremnej)? Podp.: o jakie kąty może się po każdym
kroku obrócić?
Z118. Spowoduj, by żółw stanowił model pijaka jednowymiarowego, tj. chodzącego po prostej krokami o jednostkę w
lewo lub w prawo. Można to zrobić podobnie, jak my na lekcji, gdy chodził, obracając się po każdym kroku o
odpowiednio losowo wygenerowany kąt, a można również, sprytnie używając tylko instrukcji FD (i losując w niej, czy
iść ma w jedną, czy drugą stronę – jak?? Podp.: jaki jest zbiór wartości wyrażenia 2 * (RANDOM 2) – 1?).
Z118’. A czy umiesz spowodować, by żółw chętniej szedł w jednym niż w drugim kierunku (np. z
prawdopodobieństwami 2/3 i 1/3? (Podp.: da się to zrobić dzięki wyrażeniu podobnemu do tego 2 linijki wyżej, ALE da
się też na co najmniej dwa inne sposoby).
Z118’’. Poobserwuj zachowanie żółwia w zad. 118 i 118’. Widać różnicę?
Z119. Dla konkretnego n (np. 12, 17, 24, 30, 187, 100, 101, 512, 2100, 66): a) ile jest typów n-kątów gwiaździstych?
b) co trzeba wpisać, żeby uzyskać najostrzejszy / najbardziej tępy n-kąt gwiaździsty?
Z120. Co powstanie dla danych n i d? Ile co najmniej obrotów pętli trzeba wykonać, żeby uzyskać wielokąt?
Z121. Jakie jest najmniejsze n, dla którego istnieje dokładnie 10 typów n-kątów gwiaździstych?
1
? Wpisz jej wzór w wolframalpha.com i obserwuj, weryfikując swoje
x  1234
poglądy. Obejrzyj go też w programie Maxima, który warto sobie zainstalować nie tylko na użytek naszych lekcji.
(Uruchamia się go, wybierając „wxMaxima”).
W obu systemach spróbuj spowodować, żeby widoczne było to, co mogłoby umknąć niewprawnemu badaczowi. (W
Maximie, aby zobaczyć nowy wykres, warto zamknąć poprzedni, a komendy wprowadza się, naciskając „Shift+Enter”).
Z122. Jak wygląda wykres funkcji x 
Miłej zabawy!
M.Ś.
Download