CALCOLATRICE
Lab. Sistemi
-Analisi Problema
Devo costruire un
programma in cui mi appare un menù con le operazioni che la calcolatrice sa
svolgere associata a un numero, in modo tale che quando i 929j97j o prema quel dato
numero mi esegua quella certa operazione scelta.
La calcolatrice in
questione è in grado di :
-Sommare
-Sottrarre
-Dividere
-Moltiplicare
-Quadrato di un
numero
-Convertire da
Decimale a Binario.
-Descrizione a
Parole
Questo programma è
costituito da un programma principale che racchiude tutte le procedure della
calcolatrice;
Il programma è
composto dal menù che elenca le operazioni della calcolatrice, a ognuna di
queste corrisponde una procedura.
-Flow Chart

Procedura I_Var Procedure Addizione Procedure Sottrazione

Procedure
Divisione Procedure
Moltiplicazione Procedure
Quadrato
Procedure Dec_Bin

-Programma Pascal
Program Calcolatrice;
uses crt;
var
a,b,
c,
x,y
:integer;
g,h,
d
:real;
t:char;
Procedure i_var;
Begin
a:=0; b:=0; c:=0;
g:=0; h:=0; d:=0;
End;
procedure menu;
Begin
textcolor(9);
writeln('Questo programma ti permette di
eseguire');
writeln('alcune operazioni
di calcolo matematico');
writeln('');
writeln('');
textcolor(5);
writeln('Cosa vuoi fare?....Premi un tasto');
writeln('');
writeln('');
textcolor(2);
write('1. ');
writeln('ADDIZIONE');
write('2. ');
writeln('SOTRAZIONE');
write('3. ');
writeln('DIVISIONE');
write('4. ');
writeln('MOLTIPLICAZIONE');
write('5. ');
writeln('QUADRATO');
write('6. ');
writeln('DEC --> BIN');
gotoxy(20,40);
textcolor(9);
writeln('Premi ESC per
uscire dal programma....');
end;
Procedure Addizione;
Begin
clrscr;
i_var;
textcolor(11);
write('Inserisci il
primo numero --> ');
readln(a);
write('Inserisci il
secondo numero --> ');
readln(b);
c:=a+b;
writeln('');
writeln('');
textcolor(10);
write('Il risultato è
--> ',c);
readln;
End;
Procedure Sottrazione;
Begin
clrscr;
i_var;
textcolor(9);
write('Inserisci il
primo numero --> ');
readln(a);
write('Inserisci il
secondo numero --> ');
readln(b);
c:=a-b;
writeln('');
writeln('');
textcolor(10);
write('Il risultato è --> ',c);
readln;
End;
Procedure Divisione;
Begin
clrscr;
i_var;
textcolor(9);
write('Inserisci il
primo numero --> ');
readln(g);
write('Inserisci il
secondo numero --> ');
readln(h);
d:=g/h;
writeln('');
writeln('');
textcolor(10);
write('Il risultato è
--> ',d:6:2);
readln;
End;
Procedure Moltiplicazione;
Begin
clrscr;
i_var;
textcolor(9);
write('Inserisci il
primo numero --> ');
readln(a);
write('Inserisci il
secondo numero --> ');
readln(b);
c:=a*b;
writeln('');
writeln('');
textcolor(10);
write('Il risultato è
--> ',c);
readln;
End;
Procedure Quadrato;
Begin
clrscr;
i_var;
textcolor(9);
write('Inserisci il
numero --> ');
readln(a);
c:=a*a;
writeln('');
writeln('');
textcolor(10);
write('Il risultato è
--> ',c);
readln;
End;
Procedure dec_bin;
Begin
clrscr;
i_var;
textcolor(9);
write('Inserisci il numero
da codificare --> ');
readln(a);
writeln('');
writeln('');
textcolor(10);
writeln('Il Numero in binario è...');
gotoxy(x,y);
x:=40; y:=15;
repeat
c:=a mod 2;
a:=a div 2;
gotoxy(x,y);
write(c);
x:=x-2;
until a=0;
readln;
End;
procedure termine;
begin
clrscr;
textcolor(lightblue);
gotoxy(32,3);
writeln('FINE ---> [1]
');
delay(2000);
end;
BEGIN
repeat
clrscr;
menu;
t:=readkey;
if (t='1') or (t='2') or (t='3') or
(t='4') or (t='5') or (t='6') then
case t of
'1': addizione;
'2': sottrazione;
'3':
divisione;
'4': moltiplicazione;
'5':
quadrato;
'6':
dec_bin;
end;
if t=chr(27) then termine;
until keypressed;
end.
-Conclusioni
Questo programma è stato semplice da realizzare mediante procedure
perché è come se fosse composto da tanti piccoli programmi, mentre ho avuto
qualche problema con la funzione case of anche se alla fine l’ ho risolto in
modo adeguato.
Il programma esegue perfettamente tutte le funzioni assegnate.