Da ricorsivo a iterativo

di il
15 risposte

Da ricorsivo a iterativo

algo(T,x,y)
         a=1;
         b=1;
         if(T!=0)then
         val=T-->k
         if x<=val<=y then
         a=algo(T,x,val-1)
         if a !=0 then
         b=algo(T,val+1,y)
         else
          a=0
          ret= a&&b
          return ret
Io l'ho svolto in questo modo:

Algo_IT(T,X,Y)
currX=x
currY=y
stackX=nill
stackY=nill
stackVal=nill 
currT=t
last=nill
a,b;
nextX=nill
nextY=nill
While(curry!=nill||stackT!=nill)di
if(curry!=nill)then
a=1;
b=1;
val= cura-->K
if(x<=val<=y)then
stackX=push(stackX.currX)
stackY=push(stackY.currY)
stackVal=push(stackVal.Val)
nextT=T-->sx
y=val-1
else
currX=top(Stack X)
currY=top(Stack Y)
currVal=top(StackVal)
if(T-->sx!=0 && T--->dx!=0)then
a=ret
if(a!=0)then
stackX=push(stackX.currX)
stackY=push(stackY.currY)
stackVal=push(stackVal.Val)
nextT=T-->ds
y=val-1
else
currX=top(Stack X)
currY=top(Stack Y)
currVal=top(StackVal)
b=ret
ret=a&&b
last=curr
curr=next
return ret
penso che non vada bene

15 Risposte

  • Re: Da ricorsivo a iterativo

    E' ""RICORSIVO"", NON "ricorso"!!!!

    Il codice scritto, QUALUNQUE sia il linguaggio di programmazione, ANCHE uno inventato,

    NON HA SENSO.
  • Re: Da ricorsivo a iterativo

    migliorabile ha scritto:


    E' ""RICORSIVO"", NON "ricorso"!!!!

    Il codice scritto, QUALUNQUE sia il linguaggio di programmazione, ANCHE uno inventato,

    NON HA SENSO.
    Ah si scusa non ho notato che avevo scritto ricorsivo e il cellulare l’ha corretto....non ha senso quello quello ricorsivo?
  • Re: Da ricorsivo a iterativo

    Sara devi specificare il linguaggio di programmazione che stai usando, e poi devi esprimerti bene in italiano: non è questione di essere grammar nazi, ma davvero non si capisce il concetto che vuoi esprimere. Altrimenti come pensi che qualcuno possa aiutarti?
  • Re: Da ricorsivo a iterativo

    Weierstrass ha scritto:


    Sara devi specificare il linguaggio di programmazione che stai usando, e poi devi esprimerti bene in italiano: non è questione di essere grammar nazi, ma davvero non si capisce il concetto che vuoi esprimere. Altrimenti come pensi che qualcuno possa aiutarti?
    Il linguaggio è Visual Basic e devo solo trasformare il programma da ricorsivo a iterativo con stack quindi con operazioni di Push e pop
  • Re: Da ricorsivo a iterativo

    Questo

    if(T!=0)then

    e questo

    if x<=val<=y then

    e

    stackVal=nill

    e

    val= cura-->K

    NON SONO Visual Basic (e poi quale versione??) ... anzi, alcuni sono sbagliati in ogni linguaggio ...

    Secondo me non hai chiare un bel po' di cose ...

    Impossibile rispondere.
  • Re: Da ricorsivo a iterativo

    oregon ha scritto:


    Questo

    if(T!=0)then

    e questo

    if x<=val<=y then

    e

    stackVal=nill

    e

    val= cura-->K

    NON SONO Visual Basic (e poi quale versione??) ... anzi, alcuni sono sbagliati in ogni linguaggio ...

    Secondo me non hai chiare un bel po' di cose ...

    Impossibile rispondere.
    Ma l’algoritmo ricorsivo non l’ho scritto io mi viene dato dalla traccia penso sia Il C
  • Re: Da ricorsivo a iterativo

    Che vuol dire penso sia il C? Traccia universitaria? E non vi insegnano a riconoscere i linguaggi? Il C ha i punti e virgola.
    Non è per caso pseudocodice?
  • Re: Da ricorsivo a iterativo

    Weierstrass ha scritto:


    Che vuol dire penso sia il C? Traccia universitaria? E non vi insegnano a riconoscere i linguaggi? Il C ha i punti e virgola.
    Non è per caso pseudocodice?
    Si
  • Re: Da ricorsivo a iterativo

    Non e' C.
    SUPPONIAMO che sia pseudocodice, VA IDENTATO perche' e Python-like e l'identazione E' PARTE DEL LINGUAGGIO.
    Al posto dell'identazione, C, Java ecc usano le graffe, begin/end,..
    QUI senza identazione NON SI CAPISCE dove finisce un IF o un ciclo...

    MA anche in questo caso, il codice non ha senso:

    a=0; ret=a&&b vale SEMPRE 0

    stackX=push(stackX.currX)
    stackY=push(stackY.currY)
    stackVal=push(stackVal.Val)

    NON il punto, MA LA VIRGOLA!

    stackY=push(stackY, currY)

    E ci sono altri n-mila errori

    Insomma SCRIVI MEGLIO IL CODICE!
  • Re: Da ricorsivo a iterativo

    saraciao ha scritto:


    algo(T,x,y)
             a=1;
             b=1;
             if(T!=0)then
             val=T-->k
             if x<=val<=y then
             a=algo(T,x,val-1)
             if a !=0 then
             b=algo(T,val+1,y)
             else
              a=0
              ret= a&&b
              return ret
    
    Io l'ho svolto in questo modo:
    
    Algo_IT(T,X,Y)
    currX=x;
    currY=y;
    stackX=null;
    stackY=null;
    stackVal=Null;
    currT=T;
    last=null;
    a,b;
    nextX=null;
    nextY=null;
    While(currY!=nill||stackT!=null)do
       if(currY!=null)then
           a=1;
           b=1;
           val= currT-->K
              if(x<=val<=y)then
                  {
                   stackX=push(stackX.,)
                   stackY=push(stackY,currY)
                   stackVal=push(stackVal,Val)
                   nextT=T-->sx
                 y=val-1
           } else{
              currX=top(Stack X)
              currY=top(Stack Y)
              currVal=top(StackVal)
              }
           if(T-->sx!=0 and T--->dx!=0)then
                         a=ret
           if(a!=0)then
           {
               stackX=push(stackX,currX)
               StackY=push(stackY,currY)
              StackVal=push(stackVal,Val)
              nextT=T-->ds
              y=val-1
        } else{
             currX=top(Stack X)
             currY=top(Stack Y)
             currVal=top(StackVal)
             b=ret
             ret=a And b
             }
             lastT=curr
             currT=next
    return ret
    
    penso che non vada bene
    Meglio così?
  • Re: Da ricorsivo a iterativo

    No!
  • Re: Da ricorsivo a iterativo

    Ma poi, a parte quanto detto da migliorabile, davvero "if a!=0 then ... else a=0" in una traccia di esame?

    Povera Italia
  • Re: Da ricorsivo a iterativo

    B=ret

    ???
  • Re: Da ricorsivo a iterativo

    Weierstrass ha scritto:


    Ma poi, a parte quanto detto da migliorabile, davvero "if a!=0 then ... else a=0" in una traccia di esame?

    Povera Italia
    Eh purtroppo non è colpa mia ripeto l’algoritmo ricorsivo e la traccia non l’ho realizzato io
Devi accedere o registrarti per scrivere nel forum
15 risposte