19.01.2019, 22:48 [+3 UTC]
в нашей команде: 3 341 чел. | участники онлайн: 5 (рекорд: 20)

:: РЕГИСТРАЦИЯ

:: задать вопрос

:: все разделы

:: правила

:: новости

:: участники

:: доска почёта

:: форум

:: блоги

:: поиск

:: статистика

:: наш журнал

:: наши встречи

:: наша галерея

:: отзывы о нас

:: поддержка

:: руководство

Версия системы:
7.64 (07.01.2019)
JS-v.1.31 | CSS-v.3.35

Общие новости:
01.01.2019, 13:54

Форум:
14.01.2019, 10:08

Последний вопрос:
19.01.2019, 20:34
Всего: 148529

Последний ответ:
19.01.2019, 22:04
Всего: 257605

Последняя рассылка:
19.01.2019, 08:45

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
13.04.2010, 23:47 »
lamed
Спасибо! Оперативно, с хорошими комментариями. [вопрос № 177834, ответ № 260791]
24.02.2010, 18:50 »
Кайдашов Александр Викторович
Большое спасибо, Охотник! Разгона не будет. Действительно, выбор видеокарт в данном магазине резко ухудшился. Из остальной комплектации системного блока будет установлен жесткий диск WD Sata 2 320 Гб и DVD-привод [вопрос № 176891, ответ № 259720]
02.11.2011, 17:00 »
Ольга А.
Спасибо огромное. [вопрос № 184365, ответ № 268634]

РАЗДЕЛ • Pascal / Delphi / Lazarus

Создание программ на языках Pascal, Delphi и Lazarus.

[администратор рассылки: Зенченко Константин Николаевич (Старший модератор)]

Лучшие эксперты в этом разделе

Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 573
puporev
Статус: Профессионал
Рейтинг: 194
Степанов Иван /REDDS
Статус: 4-й класс
Рейтинг: 28

Перейти к консультации №:
 

Консультация онлайн # 194408
Раздел: • Pascal / Delphi / Lazarus
Автор вопроса: mustang289 (Посетитель)
Отправлена: 12.01.2019, 20:14
Поступило ответов: 1

Здравствуйте! У меня возникли сложности с таким вопросом:
Найти максимальный по модулю элемент матрицы rmatr[n, m]. Переставить строки и столбцы матрицы таким образом, чтобы максимальный по модулю элемент был расположен на пересечении k-й строки и k-го столбца (k – вводится пользователем с клавиатуры).
вот матрица

var a:array[1..20,1..20] of integer;
    n,i,j:byte;
begin
repeat
write('Введите размер матрицы от 2 до 20 n=');
readln(n);
until n in [2..20];
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    if j<=n-i+1 then a[i,j]:=i+j-1
    else a[i,j]:=0;
    write(a[i,j]:3);
   end;
  writeln;
 end;
end.

Состояние: Консультация закрыта

Ответ # 277258 от puporev (Профессионал)

Здравствуйте, mustang289!

Код (Pascal) :: выделить код
var rmatr:array[1..10,1..10] of real;
    n,m,i,j,imx,jmx,k:byte;
    mx,x:real;
begin
repeat
write('Введите количество строк от 3 до 10 n=');
readln(n);
until n in [3..10];
repeat
write('Введите количество столбцов от 3 до 10 m=');
readln(m);
until m in [3..10];
randomize;
for i:=1 to n do
 begin
  for j:=1 to m do
   begin
    rmatr[i,j]:=-9+18*random;
    write(rmatr[i,j]:6:2);
    if i+j=2 then
     begin
      mx:=rmatr[1,1];
      imx:=1;
      jmx:=1;
     end
    else if abs(rmatr[i,j])>abs(mx) then
     begin
      mx:=rmatr[i,j];
      imx:=i;
      jmx:=j;
     end;
   end;
  writeln;
 end;
writeln('Максимальный по модулю элемент=',mx:0:2,' в строке ',imx,' в столбце ',jmx);
if n<m then i:=n else i:=m;
repeat
write('Введите номер строки и столбца для обмена от 1 до ',i,' k<>',imx,' k<>',jmx,' k=');
readln(k);
until (k in [1..i])and(k<>imx)and(k<>jmx);
for j:=1 to m do
 begin
  x:=rmatr[imx,j];
  rmatr[imx,j]:=rmatr[k,j];
  rmatr[k,j]:=x;
 end;
for i:=1 to n do
 begin
  x:=rmatr[i,jmx];
  rmatr[i,jmx]:=rmatr[i,k];
  rmatr[i,k]:=x;
 end;
writeln('Перестановка строк и столбцов с тем чтобы элемент ',mx:0:2);
writeln('оказался в ячейке [',k,',',k,']');
for i:=1 to n do
 begin
  for j:=1 to m do
  write(rmatr[i,j]:6:2);
  writeln;
 end;
end.


Консультировал: puporev (Профессионал)
Дата отправки: 12.01.2019, 22:07

Рейтинг ответа:

+1

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 194408

zdwork
1-й класс

ID: 402651

# 1

= общий = | 13.01.2019, 15:38 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
mustang289:

{Найти максимальный по модулю элемент матрицы rmatr[n, m].
Переставить строки и столбцы матрицы таким образом, чтобы
максимальный по модулю элемент был расположен на пересечении
k-й строки и k-го столбца
(k – вводится пользователем с клавиатуры).}

Код (Pascal) :: выделить код
var
  a: array[1..20, 1..20] of integer;
  n, m, i, j, k, k_min, i_max, j_max, t: integer;
 
begin
  randomize;
  
  {Вводим n, m в диапазоне от 1 до 20}
  repeat
    write('Enter n, m: ');
    readln(n, m);
  until (n in [1..20]) and (m in [1..20]);
  
  {Выводим матрицу на экран}
  writeln('rmatr:');
  for i := 1 to n do
  begin
    for j := 1 to m do
    begin
      a[i, j] := random(100);
      write(a[i, j]:4);
    end;
    writeln;
  end;
  
  {Ищем максимум и выводим на экран}
  i_max := 1; j_max := 1;
  for i := 1 to n do
    for j := 1 to m do
      if a[i, j] > a[i_max, j_max] then
      begin
        i_max := i;
        j_max := j;
      end;
  writeln('Max = a[', i_max, ',', j_max, '] = ', a[i_max, j_max]);
  
  {Вводим k в диапазоне от 1 до минимального из n, m}
  if n < m then k_min := n
  else k_min := m;
  repeat
    write('Enter k: ');
    readln(k);
  until k in [1..k_min];
  
  {Меняем столбцы}
  for i := 1 to n do
  begin
    t := a[i, k];
    a[i, k] := a[i, j_max];
    a[i, j_max] := t;
  end;
  
  {Меняем строки}
  for j := 1 to m do
  begin
    t := a[k, j];
    a[k, j] := a[i_max, j];
    a[i_max, j] := t;
  end;
  
  {Выводим полученную матрицу}
  writeln('New rmatr:');
  for i := 1 to n do
  begin
    for j := 1 to m do
      write(a[i, j]:4);
    writeln;
  end;
  
  readln;
end.

-----
Последнее редактирование 13.01.2019, 17:25 Зенченко Константин Николаевич (Старший модератор)

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.14908 сек.

© 2001-2019, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.64 от 07.01.2019
Версия JS: 1.31 | Версия CSS: 3.35