Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 19.10.2011
Сообщений: 42
1

Переставить строки и столбцы матрицы так, чтобы максимальный элемент был расположен на пересечении k-й строки и k-го столбца

22.10.2011, 19:09. Показов 1478. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задана матрица размером n x m. Найти максимальный по модулю элемент матрицы. Переставить строки и столбцы матрицы таким образом, чтобы максимальный по модулю элемент был расположен на пересечении k-й строки и k-го столбца.

Написал программу выдает такую ошибку при работе is not a valid integr value

сам код:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
var
  Form1: TForm1;
  const nmax=20;
var a:array[1..nmax,1..nmax] of integer;
    m,n,i,j,imx,jmx,k,p:byte;
    mx,x:integer;
    
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
begin
randomize;
repeat
n:=strtoint(edit1.text);
until n in [1..nmax];
repeat
m:=strtoint(edit2.Text);
until m in [1..nmax];
for i:=1 to n do
 begin
   for j:=1 to m do
    begin
     a[i,j]:=random(50)-25;
     stringgrid1.Cells[i-1,j-1]:=inttostr(a[i,j]);
    end;
 end;
mx:=abs(a[1,1]);
imx:=1;jmx:=1;
for i:=1 to n do
for j:=1 to m do
if abs(a[i,j])>mx then
 begin
  mx:=abs(a[i,j]);
  imx:=i;
  jmx:=j;
 end;
Showmessage('Максимальный по модулю элемент ' +inttostr(a[imx,jmx])+ ' имеет индексы: '+inttostr(imx)+inttostr(jmx));
if n<m then p:=n else p:=m;
repeat
k:=strtoint(edit3.Text);
until k in [1..p];
{перестановка строк}
if imx>k then{если строка с макс ниже}
 begin
  for i:=imx downto k+1 do
  for j:=1 to m do
   begin
    x:=a[i,j];
    a[i,j]:=a[i-1,j];
    a[i-1,j]:=x;
   end;
 end;
if imx<k then{если строка с макс выше}
 begin
  for i:=imx to k-1 do
  for j:=1 to m do
   begin
    x:=a[i,j];
    a[i,j]:=a[i+1,j];
    a[i+1,j]:=x;
   end;
 end;
{перестановка столбцов}
if jmx>k then {если столбец с макс правее}
 begin
  for j:=jmx downto k+1 do
  for i:=1 to n do
   begin
    x:=a[i,j];
    a[i,j]:=a[i,j-1];
    a[i,j-1]:=x;
   end;
 end;
if jmx<k then{если столбец с макс левее}
 begin
  for j:=jmx to k-1 do
  for i:=1 to n do
   begin
    x:=a[i,j];
    a[i,j]:=a[i,j+1];
    a[i,j+1]:=x;
   end;
 end;
for i:=1 to n do
 begin
  for j:=1 to m do
  stringgrid1.Cells[i-1,j-1]:=inttostr(a[i,j]);
 end;
  end;
end.
Помогите устранить эту ошибку
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.10.2011, 19:09
Ответы с готовыми решениями:

Переставить строки и столбцы матрицы таким образом, чтобы максимальный по модулю элемент был расположен на пересечении 1-й строки и 1-го столбца
Помогите решить задачку в DELPHI Задана матрица Am×n . Найти максимальный по модулю элемент...

Переставить строки и столбцы матрицы так, чтобы максимальный по модулю элемент был расположен на пересечении k-й строки и k-го столбца
Задана матрица размером n*m. Найти максимальный по модулю элемент матрицы. Переставить строки и...

Переставить строки и столбцы матрицы чтобы максимальный по модулю элемент был расположен на пересечении К - той строки и К - того столбца.
Дана матрица А(nxn). Найти максимальный по модулю элемент матрицы. Переставить строки и столбцы...

Переставить строки и столбцы матрицы таким образом, чтобы максимальный по модулю элемент был расположен на пересечении k-й строки и k-го столбца.
задана матрица размером M x N. Найти максимальный по модулю элемент матрицы.Переставить строки и...

6
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
22.10.2011, 19:44 2
Значит не введены целые числа в какой-то Эдит.
0
0 / 0 / 0
Регистрация: 19.10.2011
Сообщений: 42
22.10.2011, 19:50  [ТС] 3
Цитата Сообщение от Puporev Посмотреть сообщение
Значит не введены целые числа в какой-то Эдит.
я вожу 2 числа чтоб построить саму матрицу, а потом нужно третье вести после того как она построиться. она мне ошибку выдает
0
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
22.10.2011, 19:54 4
Sm4k1, Прикрепи архив проекта к теме, там у тебя еще неправильно написано
Delphi
1
2
3
repeat
n:=strtoint(edit1.text);
until n in [1..nmax];
этот номер с формой не прокатит, не консоль.
А самому все создавать лень.
1
0 / 0 / 0
Регистрация: 19.10.2011
Сообщений: 42
22.10.2011, 20:20  [ТС] 5
Можешь пример показать )

Добавлено через 9 минут
Вот сам архив
0
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
22.10.2011, 20:28 6
Лень переделывать. Раз у тебя все на одной кнопке, то сразу вводи все 3 числа, или раздели выполнение на 2 части, 1 кнопка - создание матрицы и поиск максимального, 2 кнопка - перестановки.
1
0 / 0 / 0
Регистрация: 19.10.2011
Сообщений: 42
22.10.2011, 20:40  [ТС] 7
Спасибо помогло на счет 2 кнопки, все оставил так просто 2-ю кнопку добавил вроде работает все .
0
22.10.2011, 20:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.10.2011, 20:40
Помогаю со студенческими работами здесь

Переставить строки и столбцы матрицы так, чтобы max элемент располагался на пересечении К строки и К столбца
Задана квадратная матрица. Найти максимальный по модулю элемент матрицы. Переставить строки и...

Переставить строки и столбцы матрицы, чтобы max по модулю элемент оказался на пересечении k-й строки и k-й столбца
меняет строки но столбцы просто игнорирует. #include &quot;pch.h&quot; #include &lt;iostream&gt; #include...

Переставить строки и столбцы матрицы так чтобы максимальный элемент оказался справа сверху
#include &quot;stdafx.h&quot; #include &lt;cstdlib&gt; #include &lt;iostream&gt; #include &lt;stdlib.h&gt; using namespace...

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

Заменить единицами элементы строки и столбца, на пересечении которых расположен максимальный элемент
Задана квадратная матрица. Заменить единицами элементы строки и столбца, на пересечении которых...

Переставить строки и столбцы матрицы так, чтобы минимальный элемент матрицы находился в левом верхнем углу матрицы
Здравствуйте. Не могу вспомнить как это делается. Помогите пожалуйста, заранее спасибо. Условие :...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru