|
||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||
|
Capitolo 1Divisori di un numero
Ci sono però due piccole novità. La prima riguarda la grande Label multilinea visibile nella form dell'applicazione e che fa da commento per l'utente. Per ottenere questo effetto è sufficiente impostare la proprietà WordWrap da False a True ed ingrandire quanto si vuole il rettangolo che contiene la Label. In tal caso la Caption della Label può essere anche molto lunga. La seconda riguarda l'operatore matematico da utilizzare sui numeri interi per calcolare il resto di una divisione intera, cioè mod. Dati due numeri Integer a e b, l'espressione: a mod b, restituisce il resto della divisione intera di a per b. Quindi se il risultato è 0 vuol dire che a è divisibile per b. Riportiamo l'elenco completo degli operatori aritmetici binari tratto dall'help di Delphi 2.0:
Qui di seguito elenchiamo le proprietà degli oggetti della form:
Infine la procedura associata al bottone Cerca: procedure TFormDivisori.BitBtnCercaClick(Sender: TObject);
var
n, i: Integer;
begin
MemoDivisoriDiN.Lines.Clear;
n:=StrToIntDef(EditN.Text, 0);
for i:=1 to n do
if n mod i=0 then
MemoDivisoriDiN.Lines.Add(IntToStr(i));
end;
Un ciclo for sulla variabile i elenca tutti i numeri interi da 1 ad n ed aggiunge alla MemoDivisoriDiN solamente quegli i che sono divisori di n, ovvero quelli per cui n mod i è uguale a 0. N.B. Invece di utilizzare la funzione StrToInt per convertire la stringa EditN.Text in numero, si è utilizzata la funzione StrToIntDef, che ha il vantaggio di non fornire errori se la stringa è vuota o non rappresenta un numero, ma restituisce invece come risultato il numero indicato come secondo argomento della funzione (in questo caso 0). Sfortunatamente non esiste un'analoga funzione StrToFloatDef per i numeri reali!
|
|||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||