Можно ли передать множество как параметр процедуры - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Всем доброго времени суток, нужен совет по поводу: Можно ли в free pascal передать множество как параметр процедуры? Если можно, то как, если нельзя, то все плохо Пример программы, которая компилируется в abc.net и не компилируется в free pascal из за множеств:
Листинг программы
  1. type vector=array [1..1000] of byte;
  2. procedure SimpleNum(var a:vector;num:integer;c:Set of byte);
  3. var i,j,k,l,m,n:integer;
  4. begin
  5. j:=2;
  6. while(num<>1) do begin
  7. while (num mod j=0) do begin
  8. if (num mod j=0) and (j in c) then begin
  9. inc(a[j]);
  10. num:=num div j;
  11. end
  12.  
  13. end;
  14. inc(j);
  15. end;
  16. end;
  17. function Stepen(i:byte;p:byte):longint;
  18. var pres:longint;
  19. begin
  20. pres:=1;
  21. while p<>0 do begin
  22. pres:=pres*i;
  23. dec(p);
  24. end;
  25. Stepen:=pres;
  26. end;
  27. var i,j,n,k:integer;
  28. res:longint;
  29. mastop:vector;
  30. maslow:vector;
  31. Mn:=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,57,59];
  32. begin
  33. res:=1;
  34. readln(n,k);
  35. for i:=2 to n do
  36. SimpleNum(mastop,i,Mn);
  37. for i:=2 to n-k do
  38. SimpleNum(maslow,i,Mn);
  39. for i:=2 to k do
  40. SimpleNum(maslow,i,Mn);
  41. for i:=1 to 60 do
  42. mastop[i]:=mastop[i]-maslow[i];
  43. for i:=1 to 60 do
  44. res:=res*Stepen(i,mastop[i]);
  45. writeln(res);
  46.  
  47. end.

Решение задачи: «Можно ли передать множество как параметр процедуры»

textual
Листинг программы
  1. type
  2.   TBytes=set of Byte;
  3. ...
  4. procedure SimpleNum(var a: vector; num: integer; c: TBytes);
  5. ...

Объяснение кода листинга программы

  1. Объявлен новый тип данных TBytes, который является множеством (set) байтовых значений.
  2. В процедуре SimpleNum объявлены три параметра:
    • a - вектор (vector), который будет содержать числовые значения.
    • num - целочисленное значение.
    • c - множество (TBytes) байтовых значений.
  3. В процедуре происходит обработка переданных параметров, но точная логика не указана, так как не предоставлен сам код процедуры.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.818 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы