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

2. Пример разветвляющейся программы

Условие. Ввести в ЭВМ 3 целых числа. Расположить их в порядке возрастания.

План

1. Ввести числа

2. Расположить по порядку

3. Вывести числа

Уточняем п. 2.

2.1. Если первое число больше второго, то поменять их местами.

2.2. Если второе больше третьего, то - перестановка.

2.3. Если первое больше второго, то перестановка.

Проверка:

Пусть введены числа: 125 67 3

В п.1 125 67 3

В п.2.1: 67 125 3

В п.2.2: 67 3 125

В п.2.3: 3 67 125

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

PROGRAM Order;

Var

A,B,C: Integer; {основные переменные}

X: Integer; {вспомогательная (рабочая) переменная}

BEGIN

Writeln('Введите 3 целых числа');

Read(А,В,С);

{п. 2.1}

IF A>B Then

Begin {перестановка}

X:= A;

A:= B;

B:= X;

End;

{п. 2.2}

IF A>B Then

Begin

X:= B;

B:= D;

D:= X;

End;

{п. 2.3}

IF A>B Then

Begin

X:= A;

A:= B;

B:= X;

End;

Writeln('РЕЗУЛЬТАТ:', A,B,C);

END.

3. Оператор case

Оператор IF позволяет выбрать один из двух возможных путей решения. В ряде случаев таких путей бывает гораздо больше. При этом также необходимо выбрать один из них. Применение оператора IF для таких задач очень неэффективно.

В Паскале для выбора одного из нескольких путей решения используется оператор CASE – обобщение условного оператора. В общем виде этот оператор записывается так:

CASE выражение OF

(случай) (из)

значения1:оператор1;

значения2:оператор2;

. . . . . . . . . .

значенияN: операторN;

END; (конец списка выбора)

Выражение записывается относительно специальной переменной выбора (селектора), которая может быть любого перечислимого типа (Integer, Char).

Значения1, . . . , Значения N – значения выражения, при которых выполняются оператор1, . . . , оператор N соответственно.

Если селектор принял значение, не принадлежащее ни одному из перечисленных, то оператор CASE пропускается и выполняется следующий за ним оператор (как для неполного IF).

Пример.

CASE NUM mod 2 OF

0: WRITELN('четное');

1: WRITELN('нечетное')

END;

или

CASE MONTH OF

1,2,3: WRITELN('Первый квартал');

4,5,6: WRITELN('Второй квартал');

7,8,9: WRITELN('Третий квартал');

10,11,12: WRITELN('Четвертый квартал');

END;

Если после Значений i необходимо выполнять несколько операторов, они заключаются в блок:

Значения i: BEGIN

операторы i

END;

Оператор CASE можно использовать для перевода чисел из одной системы счисления в другую.

Пример.

Перевести римскую цифру в десятичное число. Цифра вводится клавиатуры, а затем на экране должен появиться ее десятичный эквивалент.

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

PROGRAM RIM;

VAR

R: CHAR;

N:INTEGER;

BEGIN

WRITELN('Введите римскую цифру');

READLN(R);

CASE R OF

'M': N:= 1000;

'D': N:= 500;

'C': N:= 100;

'L': N:= 50;

'X': N:= 10;

'V': N:=5;

‘I': N:= 1

END;

WRITE ('Десятичное число', N);

END.

Циклические алгоритмы и программы

1. Общая схема цикла

Основными задачами для ЭВМ являются те, в которых необходимо выполнять одни и те же операции над различными данными. Программы таких задач содержат гораздо меньше операторов, чем в действительности выполняет ЭВМ. Это достигается за счет того, что некоторые операторы выполняются много раз.

Определение 1. Группа многократно повторяющихся операторов называется циклом, а содержащая их программа – циклической.

Количество повторений цикла определяется значением некоторой управляющей переменной.

Определение 2. Переменная, управляющая повторением цикла называется параметром цикла.

Общая схема циклического участка программы (алгоритма) может быть представлена в виде рис.7.

Рис.7. Общая схема циклического участка программы

Подготовка означает задание начальных значений переменных, используемых в вычислениях, и, в первую очередь, параметра цикла.

Рабочая часть выполняет необходимые вычисления и содержит многократно повторяемые операторы.

Изменение параметра – задает способ изменения параметра и позволяет перейти к его новому значению.

Блок "Проверка окончания" – в зависимости от значения параметра либо продолжает выполнение цикла (переход вверх), либо прекращает его (выход из цикла).

Блоки 1,3 и 4 являются необходимыми и типовыми для циклических алгоритмов и реализуются специальными операторами цикла. Блок 2 ( Рабочая часть ) - для каждой задачи свой.

По типу параметра и условию окончания циклы делятся на:

1) циклы со счетчиками;

2) итерационные.

В циклах со счетчиками количество повторений заранее известно; в итерационных – нет и выход из цикла осуществляется при определенном условии (достижении заданной точности, появлении некоторой ситуации).

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