![]() | ![]() |
|
|
Testo esercitazione proposta
ESEGUIRE UN PROGRAMMA IN DELPHI CHE SIMULI L'UTILIZZO DELLE 4 FUNZIONI BASE DELLA CALCOLATRICE.
FORM PRINCIPALE |
Project calcolatrice |
|
|
|
|
|
ELENCO PROPRIETA' |
Enabled |
True in tutti 4 i button 414c23e |
|
|
|
Caption |
+,-,*,/ a seconda del bottone |
|
|
ELENCO EVENTI GESTITI |
|
|
|
|
|
Click "button +" |
Somma text1 e text2 e mostra il risultato su text3 |
|
|
|
Click "button -" |
Sottrae text1 e text2 e mostra il risultato su text3 |
|
|
|
|
Moltiplica text1 e text2 e mostra il risultato su text3 |
|
|
|
|
Divide text1 e text2 e mostra il risultato su text3 |
|
PROGETTAZIONE DEL PROGRAMMA
Per eseguire questo programma ho scomposto pensato di fare una procedura principale che facesse l'operazione necessaria a seconda di quale fosse la mia scelta(+,-,*,/) attraverso 4 bottoni.Nel main program di ogni bottone ho poi richiamato la procedura calcola,sostituendo le variabili formali con quelle globali
PROCEDURA CALCOLA
VAR (N1,N2:INTEGER;OPT:CHAR;N3:REAL)
INIZIO
SE OPT:="+" ALLORA N3=N1+N2;
SE OPT:="-" ALLORA N3=N1-N2;
SE OPT:="*" ALLORA N3:=N1*N2;
SE OPT:="/" ALLORA N3:=N1/N2;
FINE.
Poi in ogni button ho sostituito ad n1,n2,n3 rispettivamente add1,add2 e risultato ,e li ho trasferiti su text1,text2 e text3 in modo da essere visibili.E' qui di seguito riportato un esempio di uno dei 4 bottoni,in questo caso del button "+".
PROGRAMMA BUTTON1
VAR ADD1,ADD2:INTEGER:
VAR RISULTATO:REAL
INIZIO
ADD1:=STRTOINT(TEXT1.TEXT);
ADD2:=STRTOINT(TEXT2.TEXT);
CALCOLA(ADD1,ADD2,+,RISULTATO);//QUI AVVIENE LO SCAMBIO TRA PARAMETRI FORMALI E VARIABILI GLOBALI.I PROGRAMMI DEGLI ALTRI BUTTON DIFFERISCONO DA QUESTO SOLO DAL SIMBOLO OPT.
RISULTATO:=FLOATTOSTR(TEXT3.TEXT);
FUNZIONI USATE
Funzione iterativa if=per la scelta dell'operazione aritmetica da svolgere.
Strtoint=per trasformare stringhe in interi
Floattostr=per trasformare reali in stringhe
VARIABILE |
TIPO DI VARIABILE |
CONTENUTA IN. |
NATURA DELLLA VARIABILE/PARAMETRO |
UTILITA' |
N1 |
INTEGER |
PROCEDURA CALCOLA |
FORMALE |
RAPPRESENTA IL PRIMO FATTORE |
N2 |
INTEGER |
PROCEDURE CALCOLA |
FORMALE |
RAPPRESENTA IL SECONDO FATTORE |
OPT |
CHAR |
PROCEDURA CALCOLA |
FORMALE |
E' IL TIPO DI OPERAZIONE |
N3 |
REAL |
PROCEDURA CALCOLA |
FORMALE |
E' IL RISULTATO |
ADD1 |
INTEGER |
OGNI MAIN PROGRAM DEI 4 BUTTON |
GLOBALE |
SOSTITUISCE N1 |
ADD2 |
INTEGER |
OGNI MAIN PROGRAM DEI 4 BUTTON |
GLOBALE |
SOSTITUISCE N2 |
RISULTATO |
REAL |
OGNI MAIN PROGRAM DEI 4 BUTTON |
GLOBALE |
SOSTITUISCE N3 |
CLASSIFICAZIONE DELLE VARIABILI
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure calcola(n1,n2:integer; opt:char; var n3:real);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
procedure Tform1.calcola(n1,n2:integer; opt:char; var n3:real);
begin
if opt='+' then n3:=n1+n2;
if opt='-' then n3:=n1-n2;
if opt='*' then n3:=n1*n2;
if opt='/' then n3:=n1/n2;
end;
procedure TForm1.Button1Click(Sender: TObject);
var add1,add2:integer;
var risultato:real;
begin
add1:=strtoint(edit1.text);
add2:=strtoint(edit2.text);
calcola(add1,add2,'+',risultato);
edit3.text:=floattostr(risultato);
end;
procedure TForm1.Button2Click(Sender: TObject);
var add1,add2:integer;
var risultato:real;
begin
add1:=strtoint(edit1.text);
add2:=strtoint(edit2.text);
calcola(add1,add2,'-',risultato);
edit3.text:=floattostr(risultato);
end;
procedure TForm1.Button3Click(Sender: TObject);
var add1,add2:integer;
var risultato:real;
begin
add1:=strtoint(edit1.text);
add2:=strtoint(edit2.text);
calcola(add1,add2,'*',risultato);
edit3.text:=floattostr(risultato);
end;
procedure TForm1.Button4Click(Sender: TObject);
var add1,add2:integer;
var risultato:real;
begin
add1:=strtoint(edit1.text);
add2:=strtoint(edit2.text);
calcola(add1,add2,'/',risultato);
edit3.text:=floattostr(risultato);
end;
end.
Ho provato a fare il programma inizialmente senza procedure ma ho visto poi che era piu' complicato.non ho dovuto testare molto anche perché le 4 funzioni usate per i main program dei bottoni erano praticamente identiche.
Ho potuto constatare l'efficacia delle procedure che rendono il lavoro più veloce e meno complesso.Ho avuto qualche difficoltà nel trasferire le variabili sui vari text e di trasformarle in intgere in modo da poter essere visualizzate sulla striscia di testo.
Privacy |
Articolo informazione
Commentare questo articolo:Non sei registratoDevi essere registrato per commentare ISCRIVITI |
Copiare il codice nella pagina web del tuo sito. |
Copyright InfTub.com 2025