Отсортировать положительные элементы массива, стоящие на четных местах по убыванию методом простого выбора - Pascal ABC
Формулировка задачи:
Отсортировать положительные элементы массива, стоящие на четных местах по убыванию методом простого выбора.
Программа работает, но отсортированный массив имеет вид 0 4 2 0 0, вместо 4 2 0 0 0
Не срабатывает оно скорее всего потому что я коряво задал цикл
тк он изначально был для сортировки по возврастанию
Решение задачи: «Отсортировать положительные элементы массива, стоящие на четных местах по убыванию методом простого выбора»
textual
Листинг программы
const n = 5;//константа type//описание массива omas = array[1..100] of integer;//описание массива procedure init(var a: omas);//Название процедуры и Описание формальных параметров переменных var//Описание локальных переменных i: integer;//Описание локальных переменных begin//начало процедуры a[1] := 5;//присваиваине значения a[2] := 2;//присваиваине значения a[3] := 8;//присваиваине значения a[4] := 4;//присваиваине значения a[5] := 9;//присваиваине значения end;//конец процедуры procedure print(var a: omas; n: integer);//Название процедуры и Описание формальных параметров переменных var//Описание локальных переменных i: integer;//Описание локальных переменных begin//начало процедуры for i := 1 to n do//Цикл write(a[i], ' ');//вывод end;//конец процедуры procedure sort(var a, b: omas; var nt: integer);//процедура sort с описанием формальных параметров- переменных a типа myarray var k, i, j, m: integer;//описание локальных переменных begin//начало процедуры for i := 1 To n Do //цикл с параметром if (i mod 2) = 0 Then //условие if a[i] > 0 Then//условие b[i] := a[i];//присваиваине значения for i := 1 To n Do if b[i] <> 0 then//условие inc(nt); for i := n Downto 1 Do {цикл по длине рассматриваемой части массива} begin{поиск максимального элемента и его номера в текущей части массива} k := i; m := b[i]; {начальные значения минимального, элемента и его индекса } for j := 1 To i-1 Do if b[j] < m Then begin k := j; m := b[k] end; if k <> i Then begin{перестановка элементов} b[k] := b[i]; b[i] := m end; end; end;//конец процедуры var a, b: omas;//описание глобальных переменных nt: integer; begin//начало программы init(a);//Вызов процедуры и указание фактических параметров writeln('исходный массив');//Вывод текста print(a, n);//Вызов процедуры и указание фактических параметров writeln;//переход на следующую строку sort(a, b, nt);//Вызов процедуры и указание фактических параметров writeln('отсортированый массив:');//Вывод текста print(b, nt);//Вызов процедуры и указание фактических параметров end.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д