- Учителю
- Урок по информатике 'Сортировка массивов'
Урок по информатике 'Сортировка массивов'
ПРОГРАММА СОРТИРОВКИ МАССИВА ПО ВОЗРАСТАНИЮ МЕТОДОМ «ПУЗЫРЬКА»
10 CLS
20 INPUT"ВВЕДИТЕ РАЗМЕР МАССИВА";N
30 DIM A(N)
Заполнить самим 40 DATA
50 FOR L=1 TO N
Ввод массива из блока данных 60 READ A(L)
70 NEXT L
80 PRINT"МАССИВ А",
Вывод начального массива 90 GOSUB 210
Пропуск строки перед сортировкой 95 PRINT
100 FOR J=1 TO N-1
Внешний Внутренний 110 FOR K=1 TO N-J
-
IF A(K) > A(K+1) THEN 130 ELSE 160
-
B=A(K)
-
A(K)=A(K+1)
-
A(K+1)=B
-
NEXT K
170 NEXT J
180 PRINT"МАССИВ А",
Вывод отсортированного массива 190 GOSUB 210
200 STOP
Подпрограмма 210 REM Подпрограмма вывода массива в строку
220 FOR L=1 TO N
Вывод массива 230 PRINT A(L);
240 NEXT L
Перевод печати на новую строку 250 PRINT
Возврат в основную подпрограмму 260 RETURN
270 END
KKKK
JJJJ
Да 100 FOR J=1 TO N-1
Да 110 FOR K=1 TO N-J
да нет Сравниваем
A(K) И A(K+1) 120 IF A(K)>A(K+1) THEN ELSE
Меняем 130 B=A(K)
Местами 140 A(K)=A(K+1)
A(K) И A(K+1) 150 A(K+1)=B
160 NEXT K
170 NEXT J
СОРТИРОВКА МАССИВА ПО ВОЗРАСТАНИЮ МЕТОДОМ «ПУЗЫРЬКА»
ПУСТЬ N=5 (10,5,1,6,0)
J=1
A
10
5
1
6
0
K K+1 FOR K=1 TO 4
K=1
10
5
1
6
0
Если A(1) > A(2)-----меняем местами элементы А(1) И A(2)
К=2
5
10
1
6
0
Если A(2) > A(3)-----меняем местами элементы А(2) И A(3)
К=3
5
1
10
6
0
Если A(3) > A(4)-----меняем местами элементы А(3) И A(4)
К=4
5
1
6
10
0
Если A(4) > A(5)-----меняем местами элементы А(4) И A(5)
J=2
A
5
1
6
0
10
K K+1 FOR K=1 TO 3
K=1
5
1
6
0
10
Если A(1) > A(2)-----меняем местами элементы А(1) И A(2)
К=2
1
5
6
0
10
Если A(2) > A(3)-----меняем местами элементы А(2) И A(3)
К=3
1
5
6
0
10
Если A(3) > A(4)-----меняем местами элементы А(3) И A(4)
J=3
A
1
5
0
6
10
K K+1 FOR K=1 TO 2
K=1
1
5
0
6
10
Если A(1) > A(2)-----меняем местами элементы А(1) И A(2)
К=2
1
5
0
6
10
Если A(2) > A(3)-----меняем местами элементы А(2) И A(3)
J=4
A
1
0
5
6
10
K K+1 FOR K=1 TO 1
K=1
1
0
5
6
10
Если A(1) > A(2)-----меняем местами элементы А(1) И A(2)
A
0
1
5
6
10
Лабораторная работа
-
Наберите программу сортировки на компьютере, заполнив блок data в строке 40 своими значениями, запустите получите правильный результат.
-
Вставьте промежуточную печать, для этого исправьте строку 160 и добавьте строки 162, 164 и 166
160 PRINT "K=";K, Печать номера шага внутреннего цикла
162 GOSUB 210 Вывод промежуточного массива
164 NEXT K Конец внутреннего цикла
166 PRINT Пропуск строки между циклами
Домашнее задание
-
Выполните задание с карточкой, аналогично работе в классе, для сортировки по убыванию того же массива.
-
Подготовьте программу, выстраивающую в обратном порядке (т.е. по возрастанию) фамилии учеников вашей подгруппы, записанные латинскими буквами; ввод данных-с клавиатуры.