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

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

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

var a: array[1..100] of integer;
 k, i, c, z, p, m: integer;
begin
  randomize();
  z:=0;  //количество совпадений
  for i:=low(a) to high(a) do //заполняем массив
    a[i]:= random(100);
  writeln('Enter k');
  readln(k);
  writeln('Enter m: 1 <= m < p <= 100');
  readln(m);
  writeln('Enter p: 1 <= m < p <= 100');
  readln(p);

  for c:=0 to k do      //варианты от 0 до к
    begin
    for i:=m to p do  //сравниваем с основным от m до p
      if a[i] = c then
        begin
          writeln(a[i],'=',c);
          z:=z+1;  //если нашли совпадения счетчик +1
          break;
        end;
    if z=k then  //если совпадения=к заканчиваем поиск успехом
      begin
        writeln(k, ' sovpadeny');
        break;
      end;
    end;
  if z < k then   //если совпадений по итогу < k сообщаем
    writeln('net ', k, ' sovpadeny');

  readln();
end.
vedro-compota's picture

перенести проверяющий код в функцию, которая возвращает boolean

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

var a: array[1..100] of integer;
 k, i, p, m: integer;
 function Search(a: array of integer; k, m, p: integer): boolean;
 var z, c: integer;
 begin
   z:=0;  //количество совпадений
   for c:=0 to k do      //варианты от 0 до к
    begin
    for i:=m to p do  //сравниваем с основным от m до p
      if a[i] = c then
        begin
          writeln(a[i],'=',c);//(для отладки)
          z:=z+1;  //если нашли совпадения счетчик +1
          break;
        end;
    if z=k then  //если совпадения=к заканчиваем поиск успехом
      begin
        result := true;
        break;
      end;
    end;
  if z < k then   //если совпадений по итогу < k сообщаем
    result := false;
 end;

begin
  for i:=low(a) to high(a) do //заполняем массив
   begin
    a[i]:= random(100);
    write(a[i],' ');//(для отладки)
   end;
  writeln('Enter k');
  readln(k);
  writeln('Enter m: 1 <= m < p <= 100');
  readln(m);
  writeln('Enter p: 1 <= m < p <= 100');
  readln(p);
  if Search(a, k, m, p) then
    writeln('YAS')
  else
    writeln('NO');

  readln();
end.
vedro-compota's picture

решение засчитано

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