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

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

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

Заполнить массив из 20 элементов случайными числами от -10 до 5. Сформировать два массива, состоящие из первых 10 и последних 10 элементов исходного массива. Произвести сортировку методом прямого выбора первого полученного массива по убыванию, второго - по возрастанию. Так же есть код, но нужно обозначить за что отвечает каждая строчка в сортировках первого и второго массива.
Листинг программы
  1. program l16v2;
  2. var
  3. a:array[1..20] of integer;
  4. b,c:array[1..10] of integer;
  5. i,j,k,t,i_2:integer;
  6. begin
  7. randomize;
  8. writeln('ishodniy massiv');
  9. for i:=1 to 20 do
  10. begin
  11. a[i]:=random(16)-10;
  12. write (a[i],' ');
  13. end;
  14. writeln();
  15. writeln('1 massiv');
  16. for i:=1 to 10 do
  17. begin
  18. b[i]:=a[i];
  19. write(b[i],' ');
  20. end;
  21. writeln;
  22. writeln('2 massiv');
  23. for i:=1 to 10 do
  24. begin
  25. c[i]:=a[i+10];
  26. write(c[i],' ');
  27. end;
  28. writeln();
  29. writeln('sortirovka 1 massiva');
  30. for i:=1 to 9 do
  31. begin
  32. for k:=1 to 10 do
  33. write(b[k],' ');
  34. writeln();
  35. i_2:=i;
  36. for j:=i+1 to 10 do
  37. if b[i_2] < b[j] then
  38. i_2:=j;
  39. t:=b[i];
  40. b[i]:=b[i_2];
  41. b[i_2]:=t;
  42. end;
  43. writeln();
  44. writeln('sortirovka 2 massiva');
  45. for i:=1 to 9 do
  46. begin
  47. for k:=1 to 10 do
  48. write (c[k],' ');
  49. writeln();
  50. i_2:=i;
  51. for j:=i+1 to 10 do
  52. if c[i_2] > c[j] then
  53. i_2:=j;
  54. t:=c[i];
  55. c[i]:=c[i_2];
  56. c[i_2]:=t;
  57. end;
  58. writeln();
  59. end.
и расскажите пжлста в строах 38 и 54 почему мы пишем i+1 to 10 do

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

textual
Листинг программы
  1. var
  2.   a: array [1..20] of Integer;
  3.   b, c: array [1..10] of Integer;
  4.   i, j, k, t: Integer;
  5. begin
  6.   Randomize;
  7.   for j:=Low(a) to High(a) do a[j]:=-10+Random(16); {инициализация a}
  8.   for j:=Low(b) to High(b) do begin
  9.     b[j]:=a[j]; c[j]:=a[j+10]; {заполнение b и c}
  10.   end;
  11.   Write('A ='); for j:=Low(a) to High(a) do Write(' ',a[j]); WriteLn;  {вывод}
  12.   Write('B ='); for j:=Low(b) to High(b) do Write(' ',b[j]); WriteLn;  {вывод}
  13.   for i:=Low(b) to High(b)-1 do begin
  14.     k:=i; for j:=i+1 to High(b) do if b[j]<b[k] then k:=j; {индекс мин. в k}
  15.     t:=b[i]; b[i]:=b[k]; b[k]:=t; {обмен}
  16.     Write('':3); for j:=Low(b) to High(b) do Write(' ',b[j]); WriteLn; {вывод}
  17.   end;
  18.   Write('C ='); for j:=Low(c) to High(c) do Write(' ',c[j]); WriteLn;  {вывод}
  19.   for i:=Low(c) to High(c)-1 do begin
  20.     k:=i; for j:=i+1 to High(c) do if c[j]>c[k] then k:=j; {индекс макс. в k}
  21.     t:=c[i]; c[i]:=c[k]; c[k]:=t; {обмен}
  22.     Write('':3); for j:=Low(c) to High(c) do Write(' ',c[j]); WriteLn; {вывод}
  23.   end;
  24. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы