Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Паскаль.doc
Скачиваний:
58
Добавлен:
07.06.2015
Размер:
1.21 Mб
Скачать

8.3.2. Оператор цикла с пред-условием

Он отличается от оператора Repeat тем, что условие выполнения цикла проверяется до начала. Цикл выполняется, если оно истинно. Оператор с пред-условием начинается служебным словом While. Общая форма его записи:

While условие do

Оператор1;

Схема работы оператора приведена на рис. 2.7.

В этом операторе условие также записывается относительно параметра. Если в теле цикла необходимо выполнить несколько операторов, то они заключаются в блок следующего вида:

Begin

операторы

End;

В отличие от Repeat цикл While может не выполняться ни разу.

Пример. Вычисление множителей последовательности целых чисел (см. пример словесного описания алгоритма из раздела "ПОНЯТИЕ АЛГОРИТМА И ЕГО СВОЙСТВА").

Алгоритм

1. Ввести первое число.

2. Пока нет признака конца последовательности выполнять

2.1. Положить число простое

2.2. Для делителя от 2 до ]число/2[ выполнять

если число делится на делитель, то

а) вывести делитель и

б) изменить предположение – «не простое».

2.3. Если число простое, то вывести: "простое число"

2.4. Прочитать следующее число.

3. Закончить.

Программа для этого алгоритма будет иметь вид

Program Dividers;

Const

d=2;

Var

Num, Del,P : Integer;

Begin

Writeln ('Введите число'); { п.1 }

Readln(Num);

{ п.2 }

While Num <>0 Do

Begin

P := 0; { п.2.1 – число простое }

For Del := d To Num Div d Do

Begin

If Num Mod Del=0 Then

Begin

Write(Del);

P := 1; { число не простое }

End;

End;

If P=0 Then{ п.2.3 }

Writeln('Число ',Num,' - простое');

Writeln('Введите число'); { п.2.4 }

Read(Num);

End;

End.

В программе использован оператор While, так как уже первое число может быть нулем и цикл выполнять не нужно.

Сведем основные операторы языка Паскаль и описатели данных в табл. 2 и 3 соответственно.

Основные операторы языка ПаскальТаблица 2

Название

Общий вид

Действие

Пример записи

1. Присваивания

Переменная = выражение;

Значение выражения записывается на место переменной

X:= 0;

Y:=A/B+C*D;

2. Ввода

Read(список);

Readln(список);

Перепись данных с устройства ввода в ОП. Readln – переход на новую строку

Read (X,Y,A);

3. Вывода

Write(список);

Writeln(список);

Перепись данных из ОП на устройство вывода. Writeln - переход на новую строку

Write ('X=',X:8:5.);

4. Условный

If Условие Then

Оператор1

Else

Оператор2;

Ветвление (выполнение оператора1 или оператора2)

If X>0 Then

Y := Sqrt(X)

Else

Y := Sqr(X);

5. Выбора

Case Выражение Of

Значение1 : Оператор1;

. . . . . .

ЗначениеN : ОператорN;

End;

Ветвление по N направленям

Case Month Of

3..5 : Writeln(' Весна');

6..8 : Writeln(' Лето');

End;

6. Цикла со счечиком (For)

For Пар.:= Н.З. To К.З. Do

Оператор 1;

For Пар.:= Н.З.Downto К.З. Do

Оператор 1;

Выполнение оператора1 n раз:

n = кон.знач. – нач.знач.+1

Выполнение оператора1 n раз:

n = нач.знач. – кон.знач.+1

S := 0;

For I := 1 To 20 Do

S := S+I;

7. Цикла с постусловием

Repeat

Операторы

Until Условие;

Выполнение операторов пока условие "ложно". Выполняется не менее 1 раза.

Num := 1;

Repeat

Num := Num*2;

Until Num>1000;

8. Цикла с предусловием

While Условие Do

Оператор1;

Выполнение оператора 1 пока условие "истинно".

Num := 1;

While Num<1000 Do

Num := Num*2;

9. Заголовок программы

Program Имя;

Начало программы

Program Pr1;

10. Начало блока операторов

Begin

Обозначение начала блока

Begin

11. Конец блока, программы

End;

End.

Обозначение конца блока или программы

End;

End.

Таблица 3.