LABORATORIO N° 04
Requiere No
Excelente Bueno Regular Puntaje
Criterio de Evaluación mejora acept.
(4pts) (3pts) (2pts) Logrado
(1pts) (0pts)
Reconoce la importancia del uso de sentencias
de control de flujo
Reconoce el uso de contadores y
acumuladores en sentencias de flujo
Crea programas que usen sentencias de
control de flujo
Realiza observaciones y conclusiones que
aporten un opinión crítica y técnica
Es puntual y redacta el informe
adecuadamente sin copias de otros autores
Nro. DD-106
Laboratorio de Fundamentos de Programación Página 1 de 11
I.- OBJETIVOS:
Conocer las instrucciones de bucles o repetitivas en Java (while y do-while).
Automatizar ejecución de sentencias aplicando bucles en los programas Java.
II.- SEGURIDAD:
Advertencia:
En este laboratorio está prohibida la manipulación del
hardware, conexiones eléctricas o de red; así como la ingestión
de alimentos o bebidas.
Importante. Dentro de la carpeta D:\Java, verifique que tiene una carpeta identificada con su nombre y
apellido. En esta carpeta debe crear los proyectos de los laboratorios. Si no existe la carpeta, créela.
V.- RECURSOS:
En este laboratorio cada alumno trabajará con un equipo con Windows.
Este equipo cuenta con JDK instalado, así como alguno de los IDE (Entorno de Desarrollo Integrado)
como Eclipse o NetBeans.
VII.- PROCEDIMIENTO:
1. Cree el proyecto 04_Estructuras_Repetitivas en su carpeta de trabajo.
Antes de ejecutar la clase, asigne como parámetro un número entero. Vea el resultado de la ejecución. ¿Qué
hace la clase ingresada?
Numero ingresado:5
La clase ingresada nos determina el número de veces que nos repite en diferentes números, como vemos,
aplicamos el num.5 y nos repite 5 datos con diferentes valores
Nro. DD-106
Laboratorio de Fundamentos de Programación Página 2 de 11
3. Escriba la clase Ejercicio_02 que haga exactamente lo mismo que la clase Ejercicio_01, pero usando
la instrucción do… while en lugar de while:
public class Ejercicio_02 {
public static void main(String[] args) {
int n = 5;
int cont = 1;
do{
cont = cont + 1;
}while(cont <= n);
System.out.println(cont*2);
}
}
Antes de ejecutar la clase, asigne como parámetro un valor entero pequeño y vea el resultado de la
ejecución. ¿Qué hace la clase ingresada? ¿Qué uso tiene la variable suma?
Numero:2
suma = suma + cont;
cont = cont + 1;
La clase ingresada nos indica el número que es 2 se le va a sumar más 1 para que así el resultado nos de 3
La variable suma nos indica que el número ingresado se debe de sumar más la condición propuesta en los
datos
5. Escriba la clase Ejercicio_04 que calcule la factorial de un número ingresado por argumento. La función
factorial está definida por:
n !=1∗2∗3 …∗n
6. Desarrolle la clase Producto que permita determinar el producto de dos números enteros usando sumas
sucesivas (no puede usar el operador de multiplicación *). Ejemplo: 5 por 3 = 15
5 + 5 + 5 = 15
El numero 5 se suma a si mismo 3 veces
int numero = 5;
int veces = 3;
int cont = 1;
int a=0;
while (cont <= veces){
a = a + numero;
cont = cont + 1;
}
System.out.println(a);
}
}
7. Desarrolle la clase Division_Entera que permita determinar el resultado de la división entera de dos
números enteros usando restas sucesivas (no puede usar el operador de división /). Ejemplo: 9 entre 3 = 3
9 – 3 =6
6 – 3 = 3
3 – 3 = 0
La cantidad de restas determina el resultado de la división
int numero = 3;
int veces = 3;
int cont = 1;
int a=9;
while (cont <= veces){
a = a - numero;
cont = cont + 1;
}
System.out.println(a);
}
}
8. Desarrolle la clase Residuo que permita calcular el residuo de la división entera de dos números enteros
usando restas sucesivas (no puede usar el operador de división /). Ejemplo: 7 entre 2 = 1
Nro. DD-106
Laboratorio de Fundamentos de Programación Página 4 de 11
7 – 2 = 5
5 – 2 = 3
3 – 2 = 1
Se resta el numero 7 con el numero 2 hasta que ya no se pueda, el resultado
sobrante es el residuo
int coci = 0;
int resi = dividend
Scanner sc;
sc=new Scanner(System.in);
int n;
n=sc.nextInt();
10. Desarrolle la clase Raiz_Cuadrada que permita calcular la raíz cuadrada de un numero empleando restas
sucesivas:
√ 49 = ?
Nro. DD-106
Laboratorio de Fundamentos de Programación Página 5 de 11
1. 49 – 1 = 48
2. 48 – 3 = 45
3. 45 – 5 = 40
4. 40 – 7 = 33
5. 33 – 9 = 24
6. 24 – 11 = 13
7. 13 – 13 = 0
La raíz cuadrada equivale al numero de restas sucesivas realizadas hasta encontrar el valor “0” en este
caso son 7 restas sucesivas y 7 es la respuesta de la raíz cuadrada de 49
int radical = n;
int raiz cuadrada = 0;
int resta = 1;
int x = 3;
int y =10;
int z = 30;
int r = y+1;
int t = 0;
while(r<z)
{
int aux = 0;
while(aux <= r)
{
if((x*aux)==r)
{
t= t+1;
}
aux = aux +1;
}
r = r+1;
}
System.out.println(t);
Nro. DD-106
Laboratorio de Fundamentos de Programación Página 6 de 11
}
}
12. Desarrolle la clase Primo que indique en la pantalla si un número entero, pasado como argumento al
programa, es un número primo o no. (Nota: Un número primo es aquel que solo es divisible entre dicho
número y la unidad)
Package Primos;
int numero = 5;
int recorredor = 1;
int total= 0;
int multiplicador=1;
while(recorredor<=numero){
while(multiplicador<=numero)
{
if((recorredor*multiplicador)==numero)
{
total = total + 1;
}
multiplicador++;
}
recorredor++;
multiplicador = 1;
}
if(total==2)
{System.out.println("numero primo");}
else{
System.out.println("no es primo");}
Nro. DD-106
Laboratorio de Fundamentos de Programación Página 7 de 11
}
}
13. Desarrolle la clase Minimo_Comun_Multiplo que permita calcular el mínimo común múltiplo de tres
valores numéricos enteros pasados como argumentos al programa:
Package Minimo comun multiplo;
int x = 12;
int y = 30;
int minimo = 1;
while(x!=1 || y!=1)
{
minimo = minimo*2;
if(x%2==0&&y%2==0){x=x/2; y=y/2;}
else if(x%2==0){x=x/2;}else{y=y/2;}
}
else if(x%3==0 || y%3==0)
{
minimo = minimo*3;
if(x%3==0&&y%3==0){x=x/3; y=y/3;}
else if(x%3==0){x=x/3;}else{y=y/3;}
}
else if(x%5==0 || y%5==0)
{
Nro. DD-106
Laboratorio de Fundamentos de Programación Página 8 de 11
minimo = minimo*5;
if(x%5==0&&y%5==0){x=x/5; y=y/5;}
else if(x%5==0){x=x/5;}else{y=y/5;}
}
else if(x%7==0 || y%7==0)
{
minimo = minimo*7;
if(x%7==0&&y%7==0){x=x/7; y=y/7;}
if(x%7==0){x=x/7;}else{y=y/7;}
}
System.out.println(minimo);
}
}
14. Desarrolle la clase Maximo_Comun_Divisor que permita calcular el máximo común divisor de tres valores
numéricos enteros pasados como argumentos al programa:
package Maximo_comun_divisor;
int x = 16;
int y = 14;
int z = 18;
int multiplicador = 1;
int maximo = 15;
while(multiplicador<=x)
//int avance = 1;
for(int i=1;i<=x;i++)
{
if(multiplicador*1==x)
{verdad1=true;}
}
for(int a=1;a<=y;a++)
{
if(multiplicador*a==y)
{verdad2=true;}
}
for(int b=1;b<=z;b++)
{
if(multiplicador*b==2)
{verdad3=true;}
}
Nro. DD-106
Laboratorio de Fundamentos de Programación Página 9 de 11