Почему программа пишет "Индекс находился вне границ массива"
Это программа должна прочитать указанный файл, найти строчки 'XYZ' и посчитать их максимальную длину. Например: XYZZZXYZXYZXYZ Ответ, максимальная длинна 'XYZ' = 3
var
f: text;
a: string;
schot, max, i, perem: integer;
begin
assign(f, 'C:\Users\Даниил\Desktop\Разье ЕГЭ (Информатика)\888.txt');
reset(f);
read(f, a);
close(f);
schot := 0;
for i := 1 to Length(a) do
begin
if (Concat(a[i], a[i + 1], a[i + 2]) = 'XYZ') and (a[i + 3] = 'X') then
begin
schot := schot + 1;
if perem < schot then
perem := schot;
end
else
if (Concat(a[i], a[i + 1], a[i + 2]) = 'XYZ') and (a[i + 3] <> 'X') then
begin
schot := 0;
if max < perem then
max := perem;
end;
if max < perem then
max := perem;
end;
writeln(max);
end.
Ответы (1 шт):
Автор решения: Aziz Umarov
→ Ссылка
Как вы думаете когда i дойдет до Length(a) выхода за границы не будет?
Concat(a[i], a[i + 1], a[i + 2]
сделайте цикл до Length(a) - 3 чтоб не было выхода. А с логикой разбирайтесь
