Oppure

Loading
16/10/09 14:44
LittleHacker
Salve a tutti sto studiano il pascal mi sembra un'ottimo linguaggio di programmazione e voglio impararlo al meglio...Veniamo al dunque, io sto creando una semplice calcolatrice che dati due numeri con questo codice:
readln(numero1, numero2);

e dato l'operatore cioè +,-,*,/ e fin qui tutto bene ma adesso ho un problema per sapere se l'utente ha digitato +,-,*,/ utilizzo gli IF così:
if(operatore='+') then risultato:= numero1+numero2;
{*etc.*}

e alla fine metto l'if per la divisione ma appena provo a compilarlo mi esce questo errore: calc.pas(24,43) Error: Incompatible types: got "Extended" expected "SmallInt"
nella riga dove c'è l'if per la divisaione, ho provato a dichiarare sia numero1, sia numero2 e sia risultato, con real ma mi esce un numero stratoscopico cioè se faccio la divisione tra 4 e 2 mi esce il 4 scritto come 4.000000000+e02 e il 2 nello stesso modo del 4 e il risultato = 2.00, mi dà l'errore quando dichiaro con Integer, Word e Char(Word e Char x fare una prova) potreste consigliarmi il metodo migliore? vorrei andare avanti con questo bellissimo linguaggio di programmazione ciao ciao a presto e grazie...
PS: Prima di postare ho letto il sorgente di un programma scritto in pascal di program92 una calcolatrice e dice che quando scrivo a schermo il risultato poi devo fare questo: risultato:2:0...ho provato ma non funziona...:k:
aaa
16/10/09 15:07
Anonymous
devi mettere cosi:

risultato:= dividendo / divisore;
writeln('il risultato è:', risultato:8:2);



dove risultato deve essere per forza un real o double ma di sicuro non integer

al posto dell'8 puoi anche mettere un valore più basso... e se ti dovessero servire più cifre decimali potresti aumentare il valore al posto del 2
aaa
16/10/09 15:51
LittleHacker
cioè, quel :8:2 cosa fa?:k:

Edit:
Altro "Errore": il risultato mi esce ancora 2.00...
Ultima modifica effettuata da LittleHacker 16/10/09 15:53
aaa
16/10/09 16:34
Anonymous
ah... quindi non vuoi i decimali per niente??? prova a mettere 0 al posto del 2

però dopo ti troncherà anche su tutti gli altri numeri...


per esempio 9 / 2 ti darà 4 invece che 4.5

in pratica il primo numero dice quante cifre in totale deve avere al massimo il tuo risultato, e il secondo numero invece dice quanti decimali vuoi che appaia.....
aaa
16/10/09 16:36
Lawliet
Ma.. non stavi studiando il C++!?

Postato originariamente da LittleHacker:

cioè, quel :8:2 cosa fa?:k:

Edit:
Altro "Errore": il risultato mi esce ancora 2.00...


Alla tua domanda ti ha risposto anonymous:

Postato originariamente da Anonymous:

devi mettere cosi:

risultato:= dividendo / divisore;
writeln('il risultato è:', risultato:8:2);



dove risultato deve essere per forza un real o double ma di sicuro non integer

al posto dell'8 puoi anche mettere un valore più basso... e se ti dovessero servire più cifre decimali potresti aumentare il valore al posto del 2


E 4:2 fa 2.00!!
aaa
16/10/09 16:40
LittleHacker
Postato originariamente da Lawliet:

Ma.. non stavi studiando il C++!?

Postato originariamente da LittleHacker:

cioè, quel :8:2 cosa fa?:k:

Edit:
Altro "Errore": il risultato mi esce ancora 2.00...

Certo solo che adesso voglio studiare il Pascal, mi sembra un'ottimo linguaggio...:D
aaa