Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
Sm4k1
0 / 0 / 0
Регистрация: 19.10.2011
Сообщений: 42
1

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

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

Задана матрица размером 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
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.10.2011, 19:09
Ответы с готовыми решениями:

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

Напечатать суммы элементов строки и столбца, на пересечении которых расположен минимальный элемент матрицы
Есть у кого-нибудь код или готовый проект на Delphi 7? Добавлено через 28 минут Напечатать...

Переставить строки матрицы так, чтобы элементы первого столбца были упорядочены по невозрастанию
Заданная матрица,Х(n,n),n&lt;=20. Разработать программу, которая переставляет строки матрицы так,...

Найти максимальный по абсолютной величине элемент и переставить строки и столбцы
Дана матрица А(n x n). Написать программу, которая находит максимальный по абсолютной величине...

Определить номер строки, в которой расположен максимальный элемент третьего столбца массива
Здравствуйте. Я плохо знаю делфи и не понимаю почему у меня выводится ошибка: Debugger exception...

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

Добавлено через 9 минут
Вот сам архив
0
Puporev
Модератор
57192 / 43651 / 30165
Регистрация: 18.05.2008
Сообщений: 104,066
22.10.2011, 20:28 6
Лень переделывать. Раз у тебя все на одной кнопке, то сразу вводи все 3 числа, или раздели выполнение на 2 части, 1 кнопка - создание матрицы и поиск максимального, 2 кнопка - перестановки.
1
Sm4k1
0 / 0 / 0
Регистрация: 19.10.2011
Сообщений: 42
22.10.2011, 20:40  [ТС] 7
Спасибо помогло на счет 2 кнопки, все оставил так просто 2-ю кнопку добавил вроде работает все .
0
22.10.2011, 20:40
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.10.2011, 20:40

Найти наименьший элемент матрицы и номера строки и столбца, в которых он расположен
Найти наименьший элемент матрицы и номера строки и столбца, в которых он расположен.Помогите...

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

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru