Задача 19 Урок 15
Primary tabs
Дан массив длиной N (где 10≤N
В качестве ответа (если отрезок найден) получите его начальный и конечных индекс - m
и p ( 1≤m
Указание: Проверку массива на соответствие условиям задачи вынести в подпрограмму (процедуру, которая вычислит нужные индексы, если есть)
type Arr=array [1..30] of integer;
var i, k, min, max,m, p:integer;
a: Arr;
function proverka(b:arr; j, z:integer; var c,d: integer): boolean;
var l, f, t:integer;
begin
F:= 10;
result:= true;
for t:=1 to j do
begin
for l:= z to f+z do
if b[l]=t then
begin
if l>p then
begin
p:=l;
m:=l-f;
end;
break;
end
else if l=(f+z) then
result:= false;
if result= false then
break;
end;
end;
begin
randomize();
min:=1;
max:=60;
for i:=low(a) to high(a) do
begin
a[i]:= min+random(max-min+1);
write(a[i],' ');
end;
{ a[10]:=0;
for i:=10 to 15 do //посмотреть, что будет, если все числа найдутся
a[i+1]:=a[i]+1; }
k:=5;
m:=30;
for i:=1 to 20 do
if proverka(a,k,i, m, p) then
begin
writeln('m=',m,' ','p=',p);
break;
end
else if i=20 then
writeln('net takogo ychastka');
readln();
end. - Log in to post comments
- 408 reads