Oppure

Loading
25/10/10 18:41
Smallman647
Come da titolo ho cercato di creare una libreria in cui inserire le mie funzioni personali, in modo da richiamarle più facilmente in seguito.
Però quando provo a compilarla mi esce questo errore:
Dev-Pascal
Access Violation at Address 004E37F3 in module 'devpas.exe'. Read of address 00000000.


Ecco il codice con cui ho creato la libreria:
 unit lorenzo;


interface


function fatt(n:integer):real;

implementation
uses Crt;
var i:integer;
prodotto:real;
function fatt;

begin
prodotto:=1;
i:=0;
if n=0 then
begin
prodotto:=1;
fatt:=1;
end
else
    begin
    while i<n
    do begin
    prodotto:=prodotto*i;
    i:=i+1;
    fatt:=prodotto;
    end;
    end;
end;
end.


Non riesco proprio a capire dove ho sbagliato... :d
aaa
09/11/10 22:18
Poggi Marco
Ciao!

Ho letto la tua funzione e ho trovato alcune imperfezioni:
Ad esempio la dichiarazione di una funzione nella sezione Interface, deve essere identica alla corrispondente nella sezione implementation.

Inoltre, in Dev_Pascal, le unita vanno compilate nei programmi che ne fanno uso, non separatamente.

Posto l' unita corretta:
unit lorenzo;

interface

function fatt(n:integer):real;

implementation

function fatt(n:integer):real;
var prodotto:real;
begin
  prodotto:=1;
  while n>1 do
  begin
   prodotto:=prodotto*n;
   n:=n-1;
  end;
  fatt:=prodotto;
end;

begin

end.



aaa