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 con if then else
Forum - Pascal - problema con if then else

Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
non riesco a capire cosa ho sbagliato in questo programma che deve trasformare euro in lire e viceversa, ecco il codice:

Codice sorgente - presumibilmente Delphi

  1. program valuta;
  2. uses crt;
  3. var
  4.    quota:integer;
  5.    moneta:string[20];
  6.    euro:string[20];
  7.    lire:string[20];
  8. begin
  9.  clrscr;
  10.  writeln('scrivere il tipo di valuta da convertire (euro/lire) ');
  11.  readln(moneta);
  12.  if (moneta=euro) then
  13.   begin
  14.   writeln('scrivere la quota da convertire');
  15.   readln(quota);
  16.   writeln('ecco il risultato in lire');
  17.   writeln(quota * 2000);
  18.   readln()
  19.   end
  20.  else if (moneta=lire) then
  21.    begin
  22.    writeln('scrivere la quota da convertire');
  23.    readln(quota);
  24.    writeln('ecco il risultato in euro');
  25.    writeln(quota div 2000);
  26.    readln();
  27.   end;
  28. end.



qualcuno può riscrivere il codice corretto in modo che io posso capire cosa sbaglio?

cmq il problema si verifica quando scrivo: else if (moneta=lire) then
ma se scrivo solo else, poi qualsiasi parola scrivo (durante l'esecuzione del programma) esegue sempre il blocco per trasformare da lire in euro, ma perchè??

PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 12:43
Domenica, 12/08/2012
ma le variabili euro e lire dove le inizializzi?

Prima di clrscr aggiungi:

Codice sorgente - presumibilmente Plain Text

  1. euro := 'euro';
  2. lire := 'lire';


Ultima modifica effettuata da lorenzo il 12/08/2012 alle 12:44
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 20:14
Domenica, 12/08/2012
be questa volta invece appena scrivo euro o lire si chiude immediatamente!!

PM Quote
Avatar
gigisoft (Member)
Guru


Messaggi: 696
Iscritto: 11/10/2008

Segnala al moderatore
Postato alle 12:02
Lunedì, 13/08/2012
Scusate, ma c'e' prorpio bisogno delle variabili euro e lire ?

non sarebbe piu' corretto scrivere:

Codice sorgente - presumibilmente Delphi

  1. if (UpCase(moneta)='EURO') then
  2.   begin
  3. [...]
  4.   end
  5.  else if (UpCase(moneta)='LIRE') then
  6.    begin
  7. [...]
  8.   end;



e poi, se 'lire' e 'euro' sono di 4 caratteri, perche' moneta e' una stringa di 20? Vabbeh che ormai sui PC la memoria si spreca, ma e' bene avere l'abitudine a non abusare con l'uso delle risorse che, in altri ambiti, potrebbero essere molto piu' limitate.

Saluti.

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 16:35
Domenica, 30/09/2012
problema risolto grazie gigisoft:)

PM Quote
Avatar
gigisoft (Member)
Guru


Messaggi: 696
Iscritto: 11/10/2008

Segnala al moderatore
Postato alle 15:19
Mercoledì, 17/10/2012
Testo quotato

Postato originariamente da alexxx99:

problema risolto grazie gigisoft:)



di nulla, figurati

PM Quote