Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаба10.отчет

.doc
Скачиваний:
41
Добавлен:
07.06.2015
Размер:
66.05 Кб
Скачать

Лабораторная работа №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