0 / 0 / 1
Регистрация: 20.12.2012
Сообщений: 6
1

Процедуры: определить столбец с наибольшей суммой и заменить на строку с наименьшей суммой элементов

12.01.2013, 09:39. Показов 1051. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет, срочно помогите пожалуйста с программой. Я ее написал (вернее не я), но нужно оформить с процедурами. Срочно

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
76
program lab4_23;
 var a:array[1..100,1..100] of integer;
 m,i,j,jmx,imn,jmn:byte;
 mx,mn,sm,p1,p2,x:integer;
 begin
 write(' Введите размер матрицы m=');
 readln(m);
 writeln;
 begin
 for i:=1 to m do
 for j:=1 to m do
 begin
 write('a[',i,',',j,']=');
 readln(a[i,j]);
 end;
 writeln('Исходная матрица: ');
 for i:=1 to m do
 begin
 for j:=1 to m do
 write(a[i,j]:4);
 writeln;
 end;;
 writeln;
 end;
 writeln;
 mx:=0;
 for i:=1 to m do
 mx:=mx+a[i,1];
 jmx:=1;
 for j:=2 to m do
 begin
 sm:=0;
 for i:=1 to m do
 sm:=sm+a[i,j];
 if sm>mx then
 begin
 mx:=sm;
 jmx:=j;
 end;
 end;
 writeln(' Максимальная сумма в столбце ',jmx,' =',mx);
 mn:=0;
 for i:=1 to m do
 mn:=mn+a[1,i];
 imn:=1;
 for i:=2 to m do
 begin
 sm:=0;
 for j:=1 to m do
 sm:=sm+a[i,j];
 if sm<mn then
 begin
 mn:=sm;
 imn:=i;
 end;
 end;
 writeln(' Минимальная сумма в строке ',imn,' =',mn);
 p1:=a[imn,jmx];
 p2:=a[jmx,jmx];
 for i:=1 to m do
 begin
 x:=a[imn,i];
 a[imn,i]:=a[i,jmx];
 a[i,jmx]:=x;
 end;
 a[imn,jmx]:=p1;
 a[imn,imn]:=p2;
 writeln(' Обмен столбца ',jmx,' и строки ',imn);
 for i:=1 to m do
 begin
 for j:=1 to m do
 write(a[i,j]:4);
 writeln;
 end;
 readln
 end.
Суть программы. В квадратной матрице, нужно определить столбец в котором сумма элементов наибольшая и заменить со строкой в которой сумма элементов наименьшая. Программа почему то работает через раз.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.01.2013, 09:39
Ответы с готовыми решениями:

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

Найти строку матрицы с наибольшей и наименьшей суммой элементов
Дана матрица т(3,5).необходимо найти строку с наибольшей и наименьшей суммой элементов.вывести...

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

Найти строку с наибольшей и наименьшей суммой элементов. Вывести на печать найденные строки и суммы их элементов
Найти строку с наибольшей и наименьшей сум- мой элементов. Вывести на печать найденные...

4
296 / 274 / 194
Регистрация: 03.05.2012
Сообщений: 570
13.01.2013, 14:20 2
Нужно обменять строку со столбцом?
0
0 / 0 / 1
Регистрация: 20.12.2012
Сообщений: 6
13.01.2013, 14:28  [ТС] 3
Цитата Сообщение от Paster Fob Посмотреть сообщение
Нужно обменять строку со столбцом?
Да. А потом снова вывести получившийся массив
0
296 / 274 / 194
Регистрация: 03.05.2012
Сообщений: 570
13.01.2013, 14:39 4
программа будет корректно работать только с последней строкой и последним столбцом.Иначе либо,столбец либо строка будут изменяться не правильно.
вот мой код

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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
type
  tmatrix=array [1..100,1..100] of integer;
 
procedure creatematrix(var arg:tmatrix;size:byte);
var
  i,j:byte;
begin
  for i:=1 to size do begin
    for j:=1 to size do begin
      arg[i,j]:=random(31);
      write(arg[i,j]:3);
    end;
    writeln;
  end;
end;
 
function rowmin(var arg:tmatrix;var ind,size:byte):integer;
var
  sm,sum:integer;
  i,j:byte;
begin
  sum:=0;
  for j:=1 to size do begin
    sum:=sum+arg[1,j];
    ind:=1;
  end;
  for i:=2 to size do begin
    sm:=0;
    for j:=1 to size do
      sm:=sm+arg[i,j];
    if sm<sum then begin
      sum:=sm;
      ind:=i;
    end;
  end;
  rowmin:=sum;
end;
 
function columnmax(var arg:tmatrix;var ind,size:byte):integer;
var
  i,j:byte;
  sm,sum:integer;
begin
  sum:=0;
  for i:=1 to size do begin
    sum:=sum+arg[i,1];
    ind:=1;
  end;
  for j:=2 to size do begin
    sm:=0;
    for i:=1 to size do
      sm:=sm+arg[i,j];
    if sm>sum then begin
      sum:=sm;
      ind:=j;
    end;
  end;
  columnmax:=sum;
end;
 
procedure swap(var arg:tmatrix;size,i,j:byte);
var
  k,t:byte;
begin
  for k:=1 to size do begin
    t:=arg[i,k];
    arg[i,k]:=arg[k,j];
    arg[k,j]:=t;
  end;
end;
 
var
  a:tmatrix;
  m,i,j:byte;
  min,max:integer;
 
begin
  randomize;
  write(' Введите размер матрицы m=');
  readln(m);
  writeln;
  writeln('Исходная матрица: ');
  creatematrix(a,m);
  writeln;
  min:=rowmin(a,i,m);
  writeln(' Минимальная сумма в строке ',i,' = ',min);
  max:=columnmax(a,j,m);
  writeln(' Максимальная сумма в столбце ',j,' = ',max);
  swap(a,m,i,j);
  writeln;
  for i:=1 to m do begin
    for j:=1 to m do
      write(a[i,j]:3);
    writeln;
  end;
  readln
end.
0
0 / 0 / 1
Регистрация: 20.12.2012
Сообщений: 6
13.01.2013, 15:50  [ТС] 5
Спасибо большое. Думаю получится сдать завтра))
0
13.01.2013, 15:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.01.2013, 15:50
Помогаю со студенческими работами здесь

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

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

Найти строку с наибольшей суммой элементов матрицы
Дан целочисленный массив x(n и m вводится пользователем)Найти строку с наибольшей суммой элементов....

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


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

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

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