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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2012, 18:22   #1
MaximV
Пользователь
 
Регистрация: 08.02.2012
Сообщений: 13
По умолчанию [Pascal] Задача с двумерными массивами

В матрице [7,7] определить номер строки,сумма элементов который наибольшая.
"Вот наработки". пожалуйста решите таким же методом,а то препод не примет так как скажет что не сам решил.

Код:
program uravnenie;
uses crt;
var a:array [1..50,1..50] of real;
          i,j,n1,n2:integer;
                max:real;
begin
clrscr;
for i:=1 to 7 do
for j:=1 to 7 do
  begin
  writeln('a[',i,j,']');
  readln(a[i,j]);
  clrscr;
  end;
  max:=a[50,50];
  for i:=1 to n1 do
  for j:=1 to n2 do
  if a[i,j]>max then max:=a[i,j];
  writeln;
  for i:=1 to n1 do
  begin
  for j:=1 to n2 do
  writeln(a[i,j]:5:2);
  writeln;
  end;
  writeln('maximalnii ilement=',max:5:2);
  readkey;
  end.

Последний раз редактировалось ACE Valery; 02.04.2012 в 20:03.
MaximV вне форума Ответить с цитированием
Старый 02.04.2012, 19:00   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,316
По умолчанию

Код:
uses
  crt;

const
  n = 7;

var
  a: array[1..n, 1..n] of real;
  i, j, pos: integer;
  max, s: real;

begin
  clrscr;

  for i := 1 to n do
    for j := 1 to n do
    begin
      write('a[', i, ',', j, ']= ');
      readln(a[i, j]);
      clrscr;
    end;

  pos := 1;
  max := 0;
  for i := 1 to n do
    max := max + a[1, i];
  for i := 2 to n do
  begin
    s := 0;
    for j := 1 to n do
      s := s + a[i, j];
    if s > max then
    begin
      max := s;
      pos := i;
    end;
  end;

  writeln('stroka s maximalnoi summou: ', pos);
  readkey;
end.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 02.04.2012, 19:06   #3
Никита крутой
 
Регистрация: 01.04.2012
Сообщений: 3
Хорошо Вот решение

Код:
uses crt;
var a:array[1..30,1..30] of integer;n,i,j,t,l,l1,s:integer;
begin
       clrscr;n:=7;
       for i:=1 to n do
       for j:=1 to n do
       read(a[i,j]);
       for j:=1 to n do
       t:=t+a[1,j];l1:=1;
       for j:=1 to n do
       begin
              s:=0;
              for i:=1 to n do
              begin
              s:=s+a[i,j];l:=i;
              end;
              if s>t then begin t:=s;l1:=l;end;
       end;
       write(l1);
       readkey;
end.
Работает

Последний раз редактировалось ACE Valery; 02.04.2012 в 20:03.
Никита крутой вне форума Ответить с цитированием
Старый 02.04.2012, 23:50   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Никита, если я правильно прочитал Ваш код, то он ищет не строку с максимальной суммой, а СТОЛБЕЦ.
Да и переменная L у вас явно лишняя...

Кроме того, чуть выше приведено решение (c) BDA
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с двумерными массивами (С++) Renolin Помощь студентам 1 25.12.2011 23:44
работа с двумерными массивами Lellya Помощь студентам 0 10.04.2011 23:11
работа с двумерными массивами Lellya Помощь студентам 2 15.02.2011 10:21
работа с двумерными массивами curly182 Паскаль, Turbo Pascal, PascalABC.NET 1 16.05.2009 17:56