Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
_МЕТ№1.DOC
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
180.74 Кб
Скачать

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

Он отличается от оператора REPEAT тем, что условие выполнения цикла проверяется до начала и цикл выполняется, только если оно истинно. Оператор с пред-условием – WHILE записывается следующим образом.

While условие do

Оператор1;

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

Рис.10. Схема выполнения оператора цикла While.

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

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

Пример.

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

Алгоритм:

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

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

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

2.2. Для множителя от 2 до ]число/2[

если число делится на множитель, то вывести множитель и частное и изменить предположение – не простое.

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

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

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

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

PROGRAM Mnog;

Const

d=2;

VAR

NUM,MN1,MN2,P: INTEGER;

BEGIN

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

READLN(NUM);

{ п.2 }

WHILE NUM<>0 DO

BEGIN

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

{ п.2.2 }

FOR MN1:=d TO NUM DIV d DO

BEGIN

IF NUM MOD MN1=0 THEN

BEGIN

MN2:= NUM DIV MN1;

WRITE(NUM1:4, NUM2:4);

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

END;

END;

{ п.2.3 }

IF P=0 THEN

WRITELN('ЧИСЛО ',NUM,' - ПРОСТОЕ');

{ п.2.4 }

WRITELN('Введите число');

READ(NUM);

END;

END.

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

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

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

Название

Общий вид

Действие

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

1

2

3

4

1

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

Перемен.:=выр.;

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

на место переменной

X:= 0;

Y:=A/B+C*D;

2

Ввода

READ(список ввода);

READLN(список);

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

READ (X,Y,A);

10.5 -2 0.1

3

Вывода

WRITE(список вывода); WRITELN(список);

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

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

X= 125.10000

1

2

3

4

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 M OF

9..12:WRITELN

('1 семестр');

2..6:WRITELN

('2 семестр');

End;

6

Цикла со счетчиком (FOR)

FOR пар.:=н.зн. TO

к.зн. DO

Оператор 1;

FOR пар.:=н.зн.

DOWNTO к.з.DO

Оператор 1;

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

n = к.зн.-н.зн.+1

S:=0;

FOR I:=1 TO 20 DO

S: = S+I;

7

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

REPEAT

операторы

UNTIL условие;

Выполнение опера-

торов пока условие

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

REPEAT

NUM:=NUM*2

UNTIL NUM>1000;

8

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

WHILE условие DO

оператор1;

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

"истинно".

WHILE NUM<1000 DO

NUM:=NUM*2;

9

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

PROGRAM имя;

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

PROGRAM PR1;

10

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

BEGIN

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

BEGIN

11

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

END;

END.

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

END;

END.

Таблица 1.2. Описание данных

Название

Общий вид

Действие

Пример

  1. Описание констант

CONST

имя1=зн1;

имя2=зн2;

Записывается в ОП значение на место имени

CONST

X=0;

A=’СТРОКА’;

  1. Описатель переменных

VAR

имя:тип;

имя:min..max;

Отводит в ОП место пол переменные, заданнёт их.

Var

X,Y: INTEGER;

A,B,C:Char;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]