Принудительно изменять внутри цикла
Посредством оператора присваивания, но
Его можно (и часто весьма удобно)
использовать как простую переменную –
Например, как индекс элемента массива.
Оператор цикла while
Общий вид записи оператора:
while(выражение)
{ тело цикла }
Действие такого оператора заключается в многократном выполнении блока, образующего тело цикла. Этот процесс продолжается до тех пор, пока выражение, записанное в заголовке, не обратится в нуль, т.е. станет ложным. Проверка его истинности производится каждый раз перед очередным выполнением тела цикла. Поэтому, если записанное в заголовке выражение изначально равно нулю, цикл не выполняется вообще.
Тело цикла может составлять и единственный оператор, тогда фигурные скобки не обязательны.
Наш пример суммирования девяти членов ряда можно при помощи оператора while записать так:
double s = 0.0;
int k = 1;
while(k<=9)
{
s += 1.0/k;
k++;
}
Заметьте, что в теле цикла обязательно должен быть оператор, влияющий на значение проверяемого выражения, иначе выполнение цикла никогда не прекратится.
Подобный цикл обычно записывают короче, хотя и менее наглядно:
while(k<=9) s += k++;
Если выражение в заголовке оператора всегда истинно, то получается бесконечный цикл:
while(1)
{.......}
Такая конструкция имеет право на существование и используется довольно часто. Как правило, такой цикл прекращают при выполнении некоторого условия, которое записывается и проверяется внутри тела цикла. Для этой цели используется условный оператор или переключатель.
Запишем наш пример, используя бесконечный цикл:
int k=1;
double s = 0.0;
while(1)
{
s += k++;
if(k > 9) break;
}
Выполнение оператора break приводит к немедленному прекращению цикла и передаче управления на следующий оператор программы, записанный сразу после оператора цикла.
Итак, цикл while завершается в следующих случаях:
- обратилось в нуль выражение, записанное в заголовке;
- в теле цикла встретился оператор break;
- в теле цикла выполнился оператор return.
Оператор цикла do...while
Общий вид такого оператора цикла:
do { тело цикла } while (условие);
Выполнение операторов тела цикла многократно повторяется, пока записанное условие остается истинным, т.е. не нулевым. В отличие от цикла while, здесь проверка условия на истинность производится п о с л е выполнения операторов тела цикла. Поэтому цикл обязательно выполнится хотя бы один раз, даже если проверяемое условие изначально ложно.
Прекращение выполнения цикла do...while происходит в случаях, аналогичных циклу while.
ЗАДАНИЕ НА РАБОТУ
1. Разработать программу «Простейший калькулятор». Программа запрашивает ввод двух вещественных чисел и действие, которое нужно выполнить:
- сложение
- вычитание
- умножение
- деление
после чего отображает результат.Требуется:
а) составить структурную схему алгоритма;
б) написать консольный вариант программы;
в) написать GUI-вариант программы.
2. Вычислить таблицу значений функции трех агрументов, два из которых не изменяются, а третий аргумент принимает ряд фиксированных значений, заданных либо одномерным массивом, либо диапазоном изменения с указанным шагом.
СОВЕТЫ.
При составлении структурной схемы алгоритма обдуманно
Выбрать параметр внешнего цикла и обратить особое
Внимание на правильность организации внутренних циклов,
Необходимых для вычисления сумм или произведений.
Для вывода таблицы на экран разумно использовать
визуальный компонент Memo. Его основные методы:
Memo1->Clear() - очистка;
Memo1->Lines->Add(FloatToStr(<double-переменная>)) –
- добавление в новую строку значения
Double-переменной