Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
файл 1 Основы языка паскаль и построение алгори...doc
Скачиваний:
0
Добавлен:
10.01.2020
Размер:
467.97 Кб
Скачать

Операторы циклов

Операторы циклов используются для повтора фрагментов программы. В языке 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. После окончания работы с файлом обязательно требуется закрыть его.