Приветствуем читателей нашего сайта! Сегодня мы с вами решим задачи 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.
На сегодня всё! Если у вас возникли вопросы, задавайте их в комментариях. И не забывайте рассказывать о нашем сайте своим друзьям, кликая по этим замечательным круглым (квадратным) кнопочкам!
Товарищи, ну как же так… А дальше…