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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2016, 14:23   #1
fool.rzn
Новичок
Джуниор
 
Регистрация: 12.06.2016
Сообщений: 10
По умолчанию Помогите найти непрерывный участок из 10 элементов, сумма которых максимальна

Ввел 2 матрицы, сложил их, а теперь надо найти непрерывный участок из 10 элементов, сумма которых максимальна. Не представляю как сделать, видел код на C++, но не понимаю синтаксиса, прошу помогите.
Вот код, который уже написал:

Код:
program a1;
uses crt;
var
 a,b,s: array [1..20,1..20] of integer;
 m,n,i,j: integer;
begin
 clrscr;
 write('Vvedite kolichestvo strok matric: ');
 readln(n);
 If (n>0) and (n<20) then
 begin
  write('Vvedite kolichestvo stolbcov matric: ');
  readln(m);
  If (m>0) and (m<20) then
  begin
   begin
   randomize;
   writeln('Sozdanie matric...');
   writeln;
   writeln ('matrica a:');
   for i:=1 to n do
    begin
     writeln;
     for j:=1 to m do
      begin
       a[i,j]:=random(10);
       write(a[i,j],' ');
      end;
    end;
   writeln;
   writeln;
   writeln('matrica b:');
   for i:=1 to n do
    begin
     writeln;
     for j:=1 to m do
      begin
       b[i,j]:=random(10);
       write(b[i,j],' ');
      end;
    end;
   end;
   begin
    writeln;
    writeln;
    writeln('Summa: ');
    for i:=1 to n do
     begin
     writeln;
     for j:=1 to m do
      begin
       s[i,j]:=a[i,j]+b[i,j];
       write(s[i,j],' ');
      end;
    end;
    end;
    end
     else
 Writeln ('Vvedite znachenie ot 1 do 20');
 Readln;
    end
 else
 Writeln ('Vvedite znachenie ot 1 do 20');
 Readln;
 readkey;
end.

Последний раз редактировалось fool.rzn; 12.06.2016 в 14:37.
fool.rzn вне форума Ответить с цитированием
Старый 12.06.2016, 14:47   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Что такое непрерывный участок матрицы? Если представляешь что это такое, то изобрази на примере
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.06.2016, 15:12   #3
fool.rzn
Новичок
Джуниор
 
Регистрация: 12.06.2016
Сообщений: 10
По умолчанию

fool.rzn вне форума Ответить с цитированием
Старый 12.06.2016, 15:24   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Ты же вектор изобразил. А у тебя матрица. Как в матрице трактуется непрерывный участок? Можно все строки вытянуть в одну, можно столбцы. И рассматривать как один вектор. А можно только в строках или столбцах искать. Как?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.06.2016, 15:29   #5
fool.rzn
Новичок
Джуниор
 
Регистрация: 12.06.2016
Сообщений: 10
По умолчанию

В каждой строке отдельно искать
fool.rzn вне форума Ответить с цитированием
Старый 12.06.2016, 15:58   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
  const n = 20;
  var m: array [1..n,1..n] of Integer;
  ...
  s1:=-1;
  for i:=1 to n do begin
    s:=0;
    for j:=1 to n do begin
      Inc(s,m[i,j]);
      if j>=10 then begin
        if s>s1 then begin s1:=s; i1:=i; j1:=j-9; end;
        Dec(s,m[i,j-9]);
      end;
    end;
  end;
  //s1 - max сумма, i1,j1 - координаты начала
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.06.2016, 16:20   #7
fool.rzn
Новичок
Джуниор
 
Регистрация: 12.06.2016
Сообщений: 10
По умолчанию

А выводить как эти участки?
fool.rzn вне форума Ответить с цитированием
Старый 12.06.2016, 16:25   #8
fool.rzn
Новичок
Джуниор
 
Регистрация: 12.06.2016
Сообщений: 10
По умолчанию

Или как вывести запись, допустим, что со i по n элементы сумма ьаксимальна?
fool.rzn вне форума Ответить с цитированием
Старый 12.06.2016, 16:25   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Координаты же начала есть. И участок один - с максимальной суммой. А как выводить тебе видней
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.06.2016, 16:51   #10
fool.rzn
Новичок
Джуниор
 
Регистрация: 12.06.2016
Сообщений: 10
По умолчанию

Где тут я мог ошибиться?

Код:
s1:=-1;
  for i:=1 to n do begin
    s:=0;
    for j:=1 to m do begin
      Inc(s,mas[i,j]);
      if i>=10 then begin
        if s>s1 then begin s1:=s; j1:=j; i1:=i-9; end;
        Dec(s,mas[j,i-9]);
      end;
    end;
    Writeln ('Uchastok s ',i,' do ',i+9,'- imeet maximalnuyu summe elementov= ',s);
  end;
 readkey;
end.
fool.rzn вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти числа X и Y, сумма которых равно A, а сумма квадратов равна B. (на C++) Алина92 Помощь студентам 12 04.10.2021 10:14
Дана матрица (4;6). Определить и вывести номер столбца, сумма элементов которого максимальна stdlife Паскаль, Turbo Pascal, PascalABC.NET 4 22.11.2012 00:01
Разработка программы поиска двух соседних элементов массива, сумма которых максимальна Esterlen Помощь студентам 13 27.05.2012 18:58
Найти номер первой пары соседних элементов с разными знаками, сумма которых меньше заданного числа sofiya Помощь студентам 4 20.02.2011 23:05