Элементы ДВУМЕРНОГО массива а(3,4): -4,5,-6,0,1,-2,8,-5,-1,4,-7,2. Задание: Отсортировать массив по убыванию- QBasic(Бейсик)

m = 3  ' Столбцы
n = 4  ' Строки
DIM A(m, n) AS INTEGER
  CLS   ' Заполним массив и на экран его
  RANDOMIZE TIMER
  PRINT "Ishodnyj massiv..."
  FOR i = 1 TO m
    FOR j = 1 TO n
    A(i, j) = RND * 20
    PRINT A(i, j);
    NEXT: PRINT
  NEXT
    ' Сортируем массив
  c = m * n
    ' Сортировка 1
  FOR j = c - 1 TO 1 STEP -1
    FOR i% = 1 TO j
     e1 = A(((i% - 1) MOD 3) + 1, (i% + 2) \ 3)
     e2 = A((i% MOD 3) + 1, (i% + 3) \ 3)
     IF e1 < e2 THEN SWAP e1, e2
     A(((i% - 1) MOD 3) + 1, (i% + 2) \ 3) = e1
     A((i% MOD 3) + 1, (i% + 3) \ 3) = e2
    NEXT
  NEXT
 PRINT : PRINT "Sorting 1..."
  FOR i = 1 TO m
    FOR j = 1 TO n
    PRINT A(i, j);
    NEXT: PRINT
  NEXT
    ' Сортировка 2
  FOR j = c - 1 TO 1 STEP -1
    FOR i% = 1 TO j
     e1 = A((i% + 3) \ 4, ((i% - 1) MOD 4) + 1)
     e2 = A((i% + 4) \ 4, (i% MOD 4) + 1)
     IF e1 < e2 THEN SWAP e1, e2
     A((i% + 3) \ 4, ((i% - 1) MOD 4) + 1) = e1
     A((i% + 4) \ 4, (i% MOD 4) + 1) = e2
    NEXT
  NEXT
 PRINT : PRINT "Sorting 2..."
  FOR i = 1 TO m
    FOR j = 1 TO n
    PRINT A(i, j);
    NEXT: PRINT
  NEXT

Тестирование выполнено в программе QB64 ( Скачать )

Leave a Comment