Rozdział 3


Decyzje

 

Podsumowanie

IF, STOP
=
, <, >, <=, >=, <>

 

Wszystkie widziane przez nas dotąd programy były dosyć przewidywalne - przechodziły prosto przez kolejne instrukcje, a następnie wracały z powrotem na początek. Nie jest to specjalnie użyteczne. W praktyce oczekujemy od komputera podejmowania decyzji i postępowania zgodnie z nimi. Używana do tego instrukcja ma postać ... IF (jeśli) coś jest prawdziwe THEN (to wtedy) zrób coś.

Dla przykładu, użyj NEW do usunięcia poprzedniego programu z komputera i wpisz oraz uruchom ten program. (Oczywiście przeznaczony jest on dla dwóch ludzi, którzy będą przy jego pomocy prowadzili rozgrywkę!)

 

10 REM Odgadywanie liczb
20 INPUT a: CLS
30 INPUT "Odgadnij numer",b
40 IF b=a THEN PRINT "Dobrze!": STOP
50 IF b<a THEN PRINT "Za nisko, zgadnij ponownie"
60 IF b>a THEN PRINT "Za wysoko, zgadnij ponownie"
70 GO TO 30


Możesz się przekonać, że rozkaz IF i przyjmuje postać

 

IF warunek THEN ...

 

gdzie '...' oznacza ciąg rozkazów rozdzielonych w zwykły sposób dwukropkami. Warunek jest czymś, co ma dać wynik prawda lub fałsz: jeśli okaże się, że daje wynik prawda, to zostaną wykonane wszystkie polecenia w drugiej części wiersza po słowie THEN, lecz w przypadku przeciwnym zostaną one pominięte i program będzie kontynuował wykonanie od następnej instrukcji.

Najprostsze warunki porównują dwie liczby lub dwa łańcuchy znaków: mogą one sprawdzać, czy dwie liczby są równe lub czy jedna z nich jest większa od drugiej; również mogą sprawdzać, czy dwa łańcuchy tekstu są identyczne lub jeden z nich poprzedza drugi w kolejności alfabetycznej. Używają porównań =, <, >, <=, >= oraz <>.

= znaczy "równy". Chociaż jest to taki sam symbol jak = w rozkazie LET, używany tutaj jest w zupełnie innym sensie.

< (SYMBOL SHIFT z R) oznacza "mniejszy niż", zatem wszystkie warunki

 

1<2
-2<-1
-3<1


są prawdziwe, lecz

 

1<0
0<-2

 

są fałszywe.

Wiersz 40 porównuje a i b. Jeśli są równe, to program zostaje zatrzymany za pomocą rozkazu STOP. Komunikat u dołu ekranu o treści:

 

9 STOP statement, 30:3

 

pokazuje, że trzecie polecenie lub rozkaz w wierszu 30 spowodowało zatrzymanie programu, u nas jest to STOP.

Wiersz 50 sprawdza, czy b jest mniejsze od a, a wiersz 60, czy b jest większe od a. Jeśli jeden z tych warunków jest prawdziwy, to zostanie wydrukowany odpowiedni komentarz, a program przejdzie do wiersza 70, który każe komputerowi wrócić z powrotem do wiersza 30 i rozpocząć od nowa.

Rozkaz CLS (clear screen - czyść ekran) w wierszu 20 ma na celu uniemożliwienie drugiej osobie podglądu tego, co wprowadziłeś.

Zatem > (SYMBOL SHIFT z T) oznacza "większy niż" i jest podobny do <, lecz w drugą stronę. Możesz je łatwo zapamiętać, ponieważ czubek znaku porównania zawsze skierowany jest ku liczbie, która ma być mniejsza.

<= (SYMBOL SHIFT z Q - nie wpisuj go jako < i =) oznacza "mniejszy lub równy, zatem jest on taki sam jak < z tym wyjątkiem, iż dodatkowo daje prawdę, gdy obie liczby są sobie równe: stąd 2<=2 jest prawdziwe, lecz 2<2 jest fałszywe.

>= (SYMBOL SHIFT z E) oznacza "większy lub równy" i jest podobny do >.

<> (SYMBOL SHIFT z W) oznacza "różny od" i ma znaczenie przeciwne do =.

Matematycy zwykle zapisują <=, >= i <> jako ≤, ≥ i ≠. Piszą również rzeczy w stylu "2<3<4" w znaczeniu "2<3" i "3<4", lecz to nie jest możliwe w jezyku BASIC.

Uwaga: w niektórych dialektach języka BASIC - lecz nie w ZX SPECTRUM - polecenie IF może posiadać postać

 

IF warunek THEN numer wiersza

 

Oznacza to to samo co

 

IF warunek THEN GO TO numer wiersza

 

Ćwiczenia

  1. Wypróbuj ten program:

            10 PRINT "x": STOP: PRINT "y"

    Gdy go uruchomisz, wyświetli x i zatrzyma się z komunikatem 9 STOP statement, 10:2.
    Teraz wpisz

            CONTINUE

    Można by oczekiwać, że skok zostanie wykonany z powrotem do rozkazu STOP - CONTINUE zwykle powtarza rozkaz, do którego odnosił się komunikat. Jednakże tutaj nie byłoby to specjalnie użyteczne, ponieważ komputer znów by się zatrzymał bez wyświetlenia y. Dlatego pomyślano to tak, aby po komunikacie 9 rozkaz CONTINUE wykonywał skok do polecenia za rozkazem STOP - zatem w naszym przykładzie po wprowadzeniu CONTINUE komputer wyświetla y i osiąga koniec programu.

 

 


   I Liceum Ogólnokształcące   
im. Kazimierza Brodzińskiego
w Tarnowie

©2018 mgr Jerzy Wałaszek

Dokument ten rozpowszechniany jest zgodnie z zasadami licencji
GNU Free Documentation License.

Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl

W artykułach serwisu są używane cookies. Jeśli nie chcesz ich otrzymywać,
zablokuj je w swojej przeglądarce.
Informacje dodatkowe