Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INGENIERIA DE SISTEMAS
CICLO : III
SEMESTRE : 2022-1
DOCENTE :
I. TEMA: Recursividad.
II. OBJETIVOS:
III. METODOLOGÍA:
- Solución de los ejercicios propuestos con la guía del docente.
- Realizar un informe de toda la secuencia del laboratorio propuesto.
IV. RECURSOS:
1. Equipo computacional con conexión a internet.
2. Utilizar la guía de instalación de Netbeans 8.2
3. Utilizar la plataforma Blackboard para entregar el laboratorio
4. Utilizar la plataforma de Zoom para la sustentación de laboratorio.
V. DESARROLLO DE ACTIVIDADES:
V.1.Descripción
V.2.Proceso
EJERCICIOS
DESARROLLADOS
EJERCICIO # 01
Programa que lea un número entero entero mayor o igual que cero en base decimal y
equivalente es el mismo.
presentarles:
Solución:
Para escribir el programa nos vamos a basar en la forma clásica de pasar de decimal a
binario, o sea, dividir el número entre 2 y quedarnos con el resto de la división. Esta
cifra, que será un cero o un uno, es el dígito de menos peso (más a la derecha) del
número binario. A continuación, volvemos a dividir el cociente que hemos obtenido
entre 2 y nos quedamos con el resto de la división. Esta cifra será la segunda por la
derecha del número binario. Esta operación se repite hasta que obtengamos un cero
como cociente.
Los que ya sabéis algo de Java podeis pensar que para qué quiero hacer ese programa
System.out.println(Integer.toBinaryString(numero));
se mostrará el número en binario.
que seamos capaces de desarrollar por nosotros mismos el algoritmo que realiza la
Este ejercicio se suele plantear cuando se está comenzando a aprender las estructuras
repetitivas (while, for, do while) y aún no se conocen los arrays por lo que la solución
que se plantea no utiliza arrays y por tanto esta solución aunque es correcta solo es
Programa Java que calcule el cociente de dos números enteros de forma recursiva.
Esta resta se repite mientras se pueda realizar, o sea, mientras el resultado sea mayor
Con un ejemplo lo veremos más claro. Por ejemplo, para dividir 10 entre 3 haríamos:
No se puede seguir restando ya que el último valor obtenido (1) es menor que el
Restamos 10 – 3 Resultado 7
Restamos 7 – 3 Resultado: 4
Restamos 4 -3 Resultado: 1
SOLUCION:
package ejercicio_propuesto_nº1;
import javax.swing.JOptionPane;
n1 = Integer.parseInt(N1);
do {
//System.out.print("Introduzca divisor (>0): ");
N2 = JOptionPane.showInputDialog(null, "INTRODUZCA DIVISOR (>0): ", "DIVISOR", 1);
n2 = Integer.parseInt(N2);
//n2 = sc.nextInt();
} while (n1 <= 0);
System.out.printf("%d%%%d = %d %n", n1, n2, restoRecursivo(n1, n2));
}
Caso Base:
Si n >=10 tiene las cifras de un número con una cifra menos, más 1.
SOLUCION:
package ejercicio_propuesto_nº2;
import javax.swing.JOptionPane;
String N1;
int num;
do {
N1 = JOptionPane.showInputDialog(null, "Introduce un numero entero
>0 :", "N1", 1);
num = Integer.parseInt(N1);
//num = sc.nextInt();
} while (num <= 0);
System.out.println("Número de cifras: " + numeroCifras(num));
}
public static int numeroCifras(int n) {
if (n < 10) //caso base
{
return 1;
} else {
return 1 + numeroCifras(n / 10);
}
}
}
3. Suma Recursiva de números desde 1 hasta N en Java
Si n > 1
la suma es n + (la suma de los anteriores números hasta 1)
Por ejemplo, si n = 5, la suma es 5 más la suma desde 1 hasta 4. A su vez la
suma si n = 4 es 4 + la suma desde 1 hasta 3 y así sucesivamente hasta llegar al
caso base como se muestra en la imagen
SOLUCION:
package ejercicio_propuesto_nº3;
import javax.swing.JOptionPane;
public class Ejercicio_propuesto_Nº3 {
String N1;
int num;
do {
num = Integer.parseInt(N1);
if (n == 1) //caso base
return 1;
} else {
}
VI. RESULTADOS
Inicio (M) Proceso (R) Logro previsto (R+) Logro satisfactorio (B)