Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Максимал. элемент в столбцах, и минимал. в строках

440
14 октября 2007 года
[FENIX]
83 / / 29.01.2007
Народ, помогите пожалуйста:
Дан двумерный массив чисел. Нужно найти максимальный элемент в столбцах, и минимальный в строках; нужно найти сумму всех элементов массива, произведение всех элементов, и определитель массива (определитель матрицы).
Решить нужно с использованием процедур/функций.


Вот что у меня получилось:

Код:
Program matritsa;
uses crt;

type new=array[1..3,1..3] of integer;

var
mass:new;
max_stolb, min_stroka, summ,proizv:integer;
opred:integer;


Procedure Vvod(var m:new);
var i,j:integer;
begin
     For i:=1 to 3 Do
     for j:=1 to 3 do begin
     write('Enter element of array mass ',i,' ',j,': ');
     readln(mass[i,j]);
     end;
end;

Procedure Summa(var m:new; var s:integer);
begin
s:=(m[1,1]+m[1,2]+m[1,3]+m[2,1]+m[2,2]+m[2,3]+m[3,1]+m[3,2]+m[3,3]);
writeln;
write('Summa vseh elementov massiva=',s);
readln;
end;

Procedure proizvedenie(var m:new; var p:integer);
begin
p:=0;
p:=(m[1,1]*m[1,2]*m[1,3]*m[2,1]*m[2,2]*m[2,3]*m[3,1]*m[3,2]*m[3,3]);
writeln;
write('Proizvedenie vseh elementov massiva=',p);
readln;
end;


Begin
clrscr;
Vvod(mass);
Summa(mass,summ);
proizvedenie(mass,proizv);
End.



Помогите пожалуйста найти максимальный элемент в столбцах, и минимальный элемент в строках. И у меня что-то произведение не правильно находится:
 
Код:
p:=(m[1,1]*m[1,2]*m[1,3]*m[2,1]*m[2,2]*m[2,3]*m[3,1]*m[3,2]*m[3,3]);
И ещё: у матрицы (массива) знаменатель есть?

[COLOR=Red]Не забывай писать язык программирования. Модератор.[/COLOR]
4.8K
15 октября 2007 года
anty
89 / / 29.10.2006
пример на с++.

Минимальный элемент в столбцах:
 
Код:
min=m[0][0];
for(j=0;j<3;j++)
 for(i=0;i<3;i++)
    if(m[j]<min)min=m[j];

Максмимальный элемент в строках:
 
Код:
max=m[0][0];
for(i=0;i<3;i++)
 for(j=0;j<3;j++)
    if(m[j]>max)max=m[j];

И еще произведение и сумму, я бы записал через циклы.
440
16 октября 2007 года
[FENIX]
83 / / 29.01.2007
Извиняюсь, что сразу язык не написал. Паскаль.
Вот с чем проблема:
Начинаю искать максимальный элемент в столбцах, и минимальный в строках:

Код:
...
Procedure Maxim_stolb_Minim_stroka(var m:new; var max,min:integer);
var i,j:integer;
begin

max:=m[1,1];{Допустим,что m[1,1] Это максим. элемент в столбцах}
min:=m[1,1];{Допустим,что m[1,1] Это минимал. элемент в строках}

For i:=1 To 3 Do begin
    for j:=1 to 3 do
    If m[i,j]>max then
    max:=m[i,j];
    end;

    writeln('Maximalnii element v stolbtsah=',max);
    readln;

For i:=1 To 3 Do begin
    for j:=1 to 3 do
    If m[i,j]<min then
    min:=m[i,j];
    end;
    writeln('Minimalnii element v strokah=',min);
    readln;

end;


У меня ощущение, что он не максимальный элемент в столбцах ищет, а вообще максимальный элемент всего массива. То же самое и про минимальный элемент в строках.
И ещё: У массива, или у матрицы знаменатель вообще существует?
242
17 октября 2007 года
Оlga
2.2K / / 04.02.2006
Цитата:
У меня ощущение, что он не максимальный элемент в столбцах ищет, а вообще максимальный элемент всего массива.

Да видимо так и есть, судя по всему. Инициализацию максимума/минимума делай под первым For, для каждого столбца/строки берем его первый элемент, под вторым фором идем по всем элементам столбца/строки и находим макс/мин, когда проход по второму For'у оканчивается, то выводим найденный макс/мин (или делаем что надо) и идем к первому For'у для прохода следущего столбца/строки.
Не забудь где надо прописать begin ... end

Обрати внимание, чтобы пройтись по столбцу надо выбрать текущий индекса столбца и передвигаться по строка (I), а ты вроде только по строкам ходишь, чтобы пробежаться вдоль строки все наоборот: индекс для строки для одного прохода(во втором втором фор'е) постоянный, а индекс для столбцов переменный(J) ....

4.8K
18 октября 2007 года
anty
89 / / 29.10.2006
Что то типа того будет на с++.
 
Код:
for(i=0;i<3;i++)
 {max=m[0];
    for(j=0;j<3;j++)
     { if(m[j]>max)max=m[j];}
     cout<<max;
  }
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог