Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Pascal - Problema Libreria personale
Forum - Pascal - Problema Libreria personale

Avatar
Smallman647 (Normal User)
Newbie


Messaggi: 5
Iscritto: 16/10/2010

Segnala al moderatore
Postato alle 20:41
Lunedì, 25/10/2010
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:
Codice sorgente - presumibilmente Delphi

  1. unit lorenzo;
  2.  
  3.  
  4. interface
  5.  
  6.  
  7. function fatt(n:integer):real;
  8.  
  9. implementation
  10. uses Crt;
  11. var i:integer;
  12. prodotto:real;
  13. function fatt;
  14.  
  15. begin
  16. prodotto:=1;
  17. i:=0;
  18. if n=0 then
  19. begin
  20. prodotto:=1;
  21. fatt:=1;
  22. end
  23. else
  24.     begin
  25.     while i<n
  26.     do begin
  27.     prodotto:=prodotto*i;
  28.     i:=i+1;
  29.     fatt:=prodotto;
  30.     end;
  31.     end;
  32. end;
  33. end.



Non riesco proprio a capire dove ho sbagliato... :d

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 23:18
Martedì, 09/11/2010
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:
Codice sorgente - presumibilmente Delphi

  1. unit lorenzo;
  2.  
  3. interface
  4.  
  5. function fatt(n:integer):real;
  6.  
  7. implementation
  8.  
  9. function fatt(n:integer):real;
  10. var prodotto:real;
  11. begin
  12.   prodotto:=1;
  13.   while n>1 do
  14.   begin
  15.    prodotto:=prodotto*n;
  16.    n:=n-1;
  17.   end;
  18.   fatt:=prodotto;
  19. end;
  20.  
  21. begin
  22.  
  23. end.




PM Quote