Произвести сортировку методом прямого выбора первого полученного массива по убыванию - Pascal
Формулировка задачи:
Заполнить массив из 20 элементов случайными числами от -10 до 5. Сформировать два массива, состоящие из первых 10 и последних 10 элементов исходного массива. Произвести сортировку методом прямого выбора первого полученного массива по убыванию, второго - по возрастанию.
Так же есть код, но нужно обозначить за что отвечает каждая строчка в сортировках первого и второго массива.
и расскажите пжлста в строах 38 и 54 почему мы пишем i+1 to 10 do
program l16v2; var a:array[1..20] of integer; b,c:array[1..10] of integer; i,j,k,t,i_2:integer; begin randomize; writeln('ishodniy massiv'); for i:=1 to 20 do begin a[i]:=random(16)-10; write (a[i],' '); end; writeln(); writeln('1 massiv'); for i:=1 to 10 do begin b[i]:=a[i]; write(b[i],' '); end; writeln; writeln('2 massiv'); for i:=1 to 10 do begin c[i]:=a[i+10]; write(c[i],' '); end; writeln(); writeln('sortirovka 1 massiva'); for i:=1 to 9 do begin for k:=1 to 10 do write(b[k],' '); writeln(); i_2:=i; for j:=i+1 to 10 do if b[i_2] < b[j] then i_2:=j; t:=b[i]; b[i]:=b[i_2]; b[i_2]:=t; end; writeln(); writeln('sortirovka 2 massiva'); for i:=1 to 9 do begin for k:=1 to 10 do write (c[k],' '); writeln(); i_2:=i; for j:=i+1 to 10 do if c[i_2] > c[j] then i_2:=j; t:=c[i]; c[i]:=c[i_2]; c[i_2]:=t; end; writeln(); end.
Решение задачи: «Произвести сортировку методом прямого выбора первого полученного массива по убыванию»
textual
Листинг программы
var a: array [1..20] of Integer; b, c: array [1..10] of Integer; i, j, k, t: Integer; begin Randomize; for j:=Low(a) to High(a) do a[j]:=-10+Random(16); {инициализация a} for j:=Low(b) to High(b) do begin b[j]:=a[j]; c[j]:=a[j+10]; {заполнение b и c} end; Write('A ='); for j:=Low(a) to High(a) do Write(' ',a[j]); WriteLn; {вывод} Write('B ='); for j:=Low(b) to High(b) do Write(' ',b[j]); WriteLn; {вывод} for i:=Low(b) to High(b)-1 do begin k:=i; for j:=i+1 to High(b) do if b[j]<b[k] then k:=j; {индекс мин. в k} t:=b[i]; b[i]:=b[k]; b[k]:=t; {обмен} Write('':3); for j:=Low(b) to High(b) do Write(' ',b[j]); WriteLn; {вывод} end; Write('C ='); for j:=Low(c) to High(c) do Write(' ',c[j]); WriteLn; {вывод} for i:=Low(c) to High(c)-1 do begin k:=i; for j:=i+1 to High(c) do if c[j]>c[k] then k:=j; {индекс макс. в k} t:=c[i]; c[i]:=c[k]; c[k]:=t; {обмен} Write('':3); for j:=Low(c) to High(c) do Write(' ',c[j]); WriteLn; {вывод} end; end.
Объяснение кода листинга программы
- Объявляется массив
a
размером 20 элементов, массивыb
иc
размером 10 элементов и переменныеi
,j
,k
,t
типа Integer. - Генерируются случайные значения от -10 до 5 для каждого элемента массива
a
. - Значения элементов массива
b
заполняются значениями из первой половины массиваa
, значения элементов массиваc
заполняются значениями из второй половины массиваa
. - Выводится на экран содержимое массива
a
и массиваb
. - Происходит сортировка массива
b
методом прямого выбора по возрастанию. - После каждой итерации сортировки выводится на экран текущее состояние массива
b
. - Выводится на экран содержимое массива
c
. - Происходит сортировка массива
c
методом прямого выбора по убыванию. - После каждой итерации сортировки выводится на экран текущее состояние массива
c
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д