begin s := 0; x := 0.1; xn := x; for n := 1 to 20 do begin s := s + n * (n + 2) * xn; xn := xn * x end; y := x * (3 + x) / (1 - x); Writeln('Сумма (x=0.1, n=20)=', s, ', по формуле=', y ); s := 0; x := 0.5; xn := x; for n := 1 to 15 do begin s := s + n * (n + 2) * xn; xn := xn * x end; y := x * (3 + x) / (1 - x); Writeln('Сумма (x=0.5, n=15)=', s, ', по формуле=', y ); end.
Тестовое решение:
Сумма (x=0.1, n=20)=0.397805212620028, по формуле=0.344444444444445 Сумма (x=0.5, n=15)=9.99008178710938, по формуле=3.5
Как видно, если в первом случае формула еще дает какое-то приближение, то во втором она совершенно не годится.
Блок-схема, реализующая алгоритм, приведена в приложении. Она не копирует программу, а лишь поясняет алгоритм, который в программе использован дважды для разных данных. Конечно, правильнее было воспользоваться функциями и тогда программа выглядела бы так:
function f1(x: double; k: integer): double; var s, xn: double; n: integer;
begin s := 0; xn := x; for n := 1 to k do begin s := s + n * (n + 2) * xn; xn := xn * x end; f1 := s end;
function f2(x: double): double; begin f2 := x * (3 + x) / (1 - x); end;
begin Writeln('Сумма (x=0.1, n=20)=', f1(0.1, 20), ', по формуле=', f2(0.1)); Writeln('Сумма (x=0.5, n=15)=', f1(0.5, 15), ', по формуле=', f2(0.5)); end.
Вариант 1
Вставка, фигуры, текст. Вставляем текст. Активируем фигуру. Переходим в Формат, жмём Направление текста. Вуаля.
Вариант 2
Создаём таблицу 1×1 . Пишем текст. Активируем эту таблицу. Переходи в Макет, жмём Направление текста. Вуаля. Потом ещё можно в Главной убрать все границы у таблицы, чтобы было прямо один в один как страница.
Вариант 3
Если задача просто распечатать текст по-другому, то можно сделать Разметка, Ориентация, Альбомная.