Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
Pascal - Problema => Calcolatrice
Forum - Pascal - Problema => Calcolatrice

Avatar
Luk3 (Member)
Guru


Messaggi: 615
Iscritto: 16/08/2008

Segnala al moderatore
Postato alle 21:03
Martedì, 13/01/2009
Mi trovavo a scrivere una calcolatrice in TurboPascal... Provando a compilare mi restituisce "Error in resource file".
Sapete dire cos'è sbagliato? Posto il codice:

Codice sorgente - presumibilmente Delphi

  1. {Developed by - C. Luca - 13/01/09 - ITIS Max Planck}
  2.  
  3. program Calcolatrice;
  4. uses crt;
  5.  
  6. begin
  7. var n1, n2, ris : real;
  8. var op, s1 : char;
  9. start:
  10. clrscr;
  11. writeln('Benvenuto in: Calcolatrice');
  12. writeln;
  13. writeln('Inserisci il primo numero: ');
  14. readln(n1);
  15. writeln;
  16. writeln('Inserisci l''operatore (+, -, *, /): ');
  17. readln(op);
  18. writeln;
  19. writeln('Inserisci il secondo numero: ');
  20. readln(n2);
  21. if op = '+' then
  22. begin
  23. ris = n1 + n2;
  24. writeln('Il risultato è: ');
  25. write(ris);
  26. writeln;
  27. end
  28. if op = '-' then
  29. begin
  30. ris = n1 - n2;
  31. writeln('Il risultato è: ');
  32. write(ris);
  33. writeln;
  34. end
  35. if op = '*' then
  36. begin
  37. ris = n1 * n2;
  38. writeln('Il risultato è: ');
  39. write(ris);
  40. writeln;
  41. end
  42. if op = '/' then
  43. begin
  44. ris = n1 / n2;
  45. writeln('Il risultato è: ');
  46. write(ris);
  47. writeln;
  48. end
  49. if op <> '+' OR '-' OR '*' OR '/' then
  50. begin
  51. writeln('Hai inserito dati sbagliati...');
  52. writeln;
  53. goto start;
  54. end
  55.  
  56. writeln;
  57. writeln('Inserisci ''Q'' o ''E'' per continuare...');
  58. readln(s1);
  59. if s1 = 'Q' OR 'q' then
  60. begin
  61. end.
  62. end
  63. if s1 = 'E' OR 'e' then
  64. begin
  65. goto start;
  66. end
  67.  
  68. end.



Grazie ;)

Ultima modifica effettuata da Luk3 il 13/01/2009 alle 21:04


Non basta godersi un cielo stellato senza pensare che in un angolo ci siano le fate?
PM Quote
Avatar
WARRIOR (Ex-Member)
Guru


Messaggi: 627
Iscritto: 30/03/2007

Segnala al moderatore
Postato alle 15:38
Giovedì, 15/01/2009
Non ho qui il turbo pascal, senti ti da l'errore su una riga in particolare? (è molto che non programmno in Pascal, non ricordo che tipo di errore sia purtroppo).


Continuerò a correre, perchè ci sarà sempre qualcuno migliore di me.

Evvia i libri, evitate gli stolti che non li integrano nella loro vita.

http://www.mentisferiche.it

Luca Tedesco
PM Quote
Avatar
Luk3 (Member)
Guru


Messaggi: 615
Iscritto: 16/08/2008

Segnala al moderatore
Postato alle 17:26
Giovedì, 15/01/2009
No, non indica nessuna linea


Non basta godersi un cielo stellato senza pensare che in un angolo ci siano le fate?
PM Quote
Avatar
gigisoft (Member)
Guru


Messaggi: 696
Iscritto: 11/10/2008

Segnala al moderatore
Postato alle 14:34
Lunedì, 19/01/2009
Salve,
mi pare di vedere almeno due errori:

1) l'etichetta Start va dichiarata:
Codice sorgente - presumibilmente Pascal

  1. Label Start;



2) Non capisco il senso di questo:
Codice sorgente - presumibilmente Delphi

  1. if s1 = 'Q' or 'q' then
  2. begin
  3. end.
  4. end



Le cose si fanno per bene o non si fanno affatto
PM Quote
Avatar
Anonymous (Member)
Guru


Messaggi: 1058
Iscritto: 30/07/2006

Segnala al moderatore
Postato alle 19:44
Domenica, 29/03/2009
si.. gli errori sono parecchi di forma sintattica.. (forse vieni da un altro linguaggio)

cmq prima di tutto quando si fa una assegnazione ci va il := e non l'= e basta

perché l'= si usa dentro ad una condizione if then per fare una valutazione

se tu devi settare il valore 3 alla variabile x allora fai:

x:=3;

se invece devi controllare se dentro alla variabile x c'è il valore 3 fai:
if x=3 then ...


poi altri errori sono che non hai messo il punto e virgola alla fine di qualche end

poi altri errori sono che quando dentro ad un costrutto if then metti degli operatori logici come l'or o l'and ecc devi racchiudere tra parentesi ogni elemento e se devi verificare le diversità tra due cose, le devi riscrivere ogni volta... in pratica la riga:
if op <> '+' or '-' or '*' or '/' then

deve diventare

if (op <> '+') or (op <>'-') or (op <>'*') or (op <>'/') then

e cosi tutte le altre


ah.. un altra cosa è che la dichiarazione delle variabili va fatta assolutamente fuori da tutti i begin.. :D

cioè devi mettere var a,b,c ecc.. subito dopo il uses crt e non dopo il begin...


fammi sapere.. ciao


ciao!
PM Quote
Avatar
Ly (Normal User)
Rookie


Messaggi: 22
Iscritto: 02/04/2009

Segnala al moderatore
Postato alle 23:14
Giovedì, 02/04/2009
A parte gli errori sintattici, non è meglio usare un semplice repeay unitl???? :D poi non so se diventi troppo banale perchè io il programma l'ho fatto anche se in modo diverso...


The life is beautiful if lived with the right person, I don't care of the other. I think of you. I love you Enry!
PM Quote