Задача этой книги дать краткое и четкое изложение языка С++ в соответствии со стандар том iso/iec 14882. Она предназначена для студентов, изучающих язык «с нуля»



Download 2 Mb.
bet28/232
Sana29.03.2022
Hajmi2 Mb.
#516205
TuriЗадача
1   ...   24   25   26   27   28   29   30   31   ...   232
Bog'liq
Т. А. Павловская C C . Программирование на языке высокого уровня

while ( âûðaæåíèå ) îïåðaòîð
Âûðaæåíèå îïðåäåëяåò óñëîâèå ïîâòîðåíèя òåëa öèêëa, ïðåäñòaâëåííîãî ïðî- ñòûì èëè ñîñòaâíûì îïåðaòîðîì. Âûïîëíåíèå îïåðaòîða ía÷èíaåòñя ñ âû÷èñëå- íèя âûðaæåíèя. Åñëè îíî èñòèííî (íå ðaâíî false), âûïîëíяåòñя îïåðaòîð öèê- ëa. Åñëè ïðè ïåðâîé ïðîâåðêå âûðaæåíèå ðaâíî false, öèêë íå âûïîëíèòñя íè

ðaçó. Òèï âûðaæåíèя äîëæåí áûòü aðèôìåòè÷åñêèì èëè ïðèâîäèìûì ê íåìó. Âûðaæåíèå âû÷èñëяåòñя ïåðåä êaæäîé èòåðaöèåé öèêëa.


Ïðèìåð (ïðîãðaììa ïå÷aòaåò òaáëèöó çía÷åíèé ôóíêöèè y=x2+1 âî ââåäåííîì äèaïaçîíå):
include int main(){
float Xn, Xk, Dx;
printf("Ââåäèòå äèaïaçîí è øaã èçìåíåíèя aðãóìåíòa: "); scanf("%f%f%f", &Xn, &Xk, &Dx);
printf("| X | Y |\n"); // øaïêa òaáëèöû
float X = Xn; // óñòaíîâêa ïaðaìåòða öèêëa
while (X <= Xk){ // ïðîâåðêa óñëîâèя ïðîäîëæåíèя printf("| %5.2f | %5.2f |\n", X, X*X + 1); // òåëî öèêëa
X += Dx; // ìîäèôèêaöèя ïaðaìåòða
}
return 0;
}
Ïðèìåð (ïðîãðaììa íaõîäèò âñå äåëèòåëè öåëîãî ïîëîæèòåëüíîãî ÷èñëa):
include int main(){
int num;
cout << "\nÂâåäèòå ÷èñëî : "; cin >> num;
int half = num / 2; // ïîëîâèía ÷èñëa
int div= 2; // êaíäèäaò ía äåëèòåëü while (div<= half){
if (!(num % div))cout << div <<"\n"; div++;
}
return 0;
}
Ðañïðîñòðaíåííûé ïðèåì ïðîãðaììèðîâaíèя — îðãaíèçaöèя áåñêîíå÷íîãî öèêëa ñ çaãîëîâêîì while (true) ëèáî while (1) è ïðèíóäèòåëüíûì âûõîäîì èç òåëa öèêëa ïî âûïîëíåíèþ êaêîãî-ëèáî óñëîâèя.
 êðóãëûõ ñêîáêaõ ïîñëå êëþ÷åâîãî ñëîâa while ìîæíî ââîäèòü îïèñaíèå ïåðå- ìåííîé1. Îáëañòüþ åå äåéñòâèя яâëяåòñя öèêë:
while (int x = 0){ … /* îáëañòü äåéñòâèя õ */ }

Цикл с постусловием (do while)


Öèêë ñ ïîñòóñëîâèåì ðåaëèçóåò ñòðóêòóðíóþ ñõåìó, ïðèâåäåííóþ ía ðèñ. 1.8, á, è èìååò âèä:
do îïåðaòîð while âûðaæåíèå;


1 Â ñòaðûõ âåðñèяõ êîìïèëяòîðîâ ýòî òðåáîâaíèå ñòaíäaðòa ìîæåò íå ïîääåðæèâaòüñя.

Cía÷aëa âûïîëíяåòñя ïðîñòîé èëè ñîñòaâíîé îïåðaòîð, ñîñòaâëяþùèé òåëî öèê- ëa, a çaòåì âû÷èñëяåòñя âûðaæåíèå. Åñëè îíî èñòèííî (íå ðaâíî false), òåëî öèê- ëa âûïîëíяåòñя åùå ðaç. Öèêë çaâåðøaåòñя, êîãäa âûðaæåíèå ñòaíåò ðaâíûì false èëè â òåëå öèêëa áóäåò âûïîëíåí êaêîé-ëèáî îïåðaòîð ïåðåäa÷è óïðaâëå- íèя. Òèï âûðaæåíèя äîëæåí áûòü aðèôìåòè÷åñêèì èëè ïðèâîäèìûì ê íåìó.


Ïðèìåð (ïðîãðaììa îñóùåñòâëяåò ïðîâåðêó ââîäa):
include int main(){
char answer; do{
cout << "\nÊóïè ñëîíèêa! "; cin >> answer;
}while (answer != 'y'); return 0;
}
Ïðèìåð. Ïðîãðaììa âû÷èñëяåò êâaäðaòíûé êîðåíü âåùåñòâåííîãî aðãóìåíòa X
ñ çaäaííîé òî÷íîñòüþ Eps ïî èòåðaöèîííîé ôîðìóëå:


2
yn = 1
(yn–1 + x/yn-1),

ãäå yn–1 — ïðåäûäóùåå ïðèáëèæåíèå ê êîðíþ (â ía÷aëå âû÷èñëåíèé âûáèðaåòñя ïðîèçâîëüíî), yn — ïîñëåäóþùåå ïðèáëèæåíèå. Ïðîöåññ âû÷èñëåíèé ïðåêðaùa- åòñя, êîãäa ïðèáëèæåíèя ñòaíóò îòëè÷aòüñя äðóã îò äðóãa ïî aáñîëþòíîé âåëè-
÷èíå ìåíåå, ÷åì ía âåëè÷èíó çaäaííîé òî÷íîñòè. Äëя âû÷èñëåíèя aáñîëþòíîé âåëè÷èíû èñïîëüçóåòñя ñòaíäaðòíaя ôóíêöèя fabs(), îáúяâëåíèå êîòîðîé íaõî- äèòñя â çaãîëîâî÷íîì ôaéëå .
include include int main(){
double X, Eps; // aðãóìåíò è òî÷íîñòü
double Yp,Y= 1; // ïðåäûäóùåå è ïîñëåäóþùåå ïðèáëèæåíèå printf("Ââåäèòå aðãóìåíò è òî÷íîñòü: ");
scanf("%lf%lf", &X, &Eps); do{
Yp= Y;
Y = (Yp + X/Yp)/2;
}while (fabs(Y – Yp) >= Eps); printf("\nÊîðåíü èç %lf ðaâåí %lf", X, Y); return 0;
}

Download 2 Mb.

Do'stlaringiz bilan baham:
1   ...   24   25   26   27   28   29   30   31   ...   232




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish