ПОМОГИТЕ ПОЖАЛУЙСТА ПРОГРАММУ СДЕЛАТЬ+ блок схема+результат. СМ ФОТО

0 голосов
51 просмотров

ПОМОГИТЕ ПОЖАЛУЙСТА ПРОГРАММУ СДЕЛАТЬ+ блок схема+результат. СМ ФОТО


image

Информатика (227 баллов) | 51 просмотров
0

Посмотрите предыдущее задание

0

В предыдущем про дата....причем оно тут?

0

да конечно

0

Давайте с этим определимся. Блок-схема, программа и результат реального по ней счета, а не "ручного" устроят?

0

Кстати, по приведенной формуле выходит проверка 0.3978052126200274343=0.3444444444444444444. Т.е., как я писал выше - бред...

0

Вот как руками получить такое? 0.3978052126200274343

0

Предыдущее задание никак не связано с этим. Я просто предложила сделать его)

0

А еще меня умилило "ручной просчет". х в двадцатой при х=0.1 - это двадцать знаков после запятой. А начинать от 0.3. Никакой калькулятор не "съест" чисел с двадцатизначной точностью. Так что бредятина это. Как и 0.5 возводить в пятнадцатую и прочие степени

0

там что, на сама деле написано, что сумма n(n+2), умноженных на x в степени n, равна х(3+х)/(1-х) & Может там дальше еще степени или факториалы, а я их не вижу?

0

Задание переписано может и правильно... но тогда оно неправильно изначально

Дан 1 ответ
0 голосов
Правильный ответ

Var
  n: integer;
  s, x, xn, y: double;

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.



(142k баллов)
0

Сколько было, столько и выставила)

0

Ну ничего, и с 0 звездочек проживу)))))))

0

да с телефона

0

Вы что, с телефона? Иконка левее рупора с конвертиком

0

В этом приложение нет лс. Я не нашла

0

Читайте ЛС, оно как раз по нему

0

Поняла. Не хотите потом, мое предыдущее задание выполнить?

0

Я там личное сообщение написал Вам по другой задачею

0

Через некоторое время, отмечу как лучший ответ. Тогда еще звездочки прибавятся

0

Тогда все понятно. Вам не повезлою