Académique Documents
Professionnel Documents
Culture Documents
ESTRUCTURAS ITERATIVAS
Contenido
Estructuras de Repeticin
For
Ciclos anidados
Contadores y acumuladores
While
Do-while
Ejercicios
EISC
Universidad del Valle
Slide 2
Estructuras de Repeticin
EISC
Universidad del Valle
Slide 3
Estructuras de Repeticin
Ejercicio: Suponga que debe mostrar los nmeros del 1 a 100 en
ventanas separadas en una aplicacin Java.
Se podra hacer con el siguiente mtodo:
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.
for
while
do-while
EISC
Universidad del Valle
Slide 5
Estructuras de Repeticin
Problema: Desarrollar una aplicacin Java que solicite un
nmero y muestre los nmeros desde el 1 hasta el nmero
solicitado.
Entradas: ??
Salidas: ??
Proceso:??
EISC
Universidad del Valle
Slide 6
Estructuras de Repeticin
Problema: Desarrollar una aplicacin Java que solicite un
nmero y muestre los nmeros desde el 1 hasta el nmero
solicitado.
Entradas: n
Salidas: ??
Proceso:??
EISC
Universidad del Valle
Slide 7
Estructuras de Repeticin
Problema: Desarrollar una aplicacin Java que solicite un
nmero y muestre los nmeros desde el 1 hasta el nmero
solicitado.
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 muestre los nmeros desde el 1 hasta el nmero
solicitado.
Entradas: n
Salidas:
imprimir (nmero 1)
imprimir (nmero 2)
.
.
imprimir (nmero n)
Proceso:
desde 1 hasta n
EISC
Universidad del Valle
Slide 9
Estructuras de Repeticin
Problema: Desarrollar una aplicacin Java que solicite un
nmero y muestre los nmeros desde el 1 hasta el nmero
solicitado.
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 muestre los nmeros desde el 1 hasta el nmero
solicitado.
leer (n)
???
Fin
EISC
Universidad del Valle
Slide 11
Estructuras de Repeticin
Problema: Desarrollar una aplicacin Java que solicite un
nmero y muestre los nmeros desde el 1 hasta el nmero
solicitado.
Inicio
n: entero
i: entero (Variable de control)
leer (n)
Fin
EISC
Universidad del Valle
Slide 12
Estructuras de Repeticin
Problema: Desarrollar una aplicacin Java que solicite un
nmero y muestre los nmeros desde el 1 hasta el nmero
solicitado.
pseudocdigo Java
EISC
Universidad del Valle
Slide 13
Estructuras de Repeticin
Problema: Desarrollar una aplicacin Java que solicite un
nmero y muestre los nmeros desde el 1 hasta el nmero
solicitado.
pseudocdigo Java
Estructura
Desde i = 1; Mientras i <= n; incrementar i en 1 De
Imprimir (i) Repeticin
Fin_desde for
EISC
Universidad del Valle
Slide 14
Estructuras de Repeticin
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.
Expresin de inicio,
Expresin de condicin y
Expresin de incremento/decremento.
EISC
Universidad del Valle
Slide 15
Estructuras de Repeticin
Estructura
. de la instruccin for
Se debe Inicializar la Incremento o
variable de probar el valor final de decremento de la
declarar la
control la variable de control variable de control
variable de para continuar el ciclo
control
//Instrucciones a Repetir
}
EISC
Universidad del Valle
Slide 16
Estructura For
Pseudocdigo Java
Desde inicio mientras condicin for ( inicio; condicin; incre/decremento)
incrementando en incremento {
Haga instruccin 1;
instruccin 1 instruccin 2;
instruccin 2
. }
Fin desde
Expresin de inicio
Expresin de condicin (o prueba)
Expresin de incremento/decremento
EISC
Universidad del Valle
Slide 17
Estructura for
Pseudocdigo Java
Desde inicio mientras condicin for( inicio; condicin; incre/decremento)
incrementando en incremento {
Haga instruccin 1;
instruccin 1 instruccin 2;
instruccin 2
. }
Fin desde
Expresin de inicio
Expresin de condicin (o prueba)
Expresin de incremento/decremento
EISC
Universidad del Valle
Slide 18
Estructura for
Pseudocdigo Java
Desde inicio mientras condicin for ( inicio; condicin; incre/decremento)
incrementando en incremento {
Haga instruccin 1;
instruccin 1 instruccin 2;
instruccin 2
. }
Fin desde
Expresin de inicio
Expresin de condicin
Expresin de incremento/decremento
EISC
Universidad del Valle
Slide 19
Estructura for
Funcionamiento:
for ( inicio; condicin; incre/decremento){
instrucciones;
}
EISC
Universidad del Valle
Slide 20
Estructura for
Funcionamiento:
for ( inicio; condicin; incre/decremento){
instruciones;
}
EISC
Universidad del Valle
Slide 21
Estructura for
Funcionamiento:
for ( inicio; condicin; incre/decremento){
instruciones;
}
Ejemplos:
i++ k= k + 2 J--
EISC
Universidad del Valle
Slide 22
Estructura for
Ejemplo:
public static void listarNumeros(){
for (int i =1 ; i<=5; i++) {
JOptionPane.showMessageDialog (null, Nmero: + i );
}
}
EISC
Universidad del Valle
Slide 23
Estructura for
Ejemplo:
public static void listarNumeros(){
for (int i =1 ; i<=5; i++) {
JOptionPane.showMessageDialog (null, Nmero: + i );
}
}
EISC
Universidad del Valle
Slide 24
Estructura for
Ejemplo:
public static void listarNumeros(){
for (int i =1 ; i<=5; i++) {
JOptionPane.showMessageDialog (null, Nmero: + i );
}
}
EISC
Universidad del Valle
Slide 25
Estructura for
Ejemplo:
EISC
Universidad del Valle
Slide 26
Estructura for
Ejemplo:
public void listarNumeros(){
for(int k =18 ; k>10; k = k - 2) {
JOptionPane.showMessageDialog (null, Nmero: + k );
}
}
EISC
Universidad del Valle
Slide 27
Estructura for
Ejemplo:
public void muestraAlgo1( ){
int i=0;
for ( i=3; i<=30; i++ ) {
if ((i % 10) == 3) {
JOptionPane.showMessageDialog(null ,El valor de i es " + i);
}
}
}
EISC
Universidad del Valle
Slide 28
Estructura for
Ejemplo:
public void muestraAlgo1( ){
int i=0;
for ( i=3; i<=30; i++ ) {
if ((i % 10) == 3) {
JOptionPane.showMessageDialog(null ,El valor de I es " + i);
}
}
}
EISC
Universidad del Valle
Slide 30
Estructura for
Ejemplo:
public void muestraAlgo2( ){
for ( int j=0; j<=20; j++ ) {
if ((j % 3) == 0) {
JOptionPane.showMessageDialog(null ,El valor de J es " + j);}
else{
JOptionPane.showMessageDialog(null ,+ j+ NO es ..." );}
}
}
EISC
Universidad del Valle
Slide 31
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 );
EISC
Universidad del Valle
Slide 32
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 );
EISC
Universidad del Valle
Slide 33
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 34
Estructuras de Repeticin
Problema: 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
Proceso:??
EISC
Universidad del Valle
Slide 35
Estructuras de Repeticin
Problema: 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 36
Estructuras de Repeticin
Problema: 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
Proceso:
Desde x=1 mientras x<= numeroEstudiantes incrementando en x = x +1
Haga
leer(nombreEstudiante)
listadoEstudiantes = listadoEstudiantes + nombreEstudiante
Fin Desde
EISC
Universidad del Valle
Slide 37
Estructura for
Ejercicio 1:
Inicio
numeroEstudiantes: entero
listadoEstudiantes: texto
nombreEstudiante: texto
leer(numeroEstudiantes)
Desde x=1 mientras x<= numeroEstudiantes incrementando en x = x +1
Haga
leer(nombreEstudiante)
listadoEstudiantes = listadoEstudiantes + nombreEstudiante
Fin Desde
imprimir(listadoEstudiantes )
Fin
EISC
Universidad del Valle
Slide 38
Estructura for
Ejercicio 1:
public class Asignatura {
numEstudiantes= Integer.parseInt(JOptionPane.showInputDialog("Ingrese el
nmero de Estudiantes:"));
NOTA: Usamos la condicin n<=20 con fines acadmicos y evitar resultados con
nmeros exageradamente grandes.
EISC
Universidad del Valle
Slide 40
Estructura for Ciclos Anidados
Un ciclo anidado es un ciclo, de cualquier tipo, que contiene otro ciclo de
cualquier tipo.
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 41
Estructura for Ciclos Anidados
Inicio
factorial, n: entero
respuesta: texto
leer(n)
SI n <= 20 Entonces
Desde i=1 mientras i<=n incrementando en i = i +1
Haga
factorial=1
imprima(respuesta)
SINO
imprima(Ha digitado un numero superior a 20)
Fin
EISC
Universidad del Valle
Slide 42
Estructura for Ciclos Anidados
Inicio El ciclo principal, basado en la variable
factorial,n: entero de control i, contiene un ciclo anidado
respuesta: texto basado en la variable de control j.
leer(n)
SI n<= 20
Desde i=1 mientras i<=n incrementando en i = i +1
Haga
factorial=1
imprima(respuesta)
SINO
imprima(Ha digitado un numero superior a 20)
Fin
EISC
Universidad del Valle
Slide 43
Estructura for Ciclos Anidados
public class Factorial {
if(n<=20){
for (int i = 1; i <= n; i++){
factorial=1;
for (int j = 1; j <= i; j++){
factorial=factorial*j;
}
respuesta = 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 44
Estructura for Ciclos Anidados
Ejercicio 2:
Desarrollar un programa java que permita generar y visualizar la siguiente
figura:
EISC
Universidad del Valle
Slide 45
Estructura for Ciclos Anidados
Ejercicio 2:
crearFigura(numeroFilas : entero)
Inicio
triangulo = : texto
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
imprimir(triangulo)
Fin
EISC
Universidad del Valle
Slide 46
Estructura for Ciclos Anidados
Ejercicio 2:
EISC
Universidad del Valle
Slide 47
Estructura For Ciclos Anidados
Ejercicio 2:
EISC
Universidad del Valle
Slide 48
Estructura for - Contadores
EISC
Universidad del Valle
Slide 49
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.
EISC
Universidad del Valle
Slide 50
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;
leer(n)
Desde i=1 mientras i<=n incrementando en i = i +1
Haga
if ((i%3)==0){
contador=contador+1;
}
Fin Desde
imprimir(contador);
Fin
EISC
Universidad del Valle
Slide 51
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;
leerN()
Desde i=1 mientras i<=n incrementando en i = i +1
Haga
if (esMultiploDeTres(i)){
contador=contador+1;
}
Fin Desde
imprimir(contador)
Fin
EISC
Universidad del Valle
Slide 52
Estructura for - Contadores
Ejemplo:
public class MultiplosDeTres {
static int n;
EISC
Universidad del Valle
Slide 53
Estructura for - Contadores
Ejemplo:
public static void main (String arg[]) {
int contador=0;
leerN ();
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");
System.exit(0);
}
EISC
Universidad del Valle
Slide 54
Estructura for - Contadores
Ejemplo:
public static void main (String arg[]) { La variable contador se
int contador=0; incrementa en 1 cada vez que el
mtodo esMultiploDeTres
leerN ();
retorna true (cierto) para el
for (int i = 1; i <= n; i++){ nmero i
if (esMultiploDeTres(i)){
contador++;
}
}
JOptionPane.showMessageDialog(null,"En la serie 1 a "+ n+ " hay " + contador + " mltiplos de 3");
System.exit(0);
}
EISC
Universidad del Valle
Slide 55
Estructura for - Acumuladores
EISC
Universidad del Valle
Slide 56
Estructura For - Acumuladores
public static void calcularFactorial(int n) { La variable factorial va
int factorial = 1; acumulando el valor de la
String respuesta="";
if (n >= 0) {
multiplicacin y la variable
if (n<=20){ respuesta va acumulando las
for (int i = 1; i <= n; i++){ cadenas usadas como
factorial=1; respuesta en cada iteracin del
for (int j = 1; j <= i; j++){ ciclo principal.
factorial=factorial*j;
}
respuesta += "\n El Factorial de " + i + "es: " + factorial;
}
}
}
else {
respuesta +=Factorial de un negativo no existe;
}
}
.
EISC
Universidad del Valle
Slide 57
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.
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.
EISC
Universidad del Valle
Slide 59
Ejercicios Estructura for
5. Escribir una aplicacin que permita: generar los nmeros
enteros impares entre a y b
EISC
Universidad del Valle
Slide 60
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 Java
Mientras condicin while( condicion)
Haga {
instruccin 1 instruccin 1;
instruccin 2 instruccin 2;
.
Fin mientras }
EISC
Universidad del Valle
Slide 61
Estructura while
Debe existir una variable La variable de control se
de control del ciclo inicializa antes del ciclo
Iniciar condiciones;
La variable de control se
while (condiciones){ compara contra el valor final
// Instrucciones a repetir
La variable debe
actualizarse dentro de
cada ciclo
}
EISC
Universidad del Valle
Slide 62
Estructura while
Ejemplo:
int a=5, b=7, c=3;
while (a < b){
c = c *2;
a = a + 1;
}
EISC
Universidad del Valle
Slide 63
Estructura while
Ejemplo:
int a=5, b=7, c=3;
while (a < b){
c = c *2;
a = a + 1;
}
EISC
Universidad del Valle
Slide 64
Estructura while
Ejemplo:
EISC
Universidad del Valle
Slide 65
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.
Pseudocdigo Java
Haga do
instruccin 1 { instruccin 1;
instruccin 2 instruccin 2;
.
Mientras condicin } while(condicion);
EISC
Universidad del Valle
Slide 66
Estructura do-while
La variable de control se
Debe existir una variable inicializa antes del ciclo
de control del ciclo
Iniciar condiciones;
La variable de control
debe actualizarse
do{ dentro de cada ciclo
//Instrucciones a repetir
La variable de control
} while (condiciones) se compara contra el
valor final
EISC
Universidad del Valle
Slide 67
Estructura do-while
Ejemplo:
EISC
Universidad del Valle
Slide 68
Estructura do-while
Ejemplo:
EISC
Universidad del Valle
Slide 69
Estructura do-while
EISC
Universidad del Valle
Slide 70
Estructura do-while
EISC
Universidad del Valle
Slide 71
Ejercicio Estructura while
Ejercicio: El curso de Algoritmia se califica con dos parciales (el
primero tiene un peso de 30% y el segundo 35%), una nota de
laboratorios (25%) y una nota del trabajo final del curso (10%)
Calcular la nota definitiva para un grupo de n estudiantes
EISC
Universidad del Valle
Slide 72
Ejercicio Estructura while
Ejercicio: El curso de Algoritmia se califica con dos parciales (el
primero pesa 30%, el segundo 35%), laboratorios (25%) y trabajo
final (10%). Hallar la nota definitiva para n estudiantes.
Inicialmente calculamos la nota para un estudiante, conocidas
sus 4 calificaciones:
real calculaDefinitiva (p1, p2, lab, tra : real) {
real def = 0
def = p1*0.3+p2*0.35+ la*0.25+ta*0.1
retornar def
} // Fin del mtodo calculaDefinitiva
EISC
Universidad del Valle
Slide 73
Ejercicio Estructura while
Ejercicio: El curso de Algoritmia se califica con dos parciales (el
primero pesa 30%, el segundo 35%), laboratorios (25%) y trabajo
final (10%). Hallar la nota definitiva para n estudiantes.
Prueba de escritorio del algoritmo:
real calculaDefinitiva (p1, p2, lab, tra: real)
{
real def = 0
def = p1*0.3+p2*0.35+ la*0.25+ta*0.1;
retornar def
} // Fin del mtodo calculaDefinitiva
p1 p2 lab tra
3,2 2,4 4,4 3,0
def = 3,2
EISC
Universidad del Valle
Slide 74
Ejercicio Estructura while
Ejercicio: El curso de Algoritmia se califica con dos parciales (el
primero pesa 30%, el segundo 35%), laboratorios (25%) y trabajo
final (10%). Hallar la nota definitiva para n estudiantes.
Ahora trabajamos en el algoritmo principal:
Inicio
nomb: texto
par1, par2, lab, tar: real
nEst, j = 1: entero
Leer (nEst)
mientras (j <= nEst) haga
leer (nomb) leer(par1) leer(par2) leer(lab) leer(tar)
Imprimir(par1 + par2 + lab + tar + calculaDefinitiva(par1, par2, lab, tar))
j++
Fin mientras
Fin
EISC
Universidad del Valle
Slide 75
Ejercicio Estructura while
Ejercicio: El curso de Algoritmia se califica con dos parciales (el primero
pesa 30%, el segundo 35%), laboratorios (25%) y trabajo final (10%). Hallar
la nota definitiva para n estudiantes.
Ahora elaboramos el programa principal a partir del algoritmo, en Java :
public static void main (String [ ] arg) {
String nomb;
double par1, par2, lab, tar;
int nEst, j= 1; Inicio
nomb: texto
nEs=Integer.parseInt(JOptionPane.showInputDialog par1, par2, lab, tar: real
(Numero de Estudiantes:")); nEst, j = 1: entero
while (j < = nEst) { Leer (nEst)
nomb= JOptionPane.showInputDialog(Nombre"); mientras (j <= nEst) haga
par1= Double.parseDouble Leer (nomb) leer(par1) leer(par2) leer(lab)
(JOptionPane.showInputDialog (Parcial 1")); leer(tar);
par2, lab, tar =D.pD(JOP.sMD ()); Imprimir(par1 + par2 + lab + tar +
JOptionPane.showMessageDialog(null, calculaDefinitiva(par1, par2, lab, tar)
"\n"+nomb+\t+par1+"\t"+par2+"\t"+lab+"\t"+ j++
tar+"\t"+calculaDefinitiva (par1, par2, lab, tar) ); Fin mientras
Fin
j++;
}
}
EISC
Universidad del Valle
Slide 76
Ejercicio Estructura while
EISC
Universidad del Valle
Slide 77
Ejercicio Estructura while
void determinarEstadisticasSegunNotas()
Inicio
nota, promedioCalificaiones: real numAprobados, numReprobados : entero
leer(nota)
Mientras nota>=0 Haga
Si (nota<=5 ){
Si (nota>=3 ){
numAprobados = numAprobados +1
}
sino{
numReprobados = numReprobados + 1
}
promedioCalificaciones = promedioCalificaciones + nota
}
leer(nota)
Fin mientras
promedioCalificaciones = promedioCalificaciones / (numAprobados + numReprobados)
imprimir(numAprobados, numReprobados, promedioCalificaciones)
Fin
EISC
Universidad del Valle
Slide 78
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<=5){
if(nota>=3){
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 +
\n Aspirantes reprobados :+ numReprobados + \n Promedio notas :+
promedioCalificaciones );
EISC }
Universidad del Valle
Slide 79
Ejercicio Estructura while
determinarEstadisticasSegunNotas();
System.exit(0);
}
}
EISC
Universidad del Valle
Slide 80
Ejercicio Estructura do-while
EISC
Universidad del Valle
Slide 81
Ejercicio Estructura do-while
Ejercicio: Algoritmos del programa Curso Cinematografa.
void determinarEstadisticasSegunNotas()
Inicio
numAprobados, numReprobados : entero nota, promedioCalificaciones : real
Haga
leer(nota)
Si (nota>=0 && nota <=5){
Si (nota>=3) {
numAprobados = numsAprobados +1
}
Sino {
numReprobados = numReprobados + 1
}
promedioCalificaciones = promedioCalificaciones + nota
}
Mientras (nota>=0);
promedioCalificaciones = promedioCalificaciones / (numAprobados + numReprobados )
imprimir(numAprobados, numReprobados, promedioCalificaciones)
Fin
EISC
Universidad del Valle
Slide 82
Ejercicio Estructura do-while
public static void determinarEstadisticasSegunNotas() {
numAprobados =0; numReprobados =0; promedioCalificaciones=0.0;
double nota;
do{
nota= Double.parseDouble(JOptionPane.showInputDialog(Digite la nota:"));
if(nota>=0.0 && nota <=5){
if(nota>=3.0){
numAprobados = numAprobados +1;
} else {
numReprobados = numReprobados +1;
}
promedioCalificaciones = promedioCalificaciones + nota;
}
} while (nota>=0.0);
EISC
Universidad del Valle
Slide 83
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.
EISC
Universidad del Valle
Slide 84
Estructuras de Repeticin
Importante:
Cualquiera de los ejercicios mostrados en esta presentacin
pueden ser implementados sin la necesidad de crear mtodos
(dentro del mtodo main).
EISC
Universidad del Valle
Slide 85
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 86
Ejercicios Estructuras while y do-while
4. Suponga que el clculo 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 (ej (100*1994+32)+(100*1995+33)+),
el descuento de seguridad social en 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.
EISC
Universidad del Valle
Slide 87
Ejercicios Estructuras while y do-while
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.
EISC
Universidad del Valle
Slide 88
Ejercicio Estructura while
Ejercicio: El curso de Algoritmia se califica con dos parciales
(el primero tiene un peso de 30% y el segundo 35%), una nota
de laboratorios (25%) y una nota del trabajo final del curso
(10%).
Se pide calcular la nota definitiva, pero ahora NO se conoce el
nmero de estudiantes
EISC
Universidad del Valle
Slide 89
Ejercicio Estructura while
Ejercicio: El curso de Algoritmia se califica con dos parciales (el primero pesa
30%, el segundo 35%), laboratorios (25%) y trabajo final (10%). Hallar la nota
definitiva sin conocer el nmero de estudiantes.
Inicialmente calculamos la nota para un estudiante, conocidas sus 4
calificaciones:
real calculaDefinitiva (p1, p2, lab, tra : real) {
real def = 0
def = p1*0.3+p2*0.35+ la*0.25+ta*0.1
retornar def
} // Fin del mtodo calculaDefinitiva
EISC
Universidad del Valle
Slide 90
Ejercicio Estructura while
Ejercicio: El curso de Algoritmia se califica con dos parciales (el
primero pesa 30%, el segundo 35%), laboratorios (25%) y trabajo final
(10%). Hallar la nota definitiva sin conocer el nmero de estudiantes.
Prueba de escritorio del algoritmo:
real calculaDefinitiva (p1, p2, lab, tra: real)
{
real def = 0
def = p1*0.3+p2*0.35+ la*0.25+ta*0.1
retornar def
} // Fin del mtodo calculaDefinitiva
p1 p2 lab tra
3,2 2,4 4,4 3,0
def = 3,2
EISC
Universidad del Valle
Slide 91
Ejercicio Estructura while
Ejercicio: El curso de Algoritmia se califica con dos parciales (el
primero pesa 30%, el segundo 35%), laboratorios (25%) y trabajo
final (10%). Hallar la nota definitiva sin conocer el nmero de
estudiantes.
Ahora trabajamos en el algoritmo principal:
Inicio
nomb: texto
par1, par2, lab, tar: real
Leer (nomb) leer(par1) leer(par2) leer(lab) leer(tar)
haga
Imprimir(par1 + par2 + lab + tar + calculaDefinitiva(par1, par2, lab, tar)
leer (nomb) leer(par1) leer(par2) leer(lab) leer(tar)
mientras (nomb != Final )
Fin
EISC
Universidad del Valle
Slide 92
Ejercicio Estructura while
Ejercicio: El curso de Algoritmia se califica con dos parciales (el primero pesa
30%, el segundo 35%), laboratorios (25%) y trabajo final (10%). Hallar la nota
definitiva sin conocer el nmero de estudiantes.
Ahora elaboramos el programa principal a partir del algoritmo, en Java :
public static void main (String [ ] arg) { Inicio
String nomb; nomb: String;
float par1, par2, lab, tar; par1, par2, lab, tar: float;
DecimalFormat forma = new DecimalFormat ("0.00"); Leer (nomb) leer(par1) leer(par2)
JTextArea miArea = new JTextArea(15,30); leer(lab) leer(tar)
JScrollPane miScroll = new JScrollPane(miArea);
miArea.append(\nNomb \tParc1 \t+
haga
Parc2\tLab\tTareas\tDefin");
Imprimir(par1 + par2 + lab + tar +
nomb= JOptionPane.showInputDialog(Nombre"); calculaDefinitiva(par1, par2, lab, tar);
// Sigue instruccin do-while Leer (nomb) leer(par1) leer(par2)..
mientras (nomb != Final ) ;
Fin
EISC
Universidad del Valle
Slide 93
Ejercicio Estructura while
Ejercicio: El curso de Algoritmia se califica con dos parciales (el primero pesa
30%, el segundo 35%), laboratorios (25%) y trabajo final (10%). Hallar la nota
definitiva sin conocer el nmero de estudiantes.
Ahora elaboramos el programa principal a partir del algoritmo, en Java :
do {
par1= Double.parseDouble
(JOptionPane.showInputDialog (Parcial 1"));
par2, lab, tar =D.pD(JOP.sMD ()); Inicio
miArea.append ("\n"+nomb+\t+forma.format(par1)+ nomb: String;
"\t"+forma.format(par2)+"\t"+ par1, par2, lab, tar: float;
forma.format(lab)+"\t"+ forma.format(tar)+"\t"+ Leer (nomb) leer(par1) leer(par2)
forma.format(calculaDefinitiva leer(lab) leer(tar)
(par1, par2, lab, tar) ) );
nomb= JOptionPane.showInputDialog(Nombre");
} while (!nomb.equals("Final")); } haga
// Se realiza la impresin del rea de texto Imprimir(par1 + par2 + lab + tar +
JOptionPane.showMessageDialog(null, miScroll, calculaDefinitiva(par1, par2, lab, tar);
"Calculo de la Nota Final del Curso ", Leer (nomb) leer(par1) leer(par2)..
JOptionPane.INFORMATION_MESSAGE); mientras (nomb != Final ) ;
System.exit(0); Fin
} // fin del mtodo main
EISC
Universidad del Valle
Slide 94
Ejercicio Estructura while
Ejercicio: El curso de Algoritmia se califica con dos parciales (el primero pesa
30%, el segundo 35%), laboratorios (25%) y trabajo final (10%). Hallar la nota
definitiva sin conocer el nmero de estudiantes.
Probemos el programa:
JTextArea
Area de Texto
miArea
JScrollPane
barra de
desplazamiento
miScroll
EISC
Universidad del Valle
Slide 95
Uso del JTextArea
La instruccin JOptionPane.showMessageDialog sirve para
mostrar el conjunto formado por el rea de texto y el scroll
Scroll donde
se insert el
rea de
texto
JOptionPane.showMessageDialog(null, miScroll); (miArea)
EISC
Universidad del Valle
Slide 96
Estructura de Iteracin (do-while)
Ejercicio:
Calcular el valor del cos (X) (coseno del ngulo x), usando
la serie infinita:
EISC
Universidad del Valle
Slide 97
Estructura de Iteracin (do-while)
1. Entender el Problema
Sea x = /2
Entonces la serie ser:
EISC
Universidad del Valle
Slide 98
Ejercicios Estructuras de Iteracin
a. Generar los nmeros enteros impares entre p y q utilizando un ciclo
for
b. Generar el valor de e x para los nmeros enteros x entre p y q
utilizando un ciclo do-while
EISC
Universidad del Valle
Slide 99
Ejercicios Estructuras de Iteracin
Construya una aplicacin Java para los siguientes problemas:
x 2 x 4 x 6 x 8 x10 (1) m x 2 m
cos( x) 1 ...
2! 4! 6! 8! 10! (2m)!
x 3 x 5 x 7 x 9 x11 (1) m x 2 m 1
sen( x) x ...
3! 5! 7! 9! 11! (2m 1)!
x2 x4 x6 x8 x10 x 2m
cosh( x ) 1 ...
2! 4! 6! 8! 10! ( 2m)!
( x 1) 2 ( x 1) 3 ( x 1) 4 ( x 1) 5
ln( x) ( x 1) ...
2 3 4 5
x 3 x 5 x 7 x 9 x11 x 2 m 1
senh( x) x ...
3! 5! 7! 9! 11! (2m 1)!
x x 2 x3 x 4 x5 ( 1) n X n
e 1 x ...
2! 3! 4! 5! n!
Utilice la metodologa de solucin de problemas
EISC
Universidad del Valle
Slide 100