Задача 19 Урок 15
Primary tabs
Дан массив длиной N (где 10≤N В качестве ответа (если отрезок найден) получите его начальный и конечных индекс - m и p ( 1≤m
Указание: Проверку массива на соответствие условиям задачи вынести в подпрограмму (процедуру, которая вычислит нужные индексы, если есть)
Подсказка: можно использовать функцию проверки отрезка в массиве из предыдущей задачи.
program u15z19;
type
massiv = array[1..100] of integer;
var
m: massiv;
k,i,x,f,p,t,q: integer;
function f1 (m: massiv; a,b,c: integer): integer;
var
z,j,q: integer;
begin
for j:=1 to a do
begin
q:=0;
for z:=b to c do //проверка на отрезке
begin
if j=m[z] then
q:=1;
end;
if q=0 then //если не встретили число то выходим
break;
end;
result:=q;
end;
procedure p1(var t,p,q,k,f :integer; m:massiv);
var i :integer;
begin
t := 1;
p := f;
for i := low(m) to (high(m) - f) do
begin
q := f1(m,k,t,p);
if q=1 then
begin
writeln('m = ', t, ' ', 'p = ', p);
break;
end
else
begin
t := t + 1;
p := p + 1;
end;
end;
end;
begin
randomize();
for i:=low(m) to high(m) do
begin
m[i] := random(100)+1;
write (m[i], ' ');
end;
q:=1;
writeln;
writeln('Vvedite k');
readln(k);
writeln('Vvedite F');
readln(f);
p1(t,p,q,k,f,m);
if q=0 then
write ('No');
readln();
end.- Log in to post comments
- 479 reads