Циклдық
есептер
Циклдық
операторлары (Қайталау операторлары)
Turbo Pascal тілінде
қайталау процесін жүзеге асыратын циклдік
операторлардың үш түрі бар: арифметикалық цикл –FOR, шартты
алдын ала тексеретін цикл –While және шартты соңынан
тексеретін цикл –Repeat.
1.
For do
2.
While do
3.
Repeat Until
Егер шарт алдын ала циклдегі
операторды (немесе құрама операторды) неше рет қайталау керек екендігі
белгісіз болып, оның тек қайталану (аяқталу) шарты берілсе,
онда While, Repeat операторлары
пайдаланылады. Ал FOR операторы қайталану саны
алдын ала белгілі болған кезде қолданылады.
REPEAT
(қайталау) операторы
Шарт цикл соңында
тексерiлетiндiктен REPEAT (қайталау) операторы ең болмағанда бiр рет
орындалады. Циклдiң орындалу шарты ақиқат болғанда оның жұмысы тоқтатылады.
Жазылу түрi:
REPEAT <оператор> UNTIL
<шарт>
{бiр оператор қайталанады}
мұндағы UNTIL-қызметшi сөз,
“дейiн” болып аударылады. Ал бiрнеше оператор
қайталанатын жағдайдағы
жазылуы:
REPEAT <1-оператор>;
<2-оператор>;
…
;
UNTIL <шарт>;
Бұл жерде құрмалас оператор
REPEAT және UNTIL сөздерiнiң арасында
орналасып, басқа қызметшi
сөздер жазылмайтыны көрiнiп тұр. Бұл операторды да
WHILE операторын пайдаланған
есептерде қолдануға болады.
100 ге дейін сандардың қосындысын есептейтін программа
Program yigindi;
Var S,I:integer;
Begin
S:=0;
For i:=1 to 100 do
S:=S+I;
Writeln(s);
End.
ЕҮОБ ты табатын программа құрыңыз
Бұл үшін біз While do операторын
пайдаланамыз
Program euob;
Var
a,b:integer;
Begin
readln(a,b);
While a<>b do
If a>b then a:=a-b else b:=b-a;
Writeln(a);
End.
Циклдің ілесу шарты. REPEAT (қайталау) операторы
program qaytalau;
var i:integer; e,y:real;
begin
readln(e);
i:=0;
y:=0;
Repeat
i:=i+1;
y:=y+1/i;
Until 1/i<e; Writeln(y);
end.
Фибоначчи қатарындағы
сандарды шығаратын программа құрыңыз.
Program Fibonachi;
var
a,b,c,i,n: integer;
begin
write(‘n = ‘);
readln(n);
a := 0;
write(a,’ ‘);
b := 1;
write(b,’ ‘);
for i:=3 to n do begin
write(a+b,’ ‘);
c := b;
b := a + b;
a := c
end;
end.
Ондық санау тізімінен сегіздік санау тізіміне өткізу программасы
program on_sakkizga;
var
r,i,j,n:integer;
k,s:string;
begin
readln(n);
while n>0 do begin
r:=n mod 8;
str(r,k);
s:=k+s;
n:=n div 8;
end;
writeln(s);
end.
ЕҮОБ
ты табу программасы
program euob;
var
a,b:integer;
begin
writeln(‘a және b сандарды енгіз’);
readln(a,b);
while a<>b do
if a>b then a:=a-b
else b:=b-a;
writeln(a);
end.
Факториалды
есептеу программасы.
program faktorial;
var n:integer; s:longint;
begin
readln(n);
s:=1;
for i:=1 to n do
s:=s*i;
writeln(‘Faktorial = ‘, s);
end.
Два+два =число ребусін шешетін программа құрыңыз.
program dva_dva;
uses crt;
var
d,v,a,c,i,s,l,o:integer;
dva,cislo:real;
begin
clrscr;
for d:=1 to 9 do
for v:=0 to 9 do
if d<>v then
for a:=0 to 9 do
if (a<>d) and (a<>v) then
for c:=1 to 9 do
if (c<>d) and (c<>v) and (c<>a) then
for i:=0 to 9 do
if (i<>d) and (i<>v) and (i<>a) and (i<>c) then
for s:=0 to 9 do
if (s<>d) and (s<>v) and (s<>a) and (s<>c) and
(s<>i) then
for l:=0 to 9 do
if (l<>d) and (l<>v) and (l<>a) and (l<>c) and
(l<>i) and (l<>s) then
for o:=0 to 9 do begin
if (o<>d) and (o<>v) and (o<>a) and (o<>c) and
(o<>i) and (o<>s) and (o<>s) and (o<>l) then begin
dva:=d*100+v*10+a;
cislo:=c*10000+i*1000+s*100+l*10+o;
if (dva*dva)=cislo then writeln(d,v,a,’-‘,c,i,s,l,o);
end;
end.
–
деңгейдің тапсырмасы: Алғашқы 10 натурал санның
көбейтіндісін табыңдар.
Есептің
шешімі:
Program esep1;
Var
i,P:integer;
Begin
P:=1;
For i:=1 to
10 do
P:=P*i;
Writeln(P);
End.
2 – деңгейдің тапсырмасы: Барлық 3 таңбалы сандар ішінен 4 – ке бөлінетін сандардың нешеу екенін анықтаңдар.
Есептің шешімі:
Program
esep2;
Var
i,k:integer;
Begin
For i:=100
to 999 do
Begin if i
mod 4 =0 then k:=k+1;
End;
Writeln(k);
End.
3 – деңгейдің тапсырмасы. Ақпараттық өлшемі 100 байттан 200 байтқа дейін 1 қадаммен өзгерген мәндері үшін килобайт, мегабайтпен өрнекте.
1
байт = 1024 байт
Есептің
шешімі:
Program
esep3;
Var
i:integer;
K,m:real;
Begin
I:=100;
While
I<=200 do
Begin
K:=I/1024;
M:=I/(1024*1024);
End;
Writeln(K,m);
End.
4. Кейін
Reрeat және whileоператорларына берілген есептің бөліктерін интерактвті
тақтадан көрсету. Компьютерсіз ауызша есептегенде нәтижесі нешеге тең болатынын
тез айтулары керек. Жауапты интерактивті тақтаның мүмкіндігін пайдалана отырып
жасырып қоя тұрады. (15 мин)
1
– есеп:
S:=1;
X:=1;
While
X<5 do
Begin
S:=S*x;
X:=x+1;
End;
Writeln(s);
Нәтижесі: s=24
2 – есеп:
p:=0;
X:=1;
While
X<5 do
Begin
P:=p+x;
X:=x+1;
End;
Writeln(p);
Нәтижесі:p=10
3 – есеп:
p:=1;
X:=1;
While
X<8 do
Begin
P:=p+x;
X:=x+2;
End;
Writeln(p);
Нәтижесі: p=13
4 – есеп:
S:=1;
X:=2;
repeat
S:=S*x;
X:=x+2;
Until
x>6;
Writeln(s);
Нәтижесі: s=13
5 – есеп:
p:=1;
X:=2;
repeat
p:=p*x;
X:=x+2;
Until x>6;
Writeln(p);
Нәтижесі: p=48
6 – есеп:
p:=0;
X:=10;
While
X<6 do
Begin
P:=p+x;
X:=X-2;
End;
Writeln(p);
Нәтижесі: p=
0
7 –
есеп:
p:=0;
For x:=6 to
10 do
p:=p+x;
Writeln(p);
Нәтижесі: p=
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.