Задача:
Напишите программу, которая считывает список чисел и выводит их в порядке возрастания. Pascal.
План:
- Алгоритм решения
- Код программы
- Примеры входных данных и ожидаемых результатов
- Объяснение кода программы
- Блок-схема
Алгоритм решения:
-
Ввод данных:
- Запрос количества элементов
n
- Создание динамического массива
numbers
размеромn
- Ввод
n
чисел в массивnumbers
- Запрос количества элементов
-
Сортировка пузырьком:
- Внешний цикл от 0 до
n-2
:- Внутренний цикл от 0 до
n-i-2
: - Сравнение соседних элементов
numbers[j]
иnumbers[j+1]
- Если
numbers[j] > numbers[j+1]
, то обмен их местами:- Использование временной переменной
temp
для обмена
- Использование временной переменной
- Внутренний цикл от 0 до
- Внешний цикл от 0 до
-
Вывод отсортированного массива:
- Цикл от 0 до
n-1
:- Вывод каждого элемента
numbers[i]
- Вывод каждого элемента
- Цикл от 0 до
Код программы на языке Pascal:
Код Pascal
program SortNumbers;
var
numbers: array of integer;
n, i, j, temp: integer;
begin
Write('Enter the number of elements: ');
ReadLn(n);
SetLength(numbers, n);
WriteLn('Enter ', n, ' numbers:');
for i := 0 to n - 1 do
ReadLn(numbers[i]);
for i := 0 to n - 2 do
for j := 0 to n - i - 2 do
if numbers[j] > numbers[j + 1] then
begin
temp := numbers[j];
numbers[j] := numbers[j + 1];
numbers[j + 1] := temp;
end;
WriteLn('Sorted numbers:');
for i := 0 to n - 1 do
WriteLn(numbers[i]);
end.
Примеры входных данных и ожидаемых результатов:
Input:
Enter the number of elements: 5
Enter 5 numbers:
3
1
4
1
5
Output:
Sorted numbers:
1
1
3
4
5
---
Input:
Enter the number of elements: 7
Enter 7 numbers:
9
2
8
3
7
4
6
Output:
Sorted numbers:
2
3
4
6
7
8
9
---
Input:
Enter the number of elements: 4
Enter 4 numbers:
-5
10
0
-2
Output:
Sorted numbers:
-5
-2
0
10
Объяснение кода программы:
-
Объявление переменных:
Объявляются динамический массивvar numbers: array of integer; n, i, j, temp: integer;
numbers
и целочисленные переменныеn
,i
,j
,temp
. -
Ввод количества элементов:
Запрашивается и считывается количество элементов массива.Write('Enter the number of elements: '); ReadLn(n);
-
Установка размера массива:
Устанавливается длина динамического массиваSetLength(numbers, n);
numbers
равнойn
. -
Ввод чисел:
В цикле считываютсяWriteLn('Enter ', n, ' numbers:'); for i := 0 to n - 1 do ReadLn(numbers[i]);
n
чисел и записываются в массивnumbers
. -
Сортировка пузырьком:
Реализуется алгоритм сортировки пузырьком для упорядочивания элементов массива по возрастанию.for i := 0 to n - 2 do for j := 0 to n - i - 2 do if numbers[j] > numbers[j + 1] then begin temp := numbers[j]; numbers[j] := numbers[j + 1]; numbers[j + 1] := temp; end;
-
Вывод отсортированных чисел:
В цикле выводятся отсортированные числа из массиваWriteLn('Sorted numbers:'); for i := 0 to n - 1 do WriteLn(numbers[i]);
numbers
.