Убрать из массива каждое второе число, пока не останется одно - QBasic
Формулировка задачи:
Подскажите, надо написать программу, в которой надо будет ввести максимальное число, затем она должна убрать все вторые числа в этом диапазоне, и так, пока не останется лишь одно число. Далее его надо вывести на экран.
Решение задачи: «Убрать из массива каждое второе число, пока не останется одно»
textual
Листинг программы
CLS INPUT "N = "; n DIM x(1 TO n) AS INTEGER FOR i = 1 TO n x(i) = i NEXT i = 1 f = 1 k = n DO IF x(i) > 0 THEN IF f > 0 THEN x(i) = 0 f = 0 i = i + 1 IF i > n THEN i = 1 k = k - 1 ELSE f = 1 i = i + 1 IF i > n THEN i = 1 END IF ELSE i = i + 1 IF i > n THEN i = 1 END IF LOOP UNTIL k = 1 FOR i = 1 TO n IF x(i) > 0 THEN PRINT x(i) NEXT END
Объяснение кода листинга программы
- Пользователю предлагается ввести число N, которое будет являться размером массива.
- Создается массив x размером N, и в него последовательно записываются числа от 1 до N.
- Начинается цикл, который будет проходить по всем элементам массива.
- Если значение элемента больше 0, и при этом переменная f больше 0, то это число заменяется на 0, переменная f сбрасывается в 0, и цикл переходит к следующему элементу.
- Если значение элемента больше 0, и при этом переменная f меньше 0, то это число заменяется на 0, переменная f сбрасывается в 1, и цикл переходит к следующему элементу.
- Если значение элемента меньше или равно 0, то цикл переходит к следующему элементу.
- Если значение элемента больше 0, и при этом переменная f больше 0, то это число заменяется на 0, переменная f сбрасывается в 0, и цикл переходит к следующему элементу.
- Если значение элемента больше 0, и при этом переменная f меньше 0, то это число заменяется на 0, переменная f сбрасывается в 1, и цикл переходит к следующему элементу.
- Если значение элемента меньше или равно 0, то цикл переходит к следующему элементу.
- Цикл продолжается до тех пор, пока не будет достигнуто условие k=1.
- Выводится на экран каждое ненулевое значение массива.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д