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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2011, 19:17   #1
just4smth
_____________
Пользователь
 
Регистрация: 14.05.2011
Сообщений: 30
По умолчанию [Pascal] Нахождение наибольшей из сум модулей элементов многомерного массива

Задание:
Цитата:
Дана прямоугольная матрица. Какова наибольшая из сумм модулей её элементов в каждой строчке?
Налепил вариант для одномерного массива (не совсем правильно работает):
Код:
Program var15_dvymernii_massiv;
Uses crt;
Const m=3;

Var a:array[1..m] of integer;
    i,a1,a2,a3,s1,s2,s3,max:integer;

Begin
        clrscr;
        Writeln('Введите элементы массива');
        for i:=1 to m do
           Readln(a[i]);

        for i:=2 to m-1 do begin
           a1:=a[i-1];
           a2:=a[i];
           a3:=a[i+1];

           {Находим сумму элементов по модулю}
           s1:=abs(a1+a2);
           s2:=abs(a2+a3);
           s3:=abs(a1+a3);

           {Вычислям наибольшую из сумм модулей}
           if (s1>s2) and (s1>s3) then
              max:=s1;
           if s2>s3 then
             max:=s2
           else
             max:=s3;
        end;
        Writeln(max);
        Readln;
End.
Как избавиться от лишних переменных и дописать\переделать для многомерного массива?

Последний раз редактировалось just4smth; 16.05.2011 в 19:21.
just4smth вне форума Ответить с цитированием
Старый 16.05.2011, 19:24   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
smax:=-1;
for i:=1 to n do begin s:=0;
for j:=1 to m do
s:=abs(a[i,j])+s;
if s>smax then smax:=s;
end;
writeln(smax);
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 16.05.2011, 19:45   #3
just4smth
_____________
Пользователь
 
Регистрация: 14.05.2011
Сообщений: 30
По умолчанию

Цитата:
Сообщение от Mad_Cat Посмотреть сообщение
Код:
smax:=-1;
for i:=1 to n do begin s:=0;
for j:=1 to m do
s:=abs(a[i,j])+s;
if s>smax then smax:=s;
end;
writeln(smax);
Большое спасибо!
Однако, не могли бы вы прокомментировать алгоритм?
И как выводить наибольшую из сумм модулей каждой строки?
just4smth вне форума Ответить с цитированием
Старый 16.05.2011, 20:00   #4
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
И как выводить наибольшую из сумм модулей каждой строки?
Код:
writeln(smax);
а чего тут комментировать7 идем по строке ищем сумму модулей и если она >max тогда делаем ее Max и переход к след строке
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Pascal] Нахождение одинаковых элементов в 2-х одномерных числовых массивах just4smth Помощь студентам 11 25.11.2012 19:21
Pascal: Составить программу генерирования массива B, состящего из отрицательных элементов массива a mrRastom Помощь студентам 2 15.01.2011 14:33
Как найти наименьшее из значений элементов столбца, который обладает наибольшей суммой модулей элементов INFINITIFX Общие вопросы C/C++ 2 11.11.2010 09:55
Нахождение Мин И Макс элементов Массива не стандартным способом. gree Помощь студентам 5 17.06.2009 20:57
Нахождение квадратов первых k элементов массива JaZZ_XVIII Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 10.06.2009 01:21