Найти максимум из множества чисел - 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
Объяснение кода листинга программы
Перед нами цикл, который совершает следующие действия:
- Создаёт три переменные: i, j, n (номер строки, номер столбца, числовое значение).
- Создаёт три другие переменные: x, mx, s (значение синуса, максимальное значение, строковое значение).
- Запускает цикл от 0 до 1023 (включительно).
- Внутри этого цикла есть другой цикл, который идёт от 0 до 9 (включительно).
- Внутренний цикл проверяет, является ли число чётным.
- Если число чётное, то к переменной x применяется функция синуса, если нечётное — косинуса.
- В каждую строку вперемешку добавляются цифры числа, полученного после проверки на чётность (добавляются все цифры, а не только те, которые соответствуют чётности или нечётности).
- После добавления всех цифр число делится на 2.
- Если полученное значение x больше максимального значения, то обновляются значения переменных mx и s.
- После завершения внешнего цикла выводятся значения переменных mx и s.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д