Сортировка 
элементов массива

 

Задача 1. Составить программу сортировки числового массива по возрастанию методом отбора. Массив задать случайными числами.

 

REM Сортировка массива методом "пузырька"

CLS

    RANDOMIZE TIMER

    INPUT "введите размерность массива: "; n

    DIM a(n) AS  INTEGER

' Заполнение массива

  PRINT "Исходный массив:"

     FOR i = 1 TO n

         a(i) = INT(RND * 50 – 25)

         PRINT a(i);

         NEXT i

 ' Сортировка

     FOR i = 1 TO n

         FOR j = 1 TO n – 1

             IF a(j) > a(j + 1) THEN SWAP a(j), a(j + 1)

             NEXT j

             NEXT i

     PRINT

 ' Вывод массива

   PRINT "Упорядоченный массив:"

     FOR i = 1 TO n

         PRINT a(i);

         NEXT i

END

 

 

Задача 2. Составить программу сортировки списка фамилий учеников по алфавиту методом отбора. Фамилии учеников вводить с клавиатуры.

 

REM Сортировка методом "пузырька"

CLS

    INPUT "Введите количество фамилий в списке: "; n

    DIM a(n) AS STRING

' Ввод фамилий

PRINT "Введите фамилии"

    FOR i = 1 TO n

        PRINT i; ". ";

        INPUT a(i)

        NEXT i

' Сортировка

    FOR i = 1 TO n

        FOR j = 1 TO n – 1

             IF MID$(a(j), 1, 1) > MID$(a(j + 1), 1, 1) THEN SWAP a(j), a(j + 1)

             NEXT j

             NEXT i

' Вывод упорядоченного списка

    PRINT "Упорядоченный список: "

    FOR i = 1 TO n

          PRINT a(i)

          NEXT i

END

 

 

Задача 3. Составить программу сортировки массива по возрастанию методом отбора. Массив представить в виде прямоугольников разной высоты. Массив значений высот прямоугольников задать с помощью функции RND.

 

REM Сортировка методом "пузырька"

SCREEN 9

RANDOMIZE TIMER

INPUT "Введите размерность массива: "; n

DIM a(n) AS INTEGER

' Исходный массив

x = 5

y = 150

PRINT "Исходный массив: "

FOR i = 1 TO n

a(i) = INT(RND * 100)

LINE (x + 20 * i, y)-(x + 20 * i + 10, y – a(i)), 2, BF

NEXT i

' Сортировка

FOR i = 1 TO n

FOR j = i + 1 TO n

IF a(i) > a(j) THEN SWAP a(i), a(j)

NEXT j

NEXT i

' Вывод упорядоченного массива

y = 300

LOCATE 13, 1: PRINT "Упорядоченный массив: "

FOR i = 1 TO n

LINE (x + 20 * i, y)-(x + 20 * i + 10, y – a(i)), 2, BF

NEXT i

END

 

 

Назад

Hosted by uCoz