Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции.doc
Скачиваний:
19
Добавлен:
14.11.2018
Размер:
242.69 Кб
Скачать

Var a, b, c, h: real;

BEGIN

READ (A,B,C);

IF A<=B THEN GOTO 10

ELSE BEGIN

H: =A;

A:=B;

B:=H;

END;

10:IF A<=C THEN GOTO 20

ELSE BEGIN

H:=A;

A:=C;

C:=H;

END;

20:IF B<=C THEN GOTO 30

ELSE BEGIN

H:=B;

B:=C;

C:=H;

END;

30: Writeln (a, b, c)

END.

Оператор выбора (CASE) обеспечивает выполнение одного оператора (простого или составного) из нескольких возможных. Выбор оператора (последовательности операторов) определяется значением выражения (селектора), которое располагается между ключевыми словами CASE и OF. Значение выражения должно совпадать с константами, любому типу, кроме REAL. Выбор оператора определяется совпадением значения селектора и константы, стоящей перед оператором.

Пример 4 Написать программу для ввода на недели. Программа имеет вид:

PROGRAM DAYWEEK (INPUT, OUTPUT);

VAR NUMBER: INTEGER;

BEGIN

READ (NUMBER);

CASE NUMBER OF

1: WRITELN (‘ПОНЕДЕЛЬНИК’);

2: WRITELN (‘ВТОРНИК’);

3: WRITELN (‘СРЕДА’);

4: WRITELN (‘ЧЕТВЕРГ’);

5: WRITELN (‘ПЯТНИЦА’);

6: WRITELN (‘СУББОТА’);

7: WRITELN (‘ВОСКРЕСЕНЬЕ’); END; END.

Задание А. Вычислить на ЭВМ значение функции

если at < 1;

s = если at = 1;

если at > 1,

для a = 1,3, b = 1,29, t = 0,38.

Схема алгоритма решения представлена на блок – схеме (а). Блоки 3, 5, 7 осуществляют проверку условия — at меньше, равно или больше единицы — ив зависимости от результата сравнения направляют вычисления по одной из ветвей — 4, 6 или 8. Блок 9 выводит на печать полученное значение функ­ции s совместно с введенными исходными данными.

Представленная схема алгоритма не является единствен­ной. Число проверок можно сократить до двух блок - схема (б).

Программы, реализующие схему алгоритма, представ­ленную на блок – схеме (б), имеют вид

Рис 5.2

Программа на языке паскаль:

PROGRAM PRIM3A ( INPUT, OUTPUT) ;

{ЛАБОРАТОРНАЯ РАБОТА ПЗА}

{1 СТУДЕНТ ГРУППЫ РЛ-21 ИВАНОВ Я.}

VAR

А, В, Т, Б: REAL:

BEGIN

WR ITELN (‘ ВВЕДИТЕ А, В, Т');

READ (А, В, Т);

S: =А*Т+В;

IF А*Т=1 ТНЕN S:=COS(A*T);

IF А*Т>1 ТНЕN S:=EXP(-A*T)*COS(A*T);

WRITELN('A=',A:8:3,’ В=',В:8:3,' Т=',Т:8:3);

WRITELN('РЕЗУЛЬТАТ=',S:8:3);

END.

В качестве тестовых наборов исходных данных примем следующие тесты:

1) a = 1, b = 1, t = 0,5, s = 1 * 0,5 + 1 = 1,5;

2) а=1, b==1, t = 1, s = cos (1)= 0,5403;

3) a=2, b=1, t=1, s= e –2 cos (2) = 0,0563.

Задание Б. Вычислить на ЭВМ значение функции, указанной в задании А при изменении аргумента t в диапазоне t  [0,1; 2,1] с шагом 0,1. Вывод значений t и s выполнить в виде таблицы.

Схема алгоритма решения приведена на блок - схеме (а). Блоки 5, 6 выполняют собственно расчет значений функции с выдачей их на печать. Это рабочая часть цикла. Блоки 4, 7, 8 являются вспомогательными и служат для организации циклического повторения рабочей части цикла. Блок 4 задает начальное значение параметра цикла t, т. е. осуществляет подготовку цикла. Блок 7 вычисляет текущее значение пара­метра цикла, увеличивая значение аргумента (параметра цикла) на величину заданного шага. Блок 8 проверяет условие окончания цикла. Для печати заголовка таблицы служит блок 3.

Для цикла с известным числом повторений программа получается более компактной и наглядной, если для его организации использовать оператор цикла, который выпол­няет функции блоков 4, 7, 8.

Схема алгоритма решения с использованием блока моди­фикации (цикла) представлена в блок - схеме (б).

Программы, реализованные в соответствии со схемой алгоритма (а, б) имеют вид:

Программа на языке ПАСКАЛЬ

PROGRAM PRIH3B(INPUT, OUTPUT);

{ЛАБОРАТОРНАЯ РАБОТА ПЗБ}

{СТУДЕНТ ГРУППЫ РЛ-21 ИВАНОВ И. И}

VAR А, В, Т, S:REAL;

ТО,TK,DT:REAL;

BEGIN

WRITELN ('ВВЕДИТЕ А, В, ТО, TK, DT');

READ (А, В, ТО, TK, DT);

WRITELN ('ТАБЛИЦА ФУНКЦИИ S (Т) ‘);

WRITELN (‘ Т S(T) ‘);

Т:=ТО;

REPEAT

S: =А*Т+В;

IF А*Т=1 ТНЕN S:=COS(A*T);

IF А*Т>1 ТНЕН S:=EXP(-A*T)*COS(A*T);

WRITELN(Т: 10: 3 ' ',S:10;3);

Т: =T+DT

UNTIL T>TK;

END.