Последовательным просмотром чисел ai...,an найти наименьшее i такое, что ai>ai+1. Поменять ai и ai+1местами и возобновить просмотр с начала массива. Когда не удастся найти такое i, массив будет упорядочен нужным образом
Категория: Delphi/Pascal
2012-01-19 20:21:12
code: #pascal
program PascalGuru; var A:array[1..50] of integer; {объявление переменной 1-мерного массива} n,i,k:integer; {переменные для цикла} swop:boolean; {булевая переменная} procedure exchange(var a,b:integer); {процедура меняющая местами 2 числа "a" и "b"} var c:integer; begin c:=a; a:=b; b:=c; end; {--- конец процедуры обмена 2-х чисел} {****************************************************************} begin {начало программы} writeln ('Vvedite razmer posledovatelinosti A:'); read (n); for i:=1 to n do begin write ('A[',i,']='); readln (A[i]); end;{Ввод последовательности с клавиатуры} write ('Vot vvedennaia vami posledovatelinosti A: '); for i:=1 to n do write (A[i],' '); {Вывод введенной последовательности на экран} writeln; writeln; k:=n; {временной переменной присваиваем размер последовательности} repeat {начало цикла, сортирующего последовательность} swop:=false; for i:=1 to k-1 do {цикл} if A[i]>A[i+1] then begin {если последующий элемент больше текущего: } exchange(A[i],A[i+1]); swop:=true; end; {обмениваем их} k:=k-1; {уменьшаем продолжительность цикла } until not swop; {--- конец цикла, сортирующего последовательность} write ('Vot otsortirovanaya posledovatelinosti A: '); for i:=1 to n do write (A[i],' '); {Выводим на экран отсортированную последовательность} readln; end.
Поделиться: