Davencode

Untitled

Jul 6th, 2021 (edited)
29
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.30 KB | None | 0 0
  1. Algo_IT(A,i,j,x)
  2. STI=STJ=STY=STRET=STX=LAST=NIL
  3. CI=I; CJ=J;
  4. while(CJ-CI >= 0 || STJ != NIL)do
  5. if(CJ-CI>=0)then
  6. if(CJ-CI>=1)then
  7. y=RAND()%2
  8. if(x=1)then
  9. STI=STJ=STX=STY=PUSH()
  10. CI=(CI+CJ)+1/2
  11. X=Y
  12. else
  13. STI=STJ=STX=STY=PUSH()
  14. CJ=(CI+CJ)/2
  15. X=Y
  16. else
  17. RET=A[CI]
  18. +USCITA SOLITA LAST=CJ ; CJ = CI+1
  19. else
  20. TOP(STX,STY,STJ,STI)
  21. if(x=1)then //distinguo primo cerchio di chiamate dal secondo
  22. ret=val //RITORNO DA PRIMA CHIAMATA DEL CERCHIO E PROSEGUO
  23. if(last!=ci)then
  24. if(ret%2=0)then
  25. CJ=(CI+CJ)/2
  26. X=1-Y //PREPARO SECONDA CHIAMATA DEL PRIMO CERCHIO
  27. else
  28. + USCITA SOLITA con POP(tutto) //Perché potrei non entrare in questo if
  29. else //DA QUI STO SIMULANDO CHE NON STO NELLA PRIMA CHIAMATA MA NELLA SECONDA
  30. if(ret%2=0)then
  31. ret=val
  32. + USCITA SOLITA
  33. else //ORA STO NEL SECONDO CERCHIO CON QUESTO ELSE
  34. if(last!=ci)then //DISCRIMINO RIGA 8 CON 10
  35. ret=val
  36. STRET=PUSH(STRET,RET)
  37. if(ret%2=1)then
  38. CI=(CI+CJ)/2
  39. X=1-Y
  40. else
  41. + USCITA SOLITA CON POP TUTTO
  42. else //se non provengo da riga 8 allora da 10
  43. if(ret%2=1)then
  44. ret=top(STRET)+val
  45. POP(STRET)
  46. PUSH(STRET,RET) //CAMBIO VALORE DI RET IN UNO NUOVO
  47.  
  48. POP(TUTTO)
  49. + USCITA SOLITA
  50.  
  51.  
  52.  
Add Comment
Please, Sign In to add comment