Szansa
Zapewne nie raz zdarzyło się Wam prosić rodziców o pieniążki na kupno różnych, niezbędnych rzeczy. Uzyskiwane odpowiedzi rzadko kiedy mogą nas usatysfakcjonować, sprowadzają się bowiem zazwyczaj do mniej lub bardziej eleganckiej odmowy. Zanim wreszcie wyprosimy potrzebną sumę, niepowtarzalna okazja ucieka, a w pamięci pozostaje jedynie obiecanka: „jak wygram w TOTO-LOTKA to ci dam.” Ciężko jest znaleźć na to jakąś skuteczną radę. ale być może przy pomocy ulubieńca całej rodziny — komputera, uda się nam odnieść pewne umiarkowane sukcesy.
Zakradnijmy się więc do owej cudownej skrzynki i rozpocznijmy budowę programu, który może przekona Tatę o konieczności wpłace nia nam żądanej sumy bez czekania na wielką (a choćby i mniejszą) wygraną w TOTO-LOTKA.
Tym razem wykorzystamy zdolność komputera do zapamiętania danych. Zaczynamy od naszych typów. Grupa rozkazów 10 — 40 zmusza komputer do żądania od nas podania naszych numerów. Spotykamy tu instrukcję FOR i TO. Wykonując ją komputer realizuje zadaną czynność określoną ilość razy. Rozkaz 10 możemy więc przetłumaczyć jako: FO- R(DLA) K=l TO(DO) 6. W późniejszych rozkazach spotkamy się też z instrukcją STEP, która określa, co ile ma komputer zwiększać owo K (albo inną zmienną). Np. FOR K = 1 TO 22 STEP 3 nasza maszyna policzy od 1 do 22 przeskakując co 3, a więc: 1,4,7 itd.
Wykonując rozkaz 20 komputer nie przestanie nas męczyć, dopóki nie podamy mu owych 6 liczb N. Będą to nasze typy w losowaniu. Chcemy oczywiście, aby zostały one wyświetlone na ekranie. Służy temu rozkaz 30, gwiazdka w nim jest konieczna, inaczej bowiem podane przez nas numery zleją się razem i nie będziemy wiedzieli, co właściwie jest naszym typowaniem.
Przechodzimy do losowania. Sprawa jest o tyle skomplikowana, że musimy zmusić komputer do wybrania 6 różnych liczb. Ale i na to jest rada. Tu właśnie wykorzystamy zdolność komputera do zapamiętywania, a także porównywania liczb. Wszystko to zawieramy w rozkazach 60 — 110. Właściwe losowanie wykonuje rozkaz 70, numery 80 i 90 zabezpieczają losowanie przed powtórzeniem, takich samych numerów, rozkazy 60, 100, 110 powodują losowanie 7 numerów (ostatni potraktujmy jako dodatkowy), oraz uruchamiają tę część programu. Najciekawszy, a jeszcze nam nieznany jest rozkaz 1. Owo DIM oznacza, że nasza maszyna musi zapamiętać 7 liczb, określanych w tym wypadku jako Y. Gdyby chodziło o pamiętanie wyrazów, albo ogólnie liter, polecenie to wyglądałoby na przykład tak: DIM Y$(3,5). Powodowałoby to zapamiętanie 3 słów (lub grup liter), każde złożone z 5 liter.
Musimy oczywiście zobaczyć, jakie liczby wylosował nasz przyjaciel komputer. Służą temu rozkazy 120 — 140. Teraz okaże się, jak bardzo przydatne jest numerowanie rozkazów co 10, korzystając bowiem z możliwości uzupełnień, wprowadzimy napisy objaśniające. Są to komendy 8 PRINT "TWOJE TYPY:" i 115 PRINT "WYLOSOWANO:". Powoli zbliżamy się do finału. Aby nie trudzić się zbytnio, zaprogramujemy komputer tak, aby powtarzał grę określoną przez nas ilość razy. Musimy więc policzyć ilość gier, określimy je jako T. Na początku jest oczywiście T=0 (rozkaz 3), następnie co gra to wartość T rośnie o jeden. (Rozkaz nr 5). W komendzie 150 wyznaczyliśmy liczbę gier na 5, możecie oczywiście to zmienić, gdy T = 5 program kieruje się do ostatniego rozkazu, jeżeli jeszcze nie, powtarza program od nr 5 (rozkaz 170). Ilość gier (T) wyświetlimy sobie w prawym, dolnym rogu ekranu, a mnożąc ją przez opłatę jednej gry, otrzymamy sumę wydatków. Jest to rozkaz 160. T, czyli ilość gier w naszym przykładzie mnożymy przez 40 zł, czyli połowę stawki, bo nasz program wykonuje dla uproszczenia tylko jedno, a nie dwa losowania. Wszystko gotowe!
Wystarczy teraz, że uruchomimy program i poprosimy rodziców o wytypowanie liczb. Na ogół suma w prawym, dolnym rogu rośnie i rośnie, a trafnych „trójek” i ew. większych wygranych nie ma i nie ma. Wtedy skromnie prosimy rodziców o 'przekazanie tej sumki na nasze konto i pędzimy zakupić ową niepowtarzalną okazję.
No, chyba że nie mamy szczęścia (a rodzice je mają) i stwierdzamy jakieś wygrane. I tu właśnie przejawia się wyższość TOTO-LOTKA, bo on wypłaca wygrane, a my nie.
1 DIM Y(7)
2 DIM N(6)
3 LET T = 0
5 LET T = T + 1
8 PRINT "TWOJE TYPY"; 10 FOR K = 1 TO 6
20 INPUT N (K)
30 PRINT N (K); "*";
40 NEXT K
60 FOR X = 1 TO 7
70 LET Y (X) = INT (RND * 49) + 1
80 FOR Y = X - 1 TO 1 STEP - 1
90 IF Y (X) = Y (Y) THEN GOTO 70
100 NEXT Y
110 NEXT X
115 PRINT "WYLOSOWANO:"
120 FOR X = 1 TO 7
130 PRINT Y(X);"*"
140 NEXT X
150 IF T = 5 THEN GOTO 180
160 PRINT AT 21, 11; "GIER: "; T ; AT 21,19; "WYDATKI: "; T * 40
170 GOTO 5
180 PRINT "DZIEKUJE"
MAREK