Урок 15 (Решенная задача номер 14)

Урок 15 (Решенная задача номер 14)

Дан массив длиной N (не более 100 элементов). Проверить, что в этом массиве на отрезке индексов m до n ( 1≤m

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

var N, k, m, p, i : integer;
    massiv : myArr;

function ProverkaVOtrezke(x : myArr; k, m, p : integer): boolean;

var g, l, d : integer;

begin
  result := false;
  d := - 1;
  for l := 0 to k do
    for g := m to p do
      if (x[g] = l) then
      begin
        Inc(d);
        break;
      end;
  result := d = k;
end;

begin
  N := 10;
  k := 3;
  m := 1;
  p := 5;
  massiv[1] := 1;
  massiv[2] := 2;
  massiv[3] := 3;
  massiv[4] := 0;
  massiv[5] := 2;
  massiv[6] := 3;
  massiv[7] := 1;
  massiv[8] := 0;
  massiv[9] := 1;
  massiv[10] := 3;
  for i := 1 to N do
    write(massiv[i], ' ');
    if (ProverkaVOtrezke(massiv, k, m, p) = true) then
      write('SoderzitVseCislaDok v promejytke ot ',m, ' do ', p)
  else Writeln('ne soderzit');
end.

Лучше заменить

  if (d = u) then
    result := true
  else result := false;

на

 result := d = u;