Bajtek 2/1987
Bajtek 2/1987

 No i w końcu jest  - kolejny zreduksowany numer Batjka z roku Anno Domini 1987, w środku bez większych niespodzianek, no może oprócz sporego odbica się działu ATARI - począwszy od kobyły W. Zientary "Symulator 6502", pozwalający ...

Zobacz stronę związaną z tym artykułem w Reduksach Try2emu
Spis treści:
Listingi dołączone do numeru w ReadyRun
Romek

Kawalarz


Cześć  Maluchy!
Coraz więcej przedszkolaków ma ochotę nauczyć się programować i — jak wynika z waszych listów — dla niektórych ostatnie programy były trochę zbyt trudne. Dziś więc napiszemy program, do którego wystarczą tylko dwie instrukcje. Kto będzie chciał go ulepszyć, będzie musiał poznać jeszcze trzy.

Prawie każdy zaczyna naukę programowania od instrukcji PRINT czyli „pisz”. Jest to polecenie dla komputera, by wyświetlił na ekranie jakiś napis. Tym razem zajmiemy się wyłącznie pisaniem tekstów. Liczby i zmienne zostawimy sobie na inną okazję.
Instrukcji PRINT możemy używać na wiele różnych sposobów. Część z nich zależna jest od rodzaju mikrokomputera i odmiany BASIC-a jakiego on używa, część jednak jest wspólna dla wszystkich, i właśnie o nich sobie opowiemy Zacznijmy od prostego programu:

100 PRINT "Czesc maluchy!"
110 PRINT " To ja!!!!"
120 PRINT "Komputer.";
130 PRINT "Tak. to wlasnie ja - ";
140 PRINT "komputer."
150 PRINT
160 PRINT "Pozdrawiaja was:"
170 PRINT "Kubus", "Literka"
180 PRINT "Barnaba", "Tranzystorek"
190 PRINT "Romek"
200 PRINT, "Bajtek"

Możemy letaz uruchomić nasz program. Napiszmy RUN i naciśnijmy klawisz RETURN (w niektórych komputerach ENTER). Na ekranie zobaczymy taki obrazek:

run
Czesc maluchy!
 To ja!!!!
Komputer.
Tak, to wlasnie ja - komputer.
Pozdrawiaja was:
Kubus      Literka
Barnaba     Tranzystorek
Romek
          Bajtek
Ready

Natychmiast rzuca się w oczy, że wszystkie teksty piszemy w cudzysłowach — to zasada, której trzeba przestrzegać. W linii 10 rozkazaliśmy komputerowi: PRINT „Cześć maluchy!”, czyli — po prostu — napisz tekst „Cześć maluchy!”. I rzeczywiście, komputer posłusznie wypisał żądane zdanie rozpoczynając od lewej strony ekranu. A jeśli nie chcemy zaczynać od lewej strony? Wystarczy pozostawić kilka pustych miejsc po pierwszym cudzysłowie (tak jak w linii 10).
Każde kolejne polecenie PRINT powoduje drukowanie w nowej linii. Czy jednak tak musi być zawsze? Popatrzcie na linie 40 i 50, oraz ich wykonanie. Dwukrotnie użyliśmy PRINT a jednak obydwa napisy ukazały się w tej samej linii. Stało się to dzięki średnikowi po pierwszym napisie. Średnik oznacza, że chcemy aby następny napis został umieszczony bezpośrednio po pierwszym.
W linii 60 widzimy natomiast coś dziwnego. Jest rozkaz PRINT i nic więcej. Co zrobił komputer? Po prostu zostawił jedną linię pustą!
Jeszcze bardziej niespodziewany jest efekt wykonania linii 90-110. Nazwiska i imiona stoją równiutko, jak harcerze na zbiórce. Ale przecież w programie wpisane są zupełnie inaczej i wcale nie równo. Popatrzmy jeszcze raz na program. A właśnie! Co tu robią te przecinki? Otóż komputer potrafi drukować napisy w postaci tabelki. Jeśli pomiędzy dwoma napisami postawimy przecinek będzie to wskazówka dla komputera, że drugie słowo ma napisać w następnej rubryce. Długość tej rubryki dla różnych mikrokomputerów może wynosić od kilku do kilkunastu miejsc. Przecinek możemy umieszczać nie tylko pomiędzy napisami ale także przed napisem, bezpośrednio po PRINT, tak jak w linii 110.
Drugą instrukcją, którą poznamy tym razem będzie INPUT. Służy ona przede wszystkim do wprowadzania informacji bezpośrednio z klawiatury w trakcie działania pr igramy. My jednak — na razie — będziemy ją wykorzystywali tylko do zatrzymywania programu. Napiszemy:

5 DIM a$(3) :REM tylko dla ATARI
10 PRINT "Rudy ojciec, rudy dziadek,"
10 PRINT "Rudy ogon to moj spadek,"
30 PRINT, "Nacisnij >ENTER/RETURN<"
40 INPUT a$
50 PRINT "A ja jestem rudy lis."
60 PRINT "Ruszaj stad bo bede gryzl."

Użytkownicy ATARI będą musieli dopisać dodatkowo linię:
5 DIM a$(2)
jest to rezerwacja pamięci dla zmiennej a$. W pozostałych mikrokomputerach instrukcja ta ma nieco inne znaczenie!
Po uruchomieniu programu na ekranie wydrukuje się pierwsza część wiersza Jana Brzechwy:

run
Rudy ojciec... rudy dziadek; Rudy oqon to moj spadek,
Nacisnij >ENTER/RETURN<
?
i dopiero po naciśnięciu wskazanego klawisza — dokończenie:

A ja jesten rudy lis.
Ruszaj stad bo bede gryzl.
Ready
 
Te instrukcje pozwolą nam już na napisanie naszego programu, w którym komputer będzie opowiadał dowcipy. Zasada jest bardzo prosta. Najpierw komputer zadaje pytanie a po naciśnięciu ENTER/RETURN odpowiada i zadaje następne. Treść pytań i odpowiedzi zależy od waszej pomysłowości i poczucia humoru.

5 DIM a$(3) :REM tylko dla ATARI
100 PRINT "Jesli wrzucisz niebieski kani
en do"
110 PRINT "Morza Czerwonego to jaki on b edzie?"
120 PRINT "Nacisnij RETURN/ENTER"
130 INPUT a$
140 PRINT "Mokry."
150 PRINT
160 PRINT
170 PRINT
200 FRINT "Dlaczego sultan turecki nosi zielone
210 PRINT "szelki?"
220 PRINT "Nacisnij RETURN/ENTER"
240 PRINT "Zeby mu spodnie nie spadaly."
250 PRINT
260 PRINT
270 PRINT
300 PRINT "Co najlepiej polozyc na kanapcee?"
310 PRINT "Nacisnij RETURN/ENTER"
320 INPUT a$
330 PRINT "Wlasne zeby."
340 PRINT
350 PRINT
400 PRINT "Dlaczego wrona siada na czubku drzewa?"
410 PRINT "Nacisnij RETURN/ENTER"
420 INPUT a$
430 PRINT "Bo wyzej nie moze."
440 PRINT
450 PRINT
460 PRINT

Jeśli chcemy nasz program uatrakcyinić musimy nauczyć się ... skakać, a właściwie zmuszać do skakania komputer. Rozkaz GOTO znaczy po polsku „idź” lub właśnie skocz” i nakazuje komputerowi przejście do wykonywania rozkazów umieszczonych w linii, której numer znajduje się po GOTO. Zobaczmy jak to działa.

5 DIM a$(3) :REM tylko dla ATARI
10 PRINT "Wyszedl Romek"
20 PRINT "Przed domek"
30 PRINT "Szukal w sadzie poziomek."
40 PRINT "Znalazl jedna - zjada,"
50 PRINT "Znalazl druga - zjada,"
60 PRINT "Sprzykrzyl mu sie sad."
70 PRINT "Na kamieniu siada"
80 PRINT "W cieniu drzewa"
90 PRINT. "Nacisnij >ENTER/RETURN<"
100 INPUT a$
110 FRINT "I ziewa, "
120 GOTO 110

Po uruchomieniu i naciśnięciu wskazanego klawisza zobaczymy:

Wyszedl Romek
Przed donek
Szukal w sadzie poziomek.
Znalazl jedna - zjada,       Znalazl druga - zjada,
Sprzykrzyl mu sie sad.
Na kamieniu siada
W cieniu drzewa
Nacisnij >ENTER/RETURN<
I ziewa,
I ziewa,
I ziewa,
I ziewa,
I ziewa,

(Jeśli twój komputer to Spectrum, to po zapełnieniu ekranu i pojawieniu się napisu ‚ scroll” naciśnij klawisz ENTER.) Już chyba wszyscy domyślacie się jak działa ten program. Komputer drukuje pierwszą część wiersza (również Jana Brzechwy) i czeka, aż pozwolimy mu działać dalej. Następnie wypisuje zdanie o ziewaniu i spotyka rozkaz skoku do linii nr 110. Drukuje więc jeszcze raz to zdanie, spotyka rozkaz skoku... i tak w kółko.Instrukcja GOSUB działa bardzo podobnie ale z jednym zastrzeżeniem — po wykonaniu odpowiedniej li czby rozkazów komputer ma powrócić do tego miejsca w programie, z którego wcześniei wyskoczył. A wraca wtedy, gdy trafia na rozkaz RETURN czyli wróć. Fragment programu, do którego skacze się instrukcją GOSUB nazywamy podprogramem.
100 PRINT "POMIDOR"
110 PRINT "Pan pomidor wlazl na tyczke"
120 PRINT "I przedrzeznia ogrodniczke"
130 GOSUB 310
140 PRINT "Oburzylo to fasole"
150 PRINT "A ja panu nie pozwole"
160 GOSUB 310
170 PRINT "Groch zzieienial az ze zlosci:" 18O PRINT "Ze tez nie wstyd jest waszmosci,"
190 GOSUB 310
200 PRINT "Rzepa takze go zagadnie:"
210 PRINT "Fe! Niedobrze! Fe! Nieladnie"
220 GOSUB 310
230 PRINT "Rozgniewaly sie warzywa:"
240 PRINT "Pan juz troche naduzywa."
250 GOSUB 310
260 PRINT "Pan pomidor, zawstydzony,"
270 PRINT "Caly zrobil sie czerwony"
230 PRINT "I spadl wprost ze swojej tyczki" 290 PRINT "do koszyczka ogrodniczki."
300 GOTO 300
310 PRINT, "Jak pan moze,"
320 PRINT ."Panie pomidorze?:"
330 RETURN
POMIDOR
Pan pomidor wlazl na tyczke
I przedrzeznia ogrodniczke
Jak pan moze, Panie pomidorze?!
Oburzylo to fasole
A ja panu nie pozwole!
Jak pan moze, Panie pomidorze?!
Groch zzieienial az ze zlosci:
Jak pan moze, Panie ponidorze?!
Rzepa takze go zagadnie:
Fe! Niedobrze! Fe! Nieladnie!
Jak pan moze, Panie ponidorze?!
Rozgniewaly sie warzywa:
Pan juz troche naduzywa,
Jak pan moze, Panie ponidorze?!
Pan pomidor, zawstydzony.
Caly zrobil sie czerwonu
I spadl wprost ze swojej tyczki
do koszyczka ogrodniczki.
Jak pan moze, Panie ponidorze?!
W programie, nagana udzielona pomidorowi zapisana jest tylko raz, zaś na ekranie pojawia się pięciokrotnie (tak jak to napisał pan Brzechwa). Nasz program, w ten sposób można uzupełnić o rysunek. Także rozkazy PRINT, „ENTER/RETURN” i INPUT a$ zają się za każdym razem a więc możemy go tak. przenieść do podprogramu.


5000 PRINT "        .         ??"
5010 PRINT "       ( )     ??"
5020 PRINT "      -----  ??"
5030 PRINT "      <'!'>"
5040 PRINT "        o"
5050 PRINT "       *v*"
5060 PRINT, "RETURN/ENTER"
5070 INPUT a$
5080 RETURN

i uzupełnić program o instrukcje skoków:

120 GOSUB 5000
220 GOSUB 5000
310 GOSUB 5000
410 GOSUB 5000

Zwróćcie uwagę, ze instrukcje skoków mają te same numery co niepotrzebne nam już instrukcje INPUT a więc tym samym te ostatnie są kasowane. Skasujcie jeszcze linie 130, 230, 320, 420 (wystarczy napisać numer linii i nacisnąć klawisz ENTER/RETURN) i program w wersji ulepszonej gotowy.
Wasze programy będą pewnie o wiele, wiele dłuższe. Przypuszczam, że będą bardzo ciekawe a więc z niecierpliwością czekam na listy.
 

Romek