Öèêë ñ ïaðaìåòðîì èìååò ñëåäóþùèé ôîðìaò:
for ( èíèöèaëèçaöèя; âûðaæåíèå; ìîäèôèêaöèè) îïåðaòîð;
Èíèöèaëèçaöèя èñïîëüçóåòñя äëя îáúяâëåíèя è ïðèñâîåíèя ía÷aëüíûõ çía÷åíèé âåëè÷èíaì, èñïîëüçóåìûì â öèêëå.  ýòîé ÷añòè ìîæíî çaïèñaòü íåñêîëüêî îïå- ðaòîðîâ, ðaçäåëåííûõ çaïяòîé (îïåðaöèåé «ïîñëåäîâaòåëüíîå âûïîëíåíèå»), ía- ïðèìåð, òaê.
for (inti= 0,j= 2;… int k, m;
for (k= 1,m= 0;…
Îáëañòüþ äåéñòâèя ïåðåìåííûõ, îáúяâëåííûõ â ÷añòè èíèöèaëèçaöèè öèêëa, яâ- ëяåòñя öèêë1. Èíèöèaëèçaöèя âûïîëíяåòñя îäèí ðaç â ía÷aëå èñïîëíåíèя öèêëa.
Âûðaæåíèå îïðåäåëяåò óñëîâèå âûïîëíåíèя öèêëa: åñëè åãî ðåçóëüòaò, ïðèâå- äåííûé ê òèïó bool, ðaâåí true, öèêë âûïîëíяåòñя. Öèêë ñ ïaðaìåòðîì ðåaëèçî- âaí êaê öèêë ñ ïðåäóñëîâèåì.
Ìîäèôènaöèè âûïîëíяþòñя ïîñëå êaæäîé èòåðaöèè öèêëa è ñëóæaò îáû÷íî äëя èçìåíåíèя ïaðaìåòðîâ öèêëa.  ÷añòè ìîäèôèêaöèé ìîæíî çaïèñaòü íåñêîëüêî îïåðaòîðîâ ÷åðåç çaïяòóþ. Ïðîñòîé èëè ñîñòaâíîé îïåðaòîð ïðåäñòaâëяåò ñîáîé òåëî öèêëa. Ëþáaя èç ÷añòåé îïåðaòîða for ìîæåò áûòü îïóùåía (íî òî÷êè ñ çaïя- òîé íaäî îñòaâèòü ía ñâîèõ ìåñòaõ!).
Ïðèìåð (îïåðaòîð, âû÷èñëяþùèé ñóììó ÷èñåë îò 1 äî 100):
for (inti= 1,s= 0; i<=100; i++) s += i;
Ïðèìåð (ïðîãðaììa ïå÷aòaåò òaáëèöó çía÷åíèé ôóíêöèè y=x2+1 âî ââåäåííîì äèaïaçîíå):
include int main(){
float Xn, Xk, Dx, X;
printf("Ââåäèòå äèaïaçîí è øaã èçìåíåíèя aðãóìåíòa: "); scanf("%f%f%f", &Xn, &Xk, &Dx);
printf("| X | Y |\n"); for (X = Xn; X<=Xk; X += Dx)
printf("| %5.2f | %5.2f |\n", X, X*X + 1); return 0;
}
Ïðèìåð (ïðîãðaììa íaõîäèò âñå äåëèòåëè öåëîãî ïîëîæèòåëüíîãî ÷èñëa):
include int main(){
int num, half, div;
cout << "\nÂâåäèòå ÷èñëî : "; cin >> num;
for (half = num / 2, div= 2; div<= half; div++) if (!(num % div))cout << div <<"\n";
return 0;
}
Äâa ïîñëåäíèõ ïðèìåða âûïîëíяþò òå æå äåéñòâèя, ÷òî è ïðèìåðû äëя öèêëa ñ ïðåäóñëîâèåì, íî çaïèñaíû áîëåå êîìïaêòíî è íaãëяäíî: âñå äåéñòâèя, ñâяçaí- íûå ñ óïðaâëåíèåì öèêëîì, ëîêaëèçîâaíû â åãî çaãîëîâêå.
Ëþáîé öèêë while ìîæåò áûòü ïðèâåäåí ê ýêâèâaëåíòíîìó åìó öèêëó for è ía- îáîðîò ïî ñëåäóþùåé ñõåìå:
1 Â ñòaðûõ âåðñèяõ êîìïèëяòîðîâ ýòî òðåáîâaíèå ñòaíäaðòa ìîæåò èíòåðïðåòèðîâaòüñя ïî-äðóãîìó.
for (b1; b2; b3) îïåðaòîð b1;
while (b2){ îïåðaòîð; b3;}
×añòî âñòðå÷aþùèåñя îøèánè ïðè ïðîãðaììèðîâaíèè öènëîâ — èñïîëüçîâaíèå â òåëå öèêëa íåèíèöèaëèçèðîâaííûõ ïåðåìåííûõ è íåâåðíaя çaïèñü óñëîâèя âû- õîäa èç öèêëa.
×òîáû èçáåæaòü îøèáîê, ðåêîìåíäóåòñя:
ïðîâåðèòü, âñåì ëè ïåðåìåííûì, âñòðå÷aþùèìñя â ïðaâîé ÷añòè îïåðaòîðîâ ïðèñâaèâaíèя â òåëå öèêëa, ïðèñâîåíû äî ýòîãî ía÷aëüíûå çía÷åíèя (a òaêæå âîçìîæíî ëè âûïîëíåíèå äðóãèõ îïåðaòîðîâ);
ïðîâåðèòü, èçìåíяåòñя ëè â öèêëå õîòя áû îäía ïåðåìåííaя, âõîäяùaя â óñëî- âèå âûõîäa èç öèêëa;
ïðåäóñìîòðåòü aâaðèéíûé âûõîä èç öèêëa ïî äîñòèæåíèþ íåêîòîðîãî êîëè-
÷åñòâa èòåðaöèé (ñì. ïðèìåð â ñëåäóþùåì ðaçäåëå);
è, êîíå÷íî, íå çaáûâaòü î òîì, ÷òî åñëè â òåëå öèêëa òðåáóåòñя âûïîëíèòü áî- ëåå îäíîãî îïåðaòîða, íóæíî çaêëþ÷aòü èõ â ôèãóðíûå ñêîáêè.
Îïåðaòîðû öèêëa âçaèìîçaìåíяåìû, íî ìîæíî ïðèâåñòè íåêîòîðûå ðånîìåíäa- öèè ïî âûáîðó íaèëó÷øåãî â êaæäîì êîíêðåòíîì ñëó÷aå.
Îïåðaòîð do while îáû÷íî èñïîëüçóþò, êîãäa öèêë òðåáóåòñя îáяçaòåëüíî âûïîë- íèòü õîòя áû ðaç (íaïðèìåð, åñëè â öèêëå ïðîèçâîäèòñя ââîä äaííûõ).
Îïåðaòîð for ïðåäïî÷òèòåëüíåå â áîëüøèíñòâå îñòaëüíûõ ñëó÷aåâ (îäíîçía÷- íî — äëя îðãaíèçaöèè öèêëîâ ñî ñ÷åò÷èêaìè).
Îïåðaòîðîì while óäîáíåå ïîëüçîâaòüñя â ñëó÷aяõ, êîãäa ÷èñëî èòåðaöèé çaðaíåå íå èçâåñòíî, î÷åâèäíûõ ïaðaìåòðîâ öèêëa íåò èëè ìîäèôèêaöèþ ïaðaìåòðîâ óäîáíåå çaïèñûâaòü íå â êîíöå òåëa öèêëa.
Do'stlaringiz bilan baham: |