Вычисление суммы необычного ряда (2) - QBasic

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

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

Дана последовательность чисел sin1, sin2, ... , sin1000 Между этими числами поставлены знаки операций умножения и сложения. Знаки ставятся перед числом (То есть число sin1 не участвует в определении операции) Как определяется операция? если в числе sin(i) первая цифра после десятичной запятой Нечетная, то перед этим числом ставится знак умножения, в противном случае - сложение Надо суммировать полученный ряд. .... Эта программа выдала ответ: 29.91009 С учетом погрешности вычислений последние три цифры можно отбросить Вопросы 1. Можно ли применить здесь рекурсию? 2. Какой уровень сложности этой задачи? 3. Как решить задачу иначе?

Решение задачи: «Вычисление суммы необычного ряда (2)»

textual
Листинг программы
DIM i AS LONG, a AS DOUBLE, b AS DOUBLE, s AS DOUBLE
b = SIN(1)
FOR i = 2 TO 1000
    a = SIN(i)
    IF INT(ABS(a) * 10) MOD 2 THEN b = b * a ELSE s = s + b: b = a
NEXT i
s = s + b
PRINT s

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

  1. Объявляются четыре переменные: i, a, b, s типа LONG и DOUBLE соответственно.
  2. Значение переменной b присваивается функции SIN(1).
  3. Запускается цикл от 2 до 1000, в котором: 3.1. Значение переменной a присваивается функции SIN(i). 3.2. С помощью условного оператора проверяется, является ли i четным числом (с помощью функции INT(ABS(a) * 10) MOD 2). 3.3. Если условие в пункте 3.2 выполняется, то значение переменной b умножается на значение переменной a. 3.4. Если условие в пункте 3.2 не выполняется, то значение переменной b присваивается переменной s, а значение переменной b присваивается значению переменной a.
  4. После завершения цикла значение переменной s присваивается сумме значений переменной s и переменной b.
  5. Выводится значение переменной s.

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


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

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

8   голосов , оценка 4 из 5
Похожие ответы