Задача 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 "Упорядоченный массив:"
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