Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
up_ktr_z.doc
Скачиваний:
6
Добавлен:
15.08.2019
Размер:
428.54 Кб
Скачать

3. Программирование алгоритмов разветвляющейся структуры

Пример. Вычислить значение функции.

если

а) с использованием условного оператора if-then-else

Паскаль-программа

Program prim21;

var a,b,c,x,y:real;

n:integer;

begin

write(‘Введите а=’); readln(a);

x:=ln(abs(a-cos(a)));

c:=x*a; b:=x+a;

if c<=0 then

begin y:=-10.5; n:=1; end

else

if c=>3.5 then

да begin y:=c+ln(b); n:=3; end

else

нет begin y:=exp(c)+2*b; n:=2; end;

writeln(‘x=’,x:1:3,’ c=’,c:1:3,’ y=’,

да y:1:3,’ n=’,n);

end.

нет

y=eс+2b, n=2

y=c+lnb, n=3

Результат

y=-10.5, n=1

Введите а=7.35

x=1.927 c=14.162 y=16.389 n=3

б) c использованием оператора выбора case

Паскаль-программа

Program prim22;

var a,b,c,x,y:real;

k:integer;

begin

write(‘Введите а=’); readln(a);

x:=ln(abs(a-cos(a)));

c:=x*a; b:=x+a;

if c<=0 then k:=1 else

if c<=3.5 then k:=2 else k:=3;

case k of

1: y:=-10.5;

да 2: y:=exp(c)+2*b;

3: y:=c+ln(b);

нет end;

да writeln(‘x=’,x:1:3,’ c=’,c:1:3,’

=’,y:1:3,’ k=’,k);

нет end.

Результат

Введите а=7.35

x=1.927 c=14.162

y=16.389 k=3

нет

да k=1

y=ec+2b

k=2

k=3

4. Суммирование рядов

Задача. Разработать программу вычисления точного Y и прибли-женного S значений функции при изменении её аргумента от xн до xк

с шагом Δx.

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

Ниже рассмотрены примеры суммирования бесконечных рядов трех типов:

а) текущий член ряда ai вычисляется непосредственно;

б) текущий член ряда ai вычисляется по рекуррентной формуле

,

где ;

в) текущий член ряда ai является произведением двух сомножителей , где вычисляется непосредственно, а -по рекуррентной формуле. Формула итерации для текущего члена находится в виде: ,

где .

Примеры

а) рассматривается вариант вычисления суммы бесконечного ряда, текущий член ai которого вычисляется непосредственно и имеет вид, например,

и т.д.

Пример 1.

; ;

;

- вычисляется непосредственно;

Блок-схема алгоритма

Паскаль-программа

program prim41;

const n=1000;e=0.0001;

label met;

var x,y,s,xn,xk,dx,a:real;

i:integer;

begin

write('Введите xn,xk,dx=>');

readln(xn,xk,dx);

x:=xn;

while x<=xk do

begin

y:=1/2-pi/4*abs(sin(x));

s:=0;

for i:=1 to n do

begin

a:=cos(2*i*x)/(4*i*i-1);

if abs(a)<e then goto met;

s:=s+a;

end;

met:writeln('x=',x:3:1,

‘y=',y:8:5,' s=',s:8:5,' i=',i);

x:=x+dx;

end;

readln

end.

нет

да

s=0

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