Indice del forum Olimpo Informatico
I Forum di Zeus News
Leggi la newsletter gratuita - Attiva il Menu compatto
 
 FAQFAQ   CercaCerca   Lista utentiLista utenti   GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo   Messaggi privatiMessaggi privati   Log inLog in 

    Newsletter RSS Facebook Twitter Contatti Ricerca
Ricorsione MIPS
Nuovo argomento   Rispondi    Indice del forum -> Programmazione
Precedente :: Successivo  
Autore Messaggio
GIGOLOKO
Mortale pio
Mortale pio


Registrato: 26/09/07 14:50
Messaggi: 27

MessaggioInviato: 17 Feb 2009 23:52    Oggetto: Ricorsione MIPS Rispondi citando

salve raga sono disperato qualcuno potrebbe dirmi le regole base per fare una funzione ricorsiva
ovviamente
sono casi base
e ricorsione
ma come si implementano in assembler mips
ad esempio questa come se fa
function recur(n:integer,z:integer):integer;
var m:integer;
begin
x=resto di n/5
if (x<0)
then recur :=1
else m:=call(z)
recur:=(recur(m)+recur(x))
end;
Sad Sad Sad Sad Sad Sad
Top
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 12:16
Messaggi: 11810
Residenza: Tokelau

MessaggioInviato: 18 Feb 2009 15:08    Oggetto: Re: Ricorsione MIPS Rispondi citando

ricorsione in assembler? usa uno stack per 'appoggiare' i valori quando chiami la funzione e riprendili quando termini...
Top
Profilo Invia messaggio privato HomePage
GIGOLOKO
Mortale pio
Mortale pio


Registrato: 26/09/07 14:50
Messaggi: 27

MessaggioInviato: 18 Feb 2009 15:56    Oggetto: Rispondi citando

certo lo stack va usato ma non basta per far si che la funzione sia ricorsiva
serve un implementazione particolare
nessuno ci riesce?
Top
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 12:16
Messaggi: 11810
Residenza: Tokelau

MessaggioInviato: 18 Feb 2009 17:16    Oggetto: Rispondi citando

GIGOLOKO ha scritto:
serve un implementazione particolare


scusami, non ho capito in cosa dovrebbe essere particolare. Non è più complicato che calcolare il fattoriale di un numero come

n! = n * (n-1)!

no?
Top
Profilo Invia messaggio privato HomePage
GIGOLOKO
Mortale pio
Mortale pio


Registrato: 26/09/07 14:50
Messaggi: 27

MessaggioInviato: 20 Feb 2009 03:15    Oggetto: Rispondi citando

be in quel caso non e molto difficile farla ma in quello che ho postato sopra
e un po piu complicata la cosa fidati ammenoche tu non sappia farla
e ci sono casi ancora piu difficili di quello che non sto a postare
Top
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 12:16
Messaggi: 11810
Residenza: Tokelau

MessaggioInviato: 20 Feb 2009 12:53    Oggetto: Rispondi citando

GIGOLOKO ha scritto:
be in quel caso non e molto difficile farla ma in quello che ho postato sopra
e un po piu complicata la cosa fidati ammenoche tu non sappia farla
e ci sono casi ancora piu difficili di quello che non sto a postare


in ogni caso c'è almeno un errore: se la tua funzione recur() accetta due parametri interi in input per restituirne uno in output allora le chiamate alla funzione recur() stessa che fai qui:
Codice:
recur:=(recur(m)+recur(x))

non ha senso. A meno che non fosse ad esempio
Codice:
recur:=recur(m,x)
Top
Profilo Invia messaggio privato HomePage
GIGOLOKO
Mortale pio
Mortale pio


Registrato: 26/09/07 14:50
Messaggi: 27

MessaggioInviato: 20 Feb 2009 21:36    Oggetto: Rispondi citando

anche per me non hanno senso ne questa ne le altre
ma per quel trimone del prof si
Top
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 12:16
Messaggi: 11810
Residenza: Tokelau

MessaggioInviato: 23 Feb 2009 13:59    Oggetto: Rispondi

GIGOLOKO ha scritto:
anche per me non hanno senso ne questa ne le altre
ma per quel trimone del prof si


credo sia lecito domandargli chiarimenti, no?
Top
Profilo Invia messaggio privato HomePage
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Programmazione Tutti i fusi orari sono GMT + 2 ore
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi