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

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

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

Всем доброго времени суток, нужен совет по поводу: Можно ли в free pascal передать множество как параметр процедуры? Если можно, то как, если нельзя, то все плохо Пример программы, которая компилируется в abc.net и не компилируется в free pascal из за множеств:
type vector=array [1..1000] of byte;
procedure SimpleNum(var a:vector;num:integer;c:Set of byte);
var i,j,k,l,m,n:integer;
begin
j:=2;
while(num<>1) do begin
while (num mod j=0) do   begin 
if (num mod j=0) and (j in c) then      begin
inc(a[j]);
num:=num div j;
                                        end

                      end;
                       inc(j);
                end;
                
end;
 
function Stepen(i:byte;p:byte):longint;
var pres:longint;
begin
pres:=1;
while p<>0 do begin
pres:=pres*i;
dec(p);
end;
Stepen:=pres;
end;
 
var i,j,n,k:integer;
res:longint;
mastop:vector;
maslow:vector;
Mn:=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,57,59];
begin
res:=1;
readln(n,k);
 
for i:=2 to n do
SimpleNum(mastop,i,Mn);
 
for i:=2 to n-k do
SimpleNum(maslow,i,Mn);
 
for i:=2 to k do
SimpleNum(maslow,i,Mn);
 
for i:=1 to 60 do
mastop[i]:=mastop[i]-maslow[i];
 
for i:=1 to 60 do
res:=res*Stepen(i,mastop[i]);
 
writeln(res);

end.

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

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

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

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

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


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

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

11   голосов , оценка 3.818 из 5
Похожие ответы