Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМП к выполнению заданий 1-5 по информатике.doc
Скачиваний:
23
Добавлен:
17.03.2015
Размер:
429.06 Кб
Скачать

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