PAS03, Og˙lna struktura programu w jezyku PASCAL


Instrukcje sterujące w Pascalu

Instrukcje warunkowe:

2. Instrukcja wyboru:

3. Instrukcje iteracyjne:

pętla FOR TO

UWAGA:

Zmienna sterująca pętli for MUSI być typu porządkowego !

Przykład:

{ wydrukowanie całego alfabetu }

Uses Crt;

Var

L : Char;

begin

for L := 'A' to 'Z' do

begin

write( L:2 );

end;

readkey;

end.pętla FOR DOWNTO

UWAGA:

Zmienna sterująca pętli for MUSI być typu porządkowego !

Przykład:

{ odliczanie przed startem }

Uses Crt;

Var

I : Byte;

begin

for I := 3 downto 0 do

begin

write( I:2 );

delay( 1000 );

end;

writeln( ' START ' );

readkey;

end.

pętla WHILE

„Dopóki warunek jest spełniony wykonuj instrukcje

UWAGA:

W pętli while warunek jest sprawdzany PRZED wykonaniem instrukcji.

W pętli while instrukcje mogą się nie wykonać ani razu.

Przykład:

{ sumowanie liczb generowanych losowo }

Uses Crt;

Var

Suma, Liczba, N : Word;

begin

Randomize; { zainicjowanie generatora liczb losowych }

Suma := 0;

N := 0;

while Suma < 1000 do

begin

Liczba := Random( 10 ); { losowanie liczby od 0 do 9 }

write( Liczba:4 );

Suma := Suma + Liczba;

Inc( N ); { zwiększenie zmiennej N o 1 }

end;

writeln( ' Wylosowano ', N, ' liczb. ' );

readkey;

end.

pętla REPEAT UNTIL

„Powtarzaj instrukcje aż zostanie spełniony warunek

UWAGA:

W pętli repeat until warunek jest sprawdzany PO wykonaniu instrukcji.

W pętli repeat until instrukcje MUSZĄ się wykonać co najmniej raz..

Przykład:

{ czekanie na naciśnięcie klawisza 'K' }

Uses Crt;

Var

Zn : Char;

begin

repeat

Zn := Upcase( ReadKey ); {czytanie znaku i zamiana na duże litery}

writeln( Zn:2 );

until Zn = 'K' ;

writeln( ' Koniec ' );

readkey;

end.

procedura CONTINUE

UWAGA:

Procedura continue MUSI być użyta wewnątrz pętli for, while lub repeat.

Przykład:

Uses Crt; { sumowanie liczb generowanych losowo }

Var

Suma, Liczba, N : Word;

begin

Randomize; { zainicjowanie generatora liczb losowych }

Suma := 0;

N := 0;

while Suma < 1000 do

begin

Liczba := Random( 10 ); { losowanie liczby od 0 do 9 }

if Liczba mod 2 = 0 then continue; {pomijaj parzyste liczby }

write( Liczba:4 );

Suma := Suma + Liczba;

Inc( N ); { zwiększenie zmiennej N o 1 }

end;

writeln( ' Wylosowano ', N, ' liczb. ' );

readkey;

end.

procedura BREAK

UWAGA:

Procedura break MUSI być użyta wewnątrz pętli for, while lub repeat.

Przykład:

Uses Crt; { sumowanie liczb generowanych losowo }

Var

Suma, Liczba, N : Word;

begin

Randomize; { zainicjowanie generatora liczb losowych }

Suma := 0;

N := 0;

while Suma < 1000 do

begin

Liczba := Random( 10 ); { losowanie liczby od 0 do 9 }

if Liczba = 0 then break; { kończymy sumowanie po }

{ wylosowaniu zera }

write( Liczba:4 );

Suma := Suma + Liczba;

Inc( N ); { zwiększenie zmiennej N o 1 }

end;

writeln( ' Wylosowano ', N, ' liczb. ' );

readkey;

end.

Przykład 1 { drukowanie na ekranie poziomej kreski o zadanej długości }

Uses Crt;

var

i,dlugosc:integer;

begin

write('Podaj zadana dlugosc kreski: ');

readln(dlugosc);

clrscr; { za pomocą pętli REPEAT }

writeln(' Za pomoca petli REAPAT');

i:=1;

repeat

write('-');

i:=i+1;

until i>dlugosc;

readkey;

clrscr; { za pomocą pętli WHILE }

writeln(' Za pomoca petli WHILE');

i:=1;

while i<=dlugosc do

begin

write('-');

i:=i+1;

end;

readkey;

clrscr; { za pomocą pętli FOR }

writeln(' Za pomoca petli FOR');

for i:=1 to dlugosc do

write('-');

readkey;

end.

Przykład 2 { odgadywanie wartości wylosowanej liczby z przedziału 1-6 }

var

liczba_losowa,liczba_wczytana:integer;

begin

randomize;

liczba_losowa:=1+random(6); { losowanie liczby }

repeat { za pomocą pętli REPEAT }

write('Odgadnij wylosowana liczbe: ');

readln(liczba_wczytana);

until liczba_wczytana=liczba_losowa;

writeln('Wylosowana liczba to: ',liczba_losowa);

writeln;

{ za pomocą pętli WHILE }

liczba_wczytana:=0;

while liczba_wczytana<>liczba_losowa do

begin

write('Odgadnij wylosowana liczbe: ');

readln(liczba_wczytana);

end;

write('Wylosowana liczba to: ',liczba_losowa);

end.

Przykład 3 { policzenie sumy N podanych liczb }

var

i,N:integer;

liczba,suma:real;

begin

write('Podaj ile liczb chcesz zsumowac:');

readln(N);

suma:=0; { za pomocą pętli FOR }

for i:=1 to N do

begin

write('Podaj ',i,' liczbe: ');

readln(liczba);

suma:=suma+liczba;

end;

writeln('Suma podanych liczb wynosi: ', suma );

end.

Przykład 4 { sumowanie podawanych liczb aż ich wartość przekroczy granicę }

var

liczba,suma,granica:real;

begin

write('Podaj wartosc graniczna sumowania:');

readln(granica);

suma:=0; { za pomocą pętli REPEAT }

repeat

write('Podaj liczbe: ');

readln(liczba);

suma:=suma+liczba;

until suma>granica;

writeln('Suma podanych liczb przekroczyla ',granica,

' i wynosi: ', suma );

end.

Przykład 5 { sumowanie liczb naturalnych aż ich wartość przekroczy granicę }

var

i:integer;

liczba,suma,granica:real;

begin

write('Podaj wartosc graniczna sumowania:');

readln(granica);

suma:=0; { za pomocą pętli WHILE }

i:=0;

while suma<=granica do

begin

suma:=suma+i;

i:=i+1;

end;

writeln('Suma podanych liczb wynosi: ', suma );

end.

Przykład 6 { oczekiwanie na naciśnięcie jednego z zadanych klawiszy }

Uses Crt;

var

znak:char;

begin

write('podaj znak N lub T: ');

repeat { za pomocą pętli REPEAT }

znak:=readkey;

znak:=UpCase(znak);

if (znak='T')or(znak='N') then

break

else

write(#7);

until FALSE;

writeln(` Dziekuje !');

write('podaj znak N lub T: ');

while TRUE do { za pomocą pętli WHILE }

begin

znak:=UpCase(readkey);

if (znak='T')or(znak='N') then

break

else

write(#7);

end;

writeln(` Dziekuje !');

end.

Przykład 7 { wyznaczenie wartości maksimum z podanych 10 liczb }

Uses Crt;

var

i:integer;

liczba,maximum:real;

begin

maximum:=-1.7e38; {najmniejsza wartość liczby real}

for i:=1 to 10 do

begin

write('Podaj ',i,' liczbe: ');

readln(liczba);

if liczba>maximum then

maximum:=liczba;

end;

write('Najwieksza wartosc wynosi: ',maximum);

readkey;

end.

Przykład 8 { wyznaczenie wartości i pozycji minimum z podanych liczb }

var

i,pozycja,N:integer;

liczba,minimum:real;

begin

write('Podaj ile liczb chcesz sprawdzic:');

readln(N);

minimum:=+1.7e38; {najwieksza wartość liczby real}

pozycja:=-1;

i:=1;

while i<=N do

begin

write('Podaj ',i,' liczbe: ');

readln(liczba);

if liczba<minimum then

begin

minimum:=liczba;

pozycja:=i;

end;

i:=i+1;

end;

writeln('Najmniejsza byla ',pozycja,

' liczba o wartosci: ',minimum);

end.

Przykład 9 { przykład realizacji wyboru opcji MENU programu }

Uses Crt;

var

wybor:char;

begin

repeat

clrscr;

writeln(' MENU PROGRAMU');

writeln(' 1 - Wczytanie danych z klawiatury');

writeln(' 2 - Obliczenia');

writeln(' 3 - Zapis wynikow do pliku');

writeln(' 4 - Wyswietlenie danych na ekranie');

writeln(' ESC - Koniec programu');

wybor:=readkey;

case wybor of

'1': { Procedura_wczytywania_z_klawiatury };

'2': { Procedura_obliczen };

'3': { Procedura_zapisu_do_pliku };

'4': { Procedura_wyswietlania_na_ekranie };

end;

until wybor=#27; { #27 -> klawisz ESC }

end.

Przykład 10 { rysowanie na ekranie ramki o zadanych współrzędnych }

Uses Crt;

var

x0,y0,x1,y1:byte;

i:byte;

begin

writeln(`Podaj polozenie lewego gornego naroznika');

write(` X='); readln(x0);

write(` Y='); readln(y0);

writeln(`Podaj polozenie prawego dolnego naroznika');

write(` X='); readln(x1);

write(` Y='); readln(y1);

clrscr;

gotoxy( x0,y0 ); {rysowanie gornej krawedzi}

for i:=x0 to x1 do

write('-');

gotoxy( x0,y1 ); {rysowanie dolnej krawedzi}

for i:=x0 to x1 do

write('-');

for i:=y0 to y1 do {rysowanie lewej krawedzi}

begin

gotoxy( x0,i );

write('|');

end;

for i:=y0 to y1 do {rysowanie prawej krawedzi}

begin

gotoxy( x1,i );

write('|');

end;

readkey;

end.

− 1 −



Wyszukiwarka

Podobne podstrony:
16-20, Ogólna struktura programu w języku Pascal, Ogólna struktura programu w języku Pascal
Podstawy Programowania W Języku Pascal
Informatyka II Programowanie w języku pascal
Programowanie obiektowe programowanie obiektowe w języku Pascal
Budowa programu tworzonego w języku Pascal
Turbo Pascal kurs, Technik Informatyk, Programowanie strukturalne i obiektowe Turbo Pascal
Programowanie w jezyku C dla chetnych A Poznanski
Programowanie w jezyku C FAQ prcfaq
Napisać program w języku c który zawiera
cywil ogolna 1 wyklad do wywalenie 2 wyklad od str 5, prawo cywilne - cz੠ogˇlna (5) - 18.12.2010
Programowanie w języku asemblera
ogˇlne zasady postŕpowania
Informatyka, Podstawy Programowania w jezyku C++, Podstawy Programowania w jezyku C++'
cywil ogolna 1 wyklad do wywalenie 2 wyklad od str 5, prawo cywilne - cz੠ogˇlna (3) - 6.11.2010
cywil ogolna 1 wyklad do wywalenie 2 wyklad od str 5, prawo cywilne - cz੠ogˇlna (2) - 16.10.2010

więcej podobnych podstron