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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.06.2013, 22:43   #1
Sori69
 
Регистрация: 30.06.2013
Сообщений: 8
По умолчанию Курсовая задача.

Код:
program зачет;
uses crt;
var a:array [1..100,1..100] of integer;
     amin,amax,jmax,jmin:array[1..100] of integer;
   q1,t1,qq,w1,w2:array[1..100] of integer;
 b,n,m,j,i,min,max,p,k,x,z,q,y,u,kolvo1,kolvo2,h:integer;
begin
clrscr;
writeln('Дана матрица n x m найти наибольший элемент и наименьший в каждой строке.');
writeln('отсортировать эти максимумы по убыванию в матрице а минимумы по возрастанию.');
writeln('указать какое колличество максимальных и минимальных элементов находится в каждом столбце.');
begin
write('введите количество строк = ');
read(m);
write('введите количетсво столбцов =  ');
read(n);
for i:=1 to m do begin
x:=3;
for j:=1 to n do begin
gotoxy(x,i+6);
read(a[i,j]);
x:=x+5;
end;
end;
  k:=1;
  q:=1;
  for i:=1 to m do begin
    max:=a[i,1];
    jmax[q]:=1;
    min:=a[i,1];
    jmin[q]:=1;
    for j:=1 to n do begin
      if a[i,j]>max then begin
        max:=a[i,j];
        jmax[q]:=j;
        q1[k]:=a[i,j];
        qq[k]:=i; t1[k]:=j;
      end;
        if a[i,j]<min then begin
        min:=a[i,j];
        jmin[q]:=j;
      end;
      end;
    inc(q);
    amax[k]:=max;
    amin[k]:=min;
    k:=k+1;
    x:=18;
    for j:=1 to n do begin
    gotoxy(x,i+6);
    x:=x+5;
    end;
    writeln('минимум в ',i,' строке',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; }
 for i:=1 to 30 do begin
 for j:=1 to k-1 do begin
 if(qq[j]>qq[j+1]) then begin
 h:=qq[j]; qq[j]:=qq[j+1]; qq[j+1]:=h;
 end; end; end;
 for b:=1 to k do
 for j:=1 to n do
 for i:=1 to m do begin
 if (qq[b]=i) and (t1[b]=j) then begin
 a[i,j]:=qq[b];
 end;end;end;
  for i:=1 to m do begin
   kolvo1:=0;
    for j:=1 to q-1 do
      if i = jmax[j] then inc(kolvo1);
      end;
      writeln;
     for i:=1 to m do begin
    kolvo2:=0;
    for j:=1 to q-1 do
      if i = jmin[j] then inc(kolvo2);
    writeln('столбец ',i,',количетсво макс = ',kolvo1, ' количетсво мин = ',kolvo2);
  end;
for i:=1 to m do begin
x:=55;
for j:=1 to n do begin
gotoxy(x,i+10);
writeln(a[i,j]);
x:=x+5;
end;
end;
readkey;

end.
Само задание описано в программе , только мне нужно помощь в том , что не могу вывести сделать так что бы он выводил эти максимальные элементы в порядки убывания и точно так же в порядке возрастания минимальные элементы , и правильно искал количество их.

Последний раз редактировалось Sori69; 01.07.2013 в 00:38.
Sori69 вне форума Ответить с цитированием
Старый 01.07.2013, 00:33   #2
kventin_zhuk
БНТУ ФИТР
Форумчанин
 
Аватар для kventin_zhuk
 
Регистрация: 20.05.2012
Сообщений: 315
По умолчанию

Сортировать максимумы матрицы - как вы себе это представляете? Может сортировать строки/столбцы по количество максимумом/минимумов?
С++(console/builder/WinAPI/Linux), C#, Pascal, Delphi, Asm, Prolog.
< ----- Контакты
kventin_zhuk@live.com
kventin_zhuk вне форума Ответить с цитированием
Старый 01.07.2013, 00:41   #3
Sori69
 
Регистрация: 30.06.2013
Сообщений: 8
По умолчанию

нет, именно и заключается в этом задание что, когда находишь максимумы и минимумы , ты их сортируешь по убыванию или возрастанию в столбце и выводишь матрицу полученную уже отсортированную (то есть из максимальных в первой строчке где находиться максимум должен стоять отсортированный максимум во убыванию. не все так просто.
Sori69 вне форума Ответить с цитированием
Старый 01.07.2013, 00:50   #4
kventin_zhuk
БНТУ ФИТР
Форумчанин
 
Аватар для kventin_zhuk
 
Регистрация: 20.05.2012
Сообщений: 315
По умолчанию

Ну - надеюсь я буду один кто вас не понял

вот матрица

1 2 3 0 5
9 8 7 4 0
4 5 0 4 1
0 8 1 3 9
8 4 1 3 0

Что должно быть на выходе?
С++(console/builder/WinAPI/Linux), C#, Pascal, Delphi, Asm, Prolog.
< ----- Контакты
kventin_zhuk@live.com
kventin_zhuk вне форума Ответить с цитированием
Старый 01.07.2013, 00:58   #5
Sori69
 
Регистрация: 30.06.2013
Сообщений: 8
По умолчанию

исходная матрица:
1 2 3 0 5
9 8 7 4 0
4 5 0 4 1
0 8 1 3 9
8 4 1 3 0
максимум в первой строке 5
максиму во второй строке 9
максимум в третей строке 5
максимум в четвертой сроке 9
максимум в пятой сроке 8
минимум в строке 0
во второй 0
в третей 0
в четвертой 0
в пятой 0
сортировка:
1 2 3 0 9
9 8 7 4 0
4 8 0 4 1
0 8 1 3 5
5 4 1 3 0
Присмотритесь.
Sori69 вне форума Ответить с цитированием
Старый 01.07.2013, 01:36   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

1) Код плохо форматирован
2) Неплохо бы его поразбивать на процедуры-подзадачи (или хотя бы на блоки, отделенные пустой строкой)
3) Если судить по размерностям массивов в начале программы, то нахождение нескольких минимумов или максимумов в одной строке невозможно (могу ошибаться, так как не разбирался до конца в алгоритме)
Точнее сказать, возможно нахождение нескольких минимумов/максимумов, но тогда этих массивов не хватит гарантировано для всех возможных случаев (например, вся матрица заполнена 1 числом => количество максимумов равно n*m)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Курсовая Sayat243 Фриланс 3 12.05.2013 16:23
курсовая s4egol Помощь студентам 1 21.02.2013 22:46
pascal курсовая задача Maklin55 Помощь студентам 21 10.01.2012 19:44
Курсовая!!! kykysya Помощь студентам 3 16.11.2008 18:53
help! курсовая Nurik Фриланс 2 02.04.2007 11:57