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

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

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

var a, b: array[1..100] of integer;
    k, i, N, c: integer;
begin
  N := 15;
  k := 3;
  randomize();
  for i := 1 to N do
  begin
    a[i] := random(k + 1);
    write(a[i], ' ');
  end;
  writeln();
  for i := 0 to k do
    b[i] := i;
  writeln();
  for i := 1 to N do
    for c := 0 to k do
      if (a[i] = b[c]) then
      begin
        writeln(a[i]);
        b[c] := k + 1;
      end;
end.
vedro-compota's picture

решение должно быть оформлено в виде функции + в коде должен быть её вызов для демонстрации работы

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

Romakip's picture

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

function ru36(P, n : integer): myarr;
var a, b: array[1..100] of integer;
    i, c: integer;
begin
  randomize();
  for i := 1 to P do
  begin
    a[i] := random(n + 1);
    write(a[i], ' ');
  end;
  writeln();
  for i := 0 to n do
    b[i] := i;
  writeln();
  for i := 1 to P do
    for c := 0 to n do
      if (a[i] = b[c]) then
      begin
        writeln(a[i]);
        b[c] := n + 1;
      end;
end;
var  k,  D: integer;
begin
  D := 15;
  k := 3;
  ru36(D, k);
end.
vedro-compota's picture

  1. неправильный возвращаемый тип
  2. вообще ничего не возвращается
  3. массив должен создаваться снаружи
  4. функция не отвечает на вопрос задачи

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

Romakip's picture

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

var N, k : integer;
    massiv : myArr;

procedure ZepolnenieMassiva(var a:myArr; D, u : integer);
var g : integer;
begin
  randomize();
  for g := 1 to D do
    a[g] := random(u + 1);
end;

function ProverkaNaNalicieVsehHicel(var x : myArr; D, u : integer): boolean;

var g, l, m : integer;

begin
  m := - 1;
  for l := 0 to u do
    for g := 1 to D do
      if (x[g] = l) then
      begin
        Inc(m);
        break
      end;
  if (m = u) then
    result := true
  else result := false;
end;

begin
  N := 10;
  k := 3;
  ZepolnenieMassiva(massiv, N, k);
  if (ProverkaNaNalicieVsehHicel(massiv, N, k) = true) then
    writeln('Massiv soderzit vse cisla do k')
  else Writeln('massiv soderzit ne vse cisla do k');
end.