Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Razdel_3_Pascal_lr1-9.doc
Скачиваний:
1
Добавлен:
07.12.2018
Размер:
744.45 Кб
Скачать

2 Программа "цикл и ветвление"

Пример 2

Дана функция

е1/3ln|z| +1, если z<0

y = 0 , если z=0

tg2x , если z>0

Написать программу для вычисления значений функции на

отрезке x [-1;1] с шагом 0.1 для z = sin x - 0.1.

В примере для каждого значения х сначала нужно определить z, а затем, если z < 0. то у вычислить по первой формуле, если z = 0, то у = 0 и если z > 0, то по третьей формуле.

150

Описание программы

В примере 2 использованы циклический и ветвящийся вычислительные процессы.

Вначале организуется цикл repeat по параметру х, а внутри цикла проверяются условия, обуславливающие ветвящийся вычислительный процесс, где для каждого значения переменной z =f(x) предусмотрена своя ветвь вычисления значений искомой функции у.

const

dx=0.1;

var

x,y,z: real;

begin

x:=-1;

repeat { цикл по x }

z:=sin(x) - 0.1;

if z<0 then

y:=exp(1/3*ln(abs(z)))+1

if z=0 then

y:=0

else

z:=(sin(x)/cos(x))^2;

writeln(' x=',x:4:3,'z(x)= z(',x:4:3,')=',z:4:3);

x:=x+dx;

until x>1;

end.

3 Программа "цикл в цикле и ветвление"

Пример 3

Вычислить сумму S положительных и произведение Р отрицательных значений функции y = cos t -b, в области t [-1;1] с шагом 0.2 и

в области b [-0.1;0.2] с шагом 0.1.

В примере - две переменные, t и b, нужно для каждого значения t просчитать все b, если y>0,, то прибавить его значение к предыдущей сумме S, если y<0, то умножить его на предыдущее произведение Р.

В примере 3 встречаются два циклических и ветвящийся вычисли-

тельные процессы. Внешний цикл организован по параметру t, внутренний цикл - по параметру b.

151

Внутри цикла после вычисления значения функции у осуществляется проверка условий ветвящегося вычислительного процесса, который реализует вычисление произведения p отрицательных значений функции (в случае выполнения условия у<0) и вычисление суммы s положительных значений функции, если у>0.

Программа

const

dt=0.2;

db=0.1;

var

t,b,y,s,p: real;

begin

t:=-1;

repeat { цикл по t }

b:=-0.1;

repeat { цикл по b }

y:=cos(t)-b;

if y<0 then

p:=p*y

else

s:=s+y;

writeln(' t=',t:2:1,' b=',b:2:1,

'y(t,b)= y(',t:2:1,',', b:2:1,')=',y:4:2,

's=',s:4:2, 'p=',p:4:2);

t:=t+dt;

until t>1;

b:=b+db;

until b>0.2;

end.

4 Контрольные вопросы

1 Назовите известные вам структуры алгоритмов.

2 Какие вычислительные процессы реализуются в сложных алгоритмах?.

3 Как организуются программы с вложенными циклами ?

4 Какие вычислительные процессы можно выделить в задании по вашему варианту ?

5 Охарактеризуйте синтаксис и особенность применения операторов if,

repeat.

152

6 Сколько циклов может быть вложено друг в друга ?

7 Как изменится программа примера 3, если оператор repeat заменить на оператор while?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]