Для табулирования функции используются операторы организации циклов:
1) while – оператор цикла с предварительным условием;
2) repeat – оператор цикла с последующим условием.
Общий вид оператора while: while логическое выражение do оператор; Оператор действует следующим образом. Предварительно проверяется значение логического выражения. Пока логическое выражение истинно, выполняется оператор циклической части (после do). Как только оно становится ложным, происходит выход из цикла.
Общий вид оператора repeat: repeat
until логическое выражение;
Оператор действует так. Выполняются операторы циклической части, проверяется значение логического выражения: если логическое выражение ложно, то вновь выполняются операторы циклической части; если же оно истинно, то цикл заканчивается.
Пример. Вычислим и выведем на экран таблицу значений функции y=lnx при x, изменяющемся от x0 до xk с шагом dx.
Организация цикла с оператором while:
Источник: studopedia.ru
Информатика. Выпуск 13. Операторы цикла.
Операторы организации циклов
Если в программе возникает необходимость неоднократно выполнить некоторые операторы, то используются операторы повтора (цикла). В языке Паскаль различают три вида операторов цикла: while, repeat, for. Они используются для организации циклов различных типов. Выражение, управляющее повторениями, должно иметь булевский тип.
Если число повторений оператора (составного оператора) заранее неизвестно, а задано лишь условие его повторения (или окончания), используются операторы while, repeat. Оператор for используется, если число повторений заранее известно.
Оператор повтора for
В случаях, когда число повторений может быть заранее известно, для организации циклической обработки информации применяется оператор повтора for. Подсчет количества выполняемых действий осуществляется при помощи специальной переменной — счетчика. Существуют две формы цикла fоr.
Первая форма реализует последовательное увеличение (на единицу) значения счетчика:
for, to, do – зарезервированные слова (для, до, выполнить, ); параметр цикла> — параметр цикла, которым является переменная типа Integer (точнее любого порядкового типа); оператор> — произвольный оператор Турбо Паскаль.
Шаг наращивания параметра цикла строго постоянен и равен (+1). Существует другая форма оператора:
Замена зарезервированного слова to словом downto означает, что шаг наращивания параметра цикла равен (-1), а управляющее условие приобретает вид for = .
Пример использования оператора for:
for I:= 1 to 100 do Read(M[I]);
for A:= 255 downto 0 do
Writeln(‘код символа = ‘,А, ‘ символ == ‘,Chr(A));
11. Назовите операторы организации циклов с неизвестным числом повторений в языке программирования Паскаль (Delphi). Опишите их структуру и принцип работы. Покажите с помощью блок-схемы цикл с предусловием.
Информатика. Язык Pascal: Оператор цикла for в Pascal. Центр онлайн-обучения «Фоксфорд»
Разработайте программу, которая вводит и суммирует любое количество целочисленных значений. Если введено значение 999, то на экран выводится результат суммирования.
Циклы с неизвестным числом повторений
Когда число повторений в цикле неизвестно, а задано только некоторое условие его продолжения или окончания, следует использовать оператор цикла с предусловием или оператор цикла с постусловием.
Оператор цикла с предусловием имеет следующий синтаксис:
Здесь внутренний выполняется в цикле до тех пор, пока условие продолжения цикла () истинно. Если же становится ложным, то цикл прекращает функционировать и выполняется оператор, следующий за оператором while. Если условие продолжения цикла ложно с самого начала, то внутренний оператор не выполняется ни разу. Условие продолжения цикла вычисляется и анализируется перед каждым шагом выполнения цикла, отсюда и термин «предусловие». Если в теле цикла необходимо выполнять несколько операторов, то эту группу следует объединить в один составной оператор с помощью операторных скобок begin и end.
Оператор цикла с постусловием имеет следующую структуру:
Этот цикл будет выполняться, пока логическое выражение после слова until (до тех пор пока) ЛОЖНО. Как только результат выражения станет истинным, произойдет выход из цикла. Вычисление выражения выполняется в конце каждой итерации цикла.
Этот вид цикла применяется в тех случаях, когда тело цикла необходимо обязательно выполнить хотя бы один раз: например, если в цикле вводятся данные и выполняется их проверка. Если же такой необходимости нет, предпочтительнее пользоваться циклом с предусловием.
Writeln(‘Сумма введенных чисел= ‘,Sum) ;
12. Дайте определение понятий «массив», «элемент массива», «размерность массива». Опишите структуру объявления одномерного массива в языке программирования Паскаль (Delphi). Приведите пример ввода-вывода одномерного массива на экран.
Разработать программу нахождения произведения элементов массива A, состоящего из n элементов
Источник: studfile.net
Управляющие операторы. Структуры данных языка С
Операторы цикла используются для организации многократно повторяющихся вычислений.
Любой цикл состоит из тела цикла, то есть тех операторов, которые выполняются несколько раз, начальных установок, блока модификации параметра цикла и проверки условия выхода из цикла (рис. 3.3), которая может размещаться либо до тела цикла (тогда говорят о цикле с предусловием ), либо после тела цикла (цикл с постусловием ).
Рис. 3.3. Два вида циклов
Один проход цикла называется итерацией. Переменные, принудительно изменяющиеся в цикле и использующиеся при проверке условия выхода из него, называются параметрами цикла. Целочисленные параметры цикла , изменяющиеся на целое число на каждой итерации , называются счетчиками цикла.
Нельзя передавать управление извне внутрь цикла . Выход из цикла возможен как при выполнении условия выхода, так и по операторам break , return или безусловного перехода .
Цикл с предусловием (while)
Цикл с предусловием реализует структурную схему , приведенную на рис. 3.3 (а), и имеет вид:
while ( выражение ) оператор;
Выражение определяет условие повторения тела цикла , представленного простым или составным оператором. Если выражение не равно 0 (истинно), выполняется оператор цикла, после чего опять вычисляется выражение. Если при первой проверке выражение равно 0, цикл не выполнится ни разу. Тип выражения должен быть арифметическим или приводимым к нему.
Пример (программа печатает таблицу значений функции y=x 2 +1 во введенном диапазоне):
#include using namespace std; int main() < float Xn, Xk, Dx; printf(«Введите диапазон и шаг изменения аргумента: «); scanf(«%f%f%f», Xk, printf(«| X | Y |n»); //шапка таблицы int X = Xn; //начальные установки цикла while (X<=Xk) < //проверка условия выхода printf(«| %5.2f | %5.2f |n», X, X*X + 1); //тело X += Dx; //модификация >>
Цикл с постусловием (do while)
Цикл с постусловием реализует структурную схему , приведенную на рис. 3.3 (б), и имеет вид:
do оператор while выражение;
Сначала выполняется простой или составной оператор , составляющий тело цикла, а затем вычисляется выражение. Если оно не равно 0 (истинно), тело цикла выполняется еще раз, и так далее, пока выражение не станет равным нулю или в теле цикла не будет выполнен какой-либо оператор передачи управления . Тип выражения должен быть арифметическим или приводимым к нему.
Пример (программа осуществляет проверку ввода):
#include using namespace std; int main()< char answer; do< cout > answer; >while (answer != ‘y’);>
Цикл с параметром (for)
Цикл с параметром имеет следующий формат:
for ( инициализация; выражение; модификации) оператор;
for ( int i = 1; i < 6; ++i ) printf( » %d «, i ); printf( «вышел зайчик погулять» );
Инициализация используется для объявления и присвоения начальных значений величинам, используемым в цикле. В этой части можно записать несколько операторов, разделенных запятой.
Выражение определяет условие выполнения цикла: если оно не равно 0 (истинно), цикл выполняется.
Модификации выполняются после каждой итерации цикла и служат обычно для изменения параметров цикла. В части модификаций можно записать несколько операторов через запятую.
Простой или составной оператор представляет собой тело цикла. Любая из частей оператора for может быть опущена (но точки с запятой надо оставить на своих местах!). В любой части можно использовать операцию «запятая» (последовательное вычисление), например:
for (int i = 1, s = 0; i
Пример (программа печатает таблицу значений функции y=x 2 +1 во введенном диапазоне):
#include using namespace std; int main()
Операторы передачи управления
В С++ есть пять операторов, изменяющих естественный порядок выполнения вычислений:
- оператор выхода из цикла и переключателя break ;
- оператор перехода к следующей итерации цикла continue ;
- оператор возврата из функции return ;
- оператор безусловного перехода goto ;
- оператор генерации исключения throw .
Оператор выхода break используется для немедленного завершения оператора цикла или switch . Выполнение передается следующему после завершенного оператору.
Оператор перехода к следующей итерации цикла continue пропускает все операторы , оставшиеся до конца тела цикла , и передает управление на модификацию параметров цикла (в случае цикла for ) и начало следующей итерации .
Оператор возврата из функции return завершает выполнение функции и передает управление в точку ее вызова. Мы рассмотрим его вместе с функциями на следующей лекции.
Оператор безусловного перехода goto имеет формат:
goto метка;
В теле той же функции должна присутствовать ровно одна конструкция вида:
метка: оператор;
Оператор goto передает управление на помеченный оператор. Метка — это обычный идентификатор , областью видимости которого является функция , в теле которой он встречается.
Использование оператора безусловного перехода оправдано в двух случаях:
- принудительный выход вниз по тексту программы из нескольких вложенных циклов или переключателей;
- переход из нескольких мест функции в одно (например, если перед выходом из функции необходимо всегда выполнять какие-либо действия).
В остальных случаях для записи любого алгоритма существуют более подходящие средства.
Исключительную ситуацию (или просто исключение ) генерирует либо программист с помощью оператора throw , либо сама среда выполнения. Это происходит, когда во время выполнения программы возникают какие-либо ошибки, например, деление на ноль или переполнение . Механизм обработки исключений , реализованный в С++ , позволяет реагировать на подобные ошибки и таким образом избегать аварийного завершения программы.
Пример использования оператора break . Программа вычисляет значение синуса вещественного аргумента х с заданной точностью eps с помощью разложения в бесконечный ряд:
sh x = x — x3/3! + x5/5! — x7/7! + …
Точность достигается при |Rn| eps , где Rn —остаточный член ряда, который для данного ряда можно заменить величиной очередного члена ряда, прибавляемого к сумме.
#include #include using namespace std; int main() < const int MaxIter = 500; //ограничитель количества итераций double x, eps; cout > x >> eps; bool done = true; //признак успешного вычисления double y = x, ch = x; // сумма и первый член ряда for (int n = 0; fabs(ch) > eps; n++) < ch *= -x * x /(2 * n + 2)/(2 * n + 3); //очередной член ряда y += ch; if (n >MaxIter) < cout > if (done) cout
Источник: intuit.ru