Turbo pascal – instrukcje warunkowe, iteracyjne,…

Download Report

Transcript Turbo pascal – instrukcje warunkowe, iteracyjne,…

Opracowała: Elżbieta Fedko

W zależności od warunku umieszczonego w „rombie”, wykonuje wyznaczoną instrukcje.

If warunek then instrukcja_1 else instrukcja_2

USES CRT; VAR liczba:longint; BEGIN clrscr; writeln('Wprowadź jakąś liczbę‘, liczba); read(liczba); IF liczba=1000 THEN writeln('Brawo! Podałeś liczbę tysiąc!') ELSE halt; readln; END.

Instrukcja wielokrotnego wyboru:

 USES CRT; VAR liczba:byte; BEGIN clrscr; writeln(' Wprowadź liczbę od 1 do 20'); read(liczba); CASE liczba OF 1 : writeln('Liczba ta dzieli się przez 1'); 2 : writeln('Liczba ta dzieli się przez 2 i 1'); 3 : writeln('Liczba ta dzieli się przez 1 i 3'); 4 : writeln('Liczba ta dzieli się przez 1,2 i 4'); 5 : writeln('Liczba ta dzieli się przez 1 i 5'); 6 : writeln('Liczba ta dzieli się przez 1,2,3 i 6'); 7 : writeln('Liczba ta dzieli się przez 1 i 7'); 8 : writeln('Liczba ta dzieli się przez 1,2,4 i 8'); 9 : writeln('Liczba ta dzieli się przez 1,3 i 9'); 10 : writeln('Liczba ta dzieli się przez 1,2,5 i 10'); 11 : writeln('Liczba ta dzieli się przez 1 i 11'); 12 : writeln('Liczba ta dzieli się przez 1,2,4,6 i 12'); 13 : writeln('Liczba ta dzieli się przez 1 i 13'); 14 : writeln('Liczba ta dzieli się przez 1,2,7 i 14'); 15 : writeln('Liczba ta dzieli się przez 1,3,5 i 15'); 16 : writeln('Liczba ta dzieli się przez 1,2,4,8 i 16'); 17 : writeln('Liczba ta dzieli się przez 1 i 17'); 18 : writeln('Liczba ta dzieli się przez 1,2,6,9 i 18'); 19 : writeln('Liczba ta dzieli się przez 1 i 19'); 20 : writeln('Liczba ta dzieli się przez 1,2,4,5,10 i 20'); end; readln; END.

Instrukcje wykonywane w pętli.

-

Wyróżniamy 3 typy pętli: iteracyjną; z przyzwoleniem; na dokładność.

Wielokrotne przetwarzanie jednej operacji, lub grupy operacji oznaczonych symbolicznie jako instrukcja.

Pętla pozwala na wykonanie pętli tyle razy ile wymaga twórca algorytmu określając wartość początkową i końcową licznika oraz krok jego zwiększania.

Pętle zapisujemy jako For zmienna:=wartość to wartość końcowa do instrukcja lub for…downto…do

Pętla "WHILE..DO", najpierw sprawdza warunek, a potem dopiero, (jeżeli jest on spełniony) się wykonuje. Dlatego właśnie w tej pętli zaistnieć może sytuacja, że pętla w ogóle się nie włączy, gdy warunek nie będzie spełniony. Poza tym, program działa tak: dopóki warunek jest spełniony, wykonuj. Po słowie "WHILE" zawsze jest warunek. Potem następuje słowo "DO" i wpisujemy polecenia pętli. Po słowie "DO", musimy zastosować "BEGIN". Zatem wszystkie polecenia pętli muszą być ujęte w oddzielny blok.

Wszystko, co będzie między znacznikami "REPEAT" i "UNTIL" będzie się w kółko powtarzało, aż warunek będzie spełniony. Np.: USES CRT; VAR licznik:longint; BEGIN clrscr; licznik:=0; REPEAT licznik:=licznik+1; writeln('Witam cię po raz ',licznik); UNTIL licznik=100 readln; END.

1.

2.

3.

Napisz algorytm w postaci schematu blokowego, obliczając średnią arytmetyczną n-liczb calkowitych.

Napisz algorytm w postaci schematu blokowego, wprowadzając 10 liczb całkowitych i obliczający sumę liczb większych od 6.

Napisz algorytm w postaci schematu blokowego, znajdujący NWD dwóch liczb naturalnych. (algorytm Euklidesa).