• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Помогите, пожалуйста, исправить программу

Amir1995

Ученик
Регистрация
5 Май 2014
Сообщения
6
Реакции
0
Баллы
0
Помогите, пожалуйста, исправить программу

дана матрица 4Х7. Преобразовать матрицу поменяв местами минимальный и максимальный элемент в каждом столбце

procedure TForm1.Button1Click(Sender: TObject);
var
a:array[1..4,1..7] of integer;
max,min,g,j,i:integer;
begin
for i:=1 to 4 do
for j:=1 to 7 do
begin
a[i,j]:=random(20);
StringGrid1.cells[i-1,j-1]:=inttostr(a[i,j]);
end;


end;

procedure TForm1.Button2Click(Sender: TObject);
var
a:array[1..4,1..7] of integer;
imax,imin,max,min,g,j,i:integer;

begin
max:=0;
min:=21;
begin
for j:=1 to 7 do begin
imax:=1; imin:=1;
max:=a[j,1]; min:=a[j,1];

for i:=2 to 4 do begin

if a[j,i]<min then begin
min:=a[j,i]; imin:=i;
end;
if a[j,i]>max then begin
max:=a[j,i]; imax:=i;
end;
a[j,imin]:=max;
a[j,imax]:=min;
end;
end;
stringGrid2.cells[i-1,j-1]:=inttostr(a[i,j]);
end;

end;
end.
во второй таблице не выводит преобразованную матрицу.
Заранее благодарен!!!

[mod2]Напоминаю, что в соответствии с Правилами, кросспостинг (размещение дубликатов тем в разных разделах) ЗАПРЕЩЕН.
Тема-дубликат удалена.

Модератор.[/mod2]
 
if a[j,i]<min then begin
min:=a[j,i];
imin:=i;
end;
if a[j,i]>max then begin
max:=a[j,i];
imax:=i;
end;
a[j,imin]:=max;
a[j,imax]:=min;
end;
end;
Прежде всего, всюду в этом фрагменте следует поменять местами индексы, т.е. вместо a[j,i] записать a[i,j], вместо a[j,imin] записать a[imin,j] и т.д.
Кроме того, для вывода нужно организовать отдельный цикл.
 
Все поменял, теперь выводит только один ноль в углу и все
 
Все поменял, теперь выводит только один ноль в углу и все
Черт, будь бы это Паскаль, я бы Вам отладил программу в три секунды. А с этими формами... извините, всё позабыл.
 
Поняятно, ну ладно спасибо за это хоть помочь по пытались.
 
Назад
Сверху