Łatwo można zauważyć, że poprzednie programy wykonują wielokrotnie te same czynności.
INSTRUKCJE ITERACYJNE służą do ograniczenia cykli programowych, tj. wielokrotnego wykonywania pewnych sekwencji instrukcji.W języku Turbo Pascal występują trzy instrukcje iteracyjne.
Instrukcję iteracyjną
"dla" FOR stosuje się w programie w przypadku, gdy liczba powtórzeń jest znana w danym miejscu programu. Instrukcja for może mieć jedną z dwóch postaci:gdy wartość początkowa się zwiększa
FOR wartość := wartość_pocz TOwartość_końcowa DO instrukcja
gdy wartość początkowa się zmniejsza
FOR
wartość := wartość_pocz DOWNTO wartość_końcowa DO instrukcja następny programProgram Pet_For;
uses Crt;
var mnoznik:byte;
mnozna:byte;
Begin
ClrScr;
For mnoznik:=1 to 10 do
begin
For mnozna:=1 to 10 do
WriteLn(mnozna,'*',mnoznik,'=',mnozna*mnoznik);
WriteLn;
readkey;
end;
End.
instrukcja While - "dopóki"Program Pentla_for_ASCII;
uses Crt;
var a:byte;
Klawisz:Char;
Begin
ClrScr;
For a:=1 to 10 do
begin
Klawisz:=readkey;
WriteLn(a,'-razem wcisnąłeś'',klawisz,''o kodzie ASCII=' ,ORD(klawisz));
end;
Readkey;
End.
następny program
Kolejną instrukcją iteracyjną jest instrukcja
"dopóki" WHILE . Instrukcja ta służy do sprawdzenia warunku iteracji na początku i ma postać:WHILE
wyrażenie DO instrukcjaWyrażenie jest najczęściej wyrażeniem porównania, powinno w wyniku dawać wartość logiczną TRUE lub FALSE, a instrukcja po słowie DO może być dowolną instrukcją prostą lub strukturalną. Instrukcja ta wykonywana jest tak długo dopóki wartością wyrażenia jest TRUE.
Program Pet_While;
uses Crt;
var mnoznik:byte;
const mnozna:byte=5;
Begin
ClrScr;
mnoznik:=1;
While mnoznik<=10 do
begin
WriteLn(mnozna,'*',mnoznik,'=',mnozna*mnoznik);
Inc(mnoznik);
end;
ReadLn;
readkey;
End.
instrukcja iteracyjna Repeat - powtarzajProgram Pet_While; uses Crt;
var mnoznik:byte;
const mnozna:byte=5;
Begin
ClrScr;
mnoznik:=1;
While mnoznik <=10 do
begin
mnozna:=1;
While mnozna<=10 do
begin
WriteLn(mnozna,'*',mnoznik,'=',mnozna*mnoznik);
Inc(mnozna);
WriteLn;
Inc(mnoznik);
ReadKey;
end;
ReadLn;
End.
instrukcje wyboru
REPEAT
instrukcja
instrukcja
UNTIL - warunek logiczny
Program Pet_Repeat
uses Crt;
var mnoznik:byte;
Begin
ClrScr;
mnoznik:=1;
Repeat
WriteLn(mnozna,'*',mnoznik,'=',mnozna*mnoznik);
mnoznik:=mnoznik+1;
Until mnoznik>10;
ReadLn;
readkey;
End.
następny programW Turbo Pascalu istnieją dwie instrukcje warunkowe:
Instrukcja IF "jeśli"
uzależnia wykonanie innych instrukcji od spełnienia określonego warunku. Ogólna postać tej instrukcji jest następująca:
lub
IF wyrażenia THEN instrukcja
Warunkiem wyrażenia jest wartość logiczna TRUE lub FALSE.
CASE
wyrażenie OFsekwencja instrukcji wyboru
END
lub
CASE wyrażenie OF
sekwencja instrukcji wyboru
ELSE w przeciwnym wypadku instrukcji
END
Program Test_mnozenia;
uses Crt, Dos;
var godz1, godz2,min1,min2,sek1,sek2,ssek1,ssek2:word;
var licz1,licz2,wynik,n,t,a1,a2,a3,a4,a5:integer;
var g1,g2,m1,m2,s1,s2,ss1,ss2,suma:integer;
Tabczas:Array[1..5] of byte;
var w1,w2,w:word;
Begin
ClrScr;
TextColor(14);
Suma:=0;
WriteLn(' JEST TO PROGRAM SPRAWDZAJĄCY');
WriteLn(' TWÓJ REFLEKS W TABLICZCE MNOŻENIA');
Randomize;
For n:=1 to 5 do
begin
licz1:=Random(10)+1;
licz2:=Random(10)+1;
Repeat
GetTime(godz1,min1,sek1,ssek1
TextColor(10);
WriteLn;
Write(licz1,'*',licz2,'=');
ReadLn(wynik);
IF licz1*licz2=wynik THEN
begin
TextColor(2);
WriteLn('BARDZO DOBRZE');
GetTime(godz2,min2,sek2,ssek2);
end
ELSE
begin
TextColor(124);
WriteLn('ŹLE! SPRÓBUJ JESZCZE RAZ');
end;
Until licz1*licz2=wynik;
g1:=godz1*3600*100; g2:=godz2*3600*100;
m1:=min1*60*100; m2:=min2*60*100;
s1:=sek1*100; s2:=sek2*100;
ss1:=ssek1*1; ss2:=ssek2*1;
w1:=g1+m1+s1+ss1; w2:=g2+m2+s2+ss2;
w:=w2-w1;
WriteLn('Czas namysłu wynosił ',w/100:6:2);
suma:=suma+w;
end;
TextColor(14);
WriteLn;
WriteLn('ŚREDNIA WYNOSI = ',suma/5/199:6:2);
ReadLn;
ReadKey;
End.