одномерный массив.делфи

Ответить
dregtar
Сообщения: 2
Зарегистрирован: 17 сен 2013, 20:51

Суть данного мне задания,чтоб в одномерном массиве найти мах и мин,и поменять их местами.оба массива должны выводиться на экран.Нашел максимум и минимум,но не могу их поменять местами.Выводит только два одинаковых,что я делаю не так?(

Код: Выделить всё

procedure TForm1.Button1Click(Sender: TObject);
var mas: array[1..5] of integer;
max,i,imax,min,imin:integer;
begin
randomize;
for i:=1 to 5 do
begin
mas[i]:=random(31)-5;
end;
max:=mas[1];
for i:=2 to 5 do
if max<mas[i] then
begin
max:=mas[i];
imax:=max;
end;
Label1.Caption:=IntToStr(max);
min:=mas[1];
for i:=2 to 5 do
if min>mas[i] then
begin
min:=mas[i];
imin:=min;
end;
label2.Caption:=IntToStr(min);
for i:=1 to 5 do
Memo1.Lines.Add(IntToStr(mas[i]));
begin
max:=mas[imin];
min:=max[imax];
end;
for i := 1 to 5 do
begin
ListBox1.Items.Add(FloatToStr(mas[i]));
end;

end;

end.
dregtar
Сообщения: 2
Зарегистрирован: 17 сен 2013, 20:51

Код: Выделить всё

procedure TForm1.Button1Click(Sender: TObject);
var mas: array[1..5] of integer;
imax,max,min,imin,t,i:integer;
 begin
  randomize;
   for i:=1 to 5 do
     begin
      mas[i]:=random(31)-5;
      Memo1.Lines.Add(IntToStr(mas[i]));
     end;  // заполнение и вывод первоначальной матрицы
     max:=mas[1];
     imax:=1;
   for i:=2 to 5 do
     if mas[i]>max then
        begin
         max:=mas[i];
         imax:=i;                //нахождение мах
        end;
       Label1.Caption:=IntToStr(max);  //вывод мах
  min:=mas[i];
  imin:=1;
  for i:=2 to 5 do
  if mas[i]<min then
   begin
    min:=mas[i];        //нахождение мин
    imin:=i;
    end;
   Label2.Caption:=IntToStr(min);    // вывод минимального
  i:=mas[imax];
  mas[imax]:=mas[imin];       //замена
 mas[imin]:=i;
  for i:=1 to 5 do begin
  Memo2.Lines.Add(IntToStr(mas[i])); end;        //     вывод конечной матрицы
  end;

end.
Ответить