Как отсортировать массив по возрастанию паскаль
Автор Вано ванонавич задал вопрос в разделе Другие языки и технологии
упорядочен ли массив по возрастанию? (pascal abc.) Помогите с проверочной пожалуйсто, не понимаю информатику и получил лучший ответ
Ответ от Владислав !!![гуру]
{Сортировка массива по возрастанию методом прямого выбора}
program sortarr;
const
SIZE = 5;
var
a: array[1..SIZE] of integer;
i: integer; {номер элемента, от которого ведется поиск}
{минимального эл-та}
min: integer; {номер минимального элемента в части}
{массива от i до верхней границы массива}
j: integer; {номер эл-та, сравниваемого с минимальным}
buf: integer; {буфер, используемый при обмене эл-тов массива}
k: integer;
begin
writeln('Сортировка массива. ');
write('Введите', SIZE: 3, ' целых в одной строке ');
writeln('через пробел и нажмите <enter>');
for k := 1 to SIZE do read(a[k]);
writeln('Сортировка');
for i := 1 to SIZE - 1 do
begin
{поиск минимального эл-та
в части массива от a до a[SIZE]}
min := i;
for j := i + 1 to SIZE do begin
if a[j] < a[min] then min := j;
{поменяем местами a[min] и a}
buf := a;
a := a[min];
a[min] := buf;
{выведем массив}
for k := 1 to SIZE do write(a[k], ' ');
writeln;
end;
end;
writeln('Массив отсортирован. ');
end.
Предыдущий ответ не совсем соответствует вопросу. Как я понял, сортировать массив не требуется, нужно лишь проверить факт его упорядоченности 🙂
Ну это совсем просто:
1. Массив упорядочен по возрастанию, если каждый следующий его элемент НЕ МЕНЬШЕ предыдущего.
2. Когда речь заходит о предыдущем/следующем элементе массива, подразумевается попарное сравнение (n)-го и (n+1)-го элемента.
3. Там, где присутствует индексация элементов счетчиком (n), подразумевается цикл.
4. Поскольку мы заранее знаем, сколько элементов содержится в массиве, используем цикл FOR.
примерно так:
var
mass: array[0..9] of Integer; { объявляем массив из 10 элементов: минимальный номер элемента = 0, максимальный номер = 9 }
n: Integer; { создаем счетчик }
is_arranged: Boolean; { создаем флаг результата }
begin
{ здесь должен быть код заполнения массива числами }
is_arranged := True; { устанавливаем флаг результата в ОТСОРТИРОВАН }
for n := 0 to Length(mass) - 2 do { цикл, перебирающий массив от первого до ПРЕДпоследнего элемента }
begin
if mass[ n ] > mass[ n + 1 ] then { задаем ОБРАТНОЕ условие: если ХОТЯ БЫ ОДИН РАЗ окажется, что (n)-й элемент БОЛЬШЕ (n+1)-му элементу }
begin
is_arranged := False; { устанавливаем флаг результата в НЕ_ОТСОРТИРОВАН }
Break; { прерываем выполнение цикла досрочно }
end;
end;
if is_arranged = True then { цикл завершен. анализируем флаг результата }
WriteLn('массив упорядочен по возрастанию')
else
WriteLn('массив не упорядочен по возрастанию');
ReadLn; { стоп }
end.
Паскаль. Как отсортировать двумерный массив по возрастанию?
Сделай вот так:
var A : array [1..3, 1..3] of Byte; { Твой массив }
B : array [1..9]
подробнее...