Программирование >>  Структурное программирование 

1 ... 33 34 35 [ 36 ] 37 38 39 ... 342


2.7. Структура повторения while (ПОКА)

Структура повторения позволяет программисту определить действие, которое должно повторяться, пока некоторое условие остается истинным. Предложение псевдокода

ПОКА имеются элементы в моем списке покупок

Сделать следующую покупку и вычеркнуть ее из списка

описывает повторные действия при посещении магазина. Условие имеются элементы в моем списке покупок может быть истинным или ложным. Если оно истинно, то осуществляется действие Сделать следующую покупку и вычеркнуть ее из списка . Это действие будет повторяться до тех пор, пока условие остается истинным. Оператор (или операторы), записанные в теле структуры повторения while (ПОКА) составляют тело wliile, которое может быть отдельным или составным оператором. Очевидно, что когда-нибудь условие станет ложным (когда будет осуществлена и вычеркнута из списка последняя покупка). Начиная с этого момента повторение прерывается и выполняется первое предложение псевдокода, следующее за структурой повторения.

Типичная ошибка программирования 2.4

В теле структуры while не предусматривается действие, которое приведет к тому, что со временем условие while станет ложным. Выполнение подобной структуры повторения никогда не прервется - такая ошибка называется зацикливание .

Типичная ошибка программирования 2.5

Запись ключевого слова while как While с символом W в верхнем регистре (помните, что язык C-I-+ чувствителен к регистру). Все зарезервированные ключевые слова С-1 Ь, такие, как while, if и else, содержат только символы нижнего регистра.

Как пример использования while рассмотрим фрагмент программы, определяющий первое значение степени 2, превышающее 1000. Предположим, что имеется целая переменная product, с начальным значением 2. Когда приведенная ниже структура повторения while закончит свою работу, product будет содержать искомую величину:

int product = 2; while (product <= 1000) product = 2 * product;

Блок-схема на рис. 2.5 иллюстрирует управляющую логику структуры повторения while. Еще раз отметим, что единственными символами на этой схеме кроме малых окружностей и линий связи являются прямоугольник и ромб. Представьте себе снова глубокий бункер, наполненный структурами while, которые могут соединяться пакетом или вкладываться в другие управляющие структуры, чтобы сформировать структурированное представление управления потоками в алгоритме. Затем пустые прямоугольники и ромбы заполняются соответствующими действиями и условиями выбора. Блок-схема ясно показывает повторение. Линия связи, выходящая из прямоугольника, возвращает назад к условию выбора, которое проверяется в каждом цикле, пока оно не окажется ложным. В этот момент стрзпктура



while завершает работу и управление передается следующему оператору программы.

Когда осуществляется вход в структур while, значение переменной product равно 2. Эта переменная умножается в цикле на 2, принимая последовательно значения 4, 8, 16, 32, 64, 128, 256, 512, 1024. Когда product достигает 1024, условие структуры while - product <= 1000 становится ложным. Это прекращает повторение и окончательное значение product будет равно 1024. Программа продолжает работу с первого оператора, следующего за while.


Рис. 2.5. Блок-схема структуры повторения while

2.8. Разработка алгоритмов: учебный пример 1 (повторение, управляемое счетчиком)

Чтобы проиллюстрировать процесс разработки алгоритма, рассмотрим несколько вариантов решения классической задачи усреднения. Пусть задача сформулирована следующим образом:

Проведен опрос класса из десяти студентов. Вам известны оценки по этому опросу (целые числа в диапазоне 0-100). Надо определить среднюю оценку класса.

Средняя по классу оценка равна сумме оценок, деленной на число студентов. Алгоритм решения этой задачи на компьютере должен включать ввод каждой оценки, расчет средней величины и печать результата.

Давайте используем псевдокод, чтобы сформировать список действий, которые должны быть выполнены, и определить последовательность их выполнения. Мы используем повторение, контролируемое счетчиком, для поочередного ввода оценок. Эта технология использует переменную, называемую counter, для задания числа повторений выполнения группы операторов. В нашем примере повторение прерывается, когда значение переменной counter превысит 10. В данном разделе мы представим псевдокод алгоритма (рис. 2.6) и соответствующую ему программу (рис. 2.7). В следующем разделе мы покажем, как разрабатываются псевдокоды алгоритмов. Повторение, контролируемое счетчиком, часто называют повторением с заданным числом циклов, поскольку число повторений известно до того, как цикл начнет исполняться.



mam ( {

int counter, grade, total, average;

этап задания начальных значений total = 0; counter = 1;

этап обработки данных while (counter <= 10) {

cout Введите оценку: ;

cin grade;

total = total + grade;

counter = counter + 1;

завершающий этап

average = total /10; целочисленное деление

cout Средняя оценка равна average endl;

return 0; указание, что программа успешно завершена

ВведиФв оценку: 98 Введите оценку: 76 Введите оценку: 71 Введите оценку: 87 Введите оценку: 83 Введите оценку: 90 Введите оценку: 57 Введите оценку: 79 Введите оценку: 82 Введите оценку: 94 Средняя оценка ргшна 81

Рис. 2.7. Программа С++ для расчета среднего значения с помощью повторения, управляемого счетчиком, и пример ее выполнения

Установить значение суммы total в нуль Установить счетчик оценок counter в единицу

ПОКА счетчик оценок меньше или равен 10 Ввести следующую оценку Добавить эту оценку к сумме Добавить единицу к счетчику

Определить среднюю по классу оценку как сумму, деленную на 10 Напечатать среднюю по классу оценку

Рис. 2.6. Псевдокод алгоритма, использующего повторение, управляемое счетчиком, для расчета среднего значения

Программа для расчета среднего значения с повторением, управляемым счетчиком iinclude <iostream.h>



1 ... 33 34 35 [ 36 ] 37 38 39 ... 342

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика