You are on page 1of 11

FUNDAMENTOS DE PROGRAMACIÓN

LABORATORIO N° 04

SENTENCIAS DE CONTROL DE FLUJO

CODIGO DEL CURSO: II1101

Alumno(s): Bruno David Alejo Apaza Nota

Grupo: “A” Ciclo: 1

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.

III.- FUNDAMENTO TEÓRICO:

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.

 Los procedimientos de creación de proyectos se encuentran detallados en la guía de laboratorio de la


segunda semana.

IV.- NORMAS EMPLEADAS:


No aplica

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.

VI.- METODOLOGÍA PARA EL DESARROLLO DE LA TAREA:


 El desarrollo del laboratorio es en grupo de dos personas. No se permite consultar con otros grupos.

VII.- PROCEDIMIENTO:
1. Cree el proyecto 04_Estructuras_Repetitivas en su carpeta de trabajo.

DESARROLLE LOS SIGUIENTES PROGRAMAS

2. Cree la clase Ejercicio_01 con el siguiente código:


public class Ejercicio_01 {
public static void main(String[] args) {
int n = Integer.parseInt(args[0]);
int cont = 1;
while (cont <= n) {
System.out.println(cont*2);
cont = cont + 1;
}
}
}

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

La variable cont tiene la función “contador”. ¿Qué es un contador?


Un contador es la cantidad que va a sumar a los resultados o datos que aplicamos y en este caso se le
aplica 5 y el contador los hace repetir, pero de 1 en 1

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);
}
}

4. Ingrese, en su proyecto, la siguiente clase:


public class Ejercicio_03 {
public static void main(String[] args) {
int n = Integer.parseInt(args[0]);
int suma = 0;
int cont = 1;
while (cont <= n) {
suma = suma + cont;
cont = cont + 1;
}
System.out.println("La sumatoria de 1 a " + n + " es " + suma);
}
}

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

public class Ejercicio_04 {


public static void main(String[] args) {

int numero = Integer.parseInt(args[0]);


int cont = 1;
int a=1;
Nro. DD-106
Laboratorio de Fundamentos de Programación Página 3 de 11

while (cont <= numero){


a = a * cont;
cont = cont + 1;
}
System.out.println(a);
}
}

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

public class Producto {


public static void main(String[] args) {
int factor1 = Integer.parseInt(args[0]);
int factor2 = Integer.parseInt(args[1]);

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

public class Division_Entera {


public static void main(String[] args) {

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

public class Residuo {


public static void main(String[] args) {

int dividento = integer.parseInt{args[0]};


int divisor = integer.parseInt{args[1]};

int coci = 0;
int resi = dividend

while (resi > divisor) {


coci = coci + 1;
resi = resi – divisor;
}
System.out.println(“ el residuo de “ + dividendo + “ / “ + divisor + “ es
de “ + residuo);
}
}

9. Desarrolle la clase Tabla_de_Multiplicar que permita mostrar la tabla de multiplicar de un número


entero (asignado como argumento). Por ejemplo si el número es 5, la salida será:
5 * 1 = 5
5 * 2 = 10
5 * 3 = 15
...
5 * 12 = 60

public class Tabla_de_Multiplicar {


public static void main(String[] args) {
int n = Integer.parseInt(args[0]);

Scanner sc;

sc=new Scanner(System.in);
int n;

System.out.println("Introduce un número entero: ");

n=sc.nextInt();

System.out.println("Tabla del 5" + 1);

for(int i = 1; i<=10; i++)


{

System.out.println(n + " * " + i + " = " + n*i);


}
}
}

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

public class Raiz_Cuadrada {


public static void main(String[] args) {
int n = Integer.parseInt(args[0]);

int radical = n;
int raiz cuadrada = 0;
int resta = 1;

while (radical > 0) {


radical = radical – resta;
resta+=2;
raíz cuadrada++;
}
System.out.println(“ la raíz cuadrada de “ + n + “ es de “ + raíz
cuadrada);
}
}
11. Desarrolle la clase Multiplos que muestre en pantalla todos lo múltiplos de A que existen en el rango de
valores B y C, siendo A, B y C tres valores numéricos enteros pasados como argumentos al programa:
package Multiplos;

public class Multiplos {

public static void main(String[] args) {

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;

public class Primos {

public static void main(String[] args) {

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;

public class Minimo comun multiplo {

public static void main(String[] args) {

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;

public class Maximo_comun_divisor {

public static void main(String[] args) {

int x = 16;
int y = 14;
int z = 18;
int multiplicador = 1;
int maximo = 15;

boolean verdad1 = false;


boolean verdad2 = false;
boolean verdad3 = false;

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

if(verdad1==true && verdad2==true && verdad3==true)


{
maximo = multiplicador;
}
verdad1=false;verdad2=false;verdad3=false;
multiplicador++;
{
System.out.println(maximo);
System.out.println(verdad1+""+verdad2+""+verdad3);
}
}
}
Nro. DD-106
Laboratorio de Fundamentos de Programación Página 10 de 11

VIII.- OBSERVACIONES (5 como mínimo)


Los ejercicios con ecuaciones fueron un tanto más difíciles que las anteriores de los laboratorios.
Los argumentos utilizados en el laboratorio son while y do while
Hay diferencia en las sentencias while y do while, cada uno tiene su propia función.
Al ingresar los datos deberemos aplicar bien las sentencias para que al imprimir las condiciones sea el resultado
correcto
Estas sentencias while y do while sirven prácticamente para formar bucles en una condición

IV. CONCLUSIONES (5 como mínimo)


Se realizó las instrucciones de los bucles o repetitivas dándonos resultados satisfactorios.
Se reconoció la diferencia entre los bucles while y do-while dándonos a conocer sus características.
Se ejecutó sentencias de manera autorizada aplicando los bucles while y do while en los ejercicios.
Los bucles son importantes al momento de realizar secuencias repetitivas en algún caso.
Estos ejemplos de usos while nos serán útiles a futuro cuando realicemos ejercicios con más nivel y desarrollo.
Cada dato o condición que utilicemos influye mucho en la resolución del problema

You might also like