Serwis Edukacyjny w I-LO w Tarnowie Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej
Autor: Steven Vickers |
©2024 mgr Jerzy Wałaszek |
Rozkazy: FOR, NEXT, TO, STEP
SPIS TREŚCI |
ROZDZIAŁ 1 Przygotowanie ZX81
ROZDZIAŁ 2 Wydawanie komputerowi poleceń ROZDZIAŁ 3 Lekcja historii ROZDZIAŁ 4 Sinclair ZX81 jako kalkulator kieszonkowy ROZDZIAŁ 5 Funkcje ROZDZIAŁ 6 Zmienne ROZDZIAŁ 7 Łańcuchy tekstowe ROZDZIAŁ 8 Programowanie komputera ROZDZIAŁ 9 Dalsze programowanie komputera ROZDZIAŁ 10 Jeśli ... ROZDZIAŁ 11 Zestaw znaków ROZDZIAŁ 12 Pętle ROZDZIAŁ 13 Wolno i Szybko ROZDZIAŁ 14 Podprogramy ROZDZIAŁ 15 Uruchamianie programów ROZDZIAŁ 16 Pamięć taśmowa ROZDZIAŁ 17 Wyświetlanie z bajerami ROZDZIAŁ 18 Grafika ROZDZIAŁ 19 Czas i ruch ROZDZIAŁ 20 Drukarka dla ZX81 ROZDZIAŁ 21 Podłańcuchy ROZDZIAŁ 22 Tablice ROZDZIAŁ 23 Gdy zaczyna brakować pamięci ROZDZIAŁ 24 Liczenie na palcach ROZDZIAŁ 25 Jak pracuje komputer ROZDZIAŁ 26 Stosowanie kodu maszynowego ROZDZIAŁ 27 Organizacja pamięci ROZDZIAŁ 28 Zmienne systemowe DODATKI A Zestaw znaków B Numery komunikatów C ZX81 dla znających język BASIC |
Załóżmy, iż chcesz wprowadzić pięć liczb i dodać je razem. Jednym ze sposobów (nie wpisuj tego, o ile nie czujesz obowiązku) jest wpisanie:
10 LET SUMA=0
20 INPUT A
30 LET
SUMA=SUMA+A
40
INPUT A
50 LET SUMA=SUMA+A
60 INPUT A
70
LET SUMA=SUMA+A
80 INPUT A
90 LET
SUMA=SUMA+A
100
INPUT A
110 LET SUMA=SUMA+A
120 PRINT SUMA
Ten sposób jest złą praktyką programowania. Dla pięciu liczb jeszcze jest to do przyjęcia, lecz łatwo wyobrazić sobie, iż dla dziesięciu stałby się on uciążliwy, a dla 100 prawie niemożliwy. Lepszym rozwiązaniem jest zorganizowanie sobie zmiennej zliczającej do pięciu, a następnie zatrzymanie programu, jak poniżej (co już powinieneś wpisać):
10 LET SUMA=0
20 LET LICZNIK=1
30 INPUT A
40
REM LICZNIK = ILOSC WCZYTAN ZMIENNEJ A
50
LET SUMA=SUMA+A
60 LET LICZNIK=LICZNIK+1
70 IF
LICZNIK<=5
THEN GOTO 30
80 PRINT SUMA
Zwróć uwagę jak łatwo można zmienić wiersz 70, aby program dodał dziesięć liczb czy nawet sto.
Taki rodzaj zliczania jest tak użyteczny, iż są dwa specjalne polecenia, aby go ułatwić: polecenie FOR i polecenie NEXT. Zawsze używa się ich razem. Wykorzystując je, właśnie wprowadzony przez ciebie program robi dokładnie to samo co:
10 LET SUMA=0
20 FOR L=1 TO 5
30 INPUT A
40
REM L = ILOSC WCZYTAN ZMIENNEJ A
50 LET SUMA=SUMA+A
60
NEXT L
80
PRINT SUMA
(aby otrzymać ten program z poprzedniego, musisz tylko wyedytować wiersze 20, 40, 60 i 70. TO otrzymasz z 4 z SHIFT).
Zwróć uwagę, iż zmieniliśmy nazwę zmiennej LICZNIK na L. Zmienna licznikowa - lub sterująca - pętli FOR-NEXT musi posiadać jednoliterową nazwę.
Wynikiem tego programu jest to, iż L przebiega kolejno przez wartości 1 (wartość startowa), 2, 3, 4 i 5 (wartość końcowa), a dla każdej z nich są wykonywane wiersze 30, 40 i 50. Następnie, gdy L osiągnęło wszystkie swoje pięć wartości, wykonany zostaje wiersz 80.
Dodatkowo zmienna sterująca wcale nie musi zmieniać swojej wartości za każdym razem co 1: możesz to zmienić na cokolwiek innego używając dodatku STEP do polecenia FOR. Najbardziej ogólną postacią polecenia FOR jest:
FOR zmienna sterująca = wartość początkowa TO wartość końcowa STEP krok
gdzie zmienna kontrolna posiada jednoliterową nazwę, a wartość początkowa, końcowa oraz krok są wyrażeniami liczbowymi. Zatem, jeśli w wierszu 20 programu wprowadzisz
20 FOR L=1 TO 5 STEP 3/2
to L przebiegnie przez wartości 1, 2.5 & 4. Zauważ, iż wcale nie musisz ograniczać się do liczb całkowitych oraz zmienna sterująca nie musi dokładnie osiągać wartości końcowej - pętla powtarza się dopóki jej zmienna sterująca jest mniejsza lub równa wartości końcowej (ale zajrzyj do ćwiczenia 4).
Musisz być ostrożny, gdy uruchamiasz razem dwie pętle FOR-NEXT - jedną wewnątrz drugiej. Wypróbuj ten program, który wyświetla kompletny zestaw kostek domina.
10 FOR M=0 TO 6
20 FOR N=0 TO M 30 PRINT M;":";N;" "; 40 NEXT N 50 PRINT 60 NEXT M |
pętla - N | pętla - N |
pętla-M | | | | pętla-M |
Widać wyraźnie, iż pętla N jest w całości wewnątrz pętli M - są one poprawnie zagnieżdżone. Musimy natomiast unikać pętli FOR-NEXT, które zachodzą na siebie tak, iż jedna nie jest całkowicie wewnątrz drugiej, jak w tym przykładzie:
ŹLE | 10 FOR M=0 TO 6 20 FOR N=0 TO M 30 PRINT M;":";N;" "; 40 NEXT M 50 PRINT 60 NEXT N |
pętla - M | | pętla - M |
pętla - N | | | pętla - N |
Pętle FOR-NEXT muszą albo być w całości jedna w drugiej, albo zupełnie osobno.
Następną rzeczą do unikania jest wskakiwanie do wnętrza pętli FOR-NEXT z poza niej. Zmienna sterująca zostaje poprawnie zainicjowana tylko po wykonaniu jej polecenia FOR, a jeśli opuścisz je, to po napotkaniu polecenia NEXT komputer będzie zdezorientowany. Jeśli masz szczęście, otrzymasz wtedy komunikat 1 lub 2 (oznaczający, iż polecenie NEXT nie zawiera rozpoznawalnej zmiennej sterującej).
Polecenia: FOR, NEXT, TO, STEP
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2024 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone
pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.