Исключить два наименьших по абсолютной величине элемента из массива - QBasic

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

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

Дан массив R из N элементов, исключить два наименьших по абсолютной величине элемента. Результат распечатать в виде: Исходный массив : Число элементов : Два наименьших элемента: Новый массив :

Решение задачи: «Исключить два наименьших по абсолютной величине элемента из массива»

textual
Листинг программы
  1. DECLARE SUB SDV (a!(), k!, n!)
  2. CLS
  3. RANDOMIZE TIMER
  4. CONST n = 14
  5. DIM R(1 TO n)
  6.  
  7. FOR i = 1 TO n
  8.    R(i) = INT(40 * RND) - 20
  9.    PRINT R(i);
  10. NEXT
  11. PRINT : PRINT
  12. PRINT "N ="; n
  13. PRINT
  14.  
  15. min = ABS(R(1))
  16. ind = 1
  17.  
  18. FOR i = 1 TO n
  19.    M = ABS(R(i))
  20.    IF min > M THEN
  21.       min = M
  22.       ind = i
  23.    END IF
  24. NEXT
  25.  
  26. IF ind <> 1 THEN
  27.    min2 = ABS(R(1))
  28.    ind2 = 1
  29. ELSE
  30.    min2 = ABS(R(2))
  31.    ind2 = 2
  32. END IF
  33.  
  34. FOR i = 1 TO n
  35.    IF i <> ind THEN
  36.       M = ABS(R(i))
  37.       IF min2 > M THEN
  38.          min2 = M
  39.          ind2 = i
  40.       END IF
  41.    END IF
  42. NEXT
  43.  
  44. PRINT "R("; ind; ") ="; R(ind)
  45. PRINT "R("; ind2; ") ="; R(ind2)
  46. PRINT
  47.  
  48. IF ind < ind2 THEN
  49.    CALL SDV(R(), ind2, n)
  50.    CALL SDV(R(), ind, n - 1)
  51. ELSE
  52.    CALL SDV(R(), ind, n)
  53.    CALL SDV(R(), ind2, n - 1)
  54. END IF
  55.  
  56. R(n) = 0
  57. R(n - 1) = 0
  58.  
  59. FOR i = 1 TO n - 2
  60.    PRINT R(i);
  61. NEXT
  62. END
  63.  
  64.  
  65. SUB SDV (a(), k, n)
  66.    FOR i = k TO n - 1
  67.       a(i) = a(i + 1)
  68.    NEXT i
  69. END SUB

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

Код выполняет следующие действия:

  1. Создает массив рандомных чисел от -20 до 20 и выводит его на экран.
  2. Находит минимальное значение в массиве по модулю и индекс этого значения.
  3. Если индекс первого минимального значения не равен 1, то ищет второе минимальное значение.
  4. Выводит на экран два наименьших по модулю значения из массива.
  5. Если первое минимальное значение больше второго, то меняет их местами с помощью подпрограммы SDV.
  6. Удаляет из массива первое и второе минимальные значения, заменяя их на 0.
  7. Выводит на экран оставшиеся значения массива, кроме двух последних, которые заменены на 0.
  8. Подпрограмма SDV используется для удаления элементов из массива, заменяя их на следующие элементы.

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


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

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

11   голосов , оценка 4.091 из 5

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

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

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