Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/16: Рейтинг темы: голосов - 16, средняя оценка - 4.56
0 / 0 / 1
Регистрация: 03.03.2009
Сообщений: 31
1

Формирование массива через процедуру и нахождение строки с максимальной суммой через функцию

03.03.2009, 19:31. Показов 3143. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста. Нужно сформировать массив из элементов строки матрицы сумма котрой наибольшая через процедуру. Поиск строки оформить функцией. Вывести матрицу, массив, максимальную сумму и номер строки.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.03.2009, 19:31
Ответы с готовыми решениями:

Нахождение основных значений оформить через функцию, а вывод на печать – через процедуру
Код программы: const n=6; var a:array of byte; i,j,k,x:byte; begin for i:=1 to n do ...

Нахождение основных значений оформить через функцию, а вывод на печать – через процедуру
Дана квадратная вещественная матрица размерности n. Построить матрицу вектор (одномерный массив)...

Нахождение основных значений оформить через функцию, а вывод на печать – через процедуру
Оформить с использованием функций и процедур. Нахождение основных значений оформить через...

Нахождение основных значений оформить через функцию, а вывод на печать – через процедуру
Оформить с использованием функций и процедур. Нахождение основных значений оформить через функцию,...

7
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
03.03.2009, 20:30 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
uses crt;
const nmax=20;{максимальный размер матрицы}
type  Tmas=array[1..nmax] of integer;{тип массив}
      Tmatr=array [1..nmax] of Tmas;{тип матрица}
function SumStr(x,y:byte;mt:Tmatr):byte;{функция поиска нужной строки}
var i,j,imax:byte;
    max,sum:integer;
begin
max:=-maxint-1;imax:=1;{за макс принимаем самое маленькое число типа integer}
for i:=1 to x do
   begin
     sum:=0;
     for j:=1 to y do
     sum:=sum+mt[i,j];{считаем сумму в строке}
     if sum>max then{если она больше предыдущей максимальной}
       begin
         max:=sum;{она максимум}
         imax:=i;{запоминаем ее номер}
       end;
   end;
SumStr:=imax;{присваиваем его значению функции}
end;
var a:Tmatr;
    b:Tmas;
    m,n,i,j,nstr:byte;
begin
clrscr;
randomize;
repeat
write('Vvedite razmer matricy:');
readln(m,n);
until (m>0)and(n>0)and(m<=nmax)and(n<=nmax);{проверяем правильность ввода}
writeln('Matrica:');
for i:=1 to m do
  begin
    for j:=1 to n do
      begin
        a[i,j]:=random(20)-9;
        write(a[i,j]:5);
      end;
    writeln;
  end;
writeln('MaxStr=',SumStr(m,n,a));{выведем номер строки}
writeln('Massiv:');
for i:=1 to n do
   begin
     b[i]:=a[SumStr(m,n,a),i];{создадим линейный массив}
     write(b[i],' ');
   end;
readln
end.
1
0 / 0 / 1
Регистрация: 03.03.2009
Сообщений: 31
03.03.2009, 21:04  [ТС] 3
Спасибо огромное)

Добавлено через 31 минуту 38 секунд
и последний вопрос. Как вывести еще и значение максимальной суммы?
0
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
03.03.2009, 21:16 4
Как вывести еще и значение максимальной суммы?
Еще одну функцию сделать?
Кстати я забыл вывод в файл написать. Сами напишете?
И еще, может вместо 2х функций одну процедуру?
Просто по условию только номер строки надо.
0
0 / 0 / 1
Регистрация: 03.03.2009
Сообщений: 31
03.03.2009, 21:22  [ТС] 5
ну по условию надо только поиск строки через функцию. А вывод массива через процедуру. А все остальное наверно просто так. А в файл записывать ничего и не надо.
0
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
03.03.2009, 21:39 6
Извини 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
55
56
57
58
59
60
61
62
63
uses crt;
const nmax=20;
type  Tmas=array[1..nmax] of integer;
      Tmatr=array [1..nmax] of Tmas;
function NomStr(x,y:byte;mt:Tmatr):byte;
var i,j,imax:byte;
    max,sum:integer;
begin
max:=-maxint-1;imax:=1;
for i:=1 to x do
   begin
     sum:=0;
     for j:=1 to y do
     sum:=sum+mt[i,j];
     if sum>max then
       begin
         max:=sum;
         imax:=i;
       end;
   end;
NomStr:=imax;
end;
procedure Massiv(x,y:byte;mt:tmatr; var ms:Tmas);
var i:byte;
begin
for i:=1 to y do
  begin
   ms[i]:=mt[Nomstr(x,y,mt),i];
   write(ms[i],' ');
  end;
writeln;
end;
 
var a:Tmatr;
    b:Tmas;
    m,n,i,j,nstr:byte;
    sm:integer;
begin
clrscr;
randomize;
repeat
write('Vvedite razmer matricy:');
readln(m,n);
until (m>0)and(n>0)and(m<=nmax)and(n<=nmax);
writeln('Matrica:');
for i:=1 to m do
  begin
    for j:=1 to n do
      begin
        a[i,j]:=random(20)-9;
        write(a[i,j]:5);
      end;
    writeln;
  end;
writeln('MaxStr=',NomStr(m,n,a));
sm:=0;
for i:=1 to n do
sm:=sm+a[NomStr(m,n,a),i];
writeln('Summa=',sm);
writeln('Massiv:');
Massiv(m,n,a,b);
readln
end.
1
0 / 0 / 1
Регистрация: 03.03.2009
Сообщений: 31
03.03.2009, 21:44  [ТС] 7
Ага. Теперь точно так. Благодарю)
0
Alluris
05.12.2011, 16:04 8
помогите найти функция нахождения номера строки,содержащих max (по модулю)элементов.
процедура обмена 2 строк
05.12.2011, 16:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.12.2011, 16:04
Помогаю со студенческими работами здесь

Нахождение основных значений оформить через функцию RESHENIE(), ввод данных и вывод на печать через функцию MAIN()
а помогите теперь эту задачку #include &lt;iostream&gt; int main() { int last = 0, next = 1; ...

Передача массива в процедуру через функцию
Необходимо чтобы пользователь вводил размер массива в нижепреведенном коде. Ошибку выбивает на...

Формирование двумерного массива через функцию и последующий его вывод в таблицу
Друзья, возникла проблема, необходимо вывести двумерный массив в таблицу и посчитать строку с...

Найти среди заданных N чисел число с наибольшим количеством делителей (через процедуру и через функцию)
Помогите, нужно решить эту задачу с помощью процедуры и функции, заранее спасибо) Дано N целых...


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

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