Sei sulla pagina 1di 10

Estructura de Datos IDAT

Luis Arias Hidalgo

Tema 3: Sentencias Repetitivas - Bucles (For , While)


Sentencia FOR (PARA HASTA) FOR (Para Hasta) Su sintaxis es: for (inicializacin;condicin;incremento o decremento){ sentencia1; sentencia2; } El FOR necesita una variable que controle las vueltas que se da Esta variable guardara el inicio, la condicin y el incremento o decremento. Ejemplo 1: for(i=0;i<=10;i++){ } En este for se esta empezando de 0 y la condicion es que mientras i sea menor o igual que 10, finalmente i se incrementara en 1 por cada vuelta que se de. (se dar 11 vueltas) Ejemplo 2: for(i=2;i<=10;i=i+2){ } En este FOR se empieza de 2 mientras que i sea menor o igual que 10, finalmente i se incrementara de 2 en 2. (se dar 5 vueltas). Ejemplo 3: For(i=10;i>0;i--){ } En este FOR se empieza de 10 mientras que i sea mayor que 0, finalmente i se decrementar en 1 (se dar 10 vueltas).

-1-

Estructura de Datos IDAT


EJERCICIOS RESUELTOS

Luis Arias Hidalgo

1. Haga un programa que imprima los nmeros del 20 al -10 en orden descendente. public class ejercicio { public static void main(String[] args) { int i; for (i =20 ; i>=-10;i-- ){ System.out.println(i); } } } 2. Escribir un programa que lea 10 nmeros y encuentre el promedio, el mximo y el mnimo de esos valores import java.util.Scanner; public class ejercicio { public static void main(String[] args) { int i, n, max, min; double prom; String Num; Scanner scan = new Scanner(System.in); System.out.print("Ingrese Numero : "); Num = scan.nextLine(); n = Integer.parseInt(Num); max=n; min =n; prom=n; for (i =1 ; i<=9;i++ ){ System.out.print("Ingrese Numero : "); Num = scan.nextLine(); n = Integer.parseInt(Num); if(n<min){ min = n; } if(n>max){ max=n; } prom=prom+n; } prom = prom/10; System.out.println("El minimo valor es : " + min); System.out.println("El mximo valor es : " + max); System.out.println("El promedio es : " + prom); } }

-2-

Estructura de Datos IDAT


Ejercicios practicos

Luis Arias Hidalgo

1.- Ingrese un nmero y ver la tabla de multiplicar de ese numero. import javax.swing.JOptionPane; public class Ejer1 { public static void main(String[] args){ int Num,i; Num = Integer.parseInt(JOptionPane.showInputDialog("Ingrese Numero")); for(i=1;i<=12;i++){ System.out.println(i + " * " + Num + " = " + (i*Num)); } } } En este ejercicio se ingresara un nmero y se almacenar en la variable num luego se tendr que multiplicar esa variable por 1,2,3,4,5,6,7,8,9,10,11,12 La sentencia System.out.println(i + " * " + Num + " = " + (i*Num)); Significa que primero se escribir el valor de i luego se escribira el carcter * luego se va a escribir el valor de num luego se escribe el carcter = luego se escribe el valor de i * num. Esto se repetira 12 veces. Si el numero a ingresar es el 6 el resultado seria si:

Ejercicio 2 Visualizar los nmeros pares o impares hasta el 100 en forma ascendente o descendente. Para eso se ingresara por teclado que clase de numero se quiere ver P par o I impar y tambien se ingresara por teclado la forma de visualizacion si es A ascendente y si es D descendente. import javax.swing.JOptionPane; public class Ejer2 { public static void main(String[] args){ String Tipo,Orden; int Num,i,valorini=0,valorfin=0; Tipo = JOptionPane.showInputDialog("Ingrese Tipo de numeros a imprimir Par[P] o Impar[I]"); Orden= JOptionPane.showInputDialog("Ingrese Orden de salida Ascen[A] o Desc[D]"); if(Tipo.equals("P")){ valorini=2; valorfin = 100; }else{ valorini=1; valorfin = 99; } if(Orden.equals("A")){ for(i=valorini;i<=valorfin;i+=2){ System.out.println(i); } }else{ for(i=valorfin;i>=valorini;i-=2){

-3-

Estructura de Datos IDAT


System.out.println(i); } } } }

Luis Arias Hidalgo

Ejercicio 3: Visualizar la tabla de multiplicar de un numero x para lo cual se deber ingresar primero el numero que se va a multiplicar luego desde donde empieza la tabla y tambin hasta donde termina la tabla import javax.swing.JOptionPane; public class eJER3 { public static void main(String[] args){ int Num,Inicio,Fin,i; Num = Integer.parseInt(JOptionPane.showInputDialog("Ingrese Numero a multiplicar")); Inicio = Integer.parseInt(JOptionPane.showInputDialog("Ingrese Inicio de la tabla")); Fin = Integer.parseInt(JOptionPane.showInputDialog("Ingrese Fin de la tabla")); for(i=Inicio;i<=Fin;i++){ System.out.println(i + " * " + Num + " = " + (i*Num)); } } } El resultado ser el siguiente:

-4-

Estructura de Datos IDAT

Luis Arias Hidalgo

Sentencia WHILE y DO WHILE (HACER MIENTRAS) Ambas sentencias son las mismas con la unica diferencia que el WHILE controla la condicin antes de entrar en el bucle. Si sta no se cumple, el programa no entrar en el bucle. Y el DO WHILE controla la condicin al final del bucle. Si sta se cumple, el programa vuelve a ejecutar las sentencias del bucle. Sintaxis del WHILE es: while (condicin) { sentencia; } Esto se define Mientras que la condicion se cumpla hacer. Sintaxis del DO WHILE es: do{ sentencia1; sentencia2; }while (condicin); Esto se define Hacer mientras que la condicion se cumpla. Ejemplos resueltos Ejercicio 1: Ingresar un numero de cualquier cantidad de cifras y al final mostrar la suma de sus cifras pares e impares. import javax.swing.JOptionPane; public class Ejer4 { public static void main(String[] args){ int numero,cifra,sumpar=0,sumimp=0; numero=Integer.parseInt(JOptionPane.showInputDialog("Ingrese Numero")); while(numero>0){ cifra=numero%10; if (cifra%2==0){ sumpar+=cifra; } else{ sumimp+=cifra; } numero=numero/10; } System.out.println("Suma de pares:" + sumpar); System.out.println("Suma de impares:" + sumimp); } }

-5-

Estructura de Datos IDAT

Luis Arias Hidalgo

Ejercicio 2: Ingresar un numero de cualquier cantidad de cifras y mostrarlo en forma invertida. import javax.swing.JOptionPane; public class Ejer5 { public static void main(String[] args){ int numero,cifra,numeroinv=0; numero=Integer.parseInt(JOptionPane.showInputDialog("Ingrese Numero")); while(numero>0){ cifra=numero%10; numeroinv=numeroinv*10 + cifra; numero=numero/10; } System.out.println("Numero Invertido es :" + numeroinv); } } Ejercicio 3: public class Dec2Bin{ public static void main(String args[]){ int decimal = 252222; String binario = ""; while ( decimal > 0 ) { binario = decimal % 2 + binario; decimal /= 2; } System.out.println(binario); } }

Ejercicio 4: public class impnum{ public static void main(String arg[ ]) int num = 50; while(num < 101){ System.out.println(num); num = num + 1; } } } {

-6-

Estructura de Datos IDAT

Luis Arias Hidalgo

Ejercicios resueltos 1. Pida por pantalla el ingreso de nmeros enteros y muestre la cantidad de nmeros ingresados y la suma de los mismos. Realice esta accin hasta que el usuario ingrese no. import java.util.Scanner; public class ejercicio { public static void main(String[] args) { int tot_num, n, suma; String Num; Scanner scan = new Scanner(System.in); tot_num=0; suma=0; do { System.out.print("Ingrese numero: "); Num = scan.nextLine(); if (Num != "no"){ n = Integer.parseInt(Num); suma = suma+n; tot_num = tot_num +1; } suma = suma + 1; }while(Num != "no"); System.out.println("Cantidad de numeros : " + suma); System.out.println("La suma es : " + suma); } } 2. Leer un valor positivo mayor que 1, y hacer la siguiente secuencia: si el nmero es par, dividirlo entre 2; sino, multiplicarlo por 3 y sumarle 1. Repetir lo anterior hasta que el valor sea 1, imprimiendo cada valor, tambin se deber imprimir cuantas operaciones de estas son hechas. import java.util.Scanner; public class ejercicio { public static void main(String[] args) { int n, res, operaciones; String Num; Scanner scan = new Scanner(System.in); operaciones = 0; do { operaciones ++; System.out.print("Ingrese numero: "); Num = scan.nextLine(); n = Integer.parseInt(Num); if (n % 2 == 0){ res = n/2; }else{ res = n+1; } System.out.println("Resultado : " + res); }while(n > 0); System.out.println("Operaciones : " + operaciones); } }

-7-

Estructura de Datos IDAT


Laboratorio 3: Bucles

Luis Arias Hidalgo

1. Desarrolle un programa que permita intercambiar el valor de dos variables. 2. Visualice la suma de las cifras de un nmero introducido por teclado y muestre la diferencia entre el nmero inicial y el resultante de colocar las cifras en orden inverso. 3. Haga un programa que lea un nmero por pantalla; determine si es par, impar o neutro. 4. Se ingresa un ao por teclado, el programa debe mostrar si es bisiesto o no. 5. En un colegio primario aplican un 5% de aumento por cada grado de estudio. Realice un programa que permita ingresar el precio de pago del 1 grado y muestre el precio de los dems aos de estudio. 6. En la siguiente tabla se muestra el nmero de camas de las habitaciones de una casa rural, adems de la planta donde est ubicada cada una de ellas: Habitacin 1. Azul 2. Roja 3. Verde 4. Rosa 5. Gris Camas 2 1 3 2 1 Planta Primera Primera Segunda Segunda Tercera

Disee el algoritmo (en pseudocdigo) de un programa que: Muestre el listado de las habitaciones de la casa rural. Pida por teclado el nmero (dato entero) asociado a una habitacin. Muestre por pantalla la planta y el nmero de camas de la habitacin seleccionada. 7. Escribir un programa que lea nmeros hasta que se encuentre el cero. El segundo nmero se sumar al primero, luego el tercero se restar, el cuarto se sumar, y as se deber seguir alternado hasta que se llegue al cero. Cuando se llegue a esta condicin deber imprimir el resultado, el total de operandos de la operacin (sin incluir el cero), y la suma de los operandos que se restaron. 8. Disee el algoritmo (en pseudocdigo) de un programa que: Pida por teclado la arista (dato real) de un cubo. En el caso de que la arista sea mayor que cero, muestre por pantalla el mensaje:"El volumen del cubo de arista <arista> es: <volumen>". Repita los primeros pasos, mientras que, la arista introducida sea mayor que cero. Muestre por pantalla cuantos volmenes de cubos han sido calculados. 9. Desplegar mltiplos de 4 entre 60 y 20 acompaados de su logaritmos de base 10 y base e respectivos. 10. Construir la tabla de multiplicar que el usuario indique. 11. Calcular los valores de la suma del capital y el interes compuesto para un perodo dado de aos. Para cada ao el interes es calculado como: interes = capital * tasa_interes / 100 capital += interes; 12. Escribir un programa que lea dos caracteres, e imprima su valor cuando se pueda interpretar como un nmero hexadecimal. Aceptar letras maysculas y minsculas para los valores del 10 al 15.

-8-

Estructura de Datos IDAT

Luis Arias Hidalgo

13. Leer un valor entero. Suponer que el nmero es un da de la semana. Suponer que 1 corresponde a Lunes y as sucesivamente. Imprimir el nombre del da. 14. Dados como entrada 3 enteros representando la fecha como da, mes, ao, imprimir la fecha del da anterior. Por ejemplo para una entrada como: 1 3 1992 La salida ser: Fecha anterior a 1-3-1992 es 29-02-1992. 15. Escribir un programa el cual lea dos valores enteros. Si el primero es menor que el segundo, que imprima el mensaje ``Arriba''. Si el segundo es menor que el primero, que imprima el mensaje ``Abajo''. Si los nmeros son iguales, que imprima el mensaje ``igual''. Si hay un error en la lectura de los datos, que imprima un mensaje conteniendo la palabra ``Error'' y haga finalice.

-9-

Estructura de Datos IDAT

Luis Arias Hidalgo

- 10 -

Potrebbero piacerti anche