|
||||
|
||||
|
Capitolo 1Sommatoria Produttoria
Il RadioButton è un componente molto utilizzato in Windows e
serve per permettere all'utente di scegliere fra 2 o più opzioni mutuamente
esclusive. Il che significa che se in una form appaiono 2 o più bottoni
radio che appartengono allo stesso gruppo, almeno uno deve essere
selezionato: è un esempio di cattiva programmazione una form con vari
bottoni radio senza che ve ne sia alcuno selezionato. La nostra form contiene due bottoni radio, il primo Somma, il secondo Prodotto; inizialmente Somma è selezionato (Checked=True). Sono poi presenti altri oggetti che già conosciamo. Elenchiamo le proprietà qui di seguito:
Scriviamo la procedura di calcolo: procedure TFormSommatoriaProduttoria.BitBtnOKClick(Sender: TObject);
var
n, i, s, p: Integer;
begin
n:=StrToInt(EditN.text);
if RadioButtonSomma.Checked then
begin
s:=0;
for i:=1 to n do
s:=s+i;
EditRisultato.Text:=IntToStr(s);
end
else
begin
p:=1;
for i:=1 to n do
p:=p*i;
EditRisultato.Text:=IntToStr(p);
end;
end;
Come si può vedere, dopo aver letto il valore di n fino a cui deve arrivare il calcolo, viene letta all'interno dell'if la proprietà Checked del RadioButtonSomma: se questa è vera viene effettuato il calcolo della sommatoria: begin
s:=0;
for i:=1 to n do
s:=s+i;
EditRisultato.Text:=IntToStr(s);
end
altrimenti se questa è falsa (il che significa che automaticamente la proprietà Checked del RadioButtonProdotto è vera) viene calcolata la produttoria: begin
p:=1;
for i:=1 to n do
p:=p*i;
EditRisultato.Text:=IntToStr(p);
end
Da rilevare iil modo in cui vengono calcolati la somma e il prodotto. Nella somma viene usata una variabile s che funge da accumulatore ed è inizialmente impostata a 0. All'interno del cliclo for vengono accumulati in essa i valori successivi di i da 1 a n. Al termine del ciclo, s contiene la somma di tutti i numeri da 1 a n. Analogamente accade per il prodotto, ma la variabile p deve essere inizialmente impostata a 1, elemento neutro del prodotto. Bisogna ancora rilevare infine che nel caso della produttoria è assai facile superare il numero intero massimo che può essere contenuto in una variabile Integer a 32 bit, che è 231-1 = 2'147'483'647. In tal caso il risultato ottenuto non sarà corretto; il massimo numero che può essere inserito e che fornisce un risultato corretto è 12.
|
|||
|
||||