Не работает сортировка методом выбора - Turbo Pascal

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

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

Укажите пожалуйста на ошибку. Пытался отсортировать массив методом выбора, но что-то идет не так
Листинг программы
  1. program mv;
  2. const N = 10;
  3. var C: array[1..N] of integer;
  4. var z,x,v,i,m: integer;
  5. begin
  6. writeln('Массив:');
  7. for i := 1 to N do
  8. begin
  9. C[i] := random(10);
  10. write(C[i]:3)
  11. end;
  12. z:=11;
  13. For x:=1 to N do begin
  14. For i:=x to N do begin
  15. if (C[i]<z) then
  16. z:=C[i];
  17. m:=i;
  18. end;
  19. if z<>C[X]then begin
  20. C[m]:=C[x];
  21. C[x]:=z;
  22. v:=v+1;
  23. z:=11;
  24. end;
  25. z:=11;
  26. end;
  27. writeln;
  28. writeln('Массив после сортировки:');
  29. for i := 1 to N do
  30. write(c[i]:3);
  31. end.

Решение задачи: «Не работает сортировка методом выбора»

textual
Листинг программы
  1. program mv;
  2.  
  3. const
  4.   N = 10;
  5.  
  6. var
  7.   arr: array[1..N] of integer;
  8.   {var} {z,x,v,i,m: integer; //Что за Z X V M ?? Зачем 2 раза писать Var?}
  9.   i, j, x, ri: integer;//i,j - для циклов x - промежуточное значение для обмена
  10.  
  11. begin
  12.   writeln('Массив:');
  13.   for i := 1 to N do
  14.   begin
  15.     arr[i] := random(10);
  16.     write(arr[i]:3)
  17.   end;
  18.  
  19.   for i := 1 to N do
  20.   begin
  21.     ri := i;
  22.     x := arr[i];
  23.     for j := i + 1 to N do { найти элемент с наименьшим значением }
  24.       if arr[j] < x then
  25.       begin
  26.         ri := j;
  27.         x := arr[j];
  28.       end;
  29.     arr[ri] := arr[i]; { обмен }
  30.     arr[i] := x;
  31.   end;
  32.   writeln;
  33.   writeln('Массив после сортировки:');
  34.   for i := 1 to N do
  35.     write(arr[i]:3);
  36. end.

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

В данном коде объявлены следующие переменные:

  1. arr — массив целых чисел от 1 до N.
  2. N — константа, равная 10.
  3. i, j, x, ri — переменные для циклов и промежуточных вычислений.
  4. random(10) — функция генерации случайного числа от 0 до 9 (включительно).
  5. write(arr[i]:3) — записывает значение элемента массива arr[i] в текущую строку.
  6. arr[ri] := arr[i] — обмен значениями элементов массива.
  7. x — временная переменная для хранения промежуточного значения при обмене. Код выполняет следующие действия:
  8. Выводит исходный массив.
  9. Для каждого элемента массива (от 1 до N):
    • Генерирует случайное число и записывает его в массив.
    • Находит элемент с наименьшим значением (сравнивая элементы массива от i+1 до N).
    • Если найденный элемент меньше текущего, меняет их местами.
    • Записывает текущий элемент в его окончательное положение.
  10. Выводит отсортированный массив.

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


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

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

5   голосов , оценка 4.6 из 5

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

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

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