Не зависят от конкретного компьютера Язык Си
Скачать 5.8 Mb.
|
void Prim4_1() {Цикл с предусловием. Пример void Prim4_1() { char sym='*'; while(sym!='.') { cout << "sym="; cin >> sym ; cout << sym; cout << endl; } cout << endl; } Цикл с предусловием. Пример Напишем программу, которая вычисляет сумму цифр введенного числа . void Prim4_2() { int n,S=0; cout << "n="; cin >> n; n=abs(n); while (n) { S+=n%10; n/=10; } cout<<"S="< Цикл с предусловием. Пример Обратите внимание на выражение после while. Здесь нет необходимости проверять условие (n!=0). Эффективнее написать просто (n), так как при n>0 С++ считает, что выражение имеет значение true, при n=0 – значение false. Цикл с постусловием do…while Оператор цикла с последующим условием Синтаксис: do оператор while (выражение); Оператор может быть составным (блоком). В этом случае не забудьте поставить фигурные скобки. После условия цикла ставится точка с запятой. Цикл с постусловием do…while Тело цикла выполняется до тех пор, пока значение выражения не станет ложным или равным нулю. Условие проверки располагается в конце цикла. Поэтому тело цикла будет выполнено хотя бы один раз. Такой цикл называется циклом с постпроверкой условия Цикл с постусловием do…while Цикл с постусловием выполняется так: Выполняется оператор Вычисляется выражение Если оно истинно (не 0) выполняется оператор Если оно ложно – выход из цикла Цикл с постусловием: алгоритм начало конец нет да n <= 0? тело цикла условие блок «типовой процесс» ввод n основной алгоритм Особенности:
Сколько раз выполняется цикл? a = 4; b = 6; do { a ++; } while (a <= b); 3 раза a = 7 a = 4; b = 6; do { a += b; } while ( a <= b ); 1 раз a = 10 a = 4; b = 6; do { a += b; } while ( a >= b ); зацикливание a = 4; b = 6; do b = a - b; while ( a >= b ); 2 раза b = 6 a = 4; b = 6; do a += 2; while ( a >= b ); зацикливание Цикл с постусловием. Пример Напишем программу, которая вычисляет значение ряда с заданной точностью. В качестве примера рассмотрим разложение в ряд функции sin(x): Цикл с постусловием. Пример Чтобы избежать вложенных циклов и сделать вычисления более эффективными, на каждом шаге мы не будем возводить x в степень 2n+1, а умножим значение предыдущего шага на x2. Аналогично поступаем с вычислением (-1)n: вместо возведения в степень будем изменять знак слагаемого на противоположный. Для вычисления факториала в знаменателе также не нужен цикл, достаточно предыдущее значение домножить на 2 очередных значения. Цикл с постусловием. Пример void Prim4_4() { double eps = 1e-5, x, a, b, s; int i; x=2; a=x; //числитель слагаемого b=1; //знаменатель слагаемого s=x; //сумма i=1; //показатель степени x у слагаемого do { a*=-x*x; i+=2; b*=(i-1)*i; s+=a/b; } while (abs(a/b)>=eps); cout<<"sin("< cout<<"sin("< Важно. В цикле while точка с запятой после условия цикла не ставится. В цикле do…while после условия цикла надо поставить точку с запятой. Обратить внимание. Оператор вывода в циклах while и do…while можно задавать различным образом. При этом выводимые данные будут располагаться или в строчку, или в столбик. |