- •Уфимский государственный нефтяной технический университет Кафедра вычислительной техники и инженерной кибернетики учебно-методическое пособие
- •Введение
- •Состав контрольной работы
- •Требования к оформлению отчета
- •Примеры алгоритмов и программ
- •1. Программирование алгоритмов линейной структуры
- •2. Программирование алгоритмов циклической структуры
- •3. Программирование алгоритмов разветвляющейся структуры
- •4. Суммирование рядов
- •Результаты
- •Результаты
- •5. Работа с массивами
- •Список рекомендуемой литературы
- •Министерство общего и профессионального образования российской федерации
- •Символы к блок-схемам по гост 19.003-80
- •Содержание
Примеры алгоритмов и программ
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
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н
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
a:=a+da;
end;
end.
Результаты
a=a+Δa
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
i,n:integer;
begin
write(‘Введите an,ak,da=’);
a= aн
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
‘ x=’,x:5:3,’ y=’,y:5:3);
a:=a+da;
end;
Результаты
Введите an,ak,da=2 3 0.2
a=2.0 x=0.693 y=0.861
a=a+Δa
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