Вычислить "семиэтажную" дробь - QBasic

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

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

Дано выражение, которое надо вычислить Это только три "этажа" дроби. А всего 7. Дробь содержит 127 синусов. От sin1 до sin127 строго по-порядку подсказка маленькие дроби имеют вид: где 1 < n < 64 Программа решает эту задачу. Ответ: 2.778758 Автор просит оценить эту задачу по семибальной шкале (код, нестандартность, сложность) Вопросы Решали ли вы что-либо подобное? Есть ли рекурсивное решение? Есть ли иное решение?
Листинг программы
  1. REM
  2. REM OTBET: 2.778758
  3. REM
  4. CLS
  5. DIM A(1 TO 127)
  6. FOR i = 1 TO 127
  7. A(i) = SIN(i)
  8. NEXT
  9. n = 126
  10. DO
  11. IF n >= 64 THEN
  12. m = n / 2
  13. A(m) = A(m) / (A(n) + A(n + 1))
  14. n = n - 2
  15. ELSEIF n >= 32 THEN
  16. m = n / 2
  17. A(m) = A(m) / (A(n) + A(n + 1))
  18. n = n - 2
  19. ELSEIF n >= 16 THEN
  20. m = n / 2
  21. A(m) = A(m) / (A(n) + A(n + 1))
  22. n = n - 2
  23. ELSEIF n >= 8 THEN
  24. m = n / 2
  25. A(m) = A(m) / (A(n) + A(n + 1))
  26. n = n - 2
  27. ELSEIF n >= 4 THEN
  28. m = n / 2
  29. A(m) = A(m) / (A(n) + A(n + 1))
  30. n = n - 2
  31. ELSEIF n = 2 THEN
  32. m = n / 2
  33. A(m) = A(m) / (A(n) + A(n + 1))
  34. n = n - 2
  35. END IF
  36. LOOP UNTIL n = 0
  37. PRINT A(1)
  38. END

Решение задачи: «Вычислить "семиэтажную" дробь»

textual
Листинг программы
  1. DIM i AS LONG, s(1 TO 127) AS DOUBLE
  2. FOR i = 127 TO 1 STEP -1
  3.     IF i > 63 THEN s(i) = SIN(i) ELSE s(i) = SIN(i) / (s(i * 2) + s(i * 2 + 1))
  4. NEXT i
  5. PRINT s(1)

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

  1. Объявляются две переменные: i типа LONG и s типа DOUBLE с размером массива 127.
  2. Задаётся шаг цикла от 127 до 1 с шагом -1.
  3. Условие проверяет, что значение переменной i больше 63.
  4. Значение переменной s при условии от 64 до 127 присваивается SIN(i), иначе s(i) = SIN(i) / (s(i 2) + s(i 2 + 1)).
  5. После завершения цикла выводится значение переменной s(1).

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


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

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

10   голосов , оценка 4.2 из 5

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

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

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