Ejercicios Sub Procesos recursivos con PSeInt:
Cálculo del producto mediante sumas utilizando la recursividad.
1 Subproceso res <- Producto(NumA,
NumB)
2 Definir res como real;
3 Si NumB = 0 entonces
4 res <- 0;
5 Sino
6 si NumB > 0 Entonces
7 res <- NumA + Producto(NumA,
NumB - 1);
8 Sino
9 res <- -NumA + Producto(NumA,
NumB + 1);
10 FinSi
11 FinSi
12 FinSubProceso
13 //5 * 3
14 //5 + ( 5 * 2)
15 //5 + 5 + (
5*1)
16 //5 + 5 + 5
17
18 Proceso ProductoSumando
19 //Calculo del
producto mediante suma
20 Definir A, B como real;
21 Escribir "Dime los
numeros a multiplicar";
22 Leer A, B;
23 Escribir "El producto
de ",A, " * ", B, " es ", Producto(A,
B);
24 FinProceso
Programa que permita calcular el elemento N de la serie de Fibonacci:
- Valores de la serie:
- 0,1, 1 ,2 ,3 ,5 ,8 ,13 ,21 ,34 ,…
- Fib(n) = Fib(n-1) + Fib(n-2). El elemento n es la suma de los dos anteriores
- Fib(0) = 0
- Fib(1) = 1
1 subproceso res <- Fibonacci(Num)
2 Definir res Como Entero;
3 //Fib(n) =
Fib(n-1) + Fib(n-2)
4 //Fib(0) = 0
5 //Fib(1) = 1
6 Segun Num
7 0: Res<-0;
8 1: Res<-1;
9 De Otro Modo:
10 Res<- Fibonacci(Num-1) + Fibonacci(Num-2);
11 FinSegun
12 FinSubProceso
13
14 Proceso FibonacciRec
15 Definir Numero Como Entero;
16 Escribir "Dime el
número para Fibonacci";
17 Leer Numero;
18 Escribir "Fib de ", Numero " es ", Fibonacci(Numero);
19 FinProceso
Programar un algoritmo recursivo que permita invertir un número.
- Ejemplo:
- Entrada: 123
- Salida: 321
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
No hay comentarios:
Publicar un comentario