![]() | ![]() |
|
|
Questa esercitazione č strutturata in due parti :
Nella prima parte č presentato il flowchart della funzione di Ackermann con la relativa codifica in Pascal, in maniera da poter calcolare la detta funzione in maniera iterativa ;
Nella seconda parte č presentata la codifica in Pascal di un programma che calcoli ancora la funzione di Ackermann, ma, questa volta, in maniera ricorsiva .
E' da notare che all'inizio di entrambi i codici č stato posto un controllo sui valori di ingresso ; questa operazione č resa necessaria dall'estrema ricorsivitā della funzione di Ackermann a causa della quale, valori troppo alti potrebbero richiedere al calcol 646g64g atore tempi di esecuzione troppo lunghi .
Flowchart della funzione di Ackermann
Programma Ackermann iterativo (V[DCJ1]
Program Ackerman;
uses crt ;
type vettore = array [1..1000] of integer ;
var x, y, i, z : integer ;
var v : vettore ;
begin
clrscr ;
writeln ( 'Per quali valori si vuole calcolare la funzione di Ackerman : ' ) ;
read ( x, y ) ;
if ( ( x > 3) or ( y > 3) or ( x + y >= 4 ) )
then writeln ( 'Questi valori potrebbero richiedere tempi di calcolo troppo lunghi ') ;
else begin
v [ 1 ] := x ;
v [ 2 ] := y ;
v [ 3 ] := 0 ;
i :=2 ;
while i < > 1 do begin
if v [ i-1 ] =0 then begin
v [ i-1 ] := v[ i ] +1 ;
i := i-1 ;
end
else begin
if v[ i ] =0 then begin
v [ i-1 ] := v[ i-1 ] -1 ;
v [ i ] :=1;
end
else begin
v [ i+1 ] := v [ i ]-1 ;
v [ i ] := v[ i-1 ] ;
v [ i-1 ] := v [ i-1 ]-1 ;
i := i+1 ;
end ;
end ;
z := v [ 1 ] ;
writeln ( z ) ;
readln ;
end .
Esempi pratici
Per quali valori si vuole calcolare la funzione di Ackermann :
Input
Output
Per quali valori si vuole calcolare la funzione di Ackermann :
Input
Output
Per quali valori si vuole calcolare la funzione di Ackermann :
Input
Output
Per quali valori si vuole calcolare la funzione di Ackermann :
Input
Output
Per quali valori si vuole calcolare la funzione di Ackermann :
Input
Output
Per quali valori si vuole calcolare la funzione di Ackermann :
Input
Output
Per quali valori si vuole calcolare la funzione di Ackermann :
Input
Output
Per quali valori si vuole calcolare la funzione di Ackermann :
Input
Output : Questi valori potrebbero richiedere tempi di calcolo troppo lunghi
Per quali valori si vuole calcolare la funzione di Ackermann :
Input
Output
Per quali valori si vuole calcolare la funzione di Ackermann :
Input
Output
Per quali valori si vuole calcolare la funzione di Ackermann :
Input
Output : Questi valori potrebbero richiedere tempi di calcolo troppo lunghi
Per quali valori si vuole calcolare la funzione di Ackermann :
Input
Output
Programma Ackermann ricorsivo ( V bis )
program Ack_ric ;
uses crt ;
var x, y, z : integer ;
function Ack ( x, y : integer ) :integer ;
begin
if x = 0 then Ack := y +1
else if y =0 then Ack := Ack ( n-1, 1 )
else Ack := Ack ( n-1, Ack ( n, m-1 ) ) ;
end ;
begin
clrscr ;
writeln ( 'Per quali valori si vuole calcolare la funzione di Ackermann : ' ) ;
read ( x, y ) ;
if ( ( x > 3 ) or ( y > 3 ) or ( x + y >= 4 ) )
then writeln ( 'Questi valori potrebbero richiedere tempi di calcolo troppo lunghi ')
else z := Ack ( x, y ) ;
writeln ( z ) ;
readln ;
end.
Esempi pratici
Per quali valori si vuole calcolare la funzione di Ackermann :
Input
Output
Per quali valori si vuole calcolare la funzione di Ackermann :
Input
Output
Per quali valori si vuole calcolare la funzione di Ackermann :
Input
Output
Per quali valori si vuole calcolare la funzione di Ackermann :
Input
Output
Per quali valori si vuole calcolare la funzione di Ackermann :
Input
Output
Per quali valori si vuole calcolare la funzione di Ackermann :
Input
Output
Per quali valori si vuole calcolare la funzione di Ackermann :
Input
Output
Per quali valori si vuole calcolare la funzione di Ackermann :
Input
Output : Questi valori potrebbero richiedere tempi di calcolo troppo lunghi
Per quali valori si vuole calcolare la funzione di Ackermann :
Input
Output
Per quali valori si vuole calcolare la funzione di Ackermann :
Input
Output
Per quali valori si vuole calcolare la funzione di Ackermann :
Input
Output : Questi valori potrebbero richiedere tempi di calcolo troppo lunghi
Per quali valori si vuole calcolare la funzione di Ackermann :
Input
Output
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 2025