Урок 15. Задача №12. Решение.

Урок 15. Задача №12.

Дан массив длиной N (не более 100 элементов). Проверить, что в нем в встречаются все числа от 0 до k, где 0 < k < N

Program LessonPascal;
{}
type
  IntArr = array of integer;

function FillArray(other_arr: IntArr; max: integer): IntArr;
var i: integer;
begin
  randomize();
  for i := 0 to length(other_arr) - 1 do
    other_arr[i] := random(max + 1);
  result := other_arr;
end;

procedure ShowArray(show_arr: IntArr);
var i: integer;
begin
  write('arr = ');
  for i := 0 to length(show_arr) - 1 do
    write('|', show_arr[i], '|', ' ');
  writeln();
end;

function checkHitinArray(check_arr: IntArr; value: integer): boolean;
var arr_for_value: array of integer;
  i, j, hit_counter: integer;
  checkd: boolean;
begin
  SetLength(arr_for_value, value);
  for i := 0 to value do
    arr_for_value[i] := i;

  for i := 0 to value do
  begin
    for j := 0 to length(check_arr) - 1 do
    begin
      if(arr_for_value[i] = check_arr[j])then
      begin
        hit_counter += 1;
        break;
      end;
    end;
  end;
  if(hit_counter > value)then
    checkd := true
  else
    checkd := false;
  result := checkd;
end;

var arr: IntArr;
  max_value, length_int_arr: integer;
begin
  write('Enter maximum element value for an array = ');
  readln(max_value);
  write('Enter length of array = ');
  readln(length_int_arr);
  SetLength(arr, length_int_arr);
  arr := FillArray(arr, max_value);
  writeln();
  ShowArray(arr);
  writeln();

  if(checkHitinArray(arr, max_value))then
    writeln('Found all the numbers in array!')
  else
    writeln('Not found the numbers in array!');

  readln(); // Удержание консоль
end.// Завершение программы  
vedro-compota's picture

hit_counter += 1;

-- лишняя переменная.
Решение засчитано

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

vedro-compota's picture

FillArray() не должна принимать на вход массив

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