Найти сумму числового ряда - QBasic

Узнай цену своей работы

Формулировка задачи:

Задан ряд 1 + 2/(3*4) + (5*6)/(7*8*9) + (10*11*12)/(13*14*15*16) + ... Всего 25 слагаемых (625 натуральных чисел) Алгоритм ряда очевиден. Найти сумму этого ряда Для решения задачи была использована формула 1 + 3 + 5 + ... (2n-1) = n2 Вопросы 1. Есть ли иное решение? 2. Я ходил около рекурсивного решения, но не нашел? 3. Изначально я хотел для этого ряда задать число натуральных чисел, из которых он состоит, но эта задача оказалась сложнее. И я решил задавать число слагаемых. Может это не так сложно, как я думаю? примечание Очевидно, что если слагаемых N, то число натуральных чисел N2
Листинг программы
  1. REM
  2. REM 1 + 2/(3*4) + (5*6)/(7*8*9) + ...
  3. REM
  4. REM OTBET: 1.333347
  5. REM
  6. DECLARE FUNCTION f! (n!)
  7. CLS
  8. S = 1
  9. FOR i = 2 TO 25
  10. S = S + f(i ^ 2)
  11. NEXT
  12. PRINT S
  13. END
  14. FUNCTION f (n)
  15. h = SQR(n) - 1
  16. h1 = h ^ 2 + 1
  17. h2 = h1 + h - 1
  18. p = 1
  19. FOR i = h1 TO h2
  20. p = p * i / (i + h)
  21. NEXT
  22. f = p / n
  23. END FUNCTION

Решение задачи: «Найти сумму числового ряда»

textual
Листинг программы
  1. DIM s AS DOUBLE, m AS DOUBLE, i AS LONG, j AS LONG, k AS LONG
  2. s = 1
  3. k = 1
  4. FOR i = 1 TO 24
  5.     m = 1
  6.     FOR j = 1 TO i
  7.         k = k + 1
  8.         m = m * k / (k + i)
  9.     NEXT j
  10.     k = k + j
  11.     m = m / k
  12.     s = s + m
  13. NEXT i
  14. PRINT s

Объяснение кода листинга программы

  1. Переменная s инициализируется значением 1.
  2. Переменная m инициализируется значением 1.
  3. Переменная i инициализируется значением 1.
  4. Переменная j инициализируется значением 1.
  5. Переменная k инициализируется значением 1.
  6. Запускается цикл FOR для переменной i от 1 до 24.
  7. Внутри цикла FOR переменной m присваивается значение 1.
  8. Запускается вложенный цикл FOR для переменной j от 1 до текущего значения переменной i.
  9. Внутри вложенного цикла FOR переменной k присваивается значение текущего значения переменной k + значение переменной j.
  10. Переменной m присваивается значение k * (k + i) / (k + i).
  11. Выполняется команда NEXT j, чтобы перейти к следующей итерации вложенного цикла.
  12. Значение переменной k увеличивается на значение переменной j.
  13. Переменной m присваивается значение m / k.
  14. Значение переменной s увеличивается на значение переменной m.
  15. Выполняется команда NEXT i, чтобы перейти к следующей итерации внешнего цикла.
  16. Значение переменной k увеличивается на значение переменной i.
  17. Переменной m присваивается значение 1.
  18. После завершения циклов выводится значение переменной s.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.875 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы