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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2009, 13:08   #1
Skrip
Пользователь
 
Аватар для Skrip
 
Регистрация: 04.06.2009
Сообщений: 45
По умолчанию Массив

В матрице размером М*N поменять местами строку, содержащую элемент с большим значением, со строкой, которая содержит минимальный элемент.
Я не могу понять где ошибка..! (
вот фрагмент:
Код:
//нахождение минимального и максимального элемента
  for i:=1 to N do
    for j:=1 to M do
    begin
      if A[i,j]>=A[i,j+1] then
      begin
//        max:=A[i,j];
        k:=i;
      end;
      if A[i,j]<=A[i,j+1] then
      begin
//        min:=A[i,j];
        g:=i;
      end;
    end;
    //перемена строк местами
    for j:=1 to M do
    begin
      temp:=A[k,j];
      A[k,j]:=A[g,j];
      A[g,j]:=temp;
    end;
    for i:=1 to N do
      for j:=1 to M do
      begin
        StringGrid2.Cells[j,1]:=FloatToStrf(A[k,j],fffixed,6,2);
      end;
end;
Но, строки он не меняет местами.. (
Я спокойный, вежливый и уравновешенный человек
Skrip вне форума Ответить с цитированием
Старый 15.10.2009, 13:25   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
//перемена строк местами
A g и k вообще правильно считаются? проверял?
И кстати:
Код:
 for i:=1 to N do
      for j:=1 to M do
      begin
        StringGrid2.Cells[i,j]:=FloatToStrf(A[i,j],fffixed,6,2);
      end;
I'm learning to live...

Последний раз редактировалось Stilet; 15.10.2009 в 13:27.
Stilet вне форума Ответить с цитированием
Старый 15.10.2009, 13:49   #3
Skrip
Пользователь
 
Аватар для Skrip
 
Регистрация: 04.06.2009
Сообщений: 45
По умолчанию

Код:
  //íàõîæäåíèå ìèíèìàëüíîãî è ìàêñèìàëüíîãî ýëåìåíòà
  max:=0;
  min:=0;
  for i:=1 to N do
    for j:=1 to M do
    begin
      if max<=A[i,j] then
      begin
        max:=A[i,j];
        k:=i;
      end;
      if min>=A[i,j] then
      begin
        min:=A[i,j];
        g:=i;
      end;
    end;
    Memo1.Lines.Add('min='+FloatToStrF(min,fffixed,6,2)+' max='+FloatToStrF(max,fffixed,6,2));
Минимальное значение не правильно считает.. не могу разобраться почему?
Я спокойный, вежливый и уравновешенный человек
Skrip вне форума Ответить с цитированием
Старый 15.10.2009, 14:03   #4
Skrip
Пользователь
 
Аватар для Skrip
 
Регистрация: 04.06.2009
Сообщений: 45
По умолчанию

Все! Все! разобралась.. )) Спасибо!
У меня получилось так:
Код:
//нахождение минимального и максимального элемента
  max:=0;
  min:=10000;
  for i:=1 to N do
    for j:=1 to M do
    begin
      if max<=A[i,j] then
      begin
        max:=A[i,j];
        k:=i;
      end;
      if min>=A[i,j] then
      begin
        min:=A[i,j];
        g:=i;
      end;
    end;
    Memo1.Lines.Add('min='+FloatToStrF(min,fffixed,6,2)+' max='+FloatToStrF(max,fffixed,6,2));
    //перемена строк местами
    for j:=1 to M do
    begin
      temp:=A[k,j];
      A[k,j]:=A[g,j];
      A[g,j]:=temp;
    end;
    for i:=1 to N do
      for j:=1 to M do
      begin
        StringGrid2.Cells[j,i]:=FloatToStrf(A[i,j],fffixed,6,2);
      end;
end;
Я спокойный, вежливый и уравновешенный человек
Skrip вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив Настенька..Блонди Помощь студентам 6 27.06.2009 11:56
Массив. Paul Oakenfold Паскаль, Turbo Pascal, PascalABC.NET 6 15.05.2009 19:37
Массив KREGI Помощь студентам 2 05.03.2009 17:35
Упорядочить массив в порядке возрастания и напечатать входной и исходный массив. TheVenny Помощь студентам 3 26.11.2008 15:06
массив TheVenny Помощь студентам 1 22.11.2008 01:50