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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2010, 18:59   #1
Neksion
Пользователь
 
Регистрация: 24.11.2010
Сообщений: 29
По умолчанию Смена строк местами...

Всем привет! Подскажите почему задача не работает(Pascal)
В задаче сказано - переставить строку с максимальным элементом на главной диагонали со строкой с номером s.
И тему, где говорилось, как осуществляется смена местами строк я читал, но все равно не робит прога, Помогите плз!
Код:
uses crt;
const n=4;m=4;
var a:array [1..n,1..m] of integer;
i,j,k,h,max,s,p:integer;
begin
 clrscr;
 for i:=1 to n do
 for j:=1 to m do
  begin
   write('Введите ',i,',',j,' элемент массива - ');
   readln(a[i,j]);
  end;
 max:=a[1,1];
 for i:=1 to n do
 for j:=1 to m do
 if(i=j)or(i+j=5)and(i<>j) then
 if (max<=a[i,j]) then
 begin
  max:=a[i,j];
  k:=i;
  h:=j;
 end;
 clrscr;
 for i:=1 to n do
 begin
 for j:=1 to m do
 write(a[i,j]:4);
 writeln;
 end;
 writeln('Макс. элемент на диагоналях -', max);
 write('С какой строкой будем менять? - ');
 readln(s);
 if (s<=n)and(s>0) then
 begin
  for i:=1 to n do
  for j:=1 to m do
  begin
  p:=a[s,j];
  a[s,j]:=a[k,j];
  a[k,j]:=p;
  end;
  for i:=1 to n do
  begin
   for j:=1 to m do
   write(a[i,j]:4);
   writeln;
  end;
 end
 else writeln('Такой строки нет.');
 readln;
 end.

Последний раз редактировалось Stilet; 28.11.2010 в 20:24.
Neksion вне форума Ответить с цитированием
Старый 28.11.2010, 20:30   #2
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Цитата:
И тему, где говорилось, как осуществляется смена местами строк я читал, но все равно не робит прога
Видимо плохо читали. Вот вроде все робит
Код:
max:=a[1,1];
for i:=1 to n do
Begin
  for j:=1 to m do
  if(i=j) then
  if (max<=a[i,j]) then
  begin
     max:=a[i,j];
     k:=i;
     h:=j;
  end;
End;
writeln('max el -', max);
write('S kakoy strokoy menyat? - ');
readln(s);
if (s<=n)and(s>0) then
begin
  for j:=1 to m do
  begin
     p:=a[s,j];
     a[s,j]:=a[k,j];
     a[k,j]:=p;
  end;
end;
for i:=1 to n do
begin
  for j:=1 to m do
  write(a[i,j]:4);
  writeln;
end;
readln;
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 28.11.2010, 20:40   #3
Neksion
Пользователь
 
Регистрация: 24.11.2010
Сообщений: 29
По умолчанию

GetMax, Огромное спасибо, помогли)
Neksion вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать автозаполнение строк, которые зависят от строк другого столбца путвфда_иил Microsoft Office Excel 19 29.08.2010 17:16
Добавление строк в таблицу с вставкой в них текста и чередованием фона строк Centurion2xx6 Microsoft Office Word 9 30.03.2010 11:00
Матрица A состоит из 8 строк и 6 столбцов. вычесть из всех её строк, начиная со второй, первую строку Dimak24 Помощь студентам 1 19.12.2008 15:45
Обмен местами) Sota Общие вопросы C/C++ 7 22.02.2008 18:32
Excel max 256 строк VS user надо 300 строк Exo Microsoft Office Excel 3 10.01.2008 17:14