Home

A scuola di Delphi

www.gpeano.org 

Introduzione · Capitolo 1 · Capitolo 2 · Capitolo 3 · Capitolo 4 · Capitolo 5 · Download 

Sommario
Indovina numero
Sistema lineare
Figura
Distr. automatico
Potenze
Mcm
Scomp. in fattori
Numeri primi
 

Capitolo 2

Potenze

L'applicazione Potenze, che apparentemente non presenta alcuna particolarità degna di nota, ci permette di introdurre uno dei più importanti costrutti Pascal, il ciclo while do.

Osserviamo la form. Il numero inserito nel primo campo edit costituisce la base delle potenze che saranno calcolate.
Premendo Calcola le potenze della base vengono elencate nella Memo a destra, fino al massimo indicato nel secondo campo Edit.
Quindi il calcolo e l'accodamento delle potenze della base nel campo Memo deve continuare "per tutto il tempo in cui" (mentre=while) rimane vera la condizione "la potenza è minore del massimo".

La sintassi del while do è:

while condizione do
  istruzione;

se vi è un'unica istruzione, oppure:

while condizione do
begin
  istruzione;
  istruzione;
  ...
  istruzione;
end;

se vi sono più istruzioni da eseguire.

L'istruzione dopo il do o il blocco begin end, vengono eseguiti mentre la condizione è vera; non appena diventa falsa il flusso del programma riprende con le istruzioni successive.

N.B. Se la condizione risulta falsa fin dall'inizio, l'istruzione dopo il do o il blocco begin end, non saranno eseguiti nemmeno una volta. 

Vediamo ora il listato associato al Bottone calcola.

procedure TFormPotenze.BitBtnCalcolaClick(Sender: TObject);
var
  n, max, pot: Extended;
begin
  n:=StrToFloat(EditN.Text);
  max:=StrToFloat(EditMax.Text);
  MemoPotenze.Lines.Clear;
  if n>1 then
  begin
    pot:=1;
    while pot<max do
    begin
      MemoPotenze.Lines.Add(FloatToStr(pot));
      pot:=pot*n;
    end;
  end
  else
    ShowMessage('Inserisci un numero maggiore di 1');
end;

Come si può vedere è stata inserita una condizione di controllo su n che deve essere maggiore di 1, per evitare di produrre un cliclo while do infinito.
Se non viene inserito un numero magiore di 1, viene visualizzato tramite l'istruzione ShowMessage una finestra con il messaggio "Inserisci un numero maggiore di 1", che l'utente può chiudere cliccando sul tasto OK.

 2.05 - Potenze