С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.79/57: Рейтинг темы: голосов - 57, средняя оценка - 4.79
energoshoc
51 / 0 / 0
Регистрация: 23.03.2010
Сообщений: 44
1

Дана прямоугольная матрица. Найти строку с наибольшей и наименьшей суммой элементов

26.03.2010, 07:56. Просмотров 10932. Ответов 17
Метки нет (Все метки)

Дана прямоугольная матрица.Найти строку с наибольшей и наименьшей суммой элементов.Вывести на печать найденные строки и суммы их элементов.
Pascal
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
Program matrix;
USES Crt;
Var
a: array[1..20, 1..20] of integer;
n,S,i,j,k,mins, maxs, mini, maxi, t : integer;
Begin
ClrScr;
  Write('Vvedite kolichestvo strok n= ');
  Readln(n);
      for i:=1 to n do
      for j:=1 to n do
          begin
            Write('a(',i,',',j,')= ');
            Readln(a[i,j]);
          end;
            Writeln('Matrica a');
            for i:=1 to n do
                begin
                  for j:=1 to n do
                  Write(a[i,j],'  ','  ');
                  Writeln;
                end;
mins:= mins+a[1, j];
 maxs:= mins;
 mini:= 1;
 maxi:= 1;
 for i:=2 to n do
 begin
  t:=0;
  for j:=1 to n do
   t:= t+ a[i,j];
  if (t>maxs) then
  begin
   maxs:= t;
   maxi:= i;
  end
  else if (t<mins) then
  begin
   mins:= t;
   mini:= i;
  end;
 end;
 writeln ('Max summ = ', maxs, ' ctroka ', maxi);
 writeln ('Min summ = ', mins, ' ctroka ', mini);
Readln;
end.
можете посмотреть в чём ошибка.У меня иного не правельно считает минимальную сумму.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.03.2010, 07:56
Ответы с готовыми решениями:

Дана прямоугольная матрица. Найти строку с наибольшей суммой элементов
Дана прямоугольная матрица. Найти строку с наибольшей суммой элементов.

Прямоугольная матрица. Найти строки с наибольшей и наименьшей суммой элементов
Дана прямоугольная матрица размера m×n. Составить программу, которая находит...

Найти строку матрицы с наибольшей и наименьшей суммой элементов
Дана прямоугольная матрица.Найти строку с наибольшей и наименьшей суммы...

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

Найти строку матрицы с наибольшей и наименьшей суммой элементов
Найти строку матрицы с наибольшей и наименьшей суммой элементов Помогите!

17
Puporev
Модератор
55496 / 42589 / 29437
Регистрация: 18.05.2008
Сообщений: 100,748
26.03.2010, 08:37 2
Pascal
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
Program matrix;
USES Crt;
Var a: array[1..20, 1..20] of integer;
    n,S,i,j,k,mins, maxs, mini, maxi, t : integer;
Begin
ClrScr;
Write('Vvedite kolichestvo strok n= ');
Readln(n);
for i:=1 to n do
for j:=1 to n do
 begin
  Write('a(',i,',',j,')= ');
  Readln(a[i,j]);
 end;
clrscr;
Writeln('Matrica a');
for i:=1 to n do
 begin
  for j:=1 to n do
  Write(a[i,j],'  ','  ');
  Writeln;
 end;
mins:=0;
for j:=1 to n do
mins:= mins+a[1,j];{summa v str 1, poka=min}
maxs:= mins;
mini:= 1;
maxi:= 1;
for i:=1 to n do
 begin
  t:=0;
  for j:=1 to n do
   t:= t+ a[i,j];
  if (t>maxs) then
  begin
   maxs:= t;
   maxi:= i;
  end;
 if (t<mins) then
  begin
   mins:= t;
   mini:= i;
  end;
 end;
writeln ('Max summ = ', maxs, ' ctroka ', maxi);
for j:=1 to n do
write(a[maxi,j],' ');
writeln;
writeln;
writeln ('Min summ = ', mins, ' ctroka ', mini);
for j:=1 to n do
write(a[mini,j],' ');
Readln;
end.
2
energoshoc
51 / 0 / 0
Регистрация: 23.03.2010
Сообщений: 44
26.03.2010, 08:42  [ТС] 3
спасибеньки))
0
Puporev
Модератор
55496 / 42589 / 29437
Регистрация: 18.05.2008
Сообщений: 100,748
26.03.2010, 08:50 4
energoshoc, Кстати, по условию матрица прямоугольная, поэтому нужно задать не только количество строк, но и столбцов.
0
energoshoc
51 / 0 / 0
Регистрация: 23.03.2010
Сообщений: 44
26.03.2010, 09:13  [ТС] 5
да уже понял((вот сижу модифицирую старую))всё равно спасибо)

Добавлено через 10 минут
чё та я опять где то намудрил))
Pascal
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
Program xy;
Var a: array [1..20, 1..20] of integer;
 i, j, m, n, mins, maxs, mini, maxi, t: integer;
begin
clrscr
Write('Vvedite kolichestvo strok n= ');
Readln(n);
Write('Vvedite kolichestvo stolbcov m= ');
readln(m); 
 for i:=1 to m do
  for j:=1 to n do
 begin
  Write('a(',i,',',j,')= ');
  Readln(a[i,j]);
 end;
clrscr;
Writeln('Matrica a');
for i:=1 to n do
 begin
  for j:=1 to n do
  Write(a[i,j],'  ','  ');
  Writeln;
 end;
  mins:= 0; 
 for j:=1 to n do
 mins:= mins+a[1, j];
 maxs:= mins; 
 mini:= 1; 
 maxi:= 1;
 for i:=2 to m do 
 begin
  t:=0; 
  for j:=1 to n do
   t:= t+ a[i,j];
  if (t>maxs) then 
  begin
   maxs:= t; 
   maxi:= i;
  end;
  if (t<mins) then 
  begin
   mins:= t;
   mini:= i;
  end;
 end;
 writeln ('Max summ = ', maxs, ' in row ', maxi);
for j:=1 to n do
write(a[maxi,j],' ');
writeln;
writeln;
 writeln ('Min summ = ', mins, ' in row ', mini);
for j:=1 to n do
write(a[mini,j],' ');
readln;
end.
0
Puporev
Модератор
55496 / 42589 / 29437
Регистрация: 18.05.2008
Сообщений: 100,748
26.03.2010, 09:28 6
Неужели так трудно нарисовать на бумажке матрицу например в 2 строки и 3 столбца, где n=2, m=3 и написать нормально в программе, что если считаем строки то от 1 до n, если идем по строке(считаем столбцы), то от 1 до m.
Для этого не нужно быть программистом, а просто откинуть лень и чуть включить остатки мозга.
Pascal
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
Program xy;
uses crt;
Var a: array [1..20, 1..20] of integer;
 i, j, m, n, mins, maxs, mini, maxi, t: integer;
begin
clrscr;
Write('Vvedite kolichestvo strok n= ');
Readln(n);
Write('Vvedite kolichestvo stolbcov m= ');
readln(m); 
 for i:=1 to n do
  for j:=1 to m do
 begin
  Write('a(',i,',',j,')= ');
  Readln(a[i,j]);
 end;
clrscr;
Writeln('Matrica a');
for i:=1 to n do
 begin
  for j:=1 to m do
  Write(a[i,j],'  ','  ');
  Writeln;
 end;
  mins:= 0; 
 for j:=1 to m do
 mins:= mins+a[1, j];
 maxs:= mins; 
 mini:= 1; 
 maxi:= 1;
 for i:=1 to n do
 begin
  t:=0; 
  for j:=1 to m do
   t:= t+ a[i,j];
  if (t>maxs) then 
  begin
   maxs:= t; 
   maxi:= i;
  end;
  if (t<mins) then 
  begin
   mins:= t;
   mini:= i;
  end;
 end;
 writeln ('Max summ = ', maxs, ' in row ', maxi);
for j:=1 to m do
write(a[maxi,j],' ');
writeln;
writeln;
 writeln ('Min summ = ', mins, ' in row ', mini);
for j:=1 to m do
write(a[mini,j],' ');
readln;
end.
1
energoshoc
51 / 0 / 0
Регистрация: 23.03.2010
Сообщений: 44
26.03.2010, 09:34  [ТС] 7
полностью с тобой согласен)))
0
Юk@
0 / 0 / 0
Регистрация: 11.06.2010
Сообщений: 5
11.06.2010, 00:29 8
Здравствуйте! Помогите пожалуйста решить эту же задачу с помощью процедуры.
0
Puporev
Модератор
55496 / 42589 / 29437
Регистрация: 18.05.2008
Сообщений: 100,748
11.06.2010, 06:58 9
Pascal
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
Program xy;
uses crt;
const nmax=20;
type mas=array [1..nmax] of integer;
     matr=array[1..nmax] of mas;
procedure Vvod(var mt:matr;var x,y:byte);
var i,j:byte;
begin
write('Количество строк до ',nmax,' = ');
readln(x);
Write('Количество столбцов до ',nmax,' = ');
readln(y);
writeln('Матрица:');
for i:=1 to x do
 begin
  for j:=1 to y do
   begin
    mt[i,j]:=random(20);{если в Паскаль АВС то писать mt[i][j]}
    write(mt[i,j]:4);
   end;
  writeln;
 end;
end;
function Summ(v:mas;y:byte):integer;
var i:byte;
    s:integer;
begin
s:=0;
for i:=1 to y do
s:=s+v[i];
Summ:=s;
end;
procedure MinMax(mt:matr;x,y:byte);
var i,j,imn,imx:byte;
    mx,mn:integer;
begin
mn:=Summ(mt[1],y);
mx:=mn;
imn:=1;
imx:=1;
for i:=1 to x do
 begin
  if Summ(mt[i],y)<mn then
   begin
    mn:=Summ(mt[i],y);
    imn:=i;
   end;
  if Summ(mt[i],y)>mx then
   begin
    mx:=Summ(mt[i],y);
    imx:=i;
   end;
 end;
writeln('Строка с минимальной суммой:');
for i:=1 to y do
write(mt[imn,i]:4);
writeln;
writeln('Сумма=',Summ(mt[imn],y));
writeln;
writeln('Строка с максимальной суммой:');
for i:=1 to y do
write(mt[imx,i]:4);
writeln;
writeln('Сумма=',Summ(mt[imx],y));
end;
 
Var a:matr;
    n,m:byte;
begin
clrscr;
randomize;
Vvod(a,n,m);
MinMax(a,n,m);
readln;
end.
0
Юk@
0 / 0 / 0
Регистрация: 11.06.2010
Сообщений: 5
13.06.2010, 00:45 10
Сорри, нельзя ли попроще плиз!))
0
Puporev
Модератор
55496 / 42589 / 29437
Регистрация: 18.05.2008
Сообщений: 100,748
13.06.2010, 06:37 11
нельзя ли попроще плиз!))
А что именно? Вы наверное первый раз видите код программы, здесь нет абсолютно ничего лишнего, просто выполняется условие задачи с Вашим дополнением о процедурах.
0
Юk@
0 / 0 / 0
Регистрация: 11.06.2010
Сообщений: 5
14.06.2010, 12:18 12
Программа то работает, выводит матрицу, но в итоге в ответе одни нули, программа не считает, что делать?
0
Puporev
Модератор
55496 / 42589 / 29437
Регистрация: 18.05.2008
Сообщений: 100,748
14.06.2010, 12:26 13
Юk@, Очевидно выпрямлять руки и искривлять извилины.
0
Puporev
Модератор
55496 / 42589 / 29437
Регистрация: 18.05.2008
Сообщений: 100,748
14.06.2010, 12:30 14
У меня так работает....
0
Миниатюры
Дана прямоугольная матрица. Найти строку с наибольшей и наименьшей суммой элементов  
Юk@
0 / 0 / 0
Регистрация: 11.06.2010
Сообщений: 5
14.06.2010, 12:31 15
весьма вежливо...
0
Puporev
Модератор
55496 / 42589 / 29437
Регистрация: 18.05.2008
Сообщений: 100,748
14.06.2010, 12:35 16
весьма вежливо.
..
А у нас по честному писать правила не позволяют...
1
lexflax
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 627
21.04.2011, 09:12 17
Puporev, В матрице в каждой строке найти сумму N Элементов расположенных после максимального элемента этой строкии сохранить результ в одномерном массиве В напишите решение плиз
0
zzz
0 / 0 / 0
Регистрация: 19.09.2015
30.06.2011, 22:56 18
А если не сложно, можете написать эту же программу на делфи?
0
30.06.2011, 22:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.06.2011, 22:56

Задача на матрицу. Найти строку с наибольшей и наименьшей суммой элементов
Помогите составить программу: Дана прямоугольная матрица. Найти строку с...

Поменять местами строку с наименьшей суммой элементов и столбец с наибольшей
В заданном целочисленном массиве Ann поменять местами строку с наименьшей...

Найти строки с наибольшей и наименьшей суммой элементов
Помогите рожалуйста: Дана прямоугольная матрица размера m×n. Составить...


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

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

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