
- •Приложение 1 Краткие сведения о языке pascal п 1.1. Алфавит языка Pascal
- •П 1.2 Элементарные конструкции
- •П 1.3 Структура программы на языке Pascal
- •П 1.4 Типы данных
- •Целые типы
- •Вещественные типы
- •Логический тип (Boolean)
- •Символьный тип (Char)
- •Строковый тип(String)
- •Массивы
- •П 1.5. Основные операторы языка Pascal Оператор присваивания
- •Операторы ввода-вывода
- •Выходные форматы языка Pascal
- •Оператор условного перехода
- •Операторы циклов
- •Цикл с предусловием – оператор While
- •Цикл с постусловием – оператор Repeat
- •Операторы для работы с файлами
- •Примеры ввода и вывода данных в файл
- •Решение
- •Программа
- •П1.6. Использование стандартных процедур и функций модулей Crt и Graph в языке Pascal
- •Работа в текстовом режиме (модуль Crt)
- •Процедуры управления экраном
- •П 1.7. Процедуры и функции пользователя
- •Программа
- •Программа
- •Программа
- •Программа
- •Программа
- •Глобальные и локальные переменные
- •Фактические и формальные параметры. Передача параметров в подпрограммы
- •Программа
- •Результаты работы программы:
- •Программа
- •Результаты работы программы:
- •Программа
- •П 1.8. Интегрированная среда Turbo Pascal
- •П 1.9. Работа в интегрированной среде Turbo Pascal
- •Редактирование существующей программы
- •Отладка программы
- •Пример отладки
- •Алгоритм отладки программы
- •П 1.10. Правила и примеры построения схем алгоритмов
Операторы циклов
Операторы циклов используются для повтора фрагментов программы. В языке Pascal используется три вида операторов цикла: for, While, Repeat.
Структура оператора for:
Движение цикла «вверх» |
или |
Движение цикла «вниз» |
for <n>:=<n1> to <n2> do begin <операторы> end; |
for <n>:=<n1> downto <n2> do begin <операторы> end; |
где n – параметр цикла;
n1, n2 – начальное и конечное значения параметра цикла;
to, downto – служебные слова, означающие движение цикла «вверх» и «вниз».
Пример использования оператора цикла for
Фрагмент программы реализации возведения переменной A в третью степень:
…
p:= 1;
for i:= 1 to 3 do p:= p * A;
…
Пошаговая иллюстрация работы оператора for
Шаг 1. P = 1;
Шаг 2. I = 1;
Шаг 3. Если 1 < 3, то P = 1·А;
Шаг 4. I = 1 + 1 = 2;
Шаг 5. Если 2 < 3, то P = А·А;
Шаг 6. I = 2 + 1 = 3;
Шаг 7. Если 3 < 3, то P = А2·А;
Шаг 8. I = 3 + 1 = 4;
Шаг 9. Если 4 > 3, то выход из цикла.
Цикл с предусловием – оператор While
While <условие> do
begin
<операторы>
end;
где While, do – служебные слова (пока, выполнить). При выполнении <условия> выполняются <операторы>, после чего проверка <условия> повторяется. Если <условие> ложно (False), то «работа» While прекращается.
Пример использования оператора While
Фрагмент программы реализации возведения переменной А в третью степень:
…
i:= 1; p:= 1;
While i <= 3 do
Begin
p:= p * A;
i:= i + 1;
End;
…
Цикл с постусловием – оператор Repeat
Repeat <операторы> Until <условие>,
где Repeat, Until – служебные слова (повторять до тех пор, пока). Тело цикла (<операторы>) выполняется хотя бы один раз, после чего вычисляется <условие>, которое проверяется. Если его значение False, то <операторы> повторяются, в противном случае оператор Repeat...Until завершает свою работу.
Пример использования оператора Repeat
Фрагмент программы реализации возведения переменной A в третью степень.
…
i:= 1; p:= 1;
Repeat
p:= p * A;
i:= i + 1;
Until i > 3;
…
Сравнение циклов While, Repeat, For. В цикле While проверка условия выполнения цикла находится в начале цикла, а в Repeat – в конце. Цикл Repeat всегда выполняется хотя бы один раз, а цикл While может не выполнятся ни разу. В цикле While выход из цикла осуществляется, если условие ложно, а в Repeat – если условие истинно. При заранее известном числе циклов удобным является использование оператора for.
Операторы для работы с файлами
В языке Pascal существуют три класса файлов: типизированные, текстовые и нетипизированные. Каждому файлу в языке ставится в соответствие файловая переменная определенного типа. Для этого используется процедура
Assign(f : File, name : String),
где f – переменная файлового типа; name – строковое выражение, содержащее полное имя файла, включая диск и все подкаталоги. При отсутствии диска и подкаталогов в выражении name файловая переменная будет ссылаться на файл, который находится или будет находиться в текущем каталоге на текущем диске. Данная процедура всегда предшествует другим процедурам работы с файлами, так как ставит в соответствие конкретному файлу на внешнем устройстве логическую файловую переменную языка, к которой впоследствии будут обращаться все другие файловые процедуры.
Для описания переменной текстового файла используется служебное слово Text. Например, запись f:Text означает описание файловой переменной f, которая будет использоваться для работы с текстовым файлом.
Для ввода и вывода информации в файл используются следующие процедуры:
Reset(f : File) открывает существующий файл для чтения и записи;
Rewrite(f : File) создает и открывает новый файл для записи;
В текстовом файле может быть использована процедура открытия файла с добавлением информации в конец файла:
AppEnd(f : Text), где f – текстовая переменная.
Текстовый файл можно рассматривать как последовательность символов, разбитую на строки. Запись и чтение в файл осуществляются с помощью процедур ввода/вывода:
Read(f, Ww :Word) – чтение из файла, связанного переменной f и присваивание значений переменной Ww.
Write(f, Ww :Word) осуществляет запись переменной Ww в файл, на который указывает файловая переменная f. Дополнительно можно использовать процедуры Readln и Writeln, которые обеспечивают те же действия, что и Read и Write соответственно, но при этом еще осуществляют перевод на новую строку.
Операция закрытия файла является логическим окончанием работы с любым открытым файлом. Для этого служит процедура
Close(f : File)
Использование процедуры Close позволяет устранить связь файловой переменной с внешним файлом, установленную с помощью процедуры Assign. После окончания работы с файлом обязательно требуется закрыть его.