В большинстве программ встречается необходимость многократного выполнения некоторого оператора (или блока операторов). Для организации подобного рода конструкций могут использоваться операторы цикла. В языке программирования Паскаль используются следующие виды операторов цикла: for, while, repeat (в PascalABC.NET используется также оператор цикла foreach ).
Блок операторов, который необходимо выполнить многократно называется телом цикла.
Оператор for в Паскаль
Если число повторений тела цикла заранее известно, то используется оператор цикла for , который также часто называют оператором цикла с параметром.
Оператор for состоит из двух частей: тела цикла и заголовка, который предназначен для описания начального и конечного значений параметра цикла, а также варианта его изменения.
В зависимости от направления изменения параметра цикла (возрастание — to или убывание — downto ) в языке Паскаль оператор цикла for может быть записан в одной из двух форм:
- for параметр := нач_знач to кон_знач do
- оператор;
- for параметр := нач_знач downto кон_знач do
- оператор;
Переменная-параметр цикла может принимать любой порядковый тип. При этом начальное и конечное значения должны иметь тип совместимый с типом переменной-параметром.
Оператор повтора (циклы) в Pascal — 07
Рассмотрим работу цикла for .
Перед началом выполнения оператора цикла вычисляются начальное значение, присваиваемое переменной-параметру, и конечное значение. Затем, циклически выполняются следующие операции:
- Сравнивается текущее значение параметра с конечным значением.
- Если условие параметр кон_знач истинно, то выполняется тело цикла, в противном случае оператор for завершает работу и управление передается оператору, следующему за циклом.
Внимание: в языке Паскаль параметр цикла, вне зависимости от возрастания или убывания, всякий раз изменяется на единицу.
Задача. Вывести на экран список квадратов целых чисел от 10 до 1.
Решение. В поставленной задаче параметр цикла убывает.
- for i := 10 downto 1 do
- writeln(i:2, ‘ ‘, i * i);
Внимание: если в теле цикла необходимо использовать более одного оператора, то применяется составной оператор (операторные скобки begin и end ).
Пример 2. Известны оценки абитуриента на четырех экзаменах. Определить сумму набранных им баллов.
Задача. Известны оценки абитуриента на четырех экзаменах. Определить сумму набранных им баллов.
Решение. Будем использовать в программе оператор цикла с параметрами, так как известно количество повторений выполняемых действий (абитуриент получил ровно четыре отметки)
- s := 0;
- for i := 1 to 4 do
- begin
- readln(mark);
- s := s + mark;
- end;
- writeln(s);
Источник: informatics-lesson.ru
ИНФОРМАТИКА 8 класс: Цикл с предусловием на языке Паскаль | Видеоурок
Циклический оператор FOR в языке Турбо-Паскаль
В этом посте мы рассмотрим оператор цикла FOR в языке паскаль. Разберём несколько примеров этого оператора.
Часто одно и то же действие нужно повторить несколько раз. Для этого используются циклы.
В языке Турбо-Паскаль есть три различных оператора, с помощью которых можно организовать цикл. Это статья посвещена одному из основных и самых мощных операторов: оператору FOR.
Оператор FOR
Оператор FOR имеет следующую структуру:
Источник: logi.cc
Цикл for: Pascal для начинающих
Основа программирования – циклы, например, for. Pascal. Как и любой компьютерный язык, он также содержит такие конструкции в своём синтаксисе.
Назначение циклических операторов
Типичная задача – заставить компьютер выполнять одно и то же действие несколько раз. Вот здесь и спасают конструкции, позволяющие организовать повторение кода. Итак, цикл в программировании – это многократно исполняемое действие, организуемое с помощью средств языка.
Язык программирования Pascal включает несколько таких конструкций:
- for – повтор с параметром;
- while – повтор с предусловием;
- repeat . until – повтор с постусловием.
Несмотря на кажущуюся простоту и очевидность циклических конструкций, начинающие программисты сталкиваются с рядом проблем при их реализации. Наибольшие сложности вызывает постановка условий выхода из цикла. В этом отношении счётный оператор for является самым незамысловатым.
Структура
Чтобы записать конструкцию повтора с параметром, нужно набрать следующий код:
В примере зарезервированные слова языка для удобства написаны заглавными буквами, на практике можно использовать строчное начертание. Используемые переменные и операторы приведены в фигурных скобках. Они означают:
- a> – переменная любого счётного типа, чаще всего INTEGER;
- b>, c> – выражения счётного типа, такого же, как и a>;
- d> – произвольный оператор/операторы языка, называемые также телом цикла.
Отрабатывая конструкцию for, Pascal рассчитывает значение b>, присваивает a> := c>, после чего запускается повтор действий:
- проверка условия b>c>, при выполнении которого цикл останавливает свою работу;
- запуск оператора ;
- увеличение значения на единицу, то есть a> := a> + 1.
Поскольку количество повторений внутри тела for известно, данную конструкцию относят к детерминированным циклам.
Пример
Чтобы понять, как будет выполняться for, далее, приведён пример, кода на языке паскаль для «чайников».
Разбираясь в написанных инструкциях, можно записать значения в каждой итерации:
- 1-я итерация: a = 1; s = 1;
- 2-я итерация: a = 2;s = 3;
- 3-я итерация: a = 3;s = 6;
- 4-я итерация: a = 4;s = 10;
- 5-я итерация: a = 5;s = 15.
В итоге пользователь увидит на экране число «15» – сумму чисел от 1 до 5.
Чтобы сделать первую программу более универсальной, следует заменить числа 1 и 5 переменными.
Частые ошибки
При использовании цикла for, Pascal требует внимательного отношения к значениям a>, b>, c>. Если не выполнять правила написания программ, компилятор сообщит об ошибке. Таких правил пять.
- Счётчик (параметр цикла) a> задаётся целым числом.
- Значения b> и c> также должны иметь целочисленный тип. Например, нужно просчитать значения угла, заданного в радианах от 0 до p. Но следующая запись кода будет неверной fora := 0topido. Решение – использовать функции округления trunc() или round(). Первая отбрасывает дробную часть вещественного числа, вторая – округляет его до ближайшего целого.
- Если пользователь ошибся и указал < , оператор ни разу не отработает.
- После выполнения цикла счётчик a> может иметь любое значение. Хотя это противоречит логике, но на практике a><>c>. Вывод: не рекомендуется обращаться к a> после выполнения конструкции for.
- В теле цикла (то есть после слова do) не рекомендуется использовать какие-либо операторы, изменяющие значения параметра a>. Следование данному правилу ошибки не вызовет, но будет нарушена логика программы.
Следующее правило является общепринятым и соответствует «хорошему тону» в программировании: чтобы было удобно работать с кодом, необходимо записывать операторы тела цикла не с первой колонки. Например, делая 2–3 пробела слева или используя клавишу Tab.
Данное предписание применимо не только к языку паскаль. Для «чайников» оно позволяет быстро найти и исправить ошибку в инструкциях.
Типичные задачи
Допустим, необходимо выполнить табуляцию функции вида f(x) = 3*x + 15, то есть получить таблицу из M значений функций в диапазоне [x1; x2], где x1 и x2 – минимальное и максимальные значения аргумента. Решать эту и подобные задачи помогает конструкция for. Pascal рекомендует записать программный код следующим способом:
Поскольку шаг изменения x не задан, значение аргумента рассчитывается в ходе программы при каждой итерации с помощью формулы: x:= x1+(x2–x1)*(a–1)/(M–1).
Цикл в цикле
Ввиду того, что внутри конструкции разрешается использовать любые операторы, допускается поместить в её тело ещё один цикл for. Pascal имеет стандартное описание для данной задачи, сходное с другими языками программирования:
Чтобы конструкция работала верно, необходимо соблюдать условие: счётчики в каждом цикле должны быть разные. Иначе внутренний цикл будет менять значение параметра внешнего цикла, что приведёт к логическим ошибкам.
Источник: fb.ru