Pagina iniziale A scuola di Delphi

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

Mcm (minimo comune multiplo)

Questo programma costituisce il secondo esempio di uso del ciclo while do, ed è particolarmente interessante per quanto riguarda l'algoritmo utilizzato per il calcolo del minimo comune multiplo (m.c.m.) di due numeri interi.

Non è sicuramente l'algoritmo più efficiente per il calcolo del m.c.m. (quello basato sull'algoritmo di Euclide per il M.C.D. è molto più rapido), ma è facilmente comprensibile per gli allievi, che risultano più contenti se lo capiscono.

Illustriamolo con un esempio grafico. Consideriamo i due numeri x=6 e y=8 e rappresentiamoli con due bastoncini di lunghezza proporzionata:

6

 

8

Prendiamo due variabili a e b che funzionano da accumulatori, assegniamo ad a, x=6 e a b, y=8. Se a=b il m.c.m. è già stato trovato. Altrimenti vediamo fra a e b chi è il più piccolo (in questo caso a); aggiungiamogli x=6.

6 6

 

8

Se a=b il m.c.m. è già stato trovato. Altrimenti vediamo fra a e b chi è il più piccolo (in questo caso b); aggiungiamogli y=8.

6 6

 

8 8

Continuiamo così. Alla fine, prima o poi, si avrà a=b=m.c.m.=24:

6 6 6 6

 

8 8 8

 

24

A questo punto vediamo il listato:

procedure TFormMcm.BitBtnCercaClick(Sender: TObject);
var
  x, y, a, b: Integer;
begin
  x:=StrToInt(EditX.Text);
  y:=StrToInt(EditY.Text);
  a:=x;
  b:=y;
  while a<>b do
    if a<b then
      a:=a+x
    else
      b:=b+y;
  EditMcm.Text:=IntToStr(a);
end;

 2.06 - Mcm