LA TORRE DE HANOI Bienvenido al mundo paradigmático..!!
Un día sin sonrisas es un día perdido..!! PARADIGMA
Hay una fuerza motríz más poderosa
que el vapor, la electricidad y la Energía atómica ..
La voluntad..!!
Albert Einstein

QUE ES.? Había una vez...
Clases Algoritmos
Característica En Delphi
Diseño | Volver | | Arbol | | Archivo | | Agenda | Base de Datos | | Básico |
Comunicación | Editor | | Editor2 | | Fibonacci | | Hanoi | | Listas | | Matriz |
Planificación | Modelo 1 | | Modelo | | Polimorfismo | Punteros | | Sobrecarga | | Vectores |

Un día sin sonrisas es un día perdido..!! PARADIGMA
La ignorancia afirma o niega
La ciencia duda..!!
Voltaire

Colega virtual, en esta page podrás observar una de las aplicaciones más tradicionales de la función recursiva, que te permite ahorrar muchas lineas de código repetitivo para lograr la misma acción.

En todos los lenguajes la recursividad permite a autoconvocarse a una función, todas las veces que sea necesario, hasta generar resultado esperado.

PARADIGMA VITAL
La enema no cura...
..pero entretiene ...!!!

Volver al principio


Había una vez.. .. en el lejano oriente.. Volver al principio Torre de Hanoi
PARADIGMA VITAL
La enema no cura...
..pero entretiene ...!!!

donde reina el dios Brama ...

(BENARES)
PARADIGMA VITAL
La enema no cura...
..pero entretiene ...!!!

Volver al principio


FUNCION RECURSIVA Será cerveza..??!!! Volver al principio
PARADIGMA VITAL
La enema no cura...
..pero entretiene ...!!!

ALGORITMO

El algoritmo que resuelve el problema de las torres de Hanoi es:

      
             Procedimiento Hanoi(n, i, j)
                     Si n=1 entonces
                        mover disco de i a j  
                     Si no entonces
                        Hanoi(n-1,i,6-i-j)
                        mover disco de i a j           
                        Hanoi(n-1,6-i-j,j)
                     Fin Si
             Fin Hanoi
        //-------------------------------------------------
             //-PROCEDIMIENTO PARA CARGAR LA GRILLA
             
             void TForm1::MoverDisco(int desde,int hasta)
               {
                 grilla->Cells[0][0]="Desde el poste";
                 grilla->Cells[1][0]="Hasta el poste";
                 i++;
                 grilla->Cells[0][i]=desde;
                 grilla->Cells[1][i]=hasta;
               }             

              //--------------------------------------------------
              //-PROCEDIMIENTO PARA LA SOLUCION DE LAS TORRES
              
                void TForm1::MoverTorre(int disco,int uno,int dos,int tres)
                {
                 if (disco==1)
                  MoverDisco(uno,tres);
                 else
                  {
                   MoverTorre(disco-1,uno,tres,dos);
                   MoverDisco(uno,tres);
                   MoverTorre(disco-1,dos,uno,tres);
                  }
                }

             //-------------------------------------------------
             //--PROCEDIMIENTO PARA VER LA SOLUCION EN LA GRILLA
             
              void __fastcall TForm1::botonsolucionClick(TObject *Sender)
              {
               contegrilla->Visible=true;  
               MoverTorre(boxdiscos->Text.ToInt(),1,2,3);     
              }
             //-------------------------------------------------

PARADIGMA VITAL
La enema no cura...
..pero entretiene ...!!!

Volver al principio


DELPHI RECURSIVA Volver al principio Chupa.. Chupa..!!!
PARADIGMA VITAL
La enema no cura...
..pero entretiene ...!!!

ALGORITMOS en DELPHI

  
         //------------------------------------------------
           procedure Tparcialhanoi.moverdisco(desde,hasta:integer);
              begin
               grilla.Cells[0,0]:='Desde el Poste';
               grilla.Cells[1,0]:='Hasta el Poste';
               i:=i+1;
               grilla.Cells[0,i]:=IntToStr(desde);
               grilla.Cells[1,i]:=IntToStr(hasta);
              end;

           //----------------------------------------------------
            procedure Tparcialhanoi.movertorre(disco,uno,dos,tres:integer);
             begin
              if(disco=1)then
               moverdisco(uno,tres)
              else
               begin
                 movertorre(disco-1,uno,tres,dos);
                 moverdisco(uno,tres);
                 movertorre(disco-1,dos,uno,tres);
               end;
             end;

            //------------------------------------------------
            procedure Tparcialhanoi.botonsolucionClick(Sender: TObject);
             begin
              contegrilla.Visible:=true;
              movertorre(StrToInt(boxdiscos.Text),1,2,3);
             end;
           //---------------------------------------------------
                             

PARADIGMA DE VIDA
Vales tanto como tu última obra...


Volver al principio

Ahora que llegaste hasta aquí ya podrás comprender que..

Te amo..!! ..la mujer es una auténtica paradigma..!!

Te amo..!! .. el profeta también..!!

Te amo..!! ..Ahh.!! y que el cura también..!!

Escríbeme a: tcp86@latinmail.com
..Gracias JOSE GASTON PUERTAS..!!

José Gastón dice:

Las Torres de Hanoi son un problema matemático que ha divertido a muchos por mucho tiempo. Más que un problema, es realmente un juego.

Este juego que como dice la leyenda llevaría muchos años resolverlo, pero a través de la computación se puede resolver fácilmente. Se resuelve a través de una solución algoritmica que es recursiva.

Por ejemplo yo lo realicé pero en distintos lenguajes 'BUILDER C++' y 'DELPHI' que son muy buenos y que son del mismo padre 'BORLAND' pero con varias diferencias entre los dos que no son aceptables para mi, es el caso de la sintaxis de Builder que con su sensibilidad al tipo de letra tengo que estar alerta de una letra mayúscula o minúscula, y escribir las flechitas me cansa, pero esto es sólo una opinión en contra que BORLAND debería tener en cuenta y fuera de esto te digo que el lenguaje es muy bueno.

Así que si quieres convertirte en un monje y resolver la solución de las torres te recomiendo estos dos lenguajes.

06/12/02

Volver al principio