|
Serwis Edukacyjny w I-LO w Tarnowie
Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej
Autor: Steven Vickers |
©2026 mgr Jerzy Wałaszek
|
Rozkazy: FOR, NEXT, TO, STEP
| SPIS TREŚCI |
|
ROZDZIAŁ 1 Przygotowanie
ROZDZIAŁ 2 Wydawanie poleceń ROZDZIAŁ 3 Lekcja historii ROZDZIAŁ 4 Kalkulator ROZDZIAŁ 5 Funkcje ROZDZIAŁ 6 Zmienne ROZDZIAŁ 7 Teksty ROZDZIAŁ 8 Programowanie I ROZDZIAŁ 9 Programowanie II ROZDZIAŁ 10 Jeśli ... ROZDZIAŁ 11 Znaki ROZDZIAŁ 12 Pętle ROZDZIAŁ 13 Wolno i Szybko ROZDZIAŁ 14 Podprogramy ROZDZIAŁ 15 Programy ROZDZIAŁ 16 Pamięć taśmowa ROZDZIAŁ 17 Wyświetlanie ROZDZIAŁ 18 Grafika ROZDZIAŁ 19 Czas i ruch ROZDZIAŁ 20 Drukarka ROZDZIAŁ 21 Podłańcuchy ROZDZIAŁ 22 Tablice ROZDZIAŁ 23 Pamięć ROZDZIAŁ 24 Liczenie ROZDZIAŁ 25 Praca komputera ROZDZIAŁ 26 Kod maszynowy ROZDZIAŁ 27 Organizacja pamięci ROZDZIAŁ 28 Zmienne systemowe A Zestaw znaków B Numery komunikatów C ZX81 dla znających 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:
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
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
| 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
| Ź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
Następną rzeczą do unikania jest wskakiwanie do wnętrza pętli
Polecenia: FOR, NEXT, TO, STEP
Przepisz program z rozdziału 11, który wyświetla zestaw znaków, lecz teraz zastosuj w nim pętlę
Zmienna sterująca nie posiada tylko nazwy i wartości, jak normalna zmienna, lecz również wartość końcową, krok oraz numer wiersza, do którego powraca pętla po każdym obiegu (wiersz za poleceniem FOR, gdzie została ustawiona). Po pierwsze przekonaj się, iż gdy polecenie FOR jest wykonywane, cała ta informacja jest dostępna(używając wartości początkowej jako pierwszej wartości przyjmowanej w pętli), a po drugie, że (używając jako przykłady nasz drugi i trzeci program) informacja ta jest wystarczająca, aby zamienić jeden wiersz:
na dwa wiersze:
|
LET C=C+1 IF C<=5 THEN GOTO 30 |
(Właściwie troszkę tu oszukaliśmy: w rzeczywistości powinno być GOTO 21 zamiast GOTO 30. W naszym programie będzie to miało ten sam efekt.)
Uruchom ten program, a następnie wpisz
Dlaczego w odpowiedzi dostajemy 6 a nie 5?
[Odpowiedź: polecenie NEXT w wierszu 60 jest wykonywane 5 razy i za każdym razem do C jest dodawane 1.]
Co się stanie, jeśli w wierszu 20 wstawisz
Zmień trzeci program, tak aby zamiast automatycznego dodawania pięciu liczb prosił on o podanie ilości liczb do dodania. Gdy
uruchomisz ten program, to co się stanie przy wprowadzeniu 0 oznaczającego, iż nie chcesz dodawać żadnych liczb? Dlaczego mógłbyś podejrzewać, iż sprawi
to komputerowi problem; chociaż jest oczywiste, czego chcesz? (komputer musi poszukać polecenia
Wypróbuj ten program wyświetlający liczby od 1 do 10 w odwrotnej kolejności:
|
10 FOR N=10 TO 1 STEP -1 20 PRINT N 30 NEXT N |
Zmień go w program nie wykorzystujący pętli
![]() |
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2026 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.