
Приветствуем читателей нашего сайта! Сегодня мы с вами решим задачи Proc41-45.
Proc41-45
Proc41. Описать функцию Sin1(x, ε) вещественного типа (параметры x, ε — вещественные, ε > 0), находящую приближенное значение функции sin(x): sin(x) = x – x3/(3!) + x5/(5!) – … + (–1)n·x2·n+1/((2·n+1)!) + ….
В сумме учитывать все слагаемые, модуль которых больше ε. С помощью Sin1 найти приближенное значение синуса для данного x при шести данных ε.
program proc41(for_23);
function Sin1(x, e: real): real;
var
a, y: real;
i: integer;
begin;
a := x;
y := Sqr(x);
Result := x;
i := 1;
while Abs(a) > e do
begin
a := -a * y / (i + 1) / (i + 2); //накапливаем значение слагаемого
Result := Result + a;
Inc(i, 2)
end
end;
var
x, e: real;
i: integer;
begin
write('Введите x: ');
readln(x);
for i := 1 to 6 do
begin
write('Введите е: ');
readln(e);
writeln('Sin(', x, ') = ', Sin1(x, e));
end
end.
Proc42. Описать функцию Cos1(x, ε) вещественного типа (параметры x, ε — вещественные, ε > 0), находящую приближенное значение функции cos(x):
cos(x) = 1 – x2/(2!) + x4/(4!) – … + (–1)n·x2·n/((2·n)!) + ….
В сумме учитывать все слагаемые, модуль которых больше ε. С помощью Cos1 найти приближенное значение косинуса для данного x при шести данных ε.
program proc42;
function Cos1(x, e: real): real;
var
a, y: real;
i: integer;
begin;
a := 1;
y := Sqr(x);
Result := 1;
i := 1;
while Abs(a) > e do
begin
a := -a * y / (i) / (i + 1); //накапливаем значение слагаемого
Result := Result + a;
Inc(i, 2)
end
end;
var
x, e: real;
i: integer;
begin
write('Введите x: ');
readln(x);
for i := 1 to 6 do
begin
write('Введите е: ');
readln(e);
writeln('Cos(', x, ') = ', cos1(x, e));
end
end.
Proc43. Описать функцию Ln1(x, ε) вещественного типа (параметры x, ε — вещественные, |x| < 1, ε > 0), находящую приближенное значение функции ln(1 + x):
ln(1 + x) = x – x2/2 + x3/3 – … + (–1)n·xn+1/(n+1) + ….
В сумме учитывать все слагаемые, модуль которых больше ε. С помощью Ln1 найти приближенное значение ln(1 + x) для данного x при шести данных ε.
program proc43;
function Ln1(x, e: real): real;
var
a, y: real;
i: integer;
begin;
a := x; //первое слагаемое
Result := x; //начальная сумма
i := 1;
repeat
inc(i);
a := -a * x; // возводим слагаемое в следующую степеь и меняем знак на противоположный
Result := Result + a / i // находим сумму
until Abs(-a * x/ (i + 1)) < e;
end;
var
x, e: real;
i: integer;
begin
write('Введите x: ');
readln(x);
for i := 1 to 6 do
begin
write('Введите е: ');
readln(e);
writeln('Ln(', x + 1, ') = ', Ln1(x, e));
end
end.
Proc44. Описать функцию Arctg1(x, ε) вещественного типа (параметры x, ε — вещественные, |x| < 1, ε > 0), находящую приближенное значение функции arctg(x):
arctg(x) = x – x3/3 + x5/5 – … + (–1)n·x2·n+1/(2·n+1) + ….
В сумме учитывать все слагаемые, модуль которых больше ε. С помощью Arctg1 найти приближенное значение arctg(x) для данного x при шести данных ε.
program proc43;
function Arctg1(x, e: real): real;
var
a, y: real;
i: integer;
begin;
a := x;
y := sqr(x);
Result := x; //начальная сумма
i := 1;
repeat
inc(i, 2);
a := -a * y; // накапливаем значение слагаемого
Result := Result + a / i
until Abs(-a * y/ (i + 2)) < e;
end;
var
x, e: real;
i: integer;
begin
write('Введите x: ');
readln(x);
for i := 1 to 6 do
begin
write('Введите е: ');
readln(e);
writeln('Arctg(', x, ') = ', Arctg1(x, e));
end
end.
Proc45. Описать функцию Power4(x, a, ε) вещественного типа (параметры x, a, ε — вещественные, |x| < 1; a, ε > 0), находящую приближенное значение функции (1 + x)a:
(1 + x)a = 1 + a·x + a·(a–1)·x2/(2!) + … + a·(a–1)·…·(a–n+1)·xn/(n!) + ….
В сумме учитывать все слагаемые, модуль которых больше ε. С помощью Power4 найти приближенное значение (1 + x)a для данных x и a при шести данных ε.
program proc43;
function Power4(x, a, e: real): real;
var
b: real;
i: integer;
begin;
b := 1;
Result := 1; //начальная сумма
i := 1;
repeat
b := b * x * a / i; // накапливаем значение слагаемого
Result := Result + b;
inc(i);
a := a - 1;
until Abs(b * x * a / i) < e;
end;
var
x, e, a: real;
i: integer;
begin
write('Введите x: ');
readln(x);
write('Введите a: ');
readln(a);
for i := 1 to 6 do
begin
write('Введите е: ');
readln(e);
writeln('Power4(', x, ') = ', Power4(x, a, e));
end
end.
На сегодня всё! Если у вас возникли вопросы, задавайте их в комментариях. И не забывайте рассказывать о нашем сайте своим друзьям, кликая по этим замечательным круглым (квадратным) кнопочкам!
Товарищи, ну как же так… А дальше…