Задача 18 Урок 15

Задача 18 Урок 15

Дан массив длиной N (не более 100 элементов). Проверить, что в этом массиве на отрезке индексов от m до p
встречаются все числа от 0 до k, где 0≤k Указание: Проверку массива на соответствие условиям задачи вынести в подпрограмму (функцию)

type
  myArr = array [1..100] of integer;

var
  min, max: integer;
  a: myArr;
  i, j: integer;
  p,m,k:integer;

function searchNum(k: integer; a: myArr): boolean;
begin
  for i := 0 to k do
  begin
    result := false;
    for j := m to p do
      if i = a[j] then
      begin
        result := true;
        break;
      end;
    if result = false then
      break;
  end;
end;

begin
  randomize();
  min := 0;
  max := 10;
  for i := low(a) to high(a) do
    a[i] := min + random(max - min + 1);
  writeln('enter m');
  readln(m);
  writeln('enter p');
  readln(p);
  writeln('enter k');
  readln(k);
  if (searchNum(k, a)) then
    write('all meets')
  else
    write('not all');
  writeln;
  writeln('numbers from m to p');
  for j := m to p do
    write(a[j], ' ');
  writeln();
  writeln('the original numbers');
  for i := low(a) to high(a) do
    write(a[i], ' ');
  writeln();
  write('End');
  readln();
end. 

Вывод консоли:

enter m
1
enter p
20
enter k
5
all meets
numbers from m to p
4 3 0 7 8 7 6 5 3 1 9 9 0 3 3 2 3 2 6 2
the original numbers
4 3 0 7 8 7 6 5 3 1 9 9 0 3 3 2 3 2 6 2 2 4 8 5 5 10 3 3 10 2 7 8 3 6 9 3 1 1 0 3 1 5 2 6 8 4 4 8 1 7 3 8 8 10 9 2 3 7 9 5 2 2 5 5 0 4 6 10 5 1 10 2 10 5 5 1 3 2 7 9 4 8 1 1 10 1 0 6 4 0 1 10 2 9 9 2 2 9 10 3
End