Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi для начинающих

Войти
Регистрация
Восстановить пароль
 
kisell
0 / 0 / 0
Регистрация: 04.09.2014
Сообщений: 79
#1

Определить номер столбца матрицы с максимальным количеством единичных элементов - Delphi

14.12.2014, 22:19. Просмотров 288. Ответов 6
Метки нет (Все метки)

Определить номер столбца матрицы А с максимальным кол-вом единичных элементов и вычесть элементы этого столбца из соответствующих элементов всех столбцов

Вообщем, программа не правильно считает. В чем ошибка?

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
var a:array [1..4,1..4] of integer;
  b,s,i,j:integer;
begin
b:=0;
s:=0;
for i:=1 to 4 do
for j:=1 to 4 do
a[i,j]:=StrToInt(StringGrid1.Cells[j,i]);
for i:=1 to 4 do
if a[i,1]=1 then
begin
b:=b+a[i,1]; // nahodim kol-vo 1 v pervom Col
end;
for i:=1 to 4 do
for j:=2 to 4 do
if a[i,j]=1 then
begin
s:=s+a[i,j];
if b<s then
 
b:=s;
end;
 
for i:=1 to 4 do
for j:=1 to 4 do
if j<>b then
begin
a[i,j]:=a[i,j]-a[i,b];
end;
 
for i:=1 to 4 do
for j:=1 to 4 do
begin
StringGrid2.Cells[j,i]:=intToStr(a[i,j]);
end;
Добавлено через 11 минут
Вернее, не правильно вычитает. Не те [i,j] не из тех [i,j], что нужно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2014, 22:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определить номер столбца матрицы с максимальным количеством единичных элементов (Delphi):

Определить номер столбца матрицы, в котором расположен самый левый из элементов с заданным значением - Delphi
Дан двухмерный массив целых чисел. В пятой строке имеются элементы, равные 13. Определить номер столбца, в котором расположен самый левый...

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

Найти номер столбца матрицы, в котором нет отрицательных элементов - Delphi
Дана целочисленная матрица размерности (n × n). Найти номер столбца, в котором нет отрицательных элементов.

Определить номер столбца с максимальной суммой положительных элементов - Delphi
Дан двумерный массив размером m*n, заполненный промежутками от -30 до 30 Определить в нем номер столбца с максимальной суммой положительных...

Определить номер столбца, в котором наибольшее количество отрицательных элементов - Delphi
Дана целочисленная квадратная матрица А порядка n. Определить номер столбца, в котором наибольшее количество отрицательных элементов.

Разработать процедуру, которая в массиве целых чисел находит элементы с максимальным количеством четных цифр и его номер - Delphi
Разработать процедуру, которая в массиве целых чисел находит элементы с максимальным количеством четных цифр и его номер. помогите плз....

6
FIL
Модератор
3378 / 2516 / 478
Регистрация: 19.09.2012
Сообщений: 7,850
14.12.2014, 22:29 #2
Переменную s надо обнулять перед началом обработки каждого столбца, а сравнивать b<s - после.

Кроме того, надо запоминать индекс найденного столбца с макс. кол-вом 1.
0
kisell
0 / 0 / 0
Регистрация: 04.09.2014
Сообщений: 79
14.12.2014, 22:37  [ТС] #3
Delphi
1
2
3
4
5
6
7
8
9
10
for i:=1 to 4 do
for j:=2 to 4 do
if a[i,j]=1 then
begin
s:=0;
s:=s+a[i,j];
if b<s then
 
b:=s;
end;
так?

Добавлено через 2 минуты
Если так, то из A[i,j] вычитаются a[i.1]

Добавлено через 3 минуты
Сделал с индексом. Теперь вычитаются элементы 4 столбца из всех других столбцов.


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
var a:array [1..4,1..4] of integer;
  ind,b,s,i,j:integer;
begin
b:=0;
 
for i:=1 to 4 do
for j:=1 to 4 do
a[i,j]:=StrToInt(StringGrid1.Cells[j,i]);
for i:=1 to 4 do
if a[i,1]=1 then
begin
b:=b+a[i,1]; // nahodim kol-vo 1 v pervom Col
end;
for i:=1 to 4 do
for j:=2 to 4 do
if a[i,j]=1 then
begin
s:=0;
s:=s+a[i,j];
if b<s then
 
b:=s;
ind:=j;
end;
 
for i:=1 to 4 do
for j:=1 to 4 do
if j<>ind then
begin
a[i,j]:=a[i,j]-a[i,ind];
end;
 
for i:=1 to 4 do
for j:=1 to 4 do
begin
StringGrid2.Cells[j,i]:=intToStr(a[i,j]);
end;
0
FIL
Модератор
3378 / 2516 / 478
Регистрация: 19.09.2012
Сообщений: 7,850
14.12.2014, 23:03 #4
Цитата Сообщение от kisell Посмотреть сообщение
так?
Нет.
Ты понимаешь значения слов "перед" и "после"?
0
kisell
0 / 0 / 0
Регистрация: 04.09.2014
Сообщений: 79
14.12.2014, 23:10  [ТС] #5
Теперь такая штука. Вычитает везде все правильно, кроме 1-й строки и 4 столбца.

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
var a:array [1..4,1..4] of integer;
  ind,b,s,i,j:integer;
begin
b:=0;
ind:=0;
s:=0;
for i:=1 to 4 do
for j:=1 to 4 do
a[i,j]:=StrToInt(StringGrid1.Cells[j,i]);
 
for i:=1 to 4 do
if a[i,1]=1 then
begin
b:=b+1; // nahodim kol-vo 1 v pervom Col
end;
for j:=2 to 4 do
s:=0;
for i:=1 to 4 do
if a[i,j]=1 then
begin
s:=s+1;
end;
if b<s then
begin
b:=s;
ind:=j;
end;
 
for j:=1 to 4 do
for i:=1 to 4 do
if j<>ind then
begin
a[i,j]:=a[i,j]-a[i,ind];
end;
 
for i:=1 to 4 do
for j:=1 to 4 do
begin
StringGrid2.Cells[j,i]:=intToStr(a[i,j]);
end;
0
Миниатюры
Определить номер столбца матрицы с максимальным количеством единичных элементов  
FIL
Модератор
3378 / 2516 / 478
Регистрация: 19.09.2012
Сообщений: 7,850
14.12.2014, 23:20 #6
Осталось добавить операторные скобки для внешнего цикла.

Добавлено через 3 минуты
Строка 5 должна быть:
Delphi
1
ind:=1;
1
kisell
0 / 0 / 0
Регистрация: 04.09.2014
Сообщений: 79
14.12.2014, 23:21  [ТС] #7
Спасибо!)Работает)
0
14.12.2014, 23:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.12.2014, 23:21
Привет! Вот еще темы с ответами:

Определить сумму элементов каждого столбца матрицы - Delphi
Ввести двумерный массив M x N. Определить сумму элементов каждого столбца :(

Определить сумму элементов определенного столбца/строки матрицы - Delphi
Составить программу.Определить: а) сумму всех элементов третьей строки массива. б) сумму всех элементов S-го столбца массива.

Определить среднее арифметическое элементов второго столбца матрицы - Delphi
Дан двумерный массив. Определить среднее арифметическое элементов второго столбца массива

Определить номер строки матрицы с наибольшей суммой элементов - Delphi
Ребят помогите пожалуйста, дали задание и скоро нужно сдавать, а я в делфи вообще не бум-бум. Определить номер строки матрицы с...


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

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

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