- •Программирование на языке Паскаль в среде Turbo Pascal версии 6 и 7
- •Глава 7. Составные типы данных 29
- •Глава 8. Подпрограммы и функции 46
- •Глава 9. Файлы 50
- •Глава 10. Динамические переменные (списки) 58
- •Тип и функциональные возможности языка
- •Структура программы на Паскале
- •Алфавит языка
- •Правила написания имен
- •Структура блока описаний
- •Глава 2. Простые типы данных в языке Паскаль Понятие и классификация типов данных
- •Целочисленные типы
- •Вещественные типы
- •Логический тип
- •Символьный тип
- •Интервальный тип пользователя
- •Перечисляемый тип пользователя
- •Глава 3. Встроенные функции Понятие и классификация типов функций
- •Математические функции
- •Функции преобразования типов
- •Глава 4. Выражения Понятие и классификация типов выражений
- •Арифметические операции
- •Логические операции
- •Отношения
- •Битовые операции
- •Глава 5. Выполняемые операторы языка (для программ линейной структуры) Понятие и классификация
- •Классификация инструкций Паскаля
- •Оператор присваивания
- •Простейшие операторы ввода с клавиатуры
- •Простейшие операторы вывода на экран дисплея
- •Глава 6. Выполняемые управляющие операторы языка Простые управляющие операторы
- •Оператор безусловного перехода.
- •Оператор продолжения цикла.
- •Операторы ветвлений
- •Оператор условного перехода.
- •Неполный условный оператор.
- •Полный условный оператор.
- •Операторы циклов
- •Оператор арифметического цикла
- •Операторы итеративных циклов
- •Организация цикла с помощью условного перехода
- •Оператор итеративного цикла с предусловием
- •Оператор итеративного цикла с постусловием
- •Глава 7. Составные типы данных Классификация составных типов
- •Массивы Основные определения
- •Вывод массива
- •Примеры программ работы с массивами
- •Сортировки массива
- •Алгоритмы основных методов сортировок
- •Строки Строковые переменные
- •Стандартные (встроенные) процедуры работы со строками
- •Стандартные (встроенные) функции работы со строками
- •Структуры
- •Глава 8. Подпрограммы и функции Понятие подпрограмм в языке Паскаль.
- •Процедуры.
- •Описание и вызов функций
- •Параметры процедур и функций
- •Глава 9. Файлы Классификация внешних данных
- •Стандартные процедуры работы с файлами
- •Процедуры
- •Функции
- •Особенности работы с текстовыми файлами
- •Пример работы с текстовыми файлами.
- •Двоичные файлы (в машинных кодах) Типизированные файлы
- •Процедуры при работе с типизированными файлами
- •Функции при работе с типизированными файлами
- •Пример работы с типизированными файлами.
- •Файлы без типов
- •Процедуры, используемые при работе с нетипизированными файлами
- •Функции, используемые при работе с нетипизированными файлами.
- •Глава 10. Динамические переменные (списки) Понятие динамических переменных
- •Списочные данные
- •Односвязные списки
- •Двусвязные списки
- •Нульсвязные списки
- •Глава 11.Стандартный модуль работы с текстовым экраном Crt
- •2) Координаты экрана
- •3) Управление графическим режимом
- •4) Управление экраном и окном
- •5) Управление цветом
- •6) Вывод точек
- •7) Вывод линий
- •8) Вывод и закраска контуров
- •9) Окружности, эллипсы, дуги
- •10) Вывод текста
- •11) Последовательность работ при использовании графического режима
- •11) Пример программы приложения
Операторы итеративных циклов
Итеративные циклы – это циклы с заранее не известным количеством шагов. Для завершения, они требуют проверки такого условия, результат которого может измениться в процессе выполнения тела цикла. По выполнении этого условия, осуществляется переход на оператор, следующий за телом цикла.
Могут быть только два варианта условий окончания цикла – по исходным данным (если они вводятся в теле цикла), или по достижении заданных результатов расчета. Иными словами, признаком конца может выступать появление определенного значения, заранее принятого в качестве обозначения конца данных; или достижение такого результата расчета, значение которого удовлетворяет заданному отношению (сравнению) к определенной константе.
Организация итеративного цикла может быть выполнена одним из трех способов:
- используя операторы условного (и безусловного) перехода;
- используя оператор итеративного цикла с предусловием;
- используя оператор итеративного цикла с постусловием.
Организация цикла с помощью условного перехода
Цикл можно реализовать либо с помощью условного и безусловного переходов, либо с помощью только условного перехода.
В первом случае, возврат на начало тела цикла выполняется оператором безусловного перехода, а выход из цикла – оператором условного перехода. Логическое выражение в условном операторе представляет собой условие окончания цикла.
В программе при такой организации цикла требуется иметь две метки:
Start:
. . .
if A=Priznak then goto Finish;
. . .
goto Start;
Finish: . . .
Во втором случае проверяют условие продолжения цикла, и по его выполнению возвращаются на начало тела цикла, иначе цикл заканчивается. В этом случае достаточно обычно одной метки:
Start:
. . .
if A<>Priznak then goto Start;
. . .
Тело итеративного цикла при таких способах построения в скобки begin ... end заключать не требуется.
Оператор итеративного цикла с предусловием
Вид оператора:
While <логическое выражение> do
<простой или составной оператор тела цикла>;
Логическое выражение – это условие продолжения цикла (выполнения тела цикла). Само тело цикла это один оператор или группа операторов (в операторных скобках begin .. end). Если в момент входа в заголовок цикла логическое выражение ложно, цикл не выполнится ни разу. На это следует обращать внимание при программировании с завершением цикла по вводу признака конца. Если ввод данных выполняется целиком в цикле, перед его началом значение вводимой в дальнейшем величины следует сделать искусственно неравным признаку конца. Например:
. . .
WriteLn(' Какое число будет обозначать слово «Конец» ?');
ReadLn(Pr);
A:=Pr+1;
While A<>Pr do
begin
WriteLn(' Введите очередное число ');
ReadLn(A);
if A<>Pr then
. . .
end;
. . .
Этому оператору в блок-схеме соответствует структура, изображенная на рисунке
Рисунок 10. Структура
оператора цикла “While”
Оператор итеративного цикла с постусловием
Вид оператора:
Repeat
< операторы тела цикла>;
until <логическое выражение>;
Логическое выражение – это условие окончания цикла.
Тело цикла выполнится не менее одного раза, предварительные фиктивные значения для данных не требуются. Отметим, что тело цикла и при наличии нескольких операторов, в скобки begin .. end заключать не надо, так как Repeat и until сами выполняют роль скобок.
Как и в случаях с циклами For и While, в теле цикла можно использовать операторы continue и break, например, для работы с числами, пропуская отрицательные, можно использовать такой фрагмент программы:
. . .
WriteLn(' Какое число будет обозначать слово «Конец» ?');
ReadLn(Pr);
Repeat
WriteLn(' Введите очередное число ');
ReadLn(A);
if (A<>Pr) and (A<0) then
continue; { возврат на начало тела цикла }
. . .
until A = Pr;
. . .
Этому оператору в блок-схеме соответствует структура, изображенная на рисунке
Рисунок 11. Структура
оператора цикла “ Repeat ”