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

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

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

Указание: Проверку массива на соответствие условиям задачи вынести в подпрограмму (функцию)
type newArr = array [1..100] of integer;
var i, j, a, b, c :integer;
    Arr, Arr_N :newArr;
    fl :boolean;

function num_in(a_1 :integer; Arr_2 :newArr) :boolean;
var i, j, a_2, b, c :integer;
    fl :boolean;
begin
  fl := true;
  a_2 := a_1 * 2;
  for i := a_1 to a_2 do
  begin
    b :=  0 + random(99); // значения сравнивания со значениями отрезка массива
    for j := a_1 to a_2 do
      if Arr[i] = b then //
      begin
        fl := false;
        break;
      end;
    if not fl then
      break;
  end;
  num_in := fl;
end;

begin
  write('Enter an integer 2-49: ');
  readln(a); // задаем отрезок индексов
  randomize;
  for i := 1 to 100 do // инициализация исходного массива
    Arr[i] := 0 + random(100);

  fl := num_in(a, Arr);
  if fl then
    write('Full presence of values')
  else
    write('No complete match');
  readln();
end.  
vedro-compota's picture

function num_in(a_1 :integer; Arr_2 :newArr) :boolean;

-- в сигнатуре должно быть 4 параметра: 2 граница отрезка, число k и сам проверяемый массив

--

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

type newArr = array [1..100] of integer;
var i, m, p, k :integer;
    Arr :newArr;

function random_array() :newArr;
var i :integer;
    Arr_N :newArr;
begin
  randomize;
  for i := 1 to 100 do
    Arr_N[i] := random(101);
  random_array := Arr_N;
end;

function num_in(m, p, k :integer; Arr :newArr) :boolean;
var i, j :integer;
    fl :boolean;
begin
  for i := 0 to k do
  begin
    fl := false;
    for j:= m to p do
      if i = Arr[j] then
      begin
        fl := true;
        break;
      end;
    if not fl then
      break;
  end;
  num_in := fl;
end;

begin
  m := 1;
  p := 99;
  k := 3;
  Arr := random_array();
  for i := low(Arr) to high(Arr) do
    write(Arr[i], ' ');
  write(num_in(m, p, k, Arr));
  readln();
end. 
vedro-compota's picture

засчитано

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