Отсортировать положительные элементы столбца матрицы по убыванию - Turbo Pascal

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

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

Здравствуйте! Прошу помощи. Прошу подправить код. Не совсем корректно выводит. Вот задание.Среди столбцов заданной целочисленной матрицы, содержащих ТОЛЬКО такие элементы, которые по модулю не больше числа Р, найти столбец с минимальной суммой элементов Отсортировать положительные элементы этого столбца по убыванию.

Решение задачи: «Отсортировать положительные элементы столбца матрицы по убыванию»

textual
Листинг программы
program zd;
const   n = 5;
var  a: array[1..n, 1..n] of integer;
  i, j,  k, s, p, sum: integer;
  flag: boolean;
 
begin  
  randomize;
  for i := 1 to n do 
  begin
    for j := 1 to n do 
    begin
      a[i, j] :=integer(random(15))-2;
      write(a[i, j],' ');
    end;
    writeln;
  end;
  writeln('Vvedite chislo P');readln(p);
  Writeln('Znacheniya summy stolbtsov');
  k := 0;s:=maxint;
  for j := 1 to n do 
  begin
    sum := 0;flag := true;
    for i := 1 to n do
    begin
      flag := (abs(a[i, j]) <= p) and flag;
      if flag then sum := sum + a[i, j];         
    end;
    if flag and (s > sum) then 
    begin
      write(sum, ' ');
      k := j;s := sum;
    end
    else write(' - ');
  end;    
  writeln;
  
  s := 1;
  if k = 0 then writeln('Net takih stolbcov.') else
  begin
    writeln('Nomer stolbtsa s minimalnoi summoi: ', k);
    for j:= 1 to n do
    for i := j to n  do    
    begin
      if (a[j, k] > 0) and (a[i, k] > 0)and  (a[j, k] > a[i, k])then
        begin
          p := a[i, k];
          a[i, k] := a[j, k];
          a[j, k] := p;
          s := i;
        end;
    end;
  end;
  writeln;
  
  for i := 1 to n do
  begin
    for j := 1 to n do
      write(a[i, j]:4);
    writeln;
  end;
end.

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


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

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

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