Лаба10.отчет
.doc
Лабораторная работа №10
Работу выполнил:
студент 1-ФПП-2
Ненашев Владимир
Задание 1.
Составить программу, выводящую на экран таблицу тангенсов и десятичных логарифмов для первых N натуральных чисел.
Program Nen;
var tg,lg: real;
N,i: integer;
procedure tglg (y: integer; var t,l: real);
begin
t:=sin(y)/cos(y);
l:=ln(y)/ln(10);
end;
begin
writeln('Введите N');
readln (N);
writeln('x tg x lg x');
for i:=1 to N do
begin
tglg(i, tg, lg);
writeln(i,' ', tg:1:3, ' ', lg:2:3);
end;
end.
Ответ:
Введите N
1
x tg x lg x
1 1.557 0.000
Задание 2.
Дополнить программу задачи 1 возможностью табулирования гиперболических функций
=, =
Program Nen;
var sh,ch: real;
N,i: integer;
procedure shch (y: integer; var t,l: real);
begin
t:=(exp(y)-exp(-y))/2;
l:=(exp(y)+exp(-y))/2;
end;
begin
writeln('Введите N');
readln (N);
writeln('x sh x ch x');
for i:=1 to N do
begin
shch(i, sh, ch);
writeln(i,' ', sh:1:3, ' ', ch:2:3);
end;
end.
Ответ:
Введите N
1
x sh x ch x
1 1.175 1.543
Задание 3.
Написать программу, вычисляющую определенный интеграл от функции f(x) на отрезке [a;b] и производную функции g(x) в точке c. Организовать ввод с клавиатуры точек a,b,c; расчет g’(x) и I= и реализовать в процедуре. При решении задачи используйте таблицы производных и первообразных, формулу Ньютона-Лейбница:
=F(b)-F(a).
f(x)= e; g(x)=arctg(x); a=1.8; b=2.4; c=1.5
Program Nen;
var I,g,a,b,c: real;
procedure Ig (a,b,c: real; var I,g: real);
begin
I:=exp(b)-exp(a);
g:=1/(1+sqr(c));
end;
begin
writeln('Введите a b c');
readln (a,b,c);
Ig (a, b, c, I, g);
writeln(' ', I:1:3, ' ', g:2:3);
end.
Ответ:
Введите a b c
1,8
2,4
1,5
4,974 0,308
Задание 4.
Составить функцию, возвращающую x.
Program Nen;
var x: real; n: integer;
function power (y: real; p: integer): real;
var v: real;
begin
if y=0 then power:=0
else
begin
v:=exp(p*ln(abs(y)));
if y>0 then power:=v
else power:=-v;
end;
end;
begin
writeln('Введите основание степени x');
readln(x);
writeln('Введите показатель степени n');
readln(n);
writeln('x^n=', power(x,n));
end.
Ответ:
Введите основание степени x
2
Введите показатель степени n
3
x^n=8
Задание 5.
Составить программу вычисления суммы tg(x)+tg(x)+tg(x)+…+tg(x) для задаваемого пользователем с клавиатуры значения x.
Program Nen;
var x,s: real; k: integer;
function power (y: real; p: integer): real;
var v: real;
begin
if y=0 then power:=0
else
begin
v:=exp(p*ln(abs(y)));
if y>0 then power:=v
else power:=-v;
end;
end;
function tgk (x1,k1: real): real;
begin
tgk:=power(sin(x1)/cos(x1),k1);
end;
begin
s:=0;
writeln('Введите показатель степени x');
readln(x);
for k:=1 to 21 do
S:=S+tgk(x,k);
writeln('S=',S:5:3);
end.
Ответ:
Введите показатель степени x
0,75
S=10.543
Задание 6.
Написать программу, вычисляющую сумму или произведение первых N элементов некоторой последовательности. При этом, расчет элемента последовательности оформите в виде функции. Для выполнения операции возведения в степень используйте функцию, составленную в задаче 4.
= 0,008
Program Nen;
var x,s: real; k: integer;
function power (y: real; p: integer): real;
var v: real;
begin
if y=0 then power:=0
else
begin
v:=exp(p*ln(abs(y)));
if y>0 then power:=v
else power:=-v;
end;
end;
function sink (x1,k1: real): real;
begin
sink:=power(sin((5*3.14*k1+3*3.14)/15),k1);
end;
function znam (x1,k1: real): real;
begin
x:=2*k1;
znam:=power(7*k1+4,x);
end;
function znak (x1,k1: real): real;
begin
znak:=power(-1,k1);
end;
begin
s:=0;
for k:=1 to 17 do
S:=S+znak(x,k)*sink(x,k)/znam(x,k);
writeln('S=', S:5:3);
end.
Ответ: S=-0,008