Öèêë ñ ïàðàìåòðîì èñïîëüçóåòñÿ, êîãäà èçâåñòíî íà÷àëüíîå çíà÷åíèå ïåðåìåííîé, êîíå÷íîå çíà÷åíèå è øàã èçìåíåíèÿ ðàâåí 1 èëè –1, ò.å. ïàðàìåòð óâåëè÷èâàåòñÿ èëè óìåíüøàåòñÿ íà åäèíèöó. Òàêèì îáðàçîì, öèêë ñ ïàðàìåòðîì îðãàíèçóåò âûïîëíåíèå îäíîãî èëè íåñêîëüêèõ îïåðàòîðîâ çàðàíåå îïðåäåëåííîå ÷èñëî ðàç (èçâåñòíîå çàðàíåå)
I – ïàðàìåòð öèêëà
N – íà÷àëüíîå çíà÷åíèå ïàðàìåòðà
Ê – êîíå÷íîå çíà÷åíèå ïàðàìåòðà
Âûïîëíÿåòñÿ ñëåäóþùèì îáðàçîì:
1. Ïàðàìåòðó ïðèñâàèâàåòñÿ íà÷àëüíîå çíà÷åíèå N;
2. Ïðîâåðêà: Åñëè çíà÷åíèå ïàðàìåòðà íå áîëüøå (íå ìåíüøå) êîíå÷íîãî çíà÷åíèÿ K, òî ïåðåõîä íà ï.3 èíà÷å ï.6.
3. Âûïîëíÿåòñÿ òåëî öèêëà
4. Ïàðàìåòð öèêëà óâåëè÷èâàåòñÿ (óìåíüøàåòñÿ) íà 1
5. Ïåðåõîä íà ï.2
6. Âûõîä èç öèêëà
Èñïîëüçîâàòü öèêë for íåîáõîäèìî ïðè çàðàíåå èçâåñòíîì êîëè÷åñòâå ïîâòîðåíèé. Íåëüçÿ èçìåíÿòü ïàðàìåòð â òåëå öèêëà. Ïðè èñïîëüçîâàíèè êðàòíûõ (âëîæåííûõ) öèêëîâ ïðèìåíÿòü ðàçíûå ïåðåìåííûå â êà÷åñòâå ïàðàìåòðîâ. Îïðåäåëÿòü äî öèêëà çíà÷åíèÿ âñåõ èñïîëüçóåìûõ â íåì ïåðåìåííûõ. Íå ñòàâèòü òî÷êó ñ çàïÿòîé ïîñëå do.
ÏÐÈÌÅÐ 1.
ÏÐÈÌÅÐ 2. Íàéòè ïðîèçâåäåíèå ïåðâûõ k íàòóðàëüíûõ ÷èñåë, êðàòíûõ òð¸ì.
Ðåøåíèå:
Ïðè ñîñòàâëåíèè àëãîðèòìà ó÷òåì, ÷òî ïåðâîå íàòóðàëüíîå ÷èñëî, êðàòíîå 3, åñòü òðîéêà, à âñå ïîñëåäóþùèå áîëüøå ïðåäûäóùåãî íà 3.
1. Ââîä k
2. P := 1 {çäåñü íàêàïëèâàåì ïðîèçâåäåíèå}
3. T := 0 {çäåñü áóäóò ÷èñëà, êðàòíûå 3}
4. I := 1
5. Åñëè I > k, ïåðåõîä ê øàãó 10
6. T := T + 3
7. P := P * T
8. I := I + 1
9. Ïåðåéòè ê øàãó 5
10. Âûâîä P
11. Êîíåö
ÏÐÈÌÅÐ 3. Ââîäÿòñÿ 10 ÷èñåë, ïîñ÷èòàòü ñðåäè íèõ êîëè÷åñòâî ïîëîæèòåëüíûõ.
program cycle_for1;
var i,kn:byte; x:real;
begin
kn:=0;
for i:=1 to 10 do
begin
writeln('Ââåäèòå ',i,' ÷èñëî: ');
readln(x);
if x>0 then kn:=kn+1 {óâåëè÷èâàåì êîëè÷åñòâî íà 1}
end;
writeln('Âû ââåëè ',kn,' ïîëîæèòåëüíûõ ÷èñåë.');
readln
end.
ÏÐÈÌÅÐ 4. Íàïå÷àòàòü áóêâû îò 'Z' äî 'A'.
program cycle_for2;
var c:char;
begin
for c:='Z' downto 'A' do write(c);
readln
end.
ÏÐÈÌÅÐ 5. Âû÷èñëèòü N-å ÷èñëî Ôèááîíà÷÷è. ×èñëà Ôèááîíà÷÷è ñòðîÿòñÿ ñëåäóþùèì îáðàçîì: F(0)=F(1)=1; F(i+1)=F(i)+F(i-1); äëÿ i>=1. Ýòî ïðèìåð âû÷èñëåíèé ïî ðåêóððåíòíûì ôîðìóëàì.
program Fib;
var a,b,c:word; i,n:byte;
begin
write('ââåäèòå íîìåð ÷èñëà Ôèááîíà÷÷è ');
readln(N);
a:=1; {a=F(0), a ñîîòâåòñòâóåò F(i-2)}
b:=1; {b=F(1), b ñîîòâåòñòâóåò F(i-1)}
for i:=2 to N do
begin
c:=a+b; {c ñîîòâåòñòâóåò F(i)}
a:=b; b:=c; {â êà÷åñòâå a è b áåðåòñÿ ñëåäóþùàÿ ïàðà ÷èñåë}
end;
writeln(N,'-å ÷èñëî Ôèááîíà÷÷è =',b); {äëÿ N>=2 b=c}
readln
end.
|