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 - Errore nel programma
Forum - Pascal - Errore nel programma

Avatar
Distruttor (Normal User)
Newbie


Messaggi: 13
Iscritto: 28/12/2012

Segnala al moderatore
Postato alle 15:27
Venerdì, 28/12/2012
Ciao ragazzi sono nuovo del forum ed ho iniziato da pochissimo a programmare, e ho imparato qualcosa nelle guide online.Ora,ho deciso di fare una calcolatrice molto semplice, solo che non funziona bene la divisione perchè se metto un valore ad a<b mi da risultato 0, o se non sono uno multiplo dell'altro approssima il risultato all'unità... ho provato a inserire al posto di div l'operatore mod, ma è tutto uguale... Come risolvo?? Grazie ecco il codice.


Codice sorgente - presumibilmente Delphi

  1. program Calcolatrice;
  2. uses crt;
  3. var a,b,c,d,e,f:longint;
  4.     g:real;
  5. begin
  6. writeln('Scrivi il primo numero');
  7. readln(a);
  8.  
  9. writeln('Scrivi il secondo numero');
  10. readln(b);
  11.  
  12. writeln('Premi 1 per eseguirne la somma');
  13. writeln('Premi 2 per eseguirne la differenza');
  14. writeln('Premi 3 per eseguirne il prodotto');
  15. writeln('Premi 4 per eseguirne la divisione');
  16.  
  17. readln(c);
  18.  
  19. d:=a+b;
  20. e:=a-b;
  21. f:=a*b;
  22. g:=a div b;
  23.  
  24. case c of
  25.  
  26. 1: writeln(a,'+',b,'=',d);
  27. 2: writeln(a,'-',b,'=',e);
  28. 3: writeln(a,'*',b,'=',f);
  29. 4: writeln(a, '/',b,'=',g);
  30.  
  31.  
  32. end;
  33.  
  34. readln;
  35.  
  36. end.


PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 17:29
Venerdì, 28/12/2012
Ciao e benvenuto nel form!

La divisione ti da un risultato intero, o zero, perché hai dichiarato le variabili come longint. Ti basta cambiare tipo, ad esempio real. Inoltre dovresti controllare che b sia diverso da zero.

PM Quote
Avatar
Distruttor (Normal User)
Newbie


Messaggi: 13
Iscritto: 28/12/2012

Segnala al moderatore
Postato alle 18:58
Venerdì, 28/12/2012
Ho provato a dichiarare tutte le variabili come real, ma mi da 8 di questi errori  

29 / 2 calcol~1.pas
Error: Constant and CASE types do not match

Non capisco quale sia il problema...:-?

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 23:34
Venerdì, 28/12/2012
Per la sintassi del constructo case  of, non sono ammesse variabili del tipo real.
Di conseguenza dichiari c come integer, o implementi delle condizioni if.

PM Quote
Avatar
Distruttor (Normal User)
Newbie


Messaggi: 13
Iscritto: 28/12/2012

Segnala al moderatore
Postato alle 11:31
Sabato, 29/12/2012
Grazie molte, ho capito =)

PM Quote