Найти непрерывный участок из 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
: это переменная, предположительно обозначающая сумму элементов на участке.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д