Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Разветвляющиеся структуры.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
352 Кб
Скачать
☆

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. Приведите пример программы с использованием условного оператора,

внутри которого имеется составной оператор.