Найти максимум из множества чисел - QBasic

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

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

Дано множество из 1024 чисел. Числа имеют вид sin(cos(cos(.....sin(1)...)) или ему подобный То есть всего 10 функций. Либо sin, либо cos. Икс везде = 1 Надо на этом множестве найти максимальное число и вывести на экран. А также в кратком условном виде вывести само число (У меня sin=1, а cos=0 и число может иметь вид 1000111010) Вопрос Если вы посмотрите код, то там много ПОХОЖЕГО КОДА. Нельзя ли как-то "укоротить" программу?

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

textual
Листинг программы
DIM i AS LONG, j AS LONG, n AS LONG
DIM x AS DOUBLE, mx AS DOUBLE, s AS STRING, ms  AS STRING
FOR i = 0 TO 1023
    n = i
    x = 1
    s = ""
    FOR j = 0 TO 9
        IF n MOD 2 THEN x = SIN(x) ELSE x = COS(x)
        s = s + LTRIM$(STR$(n MOD 2))
        n = n \ 2
    NEXT j
    IF x > mx THEN
        mx = x
        ms = s
    END IF
NEXT i
PRINT mx, ms

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

Перед нами цикл, который совершает следующие действия:

  1. Создаёт три переменные: i, j, n (номер строки, номер столбца, числовое значение).
  2. Создаёт три другие переменные: x, mx, s (значение синуса, максимальное значение, строковое значение).
  3. Запускает цикл от 0 до 1023 (включительно).
  4. Внутри этого цикла есть другой цикл, который идёт от 0 до 9 (включительно).
  5. Внутренний цикл проверяет, является ли число чётным.
  6. Если число чётное, то к переменной x применяется функция синуса, если нечётное — косинуса.
  7. В каждую строку вперемешку добавляются цифры числа, полученного после проверки на чётность (добавляются все цифры, а не только те, которые соответствуют чётности или нечётности).
  8. После добавления всех цифр число делится на 2.
  9. Если полученное значение x больше максимального значения, то обновляются значения переменных mx и s.
  10. После завершения внешнего цикла выводятся значения переменных mx и s.

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

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