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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.03.2015, 19:27   #1
Tony Hudson
Пользователь
 
Регистрация: 05.03.2015
Сообщений: 36
По умолчанию Delphi7.Поиск минимального и максимального элемента в массиве

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

Я вот нашел мин. и макс. элемент, а как их поменять ладу не дам.
Код:
var
  Form1: TForm1;
    a:array of integer;
    i,c,max,min,n:integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  Setlength(a,10);
 Randomize;
  for i:=1 to 10 do
  begin
  a[i]:=RandomRange(1,10);
  stringGrid1.Cells[i,0] :=InttoStr(a[i]);
  end;
 max:=a[1];
 min:=a[1];
 for i:=2 to 10 do begin
 if a[i]>max then max:=a[i];
 if a[i]<min then min:=a[i];
 end;

 for i:=1 to 10 do // Тут мои предположения о том как их поменять местами
 c:=a[max];
 a[max]:=a[min];
 a[min]:=c;

 for i:=1 to 10 do
 stringGrid1.Cells[i,1] :=InttoStr(a[i]);

 Label1.caption:=('Минимальный элемент:' + intToStr(min)+ 'Максимальный элемент:' +IntToStr(max));
end;

end.

Последний раз редактировалось Stilet; 05.03.2015 в 20:05.
Tony Hudson вне форума Ответить с цитированием
Старый 05.03.2015, 19:29   #2
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Массив у Вас от 0 до 9..
Чтобы менять нужны индексы, а не значения
Poma][a вне форума Ответить с цитированием
Старый 05.03.2015, 19:33   #3
Tony Hudson
Пользователь
 
Регистрация: 05.03.2015
Сообщений: 36
По умолчанию

А Вы не подскажите, как найти индексы?
Код:
var
  Form1: TForm1;
    a:array of integer;
    imax,imin,i,c,max,min,n:integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  Setlength(a,10);
 Randomize;
  for i:=1 to 10 do
  begin
  a[i]:=RandomRange(1,10);
  stringGrid1.Cells[i,0] :=InttoStr(a[i]);
  end;
  imax:=1;
  imin:=1;
 max:=a[1];
 min:=a[1];
 for i:=1 to 10 do begin
 if a[i]>max then begin max:=a[i]; imax:=i;
  end;
   if a[i]<min then begin min:=a[i];   imin:=i;
 end;
 end;
Label1.Caption:=('Индекс Min'+IntToStr(imin)+'Индекс макс'+IntToStr(imax));

 for i:=1 to 10 do
 stringGrid1.Cells[i,1] :=InttoStr(a[i]);
end;
Индекс я нашел, а как их теперь поменять и внести в поле StringGrid?

Последний раз редактировалось Stilet; 05.03.2015 в 20:06.
Tony Hudson вне форума Ответить с цитированием
Старый 05.03.2015, 20:03   #4
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Обмен местами:
Код:
tmp:=a[imax];
a[imax]:=a[imin];
a[imin]:=tmp;
Поместить их в массив можно так же, как и в самом начале:
Код:
stringGrid1.Cells[i,0] :=InttoStr(a[i]);
Вадим Мошев вне форума Ответить с цитированием
Старый 05.03.2015, 20:30   #5
Tony Hudson
Пользователь
 
Регистрация: 05.03.2015
Сообщений: 36
По умолчанию

Спасибо большое!
Tony Hudson вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поиск минимального и максимального элемента apelsun Общие вопросы Delphi 3 10.11.2012 00:09
Поиск максимального и минимального элемента в одномерном динамическом массиве GMeloman Общие вопросы C/C++ 7 11.06.2012 10:09
Поиск максимального и минимального значения в массиве WIN32APIist Общие вопросы C/C++ 5 28.12.2010 00:24
Поиск минимального и максимального элемента в двухмерном массиве. Dem6 Общие вопросы Delphi 10 30.11.2009 20:22
Поиск минимального (максимального) элемента массива Radamant Помощь студентам 10 24.12.2008 17:44