Цикл – белгілі бір әрекеттер тізбегінің бірнеше рет қайталанып орындалуы.
қадамдар саны белгілі цикл
қадамдар саны белгісіз цикл (шартты цикл)
Есеп. 1-ден 8-ге дейінгі бүтін сандардың квадраттары мен кубтарын есептеп шығару (a-дан b-ға дейін).
Ерекшелігі: бірдей амалдар 8 рет орындалады.
Белгілі әдістермен шешуге бола ма?
?
Алгоритм
басы
i,i2, i3
соңы
жоқ
иә
i<= 8?
i :=1;
i :=i+1;
i2 :=i*i;
i3 :=i2*i;
цикл айнымалысының бастапқы мәнін көрсету
барлығы да атқарылды ма? соны тексеру
квадрат пен куб-ты есептейміз
нәтижесін шығару
келесі i-ге өту
Алгоритм ("цикл" блогімен)
басы
i,i2, i3
соңы
i2 :=i*i;
i3 :=i2*i;
i := 1,8
«цикл»блогі
цикл денесі
Программа
program qq;
var i, i2, i3: integer;
begin
for i:=1 to 8 do begin
i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);
end;
end.
цикл айнымалысы
бастапқы мән
ең соңғы мән
Айнымалысы кеміп отыратын цикл
Есеп. 8-ден 1-ге дейінгі бүтін сандардың квадраттары мен кубтарын есептеп шығару (кері қарай есептеу).
Ерекшелігі: цикл айнымалысы кеміп отыруы керек.
Шығарылуы:
for i:=8 1 do begin
i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);
end;
downto
Айнымалысы бар цикл
for<айнымалы>:= <алғашқы мән>to
<ең соңғы мән> dobegin
{цикл денесі}
end;
Айнымалының 1-ге артуы:
for<айнымалы>:=<алғашқы мән>downto
<ең соңғы мән> dobegin
{цикл денесі}
end;
Айнымалының 1-ге кемуі:
Айнымалысы бар цикл
Ерекшеліктері:
цикл айнымалысының мәні бүтін болуы керек (integer)
цикл айнымалысының өзгеру қадамы қашанда 1-ге (to) немесе -1-ге (downto) тең
егер цикл денесінде бір ғана оператор болса, begin мен end сөздерін жазбай кетуге болады:
егер соңғы мән алғашқы мәннен кіші болса, (to) циклы бірде бір рет орындалмайды (шартты циклдың басында тексеру, шартты алдын ала тексеретін цикл)
for i:=1 to 8 do
writeln('Привет');
Айнымалысы бар цикл
Ерекшеліктері:
Цикл денесінде цикл айнымалысын өзгертуге рұқсат етілмейді (неліктен?)
Алғашқы және соңғы мәндер өзгертілгенімен цикл ішіндегі қадамдар саны өзгермейді:
n := 8;
for i:=1 to n do begin
writeln('Салем');
n := n + 1;
end;
мүдіріп қалу жоқ
Цикл неше рет орындалған?
a := 1;
for i:=1 to 3 do a := a+1;
a= 4
a := 1;
for i:=3 to 1 do a := a+1;
a= 1
a := 1;
for i:=1 downto 3 do a := a+1;
a= 1
a := 1;
for i:=3 downto 1 do a := a+1;
a= 4
for i:=1 to 9 do begin
if ??? then begin
i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);
end;
end;
Қадамдарды қалай өзгертуге болады?
Есеп. Экранға 1-ден 9-ға дейінгі тақ сандардың квадраттары мен кубтарын есептеп шығару.
Ерекшелігі: цикл айнымалысы 2-ге артып отыру керек.
Мәселе: Паскальде қадамдар саны 1 немесе -1 болуы мүмкін.
Шығарылуы:
i mod 2 = 1
i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);
Тек қана тақ i-лермен орындалады
Қадамдарды қалай өзгертуге болады? – II
Идея: Тек 5 санды ғана шығару керек, k айнымалысы 1-ден 5-ке дейін өзгереді. i-дің бастапқы мәні 1-ге тең, циклдың әр қадамы сайын i 2-ге артып отырады.
Шығарылуы:
???
for k:=1 to 5 do begin
i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);
???
end;
i := i + 2;
i := 1;
Қадамдарды қалай өзгертуге болады? – III
Идея: Тек 5 санды ғана шығару керек, k айнымылысы 1-ден 5-ке дейін өзгереді. k-ны біле отырып, i-ді есептеу қажет.
Шығарылуы:
k
1
2
3
4
5
i
1
3
5
7
9
i= 2k-1
for k:=1 to 5 do begin
???
i2 := i*i;
i3 := i2*i;
writeln(i:4, i2:4, i3:4);
end;
i := 2*k – 1;
Тапсырмалар
"4": a мен b-ны енгізіп, осы екеуінің арасындағы сандардың квадраттары мен кубтарын есептеп шығару.
Мысал:
Интервал шекараларын енгіз:
4 6
4 16 64
5 25 125
6 36 216
"5": 1, 2, 4, 7, 11, 16, … тәртібімен орналасқан 10 санның квадраттары мен кубтарын есептеп шығару