Вычисление суммы необычного ряда (6) - QBasic
Формулировка задачи:
Надо вычислить сумму 100 слагаемых
f(1)^.07 + f(2)^.07 + ... + f(100)^.07
где f(i) - число Фибоначчи. Программа сосчитала и получила
число 800.0099. В качестве ответа можно записать 800.01
Вопросы
1. Как можно решить иначе?
2. Можно ли сократить вычисления? Ведь тут
числа Фибоначчи есть в каждом слагаемое.
3. Сложно ли понять программу? Что тут лишнее?
Листинг программы
- REM
- REM S = 800.0099
- REM
- DECLARE FUNCTION f! (n!, a!, b!)
- CLS
- CLEAR , , 20000
- FOR n = 1 TO 100
- S = S + f(n, 1, 1) ^ .07
- NEXT
- PRINT S
- END
- FUNCTION f (n, a, b)
- IF n <= 2 THEN
- f = a
- ELSE
- f = f(n - 1, a + b, a)
- END IF
- END FUNCTION
Решение задачи: «Вычисление суммы необычного ряда (6)»
textual
Листинг программы
- var
- count : integer := 0;
- function f(n : integer; a, b : double) : double;
- begin
- inc(count);
- if n <= 2 then result := a
- else result := f(n - 1, a+b, a);
- end;
- var s : double;
- begin
- for var i := 1 to 100 do s := s + power(f(i, 1, 1), 0.07);
- writeln(s:0:3);
- writeln(count);
- end.
Объяснение кода листинга программы
- Объявлены три переменные: count, a и b типа integer и double соответственно, а также переменная s типа double.
- Переменная count инициализируется значением 0 и используется в качестве счетчика в цикле.
- Определена функция f(n; a, b) типа double, которая принимает три аргумента типа integer и double.
- Внутри функции происходит увеличение значения переменной count на 1.
- Если значение переменной n меньше или равно 2, то результатом работы функции становится значение переменной a.
- В противном случае, функция вызывает саму себя (f(n-1, a+b, a)), передавая в нее уменьшенное на 1 значение n и суммарное значение a и b, а также a в качестве аргументов.
- Результатом работы функции всегда является значение типа double.
- После определения функции, объявлен цикл for, который выполняет 100 итераций.
- На каждой итерации значение переменной s увеличивается на результат вычисления функции f(i, 1, 1), возведенный в степень 0.07.
- После завершения цикла, выводится значение переменной s до трех знаков после запятой и значение переменной count.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д