- •1 Общие положения
- •2 Выражения
- •2.1 Арифметические выражения
- •2.2 Логические выражения
- •3 Операторы передачи управления
- •3.1 Программа разветвляющейся структуры
- •3.2 Оператор безусловного перехода
- •3.3 Оператор условного перехода if
- •3.4 Оператор выбора case
- •4 Примеры выполнения заданий алгоритмов разветвляющей структуры
- •Контрольные вопросы
- •Задания для самостоятельной подготовки
- •Отчет по лабораторной работе
- •Список рекомендуемой литературы
- •Задание к лабораторной работе
4 Примеры выполнения заданий алгоритмов разветвляющей структуры
Пример 4.1
Составить структурную схему и программу для вычисления функции m:
где а=0,0372; b=1, 74*10-2
Структурная схема алгоритма приведена на рис. 1.
{ Разветвляющейся алгоритм }
Program razvet;
var
A, B, M: real;
M1, M2: real;
begin
readln (A, B);
M1: =-(Abs(A)+Abs(b))/(A*A+B*B);
M1: =Exp(M1);
M2: =Abs(A+B);
C: =A*B;
if C>0. 5 then WriteLn('M=', M1);
else
if C>0,4 then {0,4<c<=0,5} WriteLn ('M=', M2);
else
WriteLn (‘счет завершен’)
end.
Рисунок 1 - Структурная схема к примеру 4.1
Пример 4.2
Составить структурную схему и программу для вычисления функции y:
где
Структурная схема приведена на рис. 2.
Рисунок 2 - Структурная схема к примеру 4.2
program F1;
const
Pi: =3.1416;
var
A, B, X, Xн, Xк, Hx, Y: real;
begin
read (A, B, Xн, Xк, Hх);
X: =Xн
while X<=Xк DO
begin
if X<=-Pi/2 then
Y: =2*sin(x)
else
if X<Pi/2 then
Y: =A*sin(X)+B
else
Y: =cos(X);
WriteLn(' X=', X, ' Y=', Y);
X: =X+Hх
end;
end.
Пример 4.3.
Ввести номер дня недели и вывести соответствующий ему день недели на русском и английском языках.
Program dnedeli;
var
N: integer; (* номер дня недели *)
begin
WriteLn ('Введите номер дня недели: ');
read (N);
case N of
1: WriteLn ('понедельник');
2: WriteLn ('вторник');
3: WriteLn ('среда');
4: WriteLn ('четверг');
5: WriteLn ('пятница');
6: WriteLn ('суббота');
7: WriteLn ('воскресенье')
end
end.
Рис. 3 - Структурная схема к примеру 4.3
Пример 4. 4
Заданы три числа, обозначающие число, месяц и год. Составить программу определения номера этого дня с началом года. Указание: Високосный год это тот, у которого номер делится на 4, но не делится на 100, или у которого номер делится на 400.
{ Определение номера дня года }
program ndg;
var
D, M, G, DN, MM : integer
begin
read (D, M, G); {D-день месяца, М-месяц, G-год}
Write (D: 3, '. ', M: 2, '. ', G: 4, ' - ');
Dg=D; (* Dg-день года *)
for Mm: =1 to M-1 DO
case Mm of
1, 3, 5, 7, 8, 10, 12 : Dg: =Dg+31;
4, 6, 9, 11 : Dg=Dg+30;
2: if (G mod 4=0) and (G mod 100<>0) OR (G mod 400=0) then
Dg: =Dg+29
else
Dg: =Dg+28;
end;
WriteLn (Dg : 3, 'день года')
end.
Контрольные вопросы
1. Какой вычислительный процесс называется разветвляющимся?
2. Какие операторы передачи управления Вы знаете?
3. Оператор перехода, укажите на его общий вид. Целесообразность
его использования в программе? Приведите пример.
4. Какие формы записи условного оператора Вы знаете? Приведите примеры.
5. Может ли условный оператор содержать в себе другие условные операторы?
Как называется такая конструкция? Приведите примеры.
6. Зачем необходимо при отладке программы тестировать все ветви алгоритма?
7. Оператор выбора и его назначение.
8. Приведите пример программы с использованием вложенных операторов
выбора.
9.Приведите пример программы с использованием вложенных операторов if.
10. Приведите пример программы с использованием условного оператора,
внутри которого имеется составной оператор.
