Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Алгоритмы и алгоритмические языки. Учебное пособие
.pdf
71
управление в программе необходимо передать назад, то лучше
использовать операторы цикла.
Пример 4.1. Вычислить значение функции
, где
.
PROGRAM PR4.1;
USES CRT;
VAR
X, N: INTEGER;
Y, Z: REAL;
BEGIN
CLRSCR;
WRITE ('X='); READLN (X);
WRITE ('N='); READLN (N);
Y:=SIN(N*X)+0.5;
IF Y<>0 THEN
BEGIN
Z:=X/Y;
WRITE ('Z= ',Z:10:2)
END
ELSE
WRITE ('ДЕЛЕНИЕ НА НОЛЬ');
READKEY
END.
Вв.
+ –
В. '
Деление
на ноль
'
B.

72
Пример 4.2. Рис расфасован в два пакета. Вес первого – p1 кг,
второго – p2 кг. Составить программу, определяющую:
а) какой пакет тяжелее – первый или второй?
б) на сколько один пакет тяжелее другого?
PROGRAM PR_4.2;
USES CRT;
VAR P1, P2, R: REAL; {P1-ВЕС ПЕРВОГО ПАКЕТА, P2-ВЕС
ВТОРОГО ПАКЕТА ,R-РАЗНИЦА}
BEGIN
CLRSCR;
WRITELN ('ВВЕДИТЕ ВЕС ПЕРВОГО ПАКЕТА P1=');
READLN (P1);
WRITELN ('ВВЕДИТЕ ВЕС ВТОРОГО ПАКЕТА P2=');
READLN (P2);
IF P1>P2 THEN
BEGIN
R:=P1-P2;
WRITELN ('ПЕРВЫЙ ПАКЕТ ТЯЖЕЛЕЕ, ОН ВЕСИТ
НА',R:8:2,' КГ БОЛЬШЕ');
END
ELSE
IF P1<P2 THEN
BEGIN
R:=P2-P1;
WRITELN ('ВТОРОЙ ПАКЕТ ТЯЖЕЛЕЕ,
ОН ВЕСИТ НА',R:8:2,' КГ БОЛЬШЕ');

73
END
ELSE WRITELN (' ВЕС ПАКЕТОВ ОДИНАКОВЫЙ');
READKEY
END.
Оператор варианта
Оператор варианта (выбора) Case позволяет сделать выбор из
произвольного числа имеющихся вариантов. Он состоит из
выражения-селектора и списка параметров, каждому из которых
предшествует список констант выбора (список может состоять из
одной константы).
Формат оператора CASE:
CASE <выражение-селектор> OF
<список1>: <оператор1;>
<список2>: <оператор2;>
…
<список N>: <операторN>
ELSE
<оператор;>
END;
В операторе CASE управление передается тому оператору, в
котором значение константы выбора совпадает значению селектора, в
противном случае управление передается команде ветки ELSE.
Пример 4.3. Напишите программу для определения времени года
по номеру месяца.
PROGRAM PR4.3;
USES CRT;
VAR MONTH: INTEGER;
BEGIN
Вв. month
Month
12,1,2 3,4,5 6,7,8 9,10,11 иначе
В. 'Зим- В. 'Весен- В. 'Летний В. 'Осенний В. 'Нет
ний ний месяц' месяц' соответ
месяц' месяц' ствия!'

74
CLRSCR;
WRITELN ('ВВЕДИТЕ ЧИСЛО – НОМЕР МЕСЯЦА');
READ (MONTH);
CASE MONTH OF
12,1,2: WRITELN (MONTH,' – ЗИМНИЙ МЕСЯЦ');
3,4,5: WRITELN (MONTH,' – ВЕСЕННИЙ МЕСЯЦ');
6,7,8: WRITELN (MONTH,' – ЛЕТНИЙ МЕСЯЦ');
9,10,11: WRITELN (MONTH,' – ОСЕННИЙ МЕСЯЦ');
ELSE
WRITELN ('НЕТ СООТВЕТСТВИЯ!');
END;
READKEY
END.
Пример 4.4. Написать программу, которая анализирует человека
по возрасту и относит к одной из четырех групп: дошкольник, ученик,
работник, пенсионер. Возраст вводится с клавиатуры.
PROGRAM PR4.4;
USES CRT;
VAR VOZRAST: REAL;
BEGIN
CLRSCR;
WRITE ('ВВЕДИТЕ ВОЗРАСТ – ');
READLN (VOZRAST);
CASE VOZRAST OF
1..6: WRITE ('ДОШКОЛЬНИК');
7..17: WRITE ('УЧЕНИК');
18..60:WRITE ('РАБОТНИК');
ELSE
WRITE ('ПЕНСИОНЕР');
END;
READKEY
END.
Вв. vozrast
Vozrast
1..6 7..17 18..60 иначе
В.
'Дош- В. 'Уче- В. 'Ра- В. 'Пен-
кольник' ник' ботник' сионер'

75
Вопросы для самоконтроля
1. Что называют алгоритмом разветвляющейся структуры?
2. Какое условие называется простым?
3. Какое условие называется составным?
4. Для чего предназначены условные операторы?
5. Каковы формы условного оператора?
6. Какую структуру имеет оператор варианта?
7. Объясните принцип работы оператора варианта.
8. Чем отличается условный оператор от безусловного?
Задания для самостоятельной работы
В заданиях 1–26 для вычисления значения функции начертите
N – S-диаграмму и напишите программу на языке TP.
1.
2.
3. F=
4.
5.
.
6.
.
7.
8.
9.
10.
11.

76
12.
.
13.
14.
.
15.
.
16.
.
17.
18.
19.
.
20.
.
21.
22.
23.
24.
.
25.
26.

77
Тестовые задания №4
1. Для организации ветвления используется блок
A) процесс
B) решение
C) предопределенный процесс
D) модификация
2. Алгоритм называется разветвляющимся, если
A) действия выполняются последовательно друг за другом
B) некоторая последовательность действий повторяется многократно
C) существует условие выбора для выполнения действий
D) выполняется ранее разработанный алгоритм
3. Условный оператор организовывает
A) неполное ветвление
B) вложенный цикл
C) цикл с параметром
D) полное ветвление
4. В полном ветвлении существуют действия
A) только в ветке «Да»
B) в ветке «Да» и ветке «Нет»
C) только в ветке «Нет»
5. В неполном ветвлении существуют действия
A) только в ветке «Да»
B) в ветке «Да» и ветке «Нет»
C) только в ветке «Нет»
6. Служебное слово THEN означает
A) для
B) пока
C) тогда
D) если
Е) повторять
F) выполнить
7. Служебное слово ELSE означает
A) для
B) пока
C) тогда
D) если
Е) повторять
F) иначе

78
8. В случае истинности проверяемого условия в операторе IF
выполняются действия
A) только в ветке «Да»
B) в ветке «Да» и ветке «Нет»
C) только в ветке «Нет»
9. В случае ложности проверяемого условия в операторе IF
выполняются действия
A) только в ветке «Да»
B) в ветке «Да» и ветке «Нет»
C) только в ветке «Нет»
10. Полная форма условного оператора
A) IF <условие> THEN<оператор 1>;
B) IF <условие> THEN<оператор 1> ELSE <оператор 2>;
C) IF <условие> ELSE <оператор 1>;
D) IF <условие> ELSE <оператор 1> <оператор 2>;
11. Неполная форма условного оператора
A) IF <условие> THEN<оператор 1>;
B) IF <условие> THEN<оператор 1> ELSE <оператор 2>;
C) IF <условие> ELSE <оператор 1>;
D) IF <условие> ELSE <оператор 1> <оператор 2>;
12. В результате выполнения программы
PROGRAM PR3;
Var x, y, z, m: integer;
begin
x:=3; y=x+1; z:=x-1; if x>y then m:=x else m:=y*z-10; write (‘m=’,m)
end.
на экране будет напечатано
A) m=2
B) m=3
C) m=-32
D) m= -23
Е) m= -2
13. В результате выполнения программы
PROGRAM PR3;
Var x, y, z, m : integer;
begin
x:=5; y=4; z:=y div x; if z=y then m:=x*y else m:=x–y; write (‘m=’, m)
end.
на экране будет напечатано

79
A) m = 20
B) m = 4.2
C) m = 4
D) m = 16
Е) m = 1
14. В результате выполнения программы
PROGRAM PR3;
Var x,y,z,m : integer;
begin
x:=3; y:=x mod 5; z:=x div 5; if y=z then m:=x*sqr (y) div z else m:=x+y*z;
write (‘m=’, m)
end.
на экране будет напечатано
A) m =0
B) нет решений
C) m =5
D) m = 4,2
Е) m = 3
15. Результат выполнения программы
VAR A, B, MAKS: INTEGER;
BEGIN
A:=5;
B:=7;
IF A>B THEN MAKS:=A ELSE MAKS:=B;
WRITE (MAKS)
END.
A) 7
B) 5
C) MAKS=7
D) MAKS=5
Е) MAKS
16. Результат выполнения программы
VAR L, K: INTEGER;
BEGIN
K:=1;
IF K>5 THEN L:=K+7 ELSE L:= –K–1;
WRITE (L)
END.
A) 8

80
B) 0
C) -2
D) 1
17. Структура алгоритма
VAR F, V, Q: INTEGER;
BEGIN
READ (F, V); IF F>V THEN Q:=F*V ELSE Q:=F+V;
WRITE (Q)
END.
A) циклическая
B) вспомогательная
C) линейная
D) разветвляющаяся
18. Результат выполнения программы
VAR X,Y: REAL;
BEGIN
X:=10;
Y:=15; Y:=X–Y;
IF X:=Y THEN
BEGIN
X:=X+Y; WRITE (`X=`, X)
END
ELSE
BEGIN
Y:=X+Y; WRITE (`Y=`,Y)
END
END.
A) X=5
B) 5
C) Y=5
D) –5
19. Определите структуру алгоритма
VAR X,Y: REAL;
BEGIN
X:=10;
Y:=15; Y:=X–Y;
IF X:=Y THEN
BEGIN
X:=X+Y; WRITE (`X=`, X)
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
