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

Урок 15

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

единицы) встречаются все числа от 0 до k, где 0
type myArr = array of integer;
var n,k, m, p: integer;
    a: myArr;

procedure printArray(a1: myArr); //п-а печати массива
  var i1: integer;

  begin
    for i1 := low(a1) to high(a1) do
      write(a1[i1], ' ');
  end;

function f1(n1: integer; a1: myArr): myArr; // ф-я создаем массив размером N
  var i1: integer;

  begin
    SetLength(a1, n1); // устанавливаем новую длину массива
    writeln(length(a1)); // пишем новую длину массива
    randomize();
    for i1 := low(a1) to high(a1) do //создаем массив
      a1[i1] := random(n1 + 1);
    result := a1;
  end;

function f2(k1, m1, p1: integer; a1: myArr): boolean; //ф-я проверки, что есть все числа
  var i1, j1: integer;
      s: boolean;

  begin
    s := false;
    for i1 := 0 to k1 do
    begin
      s := false;
      for j1 := m1 to p1 do
        if i1 = a1[j1] then
        begin
          s := true;
          break;
        end;
      if s = false then
        break;
    end;
    result := s;
  end;

  begin
    writeln('Введите длину массива от 1 до 100');
    readln(n);
    writeln('Введите начало отрезка m');
    readln(m);
    writeln('Введите конец отрезка p');
    readln(p);
    writeln('Введите число k: 0 <= k < 100');
    readln(k);
    a := f1(n, a);
    printArray(a);
    writeln();
    writeln('Все значения от 0 до k встречаются на отрезке m - p: ', (f2(k, m, p, a)));
    readln();
  end.

КОНСОЛЬ

Введите длину массива от 1 до 100
15
Введите начало отрезка m
5
Введите конец отрезка p
10
Введите число k: 0 <= k < 100
7
15
12 6 0 11 7 0 6 11 13 0 3 15 12 1 1
Все значения от 0 до k встречаются на отрезке m - p: FALSE
vedro-compota's picture

засчитано

_____________
матфак вгу и остальная классика =)