
Приветствуем читателей нашего сайта! Сегодня мы с вами решим задачи for25-30.
For25-30
For25. Дано вещественное число X (|X| < 1) и целое число N (> 0). Найти значение выражения
X − X2/2 + X3/3 − … + (−1)N−1·XN/N.
Полученное число является приближенным значением функции ln в точке 1 + X.
program for25;
var
i, N: integer;
Sum, a, x: real;
begin
write('Введите N: ');
readln(N);
write('Введите x: ');
readln(x);
a := x; //первое слагаемое
Sum := x; //начальная сумма
for i := 2 to N do
begin
a := -a * x; // возводим слагаемое в следующую степеь и меняем знак на противоположный
Sum := Sum + a / i // находим сумму
end;
writeln;
writeln('Значение суммы: ', Sum:0:3)
end.
For26. Дано вещественное число X (|X| < 1) и целое число N (> 0). Найти значение выражения
X − X3/3 + X5/5 − … + (−1)N·X2·N+1/(2·N+1).
Полученное число является приближенным значением функции arctg в точке X.
program for26;
var
i, N: integer;
Sum, a, x, y: real;
begin
write('Введите N: ');
readln(N);
write('Введите x: ');
readln(x);
y := Sqr(x); // запоминаем х в квадрате
a := x; // начальное слагаемое
Sum := x; // начальная сумма
for i := 2 to N do
begin
a := -a * y; // возводим слагаемое в послеследующую степень и меняем знак на противоположный
Sum := Sum + a / (2 * i + 1) // находим сумму
end;
writeln;
writeln('Значение суммы: ', Sum:0:3);
end.
For27. Дано вещественное число X (|X| < 1) и целое число N (> 0). Найти значение выражения
X + 1·X3/(2·3) + 1·3·X5/(2·4·5) + … +
+ 1·3·…·(2·N−1)·X2·N+1/(2·4·…·(2·N)·(2·N+1)).
Полученное число является приближенным значением функции arcsin в точке X.
Для того чтобы решить эту задачу, нам нужно всего лишь внимательно посмотреть на формулу в условии задачи. Просто занесем значения 2 * i — 1, 2 * N, 2 * N + 1 в переменные. И не забывайте накапливать их результат!
program for27;
var
x, Sum, a, b, c, y: real;
N, i: integer;
begin
write('Введите N: ');
readln(N);
write('Введите x: ');
readln(x);
Sum := x;
a := x; //в этой переменной будет изменяться х
b := 1; //часть выражения, которая стоит перед х(умножение)
c := 1; //часть выражения, которая стоит после х(деление)
y := Sqr(x); //запоминаем х в квадрате
for i := 1 to N do
begin
b := b * (2 * i - 1);
c := c * (2 * i);
a := a * y;
Sum := Sum + b * a / (c * (2 * i + 1));
end;
writeln('Значение суммы: ', Sum:0:3);
end.
For28. Дано вещественное число X (|X| < 1) и целое число N (> 0). Найти значение выражения
1 + X/2 − 1·X2/(2·4) + 1·3·X3/(2·4·6) − … +
+ (−1)N−1·1·3·…·(2·N−3)·XN/(2·4·…·(2·N)).
Полученное число является приближенным значением функции (1+X)1/2.
Данная задача очень похожа на предыдущую.
program for28;
var
x, Sum, a, b, c, y: real;
N, i: integer;
begin
write('Введите N: ');
readln(N);
write('Введите x: ');
readln(x);
Sum := 1;
a := 1; //в этой перемнной будет изменяться х
b := 1; //часть выражения, которая стоит перед х(умножение)
c := 1; //часть выражения, которая стоит после х(деление)
for i := 1 to N do
begin
b := b * (2 * i - 3);
c := c * (2 * i);
a := -a * x; // возводим слагаемое в следующую степень и меняем знак на противоположный
Sum := Sum + b * a / c;
end;
writeln('Значение суммы: ', Sum:0:3);
end.
For29. Дано целое число N (> 1) и две вещественные точки на числовой оси: A, B (A < B). Отрезок [A, B] разбит на N равных отрезков. Вывести H — длину каждого отрезка, а также набор точек
A, A + H, A + 2·H, A + 3·H, …, B,
образующий разбиение отрезка [A, B].
program for29;
var
i, N: integer;
A, B, H, C: real;
begin
write('A = ');
readln(A);
write('B = ');
readln(B);
write('N = ');
readln(N);
H := (B - A) / N;
writeln('Длина отрезков: ', H:0:2);
writeln('Набор точек при делении:');
writeln;
{ Вычисляем набор точек: }
for i := 0 to N do
begin
C := A + i * H; //вычисляем i-ую точку
writeln('A + ', i, ' * H = ', C:0:2)
end;
end.
For30. Дано целое число N (> 1) и две вещественные точки на числовой оси: A, B (A < B). Отрезок [A, B] разбит на N равных отрезков. Вывести H — длину каждого отрезка, а также значения функции F(X) = 1 − sin(X) в точках, разбивающих отрезок [A, B]:
F(A), F(A + H), F(A + 2·H), …, F(B).
program for30;
var
i, N: integer;
A, B, H, C: real;
begin
write('A = ');
readln(A);
write('B = ');
readln(B);
write('N = ');
readln(N);
H := (B - A) / N;
writeln('Длина отрезков: ', H:0:2);
writeln('Набор точек при делении:');
writeln;
{ Вычисляем набор точек: }
for i := 0 to N do
begin
C := A + i * H; //вычисляем i-ую точку
writeln('A + ', i, ' * H = ', C:0:2);
writeln('F(', C,') = ', 1 - Sin(C):0:3)
end
end.
На сегодня всё! Если у вас возникли какие-либо вопросы, не стесняйтесь, задавайте их в комментариях. Я постараюсь ответить на все!
можно вопрос по For25? я ввожу число N=3; X=0.5 и у меня выводит 0.39 а у вас 0.412 что у меня не так в коде??
program abc;
var x:real;
i,n,a:integer;
BEGIN
read(x,n);
a:=-1;
for i:=2 to n do
begin
x:=x-power(a,i)*(power(x,i)/i);
end;
write(x:0:3);
END.