1 Subproceso res <- Invertir(Numero)
2 Definir res, A,
B Como Entero;
3 Definir Multi como entero;
4 si Numero < 10 entonces
5 res <- Numero;
6 Sino
7 A <- (Numero % 10);
8 B <- Numero/10;
9 Multi <- ln(Numero) /ln(10);
10 Escribir "A " , A , " B " , B , " Ceros" , Multi;
11 res <- (A * 10^Multi ) + Invertir(B
);
12 FinSi
13 FinSubProceso
14 Proceso InvertirUnNumeroRecursivo
15 //Programar un
algoritmo recursivo que permita
16 //invertir un
número.
17 / /Ejemplo:
18 //Entrada: 123
Salida: 321
19 Definir Numero Como Entero;
20 Numero <- 1234567;
21 Escribir Numero ," - " , invertir(Numero);
22 FinProceso
23 //
invertir(123)
24 // 3 00 +
invertir (12)
25 // 300 + 2 0 +
Invertir(1)
26 // 300 + 20 + 1
Torres de hanoi.
1 SubProceso InicioTorres(LasTorres
, Altura)
2 Definir I, J como entero;
3 para I <- 2 hasta 3 hacer
4 para J <- 1 hasta Altura hacer
5 LasTorres[I,
J] <- 0;
6 FinPara
7 FinPara
8 para J <- 1 hasta Altura hacer
9 LasTorres[1, J] <- ( Altura - J)
+ 1
;
10 FinPara
11 FinSubProceso
12
13 SubProceso VerTorres(LasTorres,
Altura)
14 Definir I, J como entero;
15 para J <- Altura hasta 1 Con Paso -1 hacer
16 para I <- 1 hasta 3 hacer
17 Escribir LasTorres[I,
J] ," " Sin Saltar ;
18 FinPara
19 Escribir "";
20 FinPara
21 Escribir "------------------------------";
22 FinSubProceso
23
24 SubProceso Pasar(LasTorres,origen,
destino ,Altura)
25 Definir aux, io,
id Como Entero;
26 io <- Altura ; //bucar el
ultimo cero
27 mientras io > 1 & LasTorres[origen,
io ] = 0
28 io <- io - 1;
29 FinMientras
30 id <- Altura + 1;
31 mientras id > 1 & LasTorres[destino,
id - 1] = 0
32 id <- id - 1;
33 FinMientras
34 Escribir "pasar de
origen ", origen, " destino ", destino;
35 LasTorres[destino,
id ] <- LasTorres[origen, io];
36 LasTorres[origen,
io]<-0;
37 VerTorres(LasTorres,
Altura);
38 FinSubProceso
39
40 SubProceso Hanoi(Alt,
LasTorres,origen, auxiliar, destino, Altura)
41 Si Alt = 1 entonces
42 //el disco 1 de
pila origen a la pila destino
43 //(insertarlo
arriba de la pila destino)
44 Pasar(LasTorres,origen,
destino ,Altura);
45 Sino
46 //mover todas
las fichas menos la más grande (n)
47 //a la varilla
auxiliar
48 hanoi(Alt -
1, LasTorres, origen,
destino, auxiliar , altura);
49 //mover la
ficha grande hasta la varilla final
50 Pasar(LasTorres,origen,
destino ,Altura);
51 //mover todas
las fichas restantes,
52 //0...n-1,
encima de la ficha grande (n)
53 hanoi(Alt -
1
,
LasTorres,
auxiliar, origen, destino, altura);
54 FinSi
55 FinSubProceso
56
57
58 Proceso LasTorresDeHanoi
59 Definir Torres , Altura,
ori, aux, des como entero;
60 Escribir "Dime la
altura";
61 Leer Altura;
62 Dimension Torres[3, Altura];
63 InicioTorres(Torres,
Altura);
64 VerTorres(Torres,
Altura);
65 ori<-1;
66 aux<-2;
67 des<-3;
68 Hanoi(Altura,
Torres ,ori, aux, des, Altura);
69 VerTorres(Torres,
Altura);
70 FinProceso