Kurs Programowania : CZĘŚCI: 1 2 3 4 5 6

Dzisiejszy odcinek poświęcam instrukcjom PRINT, INPUT, GOTO i IF......THEN.

PRINT

Jest to jedna z pierwszych instrukcji jaką powinien poznać początkujący programista. Dzięki niej możemy wykonywać szereg różnych akcji. Po PRINT może wystąpić:

  • łańcuch tekstowy ujęty w cudzysłów

  • nazwa zmiennej

  • funkcja

  • znaki formatujące

Ostatnia pozycja służy do formatowania danych wychodzących na ekran. Na przykład: przecinek dzieli ekran na cztery kolumny, średnik poleca drukowanie jenego tekstu za drugim. Oto przykładowa instrukcja PRINT:

PRINT 2+2

Kiedy naciśniemy RETURN to pokaże się nam wynik 4. Oczywiście możemy obliczać różne działania artymetyczne (radzę zajrzeć do jednego z poprzednich numerów). A tu mamy krótki programik:

10 PRINT "Halo"
20 PRINT "Halo", A$
30 PRINT A+B
40 PRINT J
60 PRINT A, B, C, D

Linia 10 wypisuje na ekranie łańcuch tekstowy Halo, w linii 20 również zostaje wyświetlone Halo, a w pewnej odległości za nim jest wyświetlona wartość zmiennej łańcuchowej o nazwie A$. Linia 30 wyświetla sumę liczb A i b. Linia 40 wyświetla zawartość zmiennej J i w końcu linia 60 wyświetla zawartość zmiennych A, B, C i D. Radzę poćwiczyć używanie tej komendy, gdyż w żadnym języku programowania nie moża się bez niej obejść. Jeszcze kilka rad:

Wynik PRINT 5+10/2 będzie inny niż wynik instrukcji PRINT (5+10)/2. Wniosek nasuwa się sam: UŻYWAĆ NAWIASÓW. Pamiętajcie o tym jeśli nie chcecie popełniać podstawowych błędów. Jest jeszcze inny format instrukcji PRINT a mianowicie #PRINT, która pozwala wyprowadzać m.in. na drukarkę. Funkcje formatujące takie jak: POS, SPC i TAB (które nierozerwalnie wiążą się z instrukcją PRINT) omówimy nieco póżniej. No i na koniec, możemy zastępować instrukcję PRINT znakiem zapytania (?), ale nie możemy tak robić w przypadku rozkazu #PRINT (tzn. nie możemu go zapisać jaki #?). Czyli innymi słowami instrukcje:

PRINT "Mike"

i

? "Mike"

są równoważne. No i to tyle jeśli chodzi o instrukcję PRINT.

INPUT

Instrukcja INPUT nakazuje programowi zatrzymanie się, aż do czasu, gdy użytkownik wpisze odpowiednie dane, które są następnie użyte w dalszej części programu. Format instrukcji INPUT jest różnorodny, ale najczęściej można go spotkać w dwóch formach. Po instrukcji INPUT występują nazwy zmiennych, do których zostaną wprowadzone dane od użytkownika (mogą być liczbowe i/lub tekstowe). Oczywiście typy zmiennych muszą być dopasowane do typu wprowadzanego przez użytkownika. Np. jeśli użytkowanik musi wprowadzić łańcuch tekstowy (np. swoje imię), to po instrukcji INPUT musi wystąpić nazwa zmiennej ze znakiem $. W przeciwnym wypadku komputer wyświetli komunkat: TYPE MISMATCH ERROR, czyli niezgodność typów.A co się stanie jeśli w tym przypadku użytkownik wpisze nie jakieś słowo, a liczbę? Komputer nie wyświetli w tym przypadku komunikatu o błędzie, ale 1 już nie będzie cyfrą, a jednoznakowym łańcuchem tekstowym. Po prostu nie będzie traktowana jak 1, ale jako "1". Odwołując się do komendy PRINT, wydanie polecenia:

PRINT "1"+1

skończy się komunikatem o błędzie wymienionym powyżej. Dlaczego? A spróbujcie dodać jabłka do dżojtów i co wam z tego wyjdzie?

Po instrukcji INPUT może również wystąpić (tak jak w instrukcji PRINT) łańcuch tekstowy zawarty w cudzysłowach. Dobra koniec suchej teorii, czas na programy:

10 PRINT "Podaj swoje imię"
20 INPUT A$
30 PRINT "Cześć "; A$

Czy trzeba coś tłumaczyć? Mam nadzieję, że nie. Ale powyższy program możemy również zapisać w skróconej formie:

10 INPUT "Jak masz na imię"; A$
20 PRINT "Cześć "; A$

Po instrukcji INPUT możemy podać więcej nazw zmiennych, ale musimy je rozdzielić przecinkami. Przykładem niech będzie program obliczający obwód trójkąta różnoramiennego:

10 INPUT "Podaj dłuość boków trójkąta (a. b, c) "; A, B, C
20 PRINT "Obwód trójkąta wynosi "; A+B+C

Oczywiście użytkownik wprowadzjąc długości boków musi je również je rozdzielić przecinkami. Np. jeśli musi wprowadzić liczby 5 10 15, musi je rozdzielić przecinkami, czyli 5, 10, 15. I KONIEC.

GOTO

Instrukcja GOTO może być zapisana jako GO TO, czyli idź do. Po tym rozkazie podajemy numer linii, do której program ma skoczyć i od tego momentu wykonywać program. Przy tej instrukcji należy uważać, gdyż zmniejsza ona czytelność programu. W innych językach (takich jak C++ czy Pascal) używanie tej instrkcji nie przysparza przyjaciół. Przykłady? Jeden wystarczy:

10 PRINT "Mike"
20 GOTO 10

Tutaj na ekranie zobaczymy napis Mike, który będzie się wyświetlał tak długo, dopóki nie przerwiemy programu (np. klawiszem RUN/STOP).

IF........THEN

Instrukcja IF.....THEN (jeżeli warunek to) pozwala komputerowi na zmienienie kolejności wykonywania się programu. Co to znaczy? Znaczy to tyle, że dalsze wykonywanie się programu jest uzależnione od danych jakie wprowadził użytkownik. Przykład pierwszy z brzegu:

10 INPUT "Podaj swoją ksywę "; A$
20 IF A$="Mike" THEN PRINT "Jesteś Maciek"
30 IF A$="Luc" THEN PRINT "Jesteś Łukasz"
40 END

W zależności od tego, jaką wartość przyjmie zmienna A$, to program wykona różne instrukcję. Jeśli użytkownik wprowadzi łańcuch Luc to program wyświetli jesteś Łukasz, a jeśli Mike to Jesteś Maciek. Natomiast jeśli wprowadzimy jakiś inny zwrot to program najnormalniej na świecie się zakończy (instrukcja END oznacza koniec programu, ale w sumie można ją pominąć). Powyższy program można zapisać w różnych formach np.:

10 INPUT "Podaj swoją ksywkę ";A$
20 IF A$="Mike" THEN GOTO 50
30 IF A$="Luc" THEN GOTO 60
40 END
50 PRINT "Jesteś Maciek":END
60 PRINT "Jesteś Łukasz":END

W tym przypadku program jest dłuższy, ale jego wynik jest dokładnie taki sam jak tego powyżej. No i jeszcze kilka uwag:

  • dwukropek informuje komputer, że w jednej linii chcemy umieścić więcej instrukcji

  • instrukcje GOTO w ostanim programie możemy opuścić, co pozwala znowu na skrócenie programu (numer linii podajemy od razu po instrukcji THEN)

Oczywiście możliwości instrukcji IF....THEN są olbrzymie. Możemy porównywać liczby, długości wyrazów. Oto już przed ostatni przykład w tym odcinku:

10 INPUT "Wpisz jakąś liczbę ";A
20 IF A<5 THEN PRINT "Liczba ";A;" jest mniejsza od 5":END
30 IF A=5 THEN PRINT "Liczba ";A;" jest równa 5":END
40 IF A>5 THEN PRINT "Liczba ";A;" jest większa od 5":END
50 END

No i jeszcze operatory OR, AND i NOT.

10 INPUT "Wprowadź jakąś liczbę ";A
20 B=10:C=20
30 IF AB THEN PRINT A;" jest mniejsze od ";C;" ale większe od ";B
40 IF AB THEN PRINT "Liczba powyżej 10 albo poniżej 20"
50 IF A=NOT C THEN PRINT "Ta liczba to nie 20"

To już koniec, ale na samo zakończenie ostatnia już rada: musicie trochę poeksperymentować. Początki są trudne, ale z czasem wszystko stanie się jasne. Po prostu piszcie.... programy. Do następnego odcinka.

Mike
Część 5

 © 1999-2020 Wszystkie prawa zastrzeżone
 Webmaster: Mariusz "Flooder" Młynek