PDA

View Full Version : Aiuto Principiante


Sbamma
07-06-2014, 19:42
Scusate se vi disturbo ma ho appena iniziato a studiarlo e non trovo l'errore.Me la dareste una mano?? :)

program calcolatrice;
uses crt;
var z,a,b,c,d,e:integer;
begin
writeln ('*Benvenuti nella calcolatrice di Mattia*');
readln;
clrscr;
writeln ('MENU:') ;
writeln ('Addizione= 1');
writeln ('SOttrazione= 2');
writeln ('Moltiplica= 3');
writeln ('Divisione= 4');
writeln ('Fai quattro calcoli...= 5');

readln(z)

case z of
1:
begin
writeln('Inserisci i due numeri che vuoi sommare!');
readln(a,b);
c:=a+b;
writeln('Il risultato è ',c);
end;
2:
begin
writeln ('Inserisci i due numeri che vuoi sottrarre!');
readln (a,b);
c:=a-b;
writeln('Il risultato è ',c);
end;
3:
begin
writeln('Inserisci i due numeri che vuoi moltiplicare!');
readln(a,b);
c:=a*b;
writeln('Il risultato è ',c);
end;
4:
begin
writeln('Inserisci i due numeri che vuoi dividere!');
readln(a,b);
c:=a/b;
writeln('Il risultato è ',c);
end;
5:
begin
writeln('Inserisci i due numeri che vuoi calcolare!');
readln(a,b);
c:=a+b;
d:=a-b;
e:=a*b;
f:=a/b;
writeln('Il risultato è: Somma= ',c);
writeln(' Sottrazione= ',d);
writeln(' Moltiplica= ',e);
end;
else
writeln ('SCELTA NON VALIDA');
end;
end.

sottovento
07-06-2014, 20:31
Ciao
se posso permettermi, quando chiedi aiuto cerca di dare piu' informazioni possibili.
D'altronde quando vai dal medico, non ti aspetti che indovini cos'abbia, ma glielo dici direttamente (vabbe' oppure te lo domanda, ma su un forum significa scriverti "cosa c'e' che non va?" e aspettare la risposta.
Specifica anche il linguaggio nel titolo, o quanto meno nel messaggio, cosi' la gente sa di cosa parliamo.
Comunque sembra che il tuo problema sia sintattico.
Cosi' dovrebbe andare:


program calcolatrice;
uses crt;
var a,b,c,d,e,f:real;
z : integer;
begin
writeln ('*Benvenuti nella calcolatrice di Mattia*');
readln;
clrscr;
writeln ('MENU:') ;
writeln ('Addizione= 1');
writeln ('SOttrazione= 2');
writeln ('Moltiplica= 3');
writeln ('Divisione= 4');
writeln ('Fai quattro calcoli...= 5');

readln(z);

case z of
1:
begin
writeln('Inserisci i due numeri che vuoi sommare!');
readln(a,b);
c:=a+b;
writeln('Il risultato è ',c);
end;
2:
begin
writeln ('Inserisci i due numeri che vuoi sottrarre!');
readln (a,b);
c:=a-b;
writeln('Il risultato è ',c);
end;
3:
begin
writeln('Inserisci i due numeri che vuoi moltiplicare!');
readln(a,b);
c:=a*b;
writeln('Il risultato è ',c);
end;
4:
begin
writeln('Inserisci i due numeri che vuoi dividere!');
readln(a,b);
c:=a/b;
writeln('Il risultato è ',c);
end;
5:
begin
writeln('Inserisci i due numeri che vuoi calcolare!');
readln(a,b);
c:=a+b;
d:=a-b;
e:=a*b;
f:=a/b;
writeln('Il risultato è: Somma= ',c);
writeln(' Sottrazione= ',d);
writeln(' Moltiplica= ',e);
end;
else
writeln ('SCELTA NON VALIDA');
end;
end.




NOTA - secondo me andrebbe un pochino migliorato, nel senso che una volta fatta un'operazione potresti chiedere la successiva, fino a quando l'utente decide di finire

Sbamma
08-06-2014, 12:15
grazie mille e scusa l'omissione ma stavo sclerando perché era tutto il pomeriggio che cercavo l'errore e non ci ho pensato!
quindi in sostanza l'errore era solo che la variabile del "case of" andava in integer e le variabili di calcolo in real??

sisi,tieni presente che è il primissimo programma che stilo,pensavo di integrarlo in seguito con il ciclo.

sottovento
08-06-2014, 16:57
grazie mille e scusa l'omissione ma stavo sclerando perché era tutto il pomeriggio che cercavo l'errore e non ci ho pensato!
quindi in sostanza l'errore era solo che la variabile del "case of" andava in integer e le variabili di calcolo in real??

sisi,tieni presente che è il primissimo programma che stilo,pensavo di integrarlo in seguito con il ciclo.

Non ricordo esattamente tutti i punti, ma erano errori banali, puoi star tranquillo. Si trattava di qualche punto e virgola qua e la, e della variabile z non dichiarata.
Per quanto riguarda le variabili real, ho cambiato arbitrariamente perche' mi sembrava piu' sensato :D
Avrebbe funzionato anche con le variabili intere, a patto di sostituire lo slash della divisione con la parola riservata DIV

Sbamma
08-06-2014, 18:53
Non ricordo esattamente tutti i punti, ma erano errori banali, puoi star tranquillo. Si trattava di qualche punto e virgola qua e la, e della variabile z non dichiarata.
Per quanto riguarda le variabili real, ho cambiato arbitrariamente perche' mi sembrava piu' sensato :D
Avrebbe funzionato anche con le variabili intere, a patto di sostituire lo slash della divisione con la parola riservata DIV

ok perfetto,Grazie mille!