|
|
Esercitazione sesta
Questa esercitazione è presentata in due parti
Nella prima parte dell'esercitazione è presentata la codifica in Java di un programma che calcoli in maniera iterativa prima e ricorsiva poi il MCD tra due interi sfruttando le seguenti proprietà :
If a >= b then a := a mod b ; if a > b then b := b mod a else exchange ( a, b ) ;
Repeat while a > b do a := a - b ; while b > a do b := b - a ; until a = b
Nella seconda parte dell'esercitazione è presentato il flowchart di un programma che calcola in maniera iterativa il MCD tra due interi ; di tale flowchart è presentata la codifica in maniera ricorsiva in Pascal.
Programma MCD Java ( VI )
import java.io .* ;
public class Mcd1
}
return a ; // il risultato finale è il valore di a
public static int metodo1ric ( int a, int b )
else return metodo1ric ( b, a ) ; // chiamata ricorsiva se b > a
} }
public static int metodo2 (int a, int b )
return a ; } // il risultato finale è a
public static int metodo2ric ( int a, int b ) }
public static void main ( String argv [ ] ) throws IOException }
Esempi pratici
Inserire il primo valore :
Input :
Inserire il secondo valore :
Input :
Con il primo metodo il MCD è :
Output :
Con il secondo metodo il MCD è :
Output :
Con il primo metodo ricorsivo il MCD è :
Output :
Con il secondo metodo ricorsivo il MCD è :
Output :
Inserire il primo valore :
Input :
Inserire il secondo valore :
Input :
Con il primo metodo il MCD è :
Output :
Con il secondo metodo il MCD è :
Output :
Con il primo metodo ricorsivo il MCD è :
Output :
Con il secondo metodo ricorsivo il MCD è :
Output :
Inserire il primo valore :
Input :
Inserire il secondo valore :
Input :
Con il primo metodo il MCD è :
Output :
Con il secondo metodo il MCD è :
Output :
Con il primo metodo ricorsivo il MCD è :
Output :
Con il secondo metodo ricorsivo il MCD è :
Output :
Flowchart della funzione MCD
START
X num Y den rem
num x
den y
rem
Num mod den rem Den num Rem den
program MCD_ricorsivo ;
var x, y, z :integer;
procedure mcd (var x, y :integer ) ;
begin if y <>0 then begin
z := x mod y ;
x := y ;
y := z ;
mcd ( x, y ) ;
end ;
end ;
begin
writeln ( ' Inserire x, y ' ) ;
read ( x, y ) ;
z := 0 ;
mcd( x, y );
write(' M.C.D. = ',x) ;
readln ;
end .
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 2024