Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2011, 15:48   #1
Tifa
Пользователь
 
Регистрация: 21.01.2011
Сообщений: 30
По умолчанию Паскаль ошибка!

Дана матрица nxm Найти наибольший и наименьший элемент в каждой строке..Отсортировать эти максимумы по убыванию в матрицеб а минимумы по возрастаниюю. указать какое количество максимальных и минимальных элементов находица в каждом столбце.


Код:
var
a:array [1..100,1..100] of integer;
amin,amax,kolmax,kolmin:array[1..100] of integer;
n,m,j,i,min,max,p,k,x,z :integer;
f:boolean;
begin
write('Vvedite kol-vo strok=');
read (m);
write('Vvedite kol-vo stolbcov=');
read (n);
for i:=1 to m do
for j:=1 to n do
begin
write('Vvedite a[',i,',',j,']=');
read(a[i,j]);
end;
writeln;
for i:=1 to m do
begin
for j:=1 to n do
write (a[i,j]:4);
writeln;
end;
k:=1;
for i:=1 to m do
begin
max:=a[i,1];
min:=a[i,1];
for j:=1 to n do
begin
if a[i,j]>max then max:=a[i,j];
if a[i,j]<min then min:=a[i,j];
end;
amax[k]:=max;
amin[k]:=min;
k:=k+1;
writeln('Min v ',i,' stroke=',min,' ',',Max=',max);
end;
for i:=1 to k-1 do
begin
for j:=i+1 to k-1 do
begin
if amax[i]<amax[j] then
begin
p:=amax[i]; amax[i]:=amax[j]; amax[j]:=p;
end;
if amin[i]>amin[j] then
begin
x:=amin[i]; amin[i]:=amin[j]; amin[j]:=x;
end;
end;
end;
writeln('Otsortirovannye max elementy');
for i:=1 to k-1 do
writeln(amax[i]);
writeln('Otsortirovannye min elementy');
for i:=1 to k-1 do
writeln(amin[i]);
kolmax[1]:=0;
z:=1;
for j:=1 to n do
begin
for i:=1 to m do
begin
for k:=1 to k-1 do
begin
if amax[k]=a[i,j] then kolmax[z]:=kolmax[z]+1;
if amin[k]=a[i,j] then kolmin[z]:=kolmin[z]+1;
end;
end;
z:=z+1;
end;lmax[z]+1;
if amin[k]=a[i,j] then kolmin[z]:=kolmin[z]+1;
end;
end;
z:=z+1;
end;
for i:=1 to z-1 do
begin
writeln('Kol-vo max elementov v ',i,' stolbce=',kolmax[i]);
writeln('Kol-vo min elementov v ',i,' stolbce=',kolmin[i]);
end;
Readln;
Readln
блин.....находин неаибольший и наименьший элемент в каждой строке Сортирует максимумы по убыванию минимумы по возрастанию а вот...указать какое количество максимальных и минимальных элементов находица в каждом столбце. почемуто не работает(....напишите код плиз где не праавельно....или уже в исправленом виде)))))пожалуйста....(!
Tifa вне форума Ответить с цитированием
Старый 20.02.2011, 18:00   #2
Косюра
Пользователь
 
Аватар для Косюра
 
Регистрация: 14.01.2011
Сообщений: 74
По умолчанию

Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  a:array [1..100,1..100] of byte;   // матрица
  amin:array [1..100] of byte;        // min элементы  в строках
  amax:array [1..100] of byte;        // mах элементы  в строках
  kolmax:array [1..100] of byte;      // количество mах элементов в столбцах
  kolmin:array [1..100] of byte;      // количество min элементов в столбцах
  n :byte;       // количество строк
  m :byte;       // количество столбцов
  j,i :byte;     // Переменные цикла
  min :byte;     // минимальный элемент
  max :byte;     // максимальный элемент
  Temp :byte;    // контейнер
  DigitMin: set of byte;  // множество минимальных чисел ( без повторов)
  DigitMax: set of byte;  // множество максимальных чисел ( без повторов)


begin
  write('Vvedite kol-vo strok=');
  read (m);
  write('Vvedite kol-vo stolbcov=');
  read (n);
  //обнуление
  max:=0;
  min:=0;

  for i:=1 to m do
      begin
        amin[I]:=0;
        amax[I]:=0;
        kolmax[I]:=0;
        kolmin[I]:=0;
      end;

  // Ввод матрицы
  for i:=1 to m do
    for j:=1 to n do
      begin
        Write('Vvedite a[',i,',',j,']=');
        Read(a[i,j]);
      end;

  writeln;
  // Вывод матрицы
  for i:=1 to m do
    begin
      for j:=1 to n do
        Write (a[i,j]:4);
      Writeln;
    end;


  for i:=1 to m do
    begin
      max:=a[i,1];
      min:=a[i,1];
        for j:=1 to n do
        begin
          if a[i,j]>max then
            max:=a[i,j];
          if a[i,j]<min then
            min:=a[i,j];
        end;
      amax[i]:=max;
      amin[i]:=min;
      writeln('Min v ',i,' stroke=',min,' ',',Max=',max);
    end;

  for i:=1 to m-1 do
    begin
      for j:=i+1 to m do
        begin
          if amax[i]<amax[j] then
            begin
              Temp:=amax[i];
              amax[i]:=amax[j];
              amax[j]:=Temp;
            end;
          if amin[i]>amin[j] then
            begin
              Temp:=amin[i];
              amin[i]:=amin[j];
              amin[j]:=Temp;
            end;
        end;
    end;

  writeln('Otsortirovannye max elementy');
  for i:=1 to m do
    write(amax[i],' ');
  Writeln;
  writeln('Otsortirovannye min elementy');
  for i:=1 to m do
    write(amin[i],' ');
  WriteLn;

  
  DigitMin:=[];
  DigitMax:=[];
  for I:=1 to n do
  begin
    if not(amin[i] in DigitMin) then DigitMin:=DigitMin+[amin[i]];
    if not(amax[i] in DigitMax) then DigitMax:=DigitMax+[amax[i]];
  end;

     for j:=1 to m do
      begin
      kolmin[j]:=0;
      kolmax[j]:=0;
       for i:=1 to n do
       begin
         if a[i,j] in DigitMin then kolmin[j]:=Kolmin[j]+1;
         if a[i,j] in DigitMax then kolmax[j]:=Kolmax[j]+1;
       end;
      end;

  for i:=1 to n do
    begin
      writeln('Kol-vo max elementov v ',i,' stolbce=',kolmax[i]);
      writeln('Kol-vo min elementov v ',i,' stolbce=',kolmin[i]);
    end;

  Readln;
  Readln;
end.
Девушка - переменная бинарного типа с рандомным значением
Косюра вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка 88(ПАСКАЛЬ) Kami-sama3 Помощь студентам 8 13.04.2012 12:48
паскаль ошибка! Tifa Помощь студентам 0 28.01.2011 16:38
Паскаль. Ошибка 89. Instigate Помощь студентам 12 07.07.2010 00:35
ошибка,паскаль Defender42 Помощь студентам 3 23.05.2010 12:15
паскаль, ошибка wrmarw Помощь студентам 5 10.05.2010 20:45