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

Примеры алгоритмов и программ

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

Пример. Вычислить значение функции y=sin x+ex+2, где x=ln a+,

b=cos 3a, a=7,25.

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

Расчет контрольного примера (к.п.)

;

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

Program prim1;

var a,b,x,y:real;

y=sinx+ex+2

begin

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

b:=cos(a)*cos(a)*cos(a);

x:=ln(a)+sqrt(abs(b));

y:=sin(x)+exp(x+2);

writeln (‘b=’,b:1:3, ‘ x=’,x:1:3,’ y=’,y:1:3);

end.

Контрольный пример:

Введите а=1

b=0.158 x=0.397 y=11.379

Вывод: программа работоспособна, т. к. значения результатов контрольного примера ручного и машинного счета приблизи-тельно совпадают.

Результат:

Введите а=7.25

b=0.183 x=2.409 y=82.855

2. Программирование алгоритмов циклической структуры

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

, где

при а, изменяющемся от ан до ак,

с шагом Δа

aн=2, ак=3, Δа=0,2

а) с использованием оператора цикла с предусловием while

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

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

Program prim31;

var an,ak,da,a,x,y:real;

begin

write(‘Введите an,ak,da=’);

a=aн

readln(an,ak,da);

a:=an;

while a<=ak+0.0001 do

begin

нет x:=ln(a);

y:=exp(1/3*ln(abs(sin(x))));

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

x=lna

x:5:3,’ y=’,y:5:3);

a:=a+da;

end;

end.

Результаты

a=a+Δa

Введите an,ak,da=2 3 0.2

a=2.0 x=0.693 y=0.861

a=2.2 x=0.788 y=0.892

a=2.4 x=0.875 y=0.916

a=2.6 x=0.956 y=0.935

a=2.8 x=1.030 y=0.950

a=3.0 x=1.099 y=0.962

б) с использованием оператора цикла с постусловием repeat-until

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

Program prim32;

var an,ak,da,a,x,y:real;

begin

write(‘Введите an,ak,da=’);

readln(an,ak,da);

a:=an;

repeat

x:=ln(a);

y:=exp(1/3*ln(abs(sin(x))));

writeln(‘a=’,a:3:1,’ x=’,x:5:3,

‘y=’,y:5:3);

a:=a+da;

until a>ak;

end.

Результаты

Введитеan,ak,da=2 3 0.2

a=2.0 x=0.693 y=0.861

a=2.2 x=0.788 y=0.892

нет a=2.4 x=0.875 y=0.916

a=2.6 x=0.956 y=0.935

да a=2.8 x=1.030 y=0.950

a=3.0 x=1.099 y=0.962

в) с использованием оператора цикла с параметром for

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

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

Program prim33;

n=[(aкн)/ Δa]+1

var an,ak,da,a,x,y:real;

i,n:integer;

begin

write(‘Введите an,ak,da=’);

a= aн

redln(an,ak,da);

n:=trunc((ak-an)/da)+1;

a:=an;

for i:=1 to n do

begin

x:=ln(a);

y:=exp(1/3*ln(abs(sin(x))));

x=lna

writeln(‘a=’,a:3:1,

‘ x=’,x:5:3,’ y=’,y:5:3);

a:=a+da;

end;

end.

Результаты

Введите an,ak,da=2 3 0.2

a=2.0 x=0.693 y=0.861

a=a+Δa

a=2.2 x=0.788 y=0.892

a=2.4 x=0.875 y=0.916

a=2.6 x=0.956 y=0.935

a=2.8 x=1.030 y=0.950

a=3.0 x=1.099 y=0.962