Убрать из массива каждое второе число, пока не останется одно - 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

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

  1. Пользователю предлагается ввести число N, которое будет являться размером массива.
  2. Создается массив x размером N, и в него последовательно записываются числа от 1 до N.
  3. Начинается цикл, который будет проходить по всем элементам массива.
  4. Если значение элемента больше 0, и при этом переменная f больше 0, то это число заменяется на 0, переменная f сбрасывается в 0, и цикл переходит к следующему элементу.
  5. Если значение элемента больше 0, и при этом переменная f меньше 0, то это число заменяется на 0, переменная f сбрасывается в 1, и цикл переходит к следующему элементу.
  6. Если значение элемента меньше или равно 0, то цикл переходит к следующему элементу.
  7. Если значение элемента больше 0, и при этом переменная f больше 0, то это число заменяется на 0, переменная f сбрасывается в 0, и цикл переходит к следующему элементу.
  8. Если значение элемента больше 0, и при этом переменная f меньше 0, то это число заменяется на 0, переменная f сбрасывается в 1, и цикл переходит к следующему элементу.
  9. Если значение элемента меньше или равно 0, то цикл переходит к следующему элементу.
  10. Цикл продолжается до тех пор, пока не будет достигнуто условие k=1.
  11. Выводится на экран каждое ненулевое значение массива.

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


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

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

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