Sie sind auf Seite 1von 66

ALGORITMIA Y PROGRAMACIN

CICLOS ITERATIVOS

Contenido

Estructuras de Repeticin
For Ciclos anidados Contadores y acumuladores while do-while Ejercicios

EISC
Universidad del Valle

Slide 2

Estructuras de Repeticin

Ejercicio: Suponga que debe listar los nmeros del 1 a 100


en una aplicacin Java.

EISC
Universidad del Valle

Slide 3

Estructuras de Repeticin
Ejercicio: Suponga que debe listar los nmeros del 1 a 100 en una
aplicacin Java. Se podra hacer con el siguiente mtodo:
public static void listarNumeros()
{ JOptionPane.showMessageDialog (null, El nmero es: + 1); JOptionPane.showMessageDialog (null, El nmero es: + 2); JOptionPane.showMessageDialog (null, El nmero es: + 3); JOptionPane.showMessageDialog (null, El nmero es: + 4); JOptionPane.showMessageDialog( null, El nmero es: + 100); } Y si nos piden listar del 1 al 1000?
EISC
Universidad del Valle

Slide 4

Estructuras de Repeticin
Son un grupo de instrucciones que permite la ejecucin repetitiva de otro grupo de instrucciones. Hay una variable asociada al ciclo o estructura de repeticin que controla el nmero de veces que se repetirn las instrucciones. Existen 3 estructuras de repeticin: For While Do-While
EISC
Universidad del Valle

Slide 5

Estructuras de Repeticin
Problema: Desarrollar una aplicacin Java que solicite un nmero y liste los nmeros desde el 1 hasta el nmero solicitado.
1. Anlisis del problema Entradas: ?? Salidas: ?? Proceso:??

EISC
Universidad del Valle

Slide 6

Estructuras de Repeticin
Problema: Desarrollar una aplicacin Java que solicite un nmero y liste los nmeros desde el 1 hasta el nmero solicitado. 1. Anlisis del problema Entradas: n Salidas: ?? Proceso:??

EISC
Universidad del Valle

Slide 7

Estructuras de Repeticin
Problema: Desarrollar una aplicacin Java que solicite un nmero y liste los nmeros desde el 1 hasta el nmero solicitado. 1. Anlisis del problema Entradas: n Salidas: imprimir (nmero 1) imprimir (nmero 2) . . imprimir (nmero n) Proceso:??
EISC
Universidad del Valle

Slide 8

Estructuras de Repeticin
Problema: Desarrollar una aplicacin Java que solicite un nmero y liste los nmeros desde el 1 hasta el nmero solicitado. 1. Anlisis del problema Entradas: n Salidas: imprimir (nmero 1) imprimir (nmero 2) . . imprimir (nmero n) Proceso: 1 hasta n
EISC
Universidad del Valle

Slide 9

Estructuras de Repeticin
Problema: Desarrollar una aplicacin Java que solicite un nmero y liste los nmeros desde el 1 hasta el nmero solicitado. 1. Anlisis del problema Entradas: n Salidas: imprimir (nmero 1) imprimir (nmero 2) . . imprimir (nmero n) Proceso: Desde 1 hasta n Imprimir 1,2,3,.....n
EISC
Universidad del Valle

Slide 10

Estructuras de Repeticin
Problema: Desarrollar una aplicacin Java que solicite un nmero y liste los nmeros desde el 1 hasta el nmero solicitado. 2. Disear el algoritmo y escribirlo en pseudocdigo
Inicio n: entero leer (n) ???

Fin
EISC
Universidad del Valle

Slide 11

Estructuras de Repeticin
Problema: Desarrollar una aplicacin Java que solicite un nmero y liste los nmeros desde el 1 hasta el nmero solicitado. 2. Disear el algoritmo y escribirlo en pseudocdigo
Inicio n: entero i: entero (Variable de control) leer (n) Desde i = 1 Hasta i = n Imprimir (i)

Fin
EISC
Universidad del Valle

Slide 12

Estructuras de Repeticin
Problema: Desarrollar una aplicacin Java que solicite un nmero y liste los nmeros desde el 1 hasta el nmero solicitado. 3. Codificar el algoritmo usando algn lenguaje de programacin pseudocdigo Java

Desde i = 1; Mientras i < n; incrementar i en 1 Imprimir (i)

EISC
Universidad del Valle

Slide 13

Estructuras de Repeticin
Problema: Desarrollar una aplicacin Java que solicite un nmero y liste los nmeros desde el 1 hasta el nmero solicitado. 3. Codificar el algoritmo usando algn lenguaje de programacin pseudocdigo Java

Estructura Desde i = 1; Mientras i < n; incrementar i en 1 De Repeticin Imprimir (i) FOR

EISC
Universidad del Valle

Slide 14

Estructuras de Repeticin: FOR


Se usa para repetir una instruccin o un conjunto de instrucciones, Desde un inicio, Mientras una condicin se cumpla y con un incremento o decremento.
Un ciclo for tiene tres partes: Expresin de inicio, Expresin de condicin y Expresin de incremento/decremento.
Desde i = 1; Mientras i < n; incrementar i en 1 Imprimir (i)

Estructura For
Pseudocdigo Desde inicio mientras condicin incrementando en incremento Haga instruccin 1 instruccin 2 . Fin desde Java for( inicio; condicin; incre/decremento) { instruccin 1; instruccin 2; }

Expresin de inicio Expresin de condicin Expresin de incremento/decremento


EISC
Universidad del Valle

Slide 16

Estructura For
Pseudocdigo Desde inicio mientras condicin incrementando en incremento Haga instruccin 1 instruccin 2 . Fin desde Java for( inicio; condicin; incre/decremento) { instruccin 1; instruccin 2; }

Expresin de inicio Expresin de condicin Expresin de incremento/decremento


EISC
Universidad del Valle

Slide 17

Estructura For
Pseudocdigo Desde inicio mientras condicin incrementando en incremento Haga instruccin 1 instruccin 2 . Fin desde Java for( inicio; condicin; incre/decremento) { instruccin 1; instruccin 2; }

Expresin de inicio Expresin de condicin Expresin de incremento/decremento


EISC
Universidad del Valle

Slide 18

Estructura For
Funcionamiento:
for( inicio; condicin; incre/decremento){ instruciones; }

Expresin de Inicio: Es una expresin que permite dar un valor


inicial a la variable de control del ciclo. Variable de control: Es la variable que se utiliza para contar la cantidad de iteraciones realizadas y es usada en la condicin que determina el lmite de repeticiones a realizar. Ejemplos: i=1 k=m
EISC
Universidad del Valle

j=(y*8)/9

i, k , j en cada caso ser la variable de control del ciclo.


Slide 19

Estructura For
Funcionamiento:
for( inicio; condicin; incre/decremento){ instruciones; }

Expresin de Condicin: Es una condicin que se evala


antes de realizar el bloque de instrucciones en el ciclo. Esta condicin determina cuando se termina la ejecucin del ciclo. Ejemplos: i<=5 k>total i, k , j en cada caso ser la variable de control del ciclo.

j!=(z%7)

EISC
Universidad del Valle

Slide 20

Estructura For
Funcionamiento:
for( inicio; condicin; incre/decremento){ instruciones; }

Expresin de Incre/Decremento: Es una expresin usada para


incrementar o decrementar el valor de la variable de control del ciclo. Ejemplos: i++ k= k + 2

J--

EISC
Universidad del Valle

Slide 21

Estructura For

Ejemplo:
for(int i =1 ; i<=5; i++) { JOptionPane.showMessageDialog (null, Nmero: + i );
}

public static void listarNumeros(){

Valor de i 1

Nmero Iteracin 1

Salida Nmero 1

2
3 4 5 6

2
3 4 5 Se interrumpe

Nmero 2
Nmero 3 Nmero 4 Nmero 5

El nmero de iteraciones indica la cantidad de veces que se repite la(s) instruccin(es) que estn en el cuerpo del ciclo. En el ejemplo, la instruccin:
JOptionPane.showMessageDialog()

se ejecuta 5 veces.

EISC
Universidad del Valle

Slide 22

Estructura For

Ejemplo: public static void listarNumeros(){


for(int k =18 ; k>10; k = k - 2) { JOptionPane.showMessageDialog (null, Nmero: + k ); } } Cuantas veces se ejecutar

la instruccin:

JOptionPane.showMessageDialog (null, Nmero: + k );

EISC
Universidad del Valle

Slide 23

Estructura For

Ejemplo:
for(int k =18 ; k>10; k = k - 2) { JOptionPane.showMessageDialog (null, Nmero: + k ); }

public void listarNumeros(){

} Valor de i 18 16 14 12 10 Nmero Iteracin 1 2 3 4 Se interrumpe Salida Nmero 18 Nmero 16 Nmero 14 Nmero 12 La instruccin:
JOptionPane.showMessageDialog ()

se ejecuta 4 veces

EISC
Universidad del Valle

Slide 24

Estructura For
Una vez el ciclo se interrumpe se ejecuta la instruccin ubicada despus de l. Por ejemplo:
int a=0; for(int k =0 ; k<=4; k = k + 2) { a++; } JOptionPane.showMessageDialog (null, El valor de a es: + a ); La variable a inicia con el valor de cero (0). Se ingresa al ciclo y se ejecuta tres (3) veces la instruccin a++ (recuerde que a++ es lo mismo que a=a+1). Luego se muestra en pantalla el valor de a, es decir, 3.

EISC
Universidad del Valle

Slide 25

Estructura For

Ejercicio 1:
Desarrollar un programa java que pregunte al usuario el nmero de estudiantes de un curso, luego pregunte el nombre de cada uno de ellos. Finalmente, se debe mostrar un listado con todos los estudiantes.

EISC
Universidad del Valle

Slide 26

Estructura For

Ejercicio 1:

public void leerNumEstudiantes()


Inicio leer (numeroEstudiantes); Fin

public void leerNombres()


Inicio Desde x=1 mientras x<=numeroEstudiantes incrementando en x = x +1 Haga leer(nombreEstudiante); listadoEstudiantes = listadoEstudiantes + nombreEstudiante; Fin Desde mostrar(listadoEstudiantes ); Fin

EISC
Universidad del Valle

Slide 27

Estructura For

Ejercicio 1:

public class Asignatura { static int numEstudiantes; static String listadoEstudiantes; public static void leerNumEstudiantes () { String num = JOptionPane.showInputDialog("Ingrese el nmero de Estudiantes:"); numEstudiantes= Integer.parseInt(num); } public static void leerNombres () { listadoEstudiantes = ; for (int x = 0; x < numEstudiantes; x++){ String estudiante = JOptionPane.showInputDialog(Nombre No: +(x+1)); listadoEstudiantes += "\nEstudiante No: "+ (x+1) + " : "+ estudiante; } JOptionPane.showMessageDialog(null, listadoEstudiantes ); }
EISC
Universidad del Valle

Slide 28

Estructura For

Ejercicio 1:

public static void main (String arg[]) { leerNumEstudiantes (); leerNombres (); System.exit(0); } }

EISC
Universidad del Valle

Slide 29

Estructura For Ciclos Anidados

Ejemplo:
Suponga que se desea crear un programa en Java que permita imprimir en pantalla el factorial de cada nmero existente en la serie 1 a n, siendo n un nmero menor a 20 el cual es digitado por un usuario.
Desde i=1 mientras i<=n incrementando en i = i +1 Haga Desde j=1 mientras j<=i incrementando en j = j +1 Haga instruccin 1 instruccin 2 Fin Desde instruccin 3 instruccin 4 Fin Desde

NOTA: Usamos la condicin n<=20 con fines acadmicos y evitar resultados con nmeros exageradamente grandes.
EISC
Universidad del Valle

Slide 30

Estructura For Ciclos Anidados


Un ciclo anidado es un ciclo, de cualquier tipo, que contiene otro ciclo de cualquier tipo.
En el ejercicio propuesto se observa que se debe crear un ciclo para manejar la serie de 1 a n, y un ciclo anidado para calcular el factorial de ni . Por ejemplo: si el usuario digita el nmero 5 el sistema debe recorrer la serie 1 a 5, y para cada nmero devolver su factorial, as: Factorial de 1 = 1, Factorial de 2 = 2, Factorial de 3 = 6 , Factorial de 4 = 24 y el Factorial de 5 = 120. Nota: El factorial de un nmero n es la multiplicacin de todos los nmeros de la serie 1 a n, entonces, el factorial de 5 es 1 x 2 x 3 x 4 x 5 = 120, el factorial de 3 es 1 x 2 x 3 = 6.
EISC
Universidad del Valle

Slide 31

Estructura For Ciclos Anidados


public static void Factorial() Inicio IF n<= 20 factorial: entero; respuesta: cadena; Desde i=1 mientras i<=n incrementando en i = i +1 Haga factorial=1 Desde j=1 mientras j<=i incrementando en j = j +1 Haga factorial = factorial*j Fin Desde respuesta = respuesta + El factorial de + j + es: factorial; Fin Desde imprima(respuesta); ELSE imprima(Ha digitado un numero superior a 20); Fin
EISC
Universidad del Valle

Slide 32

Estructura For Ciclos Anidados


public static void Factorial() Inicio IF n<= 20 factorial: entero; respuesta: cadena;

El ciclo principal, basado en la variable de control i, contiene un ciclo anidado basado en la variable de control j.

Desde i=1 mientras i<=n incrementando en i = i +1 Haga factorial=1 Desde j=1 mientras j<=i incrementando en j = j +1 Haga factorial = factorial*j Fin Desde respuesta = respuesta + El factorial de + j + es: factorial; Fin Desde imprima(respuesta); ELSE imprima(Ha digitado un numero superior a 20); Fin
EISC
Universidad del Valle

Slide 33

Estructura For Ciclos Anidados


public class Factorial { static int n; public static void leerN() { String num = JOptionPane.showInputDialog("Ingrese n:"); n = Integer.parseInt(num); }
public static void calcularFactorial() { long factorial; String respuesta=""; if(n<=20){ for (int i = 1; i <= n; i++){ factorial=1; for (int j = 1; j <= i; j++){ factorial=factorial*j; } respuesta += "\n El Factorial de " + i + "es: " + factorial; } JOptionPane.showMessageDialog(null,respuesta); }else{ JOptionPane.showMessageDialog(null,"Ha digitado un nmero superior a 20"); } }
EISC
Universidad del Valle

Slide 34

Estructura For Ciclos Anidados

public static void main (String arg[]) { leerN (); calcularFactorial(); System.exit(0); } }

EISC
Universidad del Valle

Slide 35

Estructura For Ciclos Anidados

Ejercicio 2:
Desarrollar un programa java que permita generar y visualizar la siguiente figura:

Tenga en cuenta que el usuario ingresa al programa el nmero

de lneas que debe tener la figura (En el ejemplo hay 7 filas).


EISC
Universidad del Valle

Slide 36

Estructura For Ciclos Anidados

Ejercicio 2:
public static void crearFigura()
Inicio
Desde i=1 mientras i<=numeroFilas incrementando en i = i +1 Haga Desde j=1 mientras j<=i incrementando en j = j +1 Haga triangulo = triangulo + *; Fin Desde
triangulo = triangulo + \n;

Fin Desde mostrar(triangulo);

Fin

EISC
Universidad del Valle

Slide 37

Estructura For Ciclos Anidados

Ejercicio 2:
public class Figura{ static int numLineas; static String triangulo; public static void leerNumLineas() { String num = JOptionPane.showInputDialog("Ingrese el nmero de lneas:"); numLineas = Integer.parseInt(num); } public static void crearFigura () { triangulo = ; for (int i = 1; i <= numLineas; i++){ for (int j= 1; j <= i; j++){ triangulo += * ; } triangulo += \n ; } JOptionPane.showMessageDialog(null, triangulo); } }

EISC
Universidad del Valle

Slide 38

Estructura For Ciclos Anidados

Ejercicio 2:

public static void main (String arg[]) { leerNumLineas (); crearFigura (); System.exit(0); } }

EISC
Universidad del Valle

Slide 39

Estructura For - Contadores


Son variables usadas para realizar, como su nombre lo indica, conteos de la cantidad de veces que se cumple una situacin especfica. Como su objetivo principal es contar, deben ser de tipo entero y normalmente se inicializan en cero.

Los contadores y los acumuladores pueden ser usados en cualquier tipo de ciclos.

EISC
Universidad del Valle

Slide 40

Estructura For - Contadores

Ejemplo:
Suponga que se desea crear un programa en Java que permita imprimir en pantalla la cantidad de nmeros mltiplos de 3 que se encuentran en la serie 1 a n, siendo n un nmero digitado por un usuario. Inicio
contador:entero contador=0 Desde i=1 mientras i<=n incrementando en i = i +1 Haga if(esMultiploDeTres(i)){ contador=contador+1; } Fin Desde mostrar(contador);

Fin
EISC
Universidad del Valle

Slide 41

Estructura For - Contadores

Ejemplo:
public class MultiplosDeTres { static int n; public static void leerN() {

String num = JOptionPane.showInputDialog("Ingrese n:");


n = Integer.parseInt(num); } public static boolean esMultiploDeTres(int numero) { if(numero%3==0){ return true; }else{ return false; } }
EISC
Universidad del Valle

Slide 42

Estructura For - Contadores

Ejemplo:
int contador=0;
for (int i = 1; i <= n; i++){ if (esMultiploDeTres(i)){ contador++; } }
JOptionPane.showMessageDialog(null,"En la serie 1 a "+ n+ " hay " + contador + " mltiplos de 3");

public static void contarMultiplosDeTres() {

} public static void main (String arg[]) { leerN (); contarMultiplosDeTres (); System.exit(0); }
EISC
Universidad del Valle

Slide 43

Estructura For - Contadores

Ejemplo:
int contador=0;
for (int i = 1; i <= n; i++){ if (esMultiploDeTres(i)){ contador++; } } La variable contador se incrementa en 1 cada vez que el mtodo esMultiploDeTres retorna true (cierto) para el nmero i

public static void contarMultiplosDeTres() {

JOptionPane.showMessageDialog(null,"En la serie 1 a "+ n+ " hay " + contador + " mltiplos de 3");

} public static void main (String arg[]) { leerN (); contarMultiplosDeTres (); System.exit(0); }
EISC
Universidad del Valle

Slide 44

Estructura For - Acumuladores


Son variables usadas para ir acumulando el resultado de una operacin. Pueden ser de tipo numrico (entero o real) en las cuales acumula el resultado de operaciones matemticas, o de tipo cadena en las cuales se concatenan frases o palabras. En el ejemplo del factorial se pueden observar las variables factorial y respuesta las cuales actan como acumuladores numricos y de cadena respectivamente.

EISC
Universidad del Valle

Slide 45

Estructura For - Acumuladores


.
La variable factorial va acumulando el valor de la multiplicacin y la variable respuesta va acumulando las cadenas usadas como respuesta en cada iteracin del ciclo principal.

public static void calcularFactorial() { long factorial; String respuesta=""; if(n<=20){ for (int i = 1; i <= n; i++){ factorial=1; for (int j = 1; j <= i; j++){ factorial=factorial*j; } respuesta += "\n El Factorial de " + i + "es: " + factorial; }

.
EISC
Universidad del Valle

Slide 46

Ejercicios Estructura For


1. Disee un algoritmo que permita detectar los nmeros pares existentes en una serie de 1 a n, siendo n un nmero digitado por un usuario. 2. Disee un algoritmo que permita obtener la suma de todos los nmeros enteros existentes en una serie de 1 a n y la cantidad de nmeros pares encontrados, siendo n un nmero digitado por un usuario. Use un ciclo For en su diseo. 3. Suponga que se desea saber la nota promedio del curso de algoritmia, disee un algoritmo que solicite la cantidad de estudiantes del curso y el promedio de cada estudiante. NOTA: Para cada ejercicio realice su respectiva implementacin en Java
EISC
Universidad del Valle

Slide 47

Ejercicios Estructura For


4. Suponga que el calculo de la pensin de una persona se realiza de la siguiente manera: por cada ao de servicio se paga $80 si el empleado ingres en o despus de 1995 y $100 si ingres antes, dicho valor (80 o 100) se multiplica por el nmero de cada ao ms la edad que tena en el ao (p.e. (100*1994+32)+(100*1995*33)+), el descuento de seguridad social salud es del 12%. El programa debe recibir el ao de ingreso y la edad del empleado en el ao de ingreso, devolver el sueldo o mesada bruta, la mesada neta y el valor del descuento por salud.

Ejemplo: Para una persona que ingres en el 2009 y que tena 44 aos en dicho ao, su mesada o sueldo bruto para el 2011 es $482.535, el descuento por salud es $57.904 y por lo tanto su sueldo o mesada neta es $424.630.
NOTA: Realice la respectiva implementacin en Java.
EISC
Universidad del Valle

Slide 48

Estructura While

Evala una condicin dada para determinar si repite un conjunto de instrucciones. Si la condicin es verdadera se repiten las instrucciones. Observe que el primer paso es validar la condicin y luego se ejecutan las instrucciones (en caso de que la condicin cumpla).
Pseudocdigo Mientras condicin Haga instruccin 1 instruccin 2 . Fin mientras Java

while( condicion) { instruccin 1; instruccin 2; }


Slide 49

EISC
Universidad del Valle

Estructura While

Ejemplo:
int a=5, b=7, c=3; while (a<b){ c = c *2; a = a + 1;
}
Nmero Iteracin 0 1 2 Se interrumpe Valor variable Valor variable a c 5 6 7 3 6 12

EISC
Universidad del Valle

Slide 50

Estructura While

Ejemplo:

int a=9, b=7, c=3; while (a<b){ c = c *2; a = a + 1;


}

Nmero Iteracin 0 Se interrumpe

Valor variable Valor variable a c 9 3

Si la primera vez la condicin del ciclo while no se cumple, no se ejecuta ninguna instruccin.

EISC
Universidad del Valle

Slide 51

Estructura Do-While
Los ciclos do-while funcionan de la misma manera que los ciclos while, sin embargo un ciclo do-while ejecuta primero las instrucciones y luego hace la validacin.

Ciclo do-while: Realiza un bloque de instrucciones y despus evala la condicin para determinar si repite el bloque o no. Pseudocdigo Haga
instruccin 1 instruccin 2 .

Java do { instruccin 1;
instruccin 2;

Mientras condicin
EISC
Universidad del Valle

} while(condicion);
Slide 52

Estructura Do-While

Ejemplo: int a=5, b=7, c=3;


do { c = c *2; a = a + 1; } while (a<b);
Nmero Iteracin 0 1 2 Se interrumpe
Valor variable a 5 6 7 Valor variable c 3 6 12

EISC
Universidad del Valle

Slide 53

Estructura Do-While

Observe que la primera vez se ejecutan las instrucciones aunque la condicin del ciclo no sea vlida. Por ejemplo:

int a=9, b=7, c=3; do {

Nmero Iteracin

Valor variable a

Valor variable c

c = c *2; a = a + 1; } while (a<b);

0
1 Se interrumpe

9
10

3
6

EISC
Universidad del Valle

Slide 54

Ejercicio Estructura While

Ejercicio: Para ingresar al curso de Produccin Cinematogrfica se


realiz un prueba clasificatoria. Se tiene los resultados de dicho examen por aspirante (una nota comprendida entre 0.0 y 5.0) y se desea saber cuntos aspirantes aprobaron el examen, cuntos lo perdieron (nota menor que 3.0) y cul fue el promedio de todo grupo de aspirantes. No sabemos cuntos aspirantes son, pero sabemos que cuando se quiera indicar que se finaliz el ingreso de notas se digitar un valor negativo.

EISC
Universidad del Valle

Slide 55

Ejercicio Estructura While


public static void determinarEstadisticasSegunNotas() Inicio
leer(nota); Mientras nota>0 Haga Si (nota>=3){ numAprobados = numAprobados +1; } Si no{ numReprobados = numReprobados + 1; } promedioCalificaciones = promedioCalificaciones + nota; leer(nota); Fin mientras promedioCalificaciones = promedioCalificaciones / (numAprobados + numReprobados ); mostrar(numAprobados); mostrar(numReprobados); mostrar(promedioCalificaciones);

Fin
EISC
Universidad del Valle

Slide 56

Ejercicio Estructura While


public class NotasAsignatura {
static int numAprobados,numReprobados; static double promedioCalificaciones;

public static void determinarEstadisticasSegunNotas() { numAprobados =0; numReprobados =0; promedioCalificaciones=0.0;


double nota= Double.parseDouble(JOptionPane.showInputDialog(Digite la nota:")); while (nota>0.0){ if(nota>=3.0){ numAprobados = numAprobados +1; } else{ numReprobados = numReprobados +1; } promedioCalificaciones = promedioCalificaciones + nota; nota= Double.parseDouble(JOptionPane.showInputDialog(Digite la nota:")); } promedioCalificaciones = promedioCalificaciones / (numAprobados + numReprobados ); JOptionPane.showMessageDialog(null, Aspirantes aprobados :+ numAprobados ); JOptionPane.showMessageDialog(null, Aspirantes reprobados :+ numReprobados ); JOptionPane.showMessageDialog(null, Promedio notas :+ promedioCalificaciones );
}
EISC
Universidad del Valle

Slide 57

Ejercicio Estructura While


public static void main (String arg[]) { determinarEstadisticasSegunNotas(); System.exit(0); } }

EISC
Universidad del Valle

Slide 58

Ejercicio Estructura Do-While

Ejercicio: Realice el ejercicio anterior (sobre el calculo de


estadsticas para el ingreso al curso de Produccin Cinematogrfica) utilizando el ciclo do-while.

EISC
Universidad del Valle

Slide 59

Ejercicio Estructura Do-While


Ejercicio: Algoritmos del programa Curso Cinematografa.
public static void determinarEstadisticasSegunNotas()
Inicio
Haga leer(nota); Si (nota>=3){ numAprobados = numsAprobados +1; } Sino { numReprobados = numReprobados + 1; } promedioCalificaciones = promedioCalificaciones + nota; Mientras (nota>0); promedioCalificaciones = promedioCalificaciones / (numAprobados + numReprobados ); mostrar(numAprobados); mostrar(numReprobados); mostrar(promedioCalificaciones);

Fin
EISC
Universidad del Valle

Slide 60

Ejercicio Estructura Do-While


public static void determinarEstadisticasSegunNotas() {
numAprobados =0; double nota; numReprobados =0; promedioCalificaciones=0.0; do{ nota= Double.parseDouble(JOptionPane.showInputDialog(Digite la nota:")); if(nota>=0.0){ if(nota>=3.0){ numAprobados = numAprobados +1; } else { numReprobados = numReprobados +1; } promedioCalificaciones = promedioCalificaciones + nota; } } while (nota<0.0);

EISC
Universidad del Valle

Slide 61

Estructuras de Repeticin
Importante:
En cualquiera de las estructuras de repeticin implementadas en Java, se puede detener el ciclo usando la instruccin break o detener una iteracin utilizando la instruccin continue. Normalmente se usan las instrucciones break o continue cuando se ha cumplido una condicin de anormalidad u otra especificada por el desarrollador dentro del contexto de un problema. En resumen: break detiene el ciclo completamente y continue detiene una iteracin pasando a la siguiente.
EISC
Universidad del Valle

Slide 62

Estructuras de Repeticin
Importante:
Cualquiera de los ejercicios mostrados en esta presentacin pueden ser implementados sin la necesidad de crear mtodos.

EISC
Universidad del Valle

Slide 63

Ejercicios Estructuras While y Do-While


1. Disee un algoritmo que reciba nmeros digitados por el usuario y los imprima en pantalla, el programa debe terminar cuando el usuario digite un nmero negativo. 2. Disee un algoritmo que reciba nmeros digitados por el usuario y al final imprima la suma de los nmeros digitados, el programa debe terminar cuando el usuario digite 0 (cero). 3. Cree un algoritmo que permita digitar palabras y al final imprima la concatenacin de las palabras digitadas, el programa debe terminar cuando el usuario digite la palabra terminar. NOTA: Para cada ejercicio realice su respectiva implementacin en Java, use la estructura que le parezca ms conveniente (while o do while)
EISC
Universidad del Valle

Slide 64

Ejercicios Estructuras While y Do-While


4. Suponga que el calculo de la pensin de una persona se realiza de la siguiente manera: por cada ao de servicio se paga $80 si el empleado ingres en o despus de 1995 y $100 si ingres antes, dicho valor (80 o 100) se multiplica por el nmero de cada ao ms la edad que tena en el ao (p.e. (100*1994+32)+(100*1995*33)+), el descuento de seguridad social salud es del 12%. El programa debe recibir el ao de ingreso y la edad del empleado en el ao de ingreso, devolver el sueldo o mesada bruta, la mesada neta y el valor del descuento por salud.

Ejemplo: Para una persona que ingres en el 2009 y que tena 44 aos en dicho ao, su mesada o sueldo bruto para el 2011 es $482.535, el descuento por salud es $57.904 y por lo tanto su sueldo o mesada neta es $424.630.
NOTA: Realice la respectiva implementacin en Java.
EISC
Universidad del Valle

Slide 65

Ejercicios Estructuras While y Do-While


5. Suponga que el administrador de una tienda desea calcular el total de ventas del da, para ello debe registrar el nombre del producto, el valor del producto y la cantidad de unidades vendidas. Al final el sistema debe mostrar la lista de productos digitados, el total de ventas por cada producto, el total de ventas del da y el valor global cobrado por concepto del IVA. El administrador puede registrar productos hasta que l decida que ha terminado. NOTA: Realice la respectiva implementacin en Java.
EISC
Universidad del Valle

Slide 66

Das könnte Ihnen auch gefallen