Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
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
program valuta;
uses crt;
var
quota:integer;
moneta:string[20];
euro:string[20];
lire:string[20];
begin
clrscr;
writeln('scrivere il tipo di valuta da convertire (euro/lire) ');
readln(moneta);
if(moneta=euro)then
begin
writeln('scrivere la quota da convertire');
readln(quota);
writeln('ecco il risultato in lire');
writeln(quota * 2000);
readln()
end
elseif(moneta=lire)then
begin
writeln('scrivere la quota da convertire');
readln(quota);
writeln('ecco il risultato in euro');
writeln(quota div 2000);
readln();
end;
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è??
Scusate, ma c'e' prorpio bisogno delle variabili euro e lire ?
non sarebbe piu' corretto scrivere:
Codice sorgente - presumibilmente Delphi
if(UpCase(moneta)='EURO')then
begin
[...]
end
elseif(UpCase(moneta)='LIRE')then
begin
[...]
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.