Алгоритмы и программы с разветвлением

      Комментарии к записи Алгоритмы и программы с разветвлением отключены

Цель работы:

1. Построение схемы разветвляющегося алгоритма;

2. Изучение структур разветвления (условных операторов) ТР.

Типовой пример

Составить схему алгоритма и программу для вычисления значений

функции F для заданных значений переменной x и постоянных a, b.

F = a tgx +O |x-2| , при x2; (1)

F = (a2 — b2) Cos p , при x = 2; (2)

F = (x-2)3 Sin px/2 , при x2. (3)

Примечание: При составлении алгоритма и программы не забывайте

анализировать знаменатель (он не должен равняться нулю), учитывайте

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

В рассматриваемом примере значение подкоренного выражения всегда больше 0, арифметические функции Sinх и Cosх определены для любых значений х.

При вычислении значений функции tgx необходимо использовать выражение tgx = sinx /cosx. В связи с этим нужно анализировать значение, которое может принимать знаменатель: cosx не должен равняться 0. Все данные вещественного типа.

Схема алгоритма

да

Вычисле-ние F по форм. (1)

нет

x2 x

х=2

Текст программы с использованием структуры if … then …

{ Лабораторная работа 2}

{ Тема:…}

{ Выполнили: студенты гр. … Фамилии …}

{ Пример программы с разветвляющейся структурой}

{ Любые другие комментарии к программе }

{ Раздел описаний данных}

Const a=2.0; b=3.0;

Var x,F: real;

{ Раздел операторов}

Begin

Writeln(‘ Введите x’); {Запрос на ввод x}

Readln(x); {Ввод значения x}

if x2 then F:= (x-2)*(х-2)*(х-2)* Sin(Pi *х/2);

if x=2 then F:= (a*a-b*b)* Cos (Pi);

if x

F:= a*Sin(x)/Cos(x)+Sqrt (Abs(x-2))

else begin Writeln(‘ Знаменатель равен 0’);

exit { Выход из программы } end;

{Вывод результатов}

Writeln(‘ При x = ‘,x:6:2,’ F = ‘,F:8:3); readln;

End.

Текст программы

с использованием структуры if … then … else …;

{Лабораторная работа 2}

{Студенты гр. ….. Фамилии …}

{ Пример программы с разветвляющейся структурой}

{ Раздел описаний данных}

Const a=2.0; b=3.0;

Var x,F: real;

{ Раздел операторов}

Begin

Writeln(‘ Введите x’); {Запрос на ввод x}

Readln(x); {Ввод значения x}

if 0 x2 then F:= (x-2)*(х-2)*(х-2)* Sin(Pi/2*x)

else if x=2 then F:= (a*a-b*b)* Cos (Pi)

else if Cos(x)0 then

F:= a* Sin(x)/Cos(x)+ Sqrt(Abs(x-2))

else begin Writeln(‘ Знаменатель равен 0’);

exit { Выход из программы } end;

{Вывод результатов}

Writeln(‘ При x= ‘,x:6:2,’ F= ‘,F:8:3); readln;

End.

Варианты самостоятельных заданий

Оператор выбора

Для разветвления в программе более чем в 2-х направлениях, можно использовать оператор выбора:

CaseOFEnd

Или

CaseOF

ElseEnd

Ключ выбора — выражение любого порядкового типа;

-одна или более конструкций вида:

: ;

— выражение того же типа, что и ключ выбора;

Оператор выбора работает следующим образом: вычисляется значение выражения , а затем в последовательности операторов отыскивается такой, которому предшествует константа, равная вычисленному значению. Найденный оператор выполняется, после чего оператор выбора завершает работу. Если в списке выбора нет такой константы, то управление передается оператору, стоящему за ключеваым словом Else. Часть Else может отсутствовать и в этом случае оператор выбора завершает свою работу.

Операторы циклов

В языке ТР имеются три различных оператора, с помощью которых организуются циклические (повторяющиеся) фрагменты программ.

Статьи к прочтению:

Лабораторная работа по Pascal. Разветвленные алгоритмы


Похожие статьи: