Найти непрерывный участок из 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);
Объяснение кода листинга программы
Writeln
: это процедура вывода текста в консоль.'Uchastok s ',j2,' do ',j2+9,' - imeet maximalnuyu summe elementov= '
: строка, которая будет выведена в консоль. В этой строке используются различные переменные и операции.j2
: это переменная, предположительно обозначающая начальный индекс участка из 10 элементов.j2+9
: это операция сложения с переменнойj2
, предположительно для получения конечного индекса участка из 10 элементов.s2
: это переменная, предположительно обозначающая сумму элементов на участке.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д