Произвести сортировку методом прямого выбора первого полученного массива по убыванию - Pascal

Узнай цену своей работы

Формулировка задачи:

Заполнить массив из 20 элементов случайными числами от -10 до 5. Сформировать два массива, состоящие из первых 10 и последних 10 элементов исходного массива. Произвести сортировку методом прямого выбора первого полученного массива по убыванию, второго - по возрастанию. Так же есть код, но нужно обозначить за что отвечает каждая строчка в сортировках первого и второго массива.
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.
и расскажите пжлста в строах 38 и 54 почему мы пишем i+1 to 10 do

Решение задачи: «Произвести сортировку методом прямого выбора первого полученного массива по убыванию»

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.

Объяснение кода листинга программы

  1. Объявляется массив a размером 20 элементов, массивы b и c размером 10 элементов и переменные i, j, k, t типа Integer.
  2. Генерируются случайные значения от -10 до 5 для каждого элемента массива a.
  3. Значения элементов массива b заполняются значениями из первой половины массива a, значения элементов массива c заполняются значениями из второй половины массива a.
  4. Выводится на экран содержимое массива a и массива b.
  5. Происходит сортировка массива b методом прямого выбора по возрастанию.
  6. После каждой итерации сортировки выводится на экран текущее состояние массива b.
  7. Выводится на экран содержимое массива c.
  8. Происходит сортировка массива c методом прямого выбора по убыванию.
  9. После каждой итерации сортировки выводится на экран текущее состояние массива c.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.769 из 5
Похожие ответы