/*ProJecT*/Calcolatrice

Topic sul pascal.

/*ProJecT*/Calcolatrice

Postby Criphox on Sun Oct 01, 2006 6:47 pm

allura mi da 1 solo errore quando compilo...S3eraph mi sai dire dove stà questo errore?? grazie

Code: Select all
program Untitled;
var op:integer;
var n:integer;
var n2:integer;
var ris:integer;
function add:integer;
begin
add:= n+n2;
end.
function sott:integer;
begin
sott:= n-n2;
end.
function molt:integer;
begin
molt:= n*n2;
end.
function divi:integer;
begin
divi:= n/n2;
end.
begin
writeln ('Calcolatrice, esegue le operazioni di base');
writeln;
writeln ('Inserisci il primo numero');
writeln;
readln (n);
writeln ('Inserisci l''operatore da usare (+, -, *, /)');
writeln;
readln (op);
writeln ('Inserisci il secondo numero');
writeln;
readln (n2);
if op = + then ris:= add;
if op = - then ris:= sott;
if op = * then ris:= molt;
if op = / then ris:= divi;
writeln ('Il risultato è: ',ris);
writeln;
end.


premetto che nn sono molto sicuro che quelo che ho fatto sia giusto...+ che altro sono andato per logica...
User avatar
Criphox
Algoritmo
 
Posts: 141
Joined: Tue Sep 05, 2006 10:28 pm
Location: Benevento

/*ProJecT*/Calcolatrice

Sponsor

Sponsor


Postby Fabriz on Sun Oct 01, 2006 7:45 pm

aargh!

perdonami la schiettezza, ma è tutto sbagliato!!


Code: Select all
program Untitled;
//basta dichiarare una sola volta la parola riservata var;
var op:integer;  //i caratteri +,-,*,/ sono considerati char, non integer;
var n:integer; 
var n2:integer;
var ris:integer;
function add:integer;
begin
add:= n+n2;
end. {*aargh! l'end. è l'end finale. In tutti gli altri (quelli di if,case,for ecc...)va il ";"*}
function sott:integer;
begin
sott:= n-n2;
end.
function molt:integer;
begin
molt:= n*n2;
end.
function divi:integer;
{* errore grave! In una divisione il risultato è real, sempre! quindi attribuire il risultato di una divsione a un intero è un errore in pascal. La gestione delle variabili non è comoda mica come in perl. *}
begin
divi:= n/n2;
end.
begin
writeln ('Calcolatrice, esegue le operazioni di base');
writeln;
writeln ('Inserisci il primo numero');
writeln;
readln (n);
writeln ('Inserisci l''operatore da usare (+, -, *, /)');
writeln;
readln (op);
writeln ('Inserisci il secondo numero');
writeln;
readln (n2);
if op = + then ris:= add; //molto più comodo un case, anche perchè in
if op = - then ris:= sott; //questo caso fa tutti gli if finchè non trova quello
if op = * then ris:= molt;//giusto. Un'elaborazione inutile;
if op = / then ris:= divi;
writeln ('Il risultato è: ',ris);//in dos non è presente la e accentata.
writeln;
end.


modificata:

Code: Select all
program Calcorretta;
var op:char;
    n,n2,ris:real;
function add:real;
begin
add:= n+n2;
end;
function sott:real;
begin
sott:= n-n2;
end;
function molt:real;
begin
molt:= n*n2;
end;
function divi:real;
begin
divi:= n/n2;
end;
begin
write('Calcolatrice, esegue le operazioni di base');
writeln;
write('Inserisci il primo numero: ');
readln (n);
write('Inserisci l''operatore[+ - * /] da usare: ');
readln (op);
write('Inserisci il secondo numero: ');
readln (n2);
case op of
          '+':
              begin
              ris:=add;
              writeln ('Il risultato e'': ',ris:4:2);
              end;
          '-':
              begin
              ris:=sott;
              writeln ('Il risultato e'': ',ris:4:2);
              end;
          '*':
              begin
              ris:=molt;
              writeln ('Il risultato e'': ',ris:4:2);
              end;
          '/':
              begin
              ris:=add;
              writeln ('Il risultato e'': ',ris:4:2);
              end;
        else writeln('Operatore non valido');
end;
readln
end.
Bit wrote:Ma sisi cosa? che ca**o c'è da ridere? bha


Dead on my sweet Piano.


IO NON SONO AMICO DI GOOGLE
User avatar
Fabriz
Diagramma a Blocchi
 
Posts: 209
Joined: Sun Jul 02, 2006 4:15 pm

Postby Criphox on Sun Oct 01, 2006 7:55 pm

scommetto che quando l'hai vista sei svenuto...ihihihihih


sai, nn sapendo come fare ho fatto tutto a caso, come mi usciva LOL
User avatar
Criphox
Algoritmo
 
Posts: 141
Joined: Tue Sep 05, 2006 10:28 pm
Location: Benevento

Postby Fabriz on Sun Oct 01, 2006 7:58 pm

Criphox wrote:scommetto che quando l'hai vista sei svenuto...ihihihihih


sai, nn sapendo come fare ho fatto tutto a caso, come mi usciva LOL


No beh tranquillo. La diatriba integer-real la spiegano a scuola, sulle guide è pressochè insesistnete. Più in generale, le relazioni tra tipi di varibili...
Bit wrote:Ma sisi cosa? che ca**o c'è da ridere? bha


Dead on my sweet Piano.


IO NON SONO AMICO DI GOOGLE
User avatar
Fabriz
Diagramma a Blocchi
 
Posts: 209
Joined: Sun Jul 02, 2006 4:15 pm

Postby Criphox on Sun Oct 01, 2006 8:28 pm

S3raph wrote:No beh tranquillo. La diatriba integer-real la spiegano a scuola, sulle guide è pressochè insesistnete. Più in generale, le relazioni tra tipi di varibili...


bhe...io nn ho imparato il pascal a scuola :P

quando ho iniziato a programmare in pascal avevo 13 anni...ora ne ho 15 e sto usando il c++ :lol:
User avatar
Criphox
Algoritmo
 
Posts: 141
Joined: Tue Sep 05, 2006 10:28 pm
Location: Benevento


Return to Pascal

Who is online

Users browsing this forum: No registered users and 1 guest