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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2010, 13:28   #1
бургер
Пользователь
 
Регистрация: 26.04.2010
Сообщений: 18
По умолчанию поменять min на max

Помогите пожалуйста! я не понимаю почему у меня 1 строка идет в конец и 1столбец тож вместо последнего встает:confused :
надо чтоб стору с min менял на строку с max и столбец с min на столбец с max.

Код:
uses wincrt;
var
a:array[1..100,1..100] of integer;
i,n,j,min,max:integer;
begin
write('N=');
readln(n);

for i:=1 to n do
begin
for j:=1 to n do
begin
read(a[i,j]);
end;
readln;
end;

min:=a[1,1];
max:=a[1,1];

for i:=1 to n do
for j:=1 to n do
begin
if (max<=a[i,j]) then max:=a[i,j];
if (min>=a[i,j]) then min:=a[i,j];
end;

writeln('min=',min);
writeln('max=',max);

for i:=1 to n do
begin
for j:=1 to n do
begin
write(a[j,i],' ');
end;
writeln;
end;

end.
бургер вне форума Ответить с цитированием
Старый 26.04.2010, 13:40   #2
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Цитата:
Код:
for i:=1 to n do
begin
for j:=1 to n do
begin
write(a[j,i],' ');
end;
writeln;
end;
Ну дык, а с чего бы им min и max менять? Здесь Вы просто выводите транспонированную матрицу
При поиске минимума и максимума Вам кроме значений надо запоминать ещё и их индексы, а потом переставлять
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 26.04.2010, 13:44   #3
бургер
Пользователь
 
Регистрация: 26.04.2010
Сообщений: 18
По умолчанию

Эт как??? я уже ниче не понимаю... все по разному говорят((( можете поправить?
бургер вне форума Ответить с цитированием
Старый 26.04.2010, 15:46   #4
p4serhiy
Пользователь
 
Регистрация: 02.04.2010
Сообщений: 19
По умолчанию

Пример:
Код:
BEGIN
min:=sin(2);
clrscr;
for i:=1 to 5 do
for j:=1 to 5 do
              begin
              w:=sin(i+j);
              a[i,j]:=w;
              end;
for i:=1 to 5 do
for j:=1 to 5 do
begin
if a[i,j]>max then  begin max:=a[i,j]; m:=i; end;
end;
writeln ('min element',min:4:2); {находим и виводим мін}
p4serhiy вне форума Ответить с цитированием
Старый 26.04.2010, 16:27   #5
бургер
Пользователь
 
Регистрация: 26.04.2010
Сообщений: 18
По умолчанию

ооооййй(((( поправьте пожалуйста программку, я не могу понять куды вставить((((
бургер вне форума Ответить с цитированием
Старый 26.04.2010, 16:32   #6
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

Код:
uses crt;
var a:array[1..20,1..20] of integer;
    m,n,i,j,imx,imn:byte;
    mn,mx,x:byte;
begin
clrscr;
randomize;
write('Введите количество строк: ');
readln(n);
write('Введите количество столбцов: ');
readln(m);
writeln('Исходная матрица: ');
for i:=1 to n do
 begin
   for j:=1 to m do
    begin
     a[i,j]:=random(20);
     write(a[i,j]:4);
    end;
   writeln;
 end;
imn:=1;
imx:=1;
mn:=a[1,1];
mx:=a[1,1];
for i:=1 to n do
for j:=1 to m do
 begin
  if a[i,j]<mn then
   begin
    mn:=a[i,j];
    imn:=i;
   end;
  if a[i,j]>mx then
   begin
    mx:=a[i,j];
    imx:=i;
   end;
 end;
if imx=imn then write('Минимальный и максимальный элементы в одной строке или в одном столбце!')
else
 begin
  for i:=1 to n do
   begin
    x:=a[i,imn];
    a[i,imn]:=a[i,imx];
    a[i,imx]:=x;
   end;
   for i:=1 to n do
   begin
    x:=a[imn,i];
    a[imn,i]:=a[imx,i];
    a[imx,i]:=x;
   end;
  writeln;
  writeln('Результирующая матрица: ');
  for i:=1 to n do
   begin
    for j:=1 to m do
    write(a[i,j]:4);
    writeln;
   end;
 end;
readln
end.
Проверяй.
にんじゃ
ROMA2PVT вне форума Ответить с цитированием
Старый 26.04.2010, 16:57   #7
бургер
Пользователь
 
Регистрация: 26.04.2010
Сообщений: 18
По умолчанию

ROMA2PVT, вроде правильно работает, но можно чтоб я сам вводил элементы матрицы??? и почему напримаер не min a imn? эт разве паскаль?
бургер вне форума Ответить с цитированием
Старый 26.04.2010, 17:04   #8
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

Цитата:
эт разве паскаль?
Нет эт C++.Конечно паскаль.
Потому что imn и imx это индексы(порядковые номера) минимума и максимума.Как тебе уже писали выше.
Цитата:
Ну дык, а с чего бы им min и max менять? Здесь Вы просто выводите транспонированную матрицу
При поиске минимума и максимума Вам кроме значений надо запоминать ещё и их индексы, а потом переставлять
А ручной ввод конечно можно сделать.Но ток рандомайзом проще.
にんじゃ
ROMA2PVT вне форума Ответить с цитированием
Старый 27.04.2010, 16:22   #9
бургер
Пользователь
 
Регистрация: 26.04.2010
Сообщений: 18
По умолчанию

а как сделать, чтоб в одной матрице менял строки и в сл столбцы???
бургер вне форума Ответить с цитированием
Старый 27.04.2010, 16:28   #10
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

Код:
if imx=imn then write('Минимальный и максимальный элементы в одной строке или в одном столбце!')
Смена происходит после этой строки.Вот смотри где что там.Если я конечно там ненакосячил.
にんじゃ
ROMA2PVT вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на min и max KREGI Помощь студентам 14 14.01.2016 14:35
подпрограма(max/min) misha25525 Помощь студентам 2 07.04.2010 19:45
min max Alpha_Dog Фриланс 10 15.03.2010 19:27
Паскаль.нахождение MIN и MAX Яська Помощь студентам 1 07.12.2009 19:12
Как поменять местами в массиве max и min элемент. Stager Общие вопросы C/C++ 2 13.01.2009 02:03