Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2010, 14:59   #1
kr3gg
Новичок
Джуниор
 
Регистрация: 30.05.2010
Сообщений: 4
По умолчанию Матрица(Паскаль)

Помогите к зачёту допуститься. =) Необходимо создать матрицу 6 на 8 заполнить её с клавиатуры, вывести на экран, далее найти максимальный элемент в каждом столбце, и умножить этот элемент на соответствующий столбец (на все элементы столбца). Вывести результат в новую матрицу.

Как создать матрицу то и вывести на экран знаю, а вот дальше застрял. Помогите пожалуйста, заранее спасибо.
kr3gg вне форума Ответить с цитированием
Старый 30.05.2010, 15:04   #2
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Ну, так покажи, что сделал, а уж дальше кто-нибудь и как-нибудь... подскажет...
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 30.05.2010, 16:01   #3
kr3gg
Новичок
Джуниор
 
Регистрация: 30.05.2010
Сообщений: 4
По умолчанию

Ну собственно вот, то что сказал =) Просто очень часто встречается задача "найти максимальный элемент всей матрицы и умножить на него всю матрицу", это я тоже знаю как делать, а вот как в моём случае быть я не знаю.
uses
SysUtils,
math;

type
matr=array[1..6,1..8] of integer;
matr2=array[1..6,1..8] of integer;
var
a:matr;
b:matr2;
i,j:byte;
n,m,n1,m1:integer;
begin
writeln('vvedite n,m');
readln(n,m);
writeln('vvedi matr');
for i:=1 to n do
for j:=1 to m do begin
readln(a[i,j]);
end;
begin
for i:=1 to n do begin
for j:=1 to m do
write(a[i,j]:3);
writeln;
end;
end;
//тут поиск должен быть и дальнейшие действия
Readln;

end.
kr3gg вне форума Ответить с цитированием
Старый 30.05.2010, 20:15   #4
Z1000000
Форумчанин
 
Регистрация: 04.05.2010
Сообщений: 495
По умолчанию

Вот так как-то!
Но есть подводные камня:
1. Максимальный элемент в строке умножается сам на себя.
2. Каждая последующая строка обрабатывается уже с учетом предыдущих изменений в матрице.
3. Если в строке несколько равных элементов с максимальным значением, берется первый.

Вывод сделал пошаговый для наглядности !
Код:
type
matr=array[1..6,1..8] of integer;
matr2=array[1..6,1..8] of integer;
var
a:matr;
b:matr2;
i,j,ii,jj:byte;
n,m,n1,m1:integer;
maxindex,Koef : Integer;
begin
writeln('vvedite n,m');
readln(n,m);
writeln('vvedi matr');
for i:=1 to n do
for j:=1 to m do begin
readln(a[i,j]);
end;
begin
for i:=1 to n do begin
for j:=1 to m do
write(a[i,j]:3);
writeln;
end;
end;
//тут поиск должен быть и дальнейшие действия
for i:=1 to n do
 begin
 maxindex := 1;
 for j := 1 to m do
  if a[i,maxindex] < a[i,j] then maxindex := j;
 Koef := a[i,maxindex];
 for j:=1 to n do
  begin
  a[j,maxindex] := a[j,maxindex]*Koef;
  end;
  {Output}
  for ii:=1 to n do
   begin
   for jj:=1 to m do
    write(a[ii,jj]:3);
   writeln;
   end;
 end;

Readln;
end.
Нажми на весы, поставь +
Для благодарностей : WebMoney WMR R252732729948
Z1000000 вне форума Ответить с цитированием
Старый 30.05.2010, 21:17   #5
kr3gg
Новичок
Джуниор
 
Регистрация: 30.05.2010
Сообщений: 4
По умолчанию

Спасибо Вам огромнейшее, но я дурачёк наверно не правильно сформулировал, надо что бы получилось примерно так:

Исходная матрица:

3 2 4
2 4 6

Новая матрица:

9 8 24
6 16 36

Тоесть что бы все элементы каждого столбца умножались на максимальный элемент рассматриваемого столбца.
kr3gg вне форума Ответить с цитированием
Старый 30.05.2010, 23:05   #6
kr3gg
Новичок
Джуниор
 
Регистрация: 30.05.2010
Сообщений: 4
По умолчанию

Всё, разобрался, кройте тему, вот код:
Код:
program Project2;

{$APPTYPE CONSOLE}

type
matr=array[1..6,1..8] of integer;
matr2=array[1..6,1..8] of integer;
var
a:matr;
b:matr2;
i,j,k:byte;
n,m,n1,m1:integer;
mx,Koef : Integer;
begin
writeln('vvedite n,m');
readln(n,m);
writeln('vvedi matr');
for i:=1 to n do
for j:=1 to m do begin
readln(a[i,j]);
end;
begin
for i:=1 to n do begin
for j:=1 to m do
write(a[i,j]:5);
writeln;

end;
end;
//ooo iiene aie?ai auou e aaeuiaeoea aaenoaey
for j:=1 to m do
 begin
 mx:= a[1,j];
  for i:=2 to n do
if a[i,j]>mx then
  mx:=a[i,j];
 for k:=1 to n do
  b[k,j]:=a[k,j]*mx;
end;
 for i:=1 to n do
   begin
   for j:=1 to m do
    write(b[i,j]:3);
   writeln;
   end;


Readln;
end.
kr3gg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
паскаль,матрица. Ам тя Помощь студентам 4 24.11.2009 00:44
Паскаль.Матрица valis Помощь студентам 2 14.11.2009 13:01
Паскаль - Матрица Dog Помощь студентам 2 02.10.2009 10:09
Паскаль матрица!!!!! Igomax Помощь студентам 3 07.06.2009 16:20
Матрица (Паскаль) Freia Помощь студентам 2 19.12.2008 21:37