Оператор цикла с предусловием while
Цикл с предусловием – цикл, который выполняется, пока истинно некоторое условие, указанное перед его началом. Это условие проверяется до выполнения тела цикла, поэтому тело может быть не выполнено ни разу (если условие с самого начала ложно).
Оператор цикла while имеет следующий синтаксис:
while (выражение-условие)
тело_цикла;
выражение-условие – это выражение, определяющее условие, при котором тело цикла будет выполняться. Проверка условия производится перед каждым возможным выполнением цикла. В качестве выражения-условия чаще всего используется отношение или логическое выражение.
Схема выполнения оператора while следующая:
● вычисляется выражение-условие;
● если значение выражения-условия равно нулю, то выполнение оператора while заканчивается и выполняется следующий по порядку оператор. Если значение выражения-условия не равно нулю, то выполняется тело цикла оператора while.
● процесс повторяется с пункта 1 (т.е. вычисляется выражение-условие и все повторяется…).
В операторе while проверка условия происходит вначале, перед выполнением операторов, образующих тело цикла. Оператор while удобно использовать в ситуациях, когда цикл не всегда должен выполняться
При построении цикла while необходимо включить в тело цикла какие-либо конструкции, изменяющие величину проверяемого выражения-условия так, чтобы в конце концов оно стало равным нулю. В противном случае цикл будет бесконечным.
Например:
int i, s;
i=2;
while(i < 5) {
printf("Добрый день!");
} /*цикл будет выполняться бесконечно*/
int i, s;
i=2;
while(i < 5) {
printf("Добрый день!");
i=i+1;
} /*цикл будет выполнен 3 раза*/
Пример 1. Вычисления квадратов чисел от 1 до 9.
#include <stdio.h>
void main() {
int i, b;
i=1;
while (i<10) {
b=i*i;
printf("\n %2d в квадрате равно %3d", i, b);
i++;
}
}
Пример 2. Программа для печати фрагмента таблицы ASCII (от 32-го символа до 126-го).
#include <stdio.h>
void main() {
int number;
char character;
number = 32;
while (number <= 126) {
character = number;
printf("Символ %c имеет код %d (дес.) или
%x (шестнд.)\n",character,character,character);
number++;
}
}
Пример 3. Вычислить S = 1 + 2 + 3 + 4 + … + n.
#include <iostream.h>
void main() {
int n,i,s=0;
cout<<"\nВведите n=";
cin>>n;
if(n<=0) {
cout<<"\n n<=0";
return; }
i=1;
while (i<=n) {
s+=i;
i++; }
cout<<"\nS="<<s<<"\n";
}
Задания
1.Составьте программу для решения задачи. Дана непустая последовательность целых чисел, оканчивающаяся нулем. Найти сумму и количество всех чисел последовательности.
2.Составьте программу для решения задачи. Дано натуральное число. Верно ли, что сумма его цифр больше k?
3.Составьте программу для решения задачи. Напечатайте минимальное число, больше 200, которое нацело делится на 17.
4.Составьте программу для решения задачи. В некотором году (назовем его условно первым) в пользование был выделен участок в 100 гектар. После этого каждый год площадь участка увеличивалась на 5%. Определить в каком году площадь участка станет больше 120 гектар.
Домашние задания
1.Наберите коды программ из Примеров 1, 2 и 3. Сохраните коды программ. Выполните компиляцию и запуск программ. Введите свои данные в качестве входных.
2.Составьте программу для решения задачи. Дана непустая последовательность неотрицательных целых чисел, оканчивающаяся отрицательным числом. Найти среднее арифметическое всех чисел последовательности (без учета отрицательного числа).
3.Составьте программу для решения задачи. Дано натуральное число. Верно ли, что количество его цифр есть четное число?
4.Составьте программу для решения задачи. Найти максимальное из натуральных чисел, не превышающих 5000, которое нацело делится на 39.
5.Составьте программу для решения задачи. В некотором году (назовем его условно первым) на некотором участке в 100 гектар средняя урожайность ячменя составила 20 центнеров с гектара. После этого каждый год площадь участка увеличивалась на 5%, а весь урожай (в центнерах) на 2%. Определить в каком году урожайность превысит 22 центнера с гектара.
Дата добавления: 2015-02-16; просмотров: 1321;