Oppure

Loading
13/01/09 20:03
Luk3
Mi trovavo a scrivere una calcolatrice in TurboPascal... Provando a compilare mi restituisce "Error in resource file".
Sapete dire cos'è sbagliato? Posto il codice:

{Developed by - C. Luca - 13/01/09 - ITIS Max Planck}

program Calcolatrice;
uses crt;

begin
var n1, n2, ris : real;
var op, s1 : char;
start:
clrscr;
writeln('Benvenuto in: Calcolatrice');
writeln;
writeln('Inserisci il primo numero: ');
readln(n1);
writeln;
writeln('Inserisci l''operatore (+, -, *, /): ');
readln(op);
writeln;
writeln('Inserisci il secondo numero: ');
readln(n2);
if op = '+' then
begin
ris = n1 + n2;
writeln('Il risultato è: ');
write(ris);
writeln;
end
if op = '-' then
begin
ris = n1 - n2;
writeln('Il risultato è: ');
write(ris);
writeln;
end
if op = '*' then
begin
ris = n1 * n2;
writeln('Il risultato è: ');
write(ris);
writeln;
end
if op = '/' then
begin
ris = n1 / n2;
writeln('Il risultato è: ');
write(ris);
writeln;
end
if op <> '+' OR '-' OR '*' OR '/' then
begin
writeln('Hai inserito dati sbagliati...');
writeln;
goto start;
end

writeln;
writeln('Inserisci ''Q'' o ''E'' per continuare...');
readln(s1);
if s1 = 'Q' OR 'q' then
begin
end.
end
if s1 = 'E' OR 'e' then
begin
goto start;
end

end.


Grazie ;)
Ultima modifica effettuata da Luk3 13/01/09 20:04
aaa
15/01/09 14:38
WARRIOR
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).
aaa
15/01/09 16:26
Luk3
No, non indica nessuna linea
aaa
19/01/09 13:34
gigisoft
Salve,
mi pare di vedere almeno due errori:

1) l'etichetta Start va dichiarata:
Label Start;


2) Non capisco il senso di questo:
if s1 = 'Q' or 'q' then 
begin 
end. 
end 
aaa
29/03/09 17:44
Anonymous
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
aaa
02/04/09 21:14
Ly
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...
aaa