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

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

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

Дана последовательность чисел sin1, sin2, ... , sin1000 Между этими числами поставлены знаки операций умножения и сложения. Знаки ставятся перед числом (То есть число sin1 не участвует в определении операции) Как определяется операция? если в числе sin(i) первая цифра после десятичной запятой Нечетная, то перед этим числом ставится знак умножения, в противном случае - сложение Надо суммировать полученный ряд. .... Эта программа выдала ответ: 29.91009 С учетом погрешности вычислений последние три цифры можно отбросить Вопросы 1. Можно ли применить здесь рекурсию? 2. Какой уровень сложности этой задачи? 3. Как решить задачу иначе?
Листинг программы
  1. REM
  2. REM OTBET: 29.91
  3. REM
  4. CLS
  5. n = 1000
  6. DIM M(1 TO n)
  7. FOR i = 1 TO n
  8. M(i) = SIN(i)
  9. NEXT
  10. FOR i = 2 TO n
  11. k = FIX(10 * ABS(M(i)))
  12. IF k MOD 2 THEN
  13. M(i) = M(i) * M(i - 1)
  14. M(i - 1) = 0
  15. END IF
  16. NEXT
  17. FOR i = 1 TO n
  18. SUM = SUM + M(i)
  19. NEXT
  20. PRINT SUM
  21. END

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

textual
Листинг программы
  1. DIM i AS LONG, a AS DOUBLE, b AS DOUBLE, s AS DOUBLE
  2. b = SIN(1)
  3. FOR i = 2 TO 1000
  4.     a = SIN(i)
  5.     IF INT(ABS(a) * 10) MOD 2 THEN b = b * a ELSE s = s + b: b = a
  6. NEXT i
  7. s = s + b
  8. 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

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

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

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