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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2011, 10:06   #1
d1mka_
 
Регистрация: 03.10.2011
Сообщений: 7
По умолчанию матрица...

Надо найти максимальный элемент каждой строки матрицы и разделить на него каждый элемент этой строки.
все что смог

Код:
program laba7;
var A:array[1..3,1..3] of integer;
    B:array[1..3,1..3] of real;
    i,j,max:integer;
begin
for i:=1 to 3 do begin
for j:=1 to 3 do begin
a[i,j]:=random(40)+10;
write (a[i,j]:4);end;
writeln;end;
for i:=1 to 3 do begin
for j:=1 to 3 do begin
max:=a[i,1];
if a[i,j]>max
then max:=a[i,j];end;B[i,j]:=(a[i,j]/max);
end;
for i:=1 to 3 do begin
for j:=1 to 3 do begin
write (B[i,j]:3);
end;
writeln;
end;
readln;end.
d1mka_ вне форума Ответить с цитированием
Старый 28.11.2011, 10:25   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Разбей ты ее на несколько процедур или пока еще не проходили? Ошибка в том, что при нахождении максимального элемента ты сразу же и делишь, получается на само себя. А надо заводить отдельный цикл и делить построчно. Вся проблема, что задача содержит много мелких и нудных аспектов, отсюда и ошибки. Разбей на процедуры, которые каждый момент решают отдельно и независимо от других. Тогда решение и поиск ошибок значительно упростятся. Разделяй и властвуй.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 28.11.2011 в 10:28.
Utkin вне форума Ответить с цитированием
Старый 28.11.2011, 10:30   #3
d1mka_
 
Регистрация: 03.10.2011
Сообщений: 7
По умолчанию

процедуры пока не проходили
d1mka_ вне форума Ответить с цитированием
Старый 28.11.2011, 10:44   #4
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Код:
B[i,j]:=(a[i,j]/max);
Эту строку нужно вынести в отдельный цикл. То есть в этом блоке:
Код:
for i:=1 to 3 do begin
for j:=1 to 3 do begin
max:=a[i,1];
if a[i,j]>max
then max:=a[i,j];end;B[i,j]:=(a[i,j]/max);
end;
Должно быть их три, а не два. Ну комментарии то должны были проходить. Прокомментируй каждую строчку кода, или он не твой ? Как только распишешь все действия, внимательно прочитай задание и ты поймешь ошибку...
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 28.11.2011, 10:45   #5
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Код:
B[i,j]:=(a[i,j]/max);
Эту строку нужно вынести в отдельный цикл. То есть в этом блоке:
Код:
for i:=1 to 3 do begin
for j:=1 to 3 do begin
max:=a[i,1];
if a[i,j]>max
then max:=a[i,j];end;B[i,j]:=(a[i,j]/max);
end;
Должно быть их три, а не два. Ну комментарии то должны были проходить. Прокомментируй каждую строчку кода, или он не твой ? Как только распишешь все действия, внимательно прочитай задание и ты поймешь ошибку...
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 28.11.2011, 10:54   #6
Niro
Форумчанин
 
Аватар для Niro
 
Регистрация: 23.09.2010
Сообщений: 682
По умолчанию

Раз уж мой тёзка, то держи)
Код:
for i:=1 to 3 do
  begin
    max:=A[i,1];
    for j:=1 to 3 do
      if A[i,j]>max then max:=A[i,j];
    for k:=1 to 3 do
      B[i,k]:=A[i,k]/max;
  end;
P.s. код не проверял
Проще всего признать свою ошибку.
Гораздо труднее еЁ осознать и исправить.
Niro вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Матрица viktor 24 Visual C++ 2 26.05.2011 19:19
C++ матрица. camaro_ss Помощь студентам 7 30.01.2011 01:00
Матрица jinadaa Помощь студентам 10 03.01.2011 16:34
Непонятки с DirectX (матрица поворота, камера, матрица проекции) ROD Общие вопросы C/C++ 2 17.09.2010 17:00
TurboPascal: граф, матрица смежности и матрица инцидентности. ulala Помощь студентам 0 02.12.2009 10:11