Найти непрерывный участок из 10 элементов, сумма которых максимальна - Pascal

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, вроде написал код, но ничего не могу понять, выходит лажа. Прога состоит из 3 этапов: 1. вводим 2 массива 2. складываем 3. Надо найти непрерывный участок из 10 элементов, сумма которых максимальна Первые 2 пункта сделал без проблем, а вот с 3 никак не могу разобраться, помогите пожалуйста, ниже собственно сам код программы:
program a1;
uses crt;
var
 a,b,sum,mas: array [1..20,1..20] of integer;
 m,n,i,j,s1,s2,s,i1,j1,j2: 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;
   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
       sum[i,j]:=a[i,j]+b[i,j];
       write(sum[i,j],' ');
      end;
    end;
    end;
    end
     else
 Writeln ('Vvedite znachenie ot 1 do 20');
    end
 else
 Writeln (' Vvedite znachenie ot 1 do 20');
 Writeln;
 Writeln;
 Writeln ('Neprerivniy uchastok is 10 elementov:');
 Writeln;
 
  s1:=-1;
  for i:=1 to n do begin
    s:=0;
    s2:=-1;
    for j:=1 to m do begin
      Inc(s,mas[i,j]);
      if j>=10 then begin
        if s>s1 then begin s1:=s; i1:=i; j1:=j-9; end;
        if s>s2 then begin s2:=s; j2:=j-9; end;
        Dec(s,mas[i,j-9]);
 
      end
 
    end;
      Writeln ('Uchastok s ',j2,' do ',j2+9,' - imeet maximalnuyu summe elementov= ',s2);
  end;
   Writeln;
   Writeln ('Uchastok s ',i1,j1, ' do ',j1+9,' - imeet maximalnuyu summu elementov po vsey matrice= ',s1);
 readkey;
end.

Решение задачи: «Найти непрерывный участок из 10 элементов, сумма которых максимальна»

textual
Листинг программы
Writeln ('Uchastok s ',j2,' do ',j2+9,' - imeet maximalnuyu summe elementov= ',s2);

Объяснение кода листинга программы

  1. Writeln: это процедура вывода текста в консоль.
  2. 'Uchastok s ',j2,' do ',j2+9,' - imeet maximalnuyu summe elementov= ': строка, которая будет выведена в консоль. В этой строке используются различные переменные и операции.
  3. j2: это переменная, предположительно обозначающая начальный индекс участка из 10 элементов.
  4. j2+9: это операция сложения с переменной j2, предположительно для получения конечного индекса участка из 10 элементов.
  5. s2: это переменная, предположительно обозначающая сумму элементов на участке.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.2 из 5
Похожие ответы