ALGORITMIA Y PROGRAMACIÓN ESTRUCTURAS ITERATIVAS

Documentos relacionados
Tema 4. Control de flujo. Programación Programación - Tema 4: Control de Flujo

FUNCIONES O MÉTODOS. Algoritmia y Programación

Programación Estructurada

Tema 3. Estructuras de control

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO

Universidad Nacional del Santa FACULTAD DE INGENIERIA E.A.P de Ingeniería de Sistemas e Informática NETBEANS 7.0

MATRICES ARREGLOS BIDIMENSIONALES

Palabras reservadas de C++ y C. Una palabra reservada no puede declararse como un identificador, esto haría un conflicto entre conectores y funciones.

Estructura repetitiva do while

Estructura repetitiva while

FUNDAMENTOS PARA LA CONSTRUCCIÓN DEL CÓDIGO A PARTIR DEL ALGORITMO

Andrés Donaciano Martínez Guillén -.- Fundamentos de programación -.andresmtzgwordpress.com

Estructuras de Repetición

Mientras (expresión lógica) Instrucciones a repetir mientras la expresión lógica es verdadera Fin Mientras

5. ESTRUCTURAS DE REPETICIÓN

Estructuras de Repetición: Repita Mientras.

Programación: Estructuras de Control

Estructuras de Repetición (Repita para)

ARREGLOS UNIDIMENSIONALES

Bloque II. Elementos del lenguaje de programación Java

ESTRUCTURAS DE REPETICIÓN AREA PROGRAMACIÓN 1

Estructura de un programa en Java. Tipos de datos básicos. class miprimerprograma{ // comentario, no es parte del programa

Distinguir las diferentes estructuras de repetición utilizadas en problemas con bucles: mientras, repetir mientras, para.

GUÍA DE TRABAJO Tecnología en Sistemas de Información

Unidad 3. Estructuras de control en diagrama de Flujo y pseudocódigo Tema Iteración o Repetitivas (repite - mientras) Juan Pablo Cobá Juárez Pegueros

ESTRUCTURAS DE CONTROL REPETITIVAS

Tema: Estructuras de Repetición en C# [While y Dowhile].

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Ciclos. Recordando Estructuras de Control Básicas: SELECCIÓN (condición) SECUENCIAL

TEMA 5. PROGRAMACIÓN BÁSICA EN MATLAB /OCTAVE

Sentencias de Procesamiento Iterativo: while y do-while

Tema: Estructuras de Repetición en C#.

Estructuras de Control Selección o Decisión

Estructuras Repetitivas

Tema 3. Estructuras de Datos

Estructuras de Control 3

Estructura de datos y Programación

GENERALIDADES DEL LENGUAJE C

Programcaión Básica. Secuencias de Control y Repetición. Arturo Vega González.

Es ambigua, ya que la división y la multiplicación tienen el mismo grado de precedencia, qué parte de la expresión se realiza primero?

la solución a una ecuación cuadrática solicitando al usuario los términos de dicha ecuación.

Algoritmo, Estructuras y Programación I Ing. Marglorie Colina

Fundamentos de programación

Cuales son los tipos de instrucciones que se utilizan en la programación?

Programación. Test Autoevaluación Tema 4

NOTA: Un algoritmo o programa de computadoras está estructurado si en su diseño se hace uso de los siguientes tres métodos o estructuras de control:

Tema: Estructuras de Repetición en C# [While y Dowhile]

INFORMATICA TECNICATURA DE NIVEL SUPERIOR ALGUNOS EJERCICIOS DE SELECCIÓN E ITERACION

Estructuras repetitivas o de ciclo

Elabore el análisis, diseño orientado a objetos e implementación de una aplicación de consola que resuelva las siguientes situaciones:

Universidad Autónoma del Estado de México Facultad de Medicina

TEMA 5. ESTRUCTURAS DE CONTROL: BUCLES.

Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC.

Programación n Orientada a Objetos Sentencias Java Parte I. Ing. Julio Ernesto Carreño o Vargas MsC.

Introducción a C++ Algoritmos y Estructuras de datos II Dra. Carmen Mezura Godoy. Febrero 2009

Introducción al lenguaje de programación java

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.

Dobles: Es el caso de la instrucción if-else (punto 1.2).

Formatos para prácticas de laboratorio

Unidad 3. Estructuras de control en diagrama de Flujo y pseudocódigo Tema Iteración o Repetitivas (mientras)

Formato para prácticas de laboratorio

Estructuras de Repetición (Hacer-Mientras)

DISEÑO ESTRUCTURADO. Herramientas de representación de algoritmos

Autor: Ing. Nahuel González INTRODUCCIÓN A C. Clase 1

Capítulo 4. Control de flujo. Continuar

INTRODUCCIÓN A LA PROGRAMACIÓN. 1º Bachillerato

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO

Fundamentos de Programación

Algoritmos y Programación Parcial Nro. 1 Ejemplo de Solución

ESTRUCTURAS REPETITIVAS EN PHP

1. Leer dos números A y B e intercambiar sus valores sin utilizar variables auxiliares.

ESTRUCTURAS REPETITIVAS

Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación Algoritmia y Programación

Estructuras de control selectivas

República Bolivariana de Venezuela Aldea Universitaria Liceo Fray Pedro de Agreda Trayecto II Desarrollo de Software

1. (1 punto) Dado el siguiente fragmento en Java:

TEMA 4: Estructuras de Control

abril de 2017 Desarrollo de aplicaciones en Java Tipos de datos primitivos Tipos de datos Elementos de aplicaciones simples

Datos Elementales y formato de un programa en Java

Programación en Lenguaje C

Tema: Estructuras de Repetición en C#.

Operadores de comparación

Examen de Introducción al Software (Ingeniería Informática)

Práctico 2: Funciones y Punteros en C La teoría general para este práctico puede consultarse en los Capítulos 4 y 5 Notas de Clase

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System.

Lección 3 Sentencias de control

Operadores de comparación

GUIA DE EJERCICICIOS. 1.- Escribir un algoritmo que lea cuatro números e indique cual es el mayor

Tema 2. El lenguaje JAVA

Tema 3. Estructuras de control y programación estructurada

Transcripción:

ALGORITMIA Y PROGRAMACIÓN ESTRUCTURAS ITERATIVAS

Contenido Estructuras de Repetición For Ciclos anidados Contadores y acumuladores While Do-while Ejercicios Slide 2

Estructuras de Repetición Ejercicio: Suponga que debe listar los números del 1 a 100 en una aplicación Java. Slide 3

Estructuras de Repetición Ejercicio: Suponga que debe listar los números del 1 a 100 en una aplicación Java. Se podría hacer con el siguiente método: public static void listarnumeros() { JOptionPane.showMessageDialog (null, El número es: + 1); JOptionPane.showMessageDialog (null, El número es: + 2); JOptionPane.showMessageDialog (null, El número es: + 3); JOptionPane.showMessageDialog (null, El número es: + 4); JOptionPane.showMessageDialog( null, El número es: + 100); Y si nos piden listar del 1 al 5000? Slide 4

Estructuras de Repetición Son un grupo de instrucciones que permite la ejecución repetitiva de otro grupo de instrucciones. Hay una variable asociada al ciclo o estructura de repetición que controla el número de veces que se repetirán las instrucciones. Existen 3 estructuras de repetición: for while do-while Slide 5

Estructuras de Repetición Problema: Desarrollar una aplicación Java que solicite un número y liste los números desde el 1 hasta el número solicitado. 1. Análisis del problema Entradas:?? Salidas:?? Proceso:?? Slide 6

Estructuras de Repetición Problema: Desarrollar una aplicación Java que solicite un número y liste los números desde el 1 hasta el número solicitado. 1. Análisis del problema Entradas: n Salidas:?? Proceso:?? Slide 7

Estructuras de Repetición Problema: Desarrollar una aplicación Java que solicite un número y liste los números desde el 1 hasta el número solicitado. 1. Análisis del problema Entradas: n Salidas: imprimir (número 1) imprimir (número 2).. imprimir (número n) Proceso:?? Slide 8

Estructuras de Repetición Problema: Desarrollar una aplicación Java que solicite un número y liste los números desde el 1 hasta el número solicitado. 1. Análisis del problema Entradas: n Salidas: imprimir (número 1) imprimir (número 2).. imprimir (número n) Proceso: desde 1 hasta n Slide 9

Estructuras de Repetición Problema: Desarrollar una aplicación Java que solicite un número y liste los números desde el 1 hasta el número solicitado. 1. Análisis del problema Entradas: n Salidas: imprimir (número 1) imprimir (número 2).. imprimir (número n) Proceso: desde 1 hasta n Imprimir 1,2,3,...n Slide 10

Estructuras de Repetición Problema: Desarrollar una aplicación Java que solicite un número y liste los números desde el 1 hasta el número solicitado. 2. Diseñar el algoritmo y escribirlo en pseudocódigo Inicio n: entero leer (n)??? Fin Slide 11

Estructuras de Repetición Problema: Desarrollar una aplicación Java que solicite un número y liste los números desde el 1 hasta el número solicitado. 2. Diseñar el algoritmo y escribirlo en pseudocódigo Inicio n: entero i: entero (Variable de control) leer (n) Desde i = 1 mientras i <= n incrementando i en 1 Imprimir (i) fin_desde Fin Slide 12

Estructuras de Repetición Problema: Desarrollar una aplicación Java que solicite un número y liste los números desde el 1 hasta el número solicitado. 3. Codificar el algoritmo usando algún lenguaje de programación pseudocódigo Java Desde i = 1; Mientras i <= n; incrementar i en 1 Imprimir (i) Fin_desde Slide 13

Estructuras de Repetición Problema: Desarrollar una aplicación Java que solicite un número y liste los números desde el 1 hasta el número solicitado. 3. Codificar el algoritmo usando algún lenguaje de programación pseudocódigo Java Desde i = 1; Mientras i <= n; incrementar i en 1 Imprimir (i) Fin_desde Estructura De Repetición for Slide 14

Estructuras de Repetición Se usa para repetir una instrucción o un conjunto de instrucciones, Desde un inicio, Mientras una condición se cumpla y con un incremento o decremento. Un ciclo for tiene tres partes: Expresión de inicio, Expresión de condición y Expresión de incremento/decremento. Desde i = 1; Mientras i <= n; incrementar i en 1 Imprimir (i) Fin_desde Slide 15

Estructuras de Repetición Estructura. de la instrucción for Se debe declarar la variable de control Inicializar la variable de control probar el valor final de la variable de control para continuar el ciclo Incremento o decremento de la variable de control for (inicio; prueba; actualización) { Repetir //Instrucciones a Slide 16

Estructura For Pseudocódigo Desde inicio mientras condición incrementando en incremento Haga instrucción 1 instrucción 2. Fin desde Java for ( inicio; condición; incre/decremento) { instrucción 1; instrucción 2; Expresión de inicio Expresión de condición (o prueba) Expresión de incremento/decremento Slide 17

Estructura for Pseudocódigo Desde inicio mientras condición incrementando en incremento Haga instrucción 1 instrucción 2. Fin desde Java for( inicio; condición; incre/decremento) { instrucción 1; instrucción 2; Expresión de inicio Expresión de condición Expresión de incremento/decremento (o prueba) Slide 18

Estructura for Pseudocódigo Desde inicio mientras condición incrementando en incremento Haga instrucción 1 instrucción 2. Fin desde Java for ( inicio; condición; incre/decremento) { instrucción 1; instrucción 2; Expresión de inicio Expresión de condición Expresión de incremento/decremento Slide 19

Estructura for Funcionamiento: for ( inicio; condición; incre/decremento){ instrucciones; Expresión de Inicio: Es una expresión 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 condición que determina el límite de repeticiones a realizar. Ejemplos: i=1 k=m j=(y*8) i, k, j en cada caso será la variable de control del ciclo. Slide 20

Estructura for Funcionamiento: for ( inicio; condición; incre/decremento){ instruciones; Expresión de Condición: Es una condición que se evalúa antes de realizar el bloque de instrucciones en el ciclo. Esta prueba condiciona la cantidad de veces que se va a realizar el ciclo, para determinar cuando se termina su ejecución. Ejemplos: i<=5 k>total j!=(z%7) i, k, j en cada caso será la variable de control del ciclo. Slide 21

Estructura for Funcionamiento: for ( inicio; condición; incre/decremento){ instruciones; Expresión de Incre/Decremento: Es una expresión usada para incrementar o decrementar (actualizar) el valor de la variable de control del ciclo. Ejemplos: i++ k= k + 2 J-- Slide 22

Estructura for Ejemplo: public static void listarnumeros(){ for (int i =1 ; i<=5; i++) { JOptionPane.showMessageDialog (null, Número: + i ); Slide 23

Estructura for Ejemplo: public static void listarnumeros(){ for (int i =1 ; i<=5; i++) { JOptionPane.showMessageDialog (null, Número: + i ); Valor de i Número Iteración Salida 1 1 Número 1 2 2 Número 2 3 3 Número 3 4 4 Número 4 5 5 Número 5 6 Se interrumpe Slide 24

Estructura for Ejemplo: public static void listarnumeros(){ for (int i =1 ; i<=5; i++) { JOptionPane.showMessageDialog (null, Número: + i ); Valor de i Número Iteración Salida 1 1 Número 1 2 2 Número 2 3 3 Número 3 4 4 Número 4 5 5 Número 5 6 Se interrumpe El número de iteraciones indica la cantidad de veces que se repite la(s) instrucción(es) que estén en el cuerpo del ciclo. En el ejemplo, la instrucción: JOptionPane.showMessageDialog( ) se ejecuta 5 veces. Slide 25

Estructura for Ejemplo: public static void listarnumeros(){ for (int k =18 ; k>10; k = k - 2) { JOptionPane.showMessageDialog (null, Número: + k ); Cuantas veces se ejecutará la instrucción: JOptionPane.showMessageDialog (null, Número: + k ); Slide 26

Estructura for Ejemplo: public void listarnumeros(){ for(int k =18 ; k>10; k = k - 2) { JOptionPane.showMessageDialog (null, Número: + k ); Valor de i Número Iteración Salida 18 1 Número 18 16 2 Número 16 14 3 Número 14 12 4 Número 12 10 Se interrumpe La instrucción: JOptionPane.showMessageDialog ( ) se ejecuta 4 veces 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); Cuantas veces se ejecutará la instrucción: JOptionPane.showMessageDialog(null, El valor de i es " + i); 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); Valor de i Nro Iteración Salida 3 1 El valor de I es 3 4,5,6,7,8,9,10, 11,12,13 14,15,16,17,18, 19,20,21,22,23 2,3,4,5,6,7,8,9, 10,11 12,13,14,15,16, 17,18,19,20,21 El valor de I es 13 El valor de I es 23 La instrucción: JOptionPane.showMessageDialog ( ) se ejecuta 3 veces 24,25,26,27,28, 29,30 22,23,24,25,26, 27,28 Se interrumpe Slide 29

Estructura for Ejemplo: public void muestraalgo2( ){ for ( int j=0; j<=100; j++ ) { if ((j % 3) == 0) { JOptionPane.showMessageDialog(null, El valor de J es " + j); else{ JOptionPane.showMessageDialog(null,+ j+ NO es..." ); Que debo completar en el mensaje NO es...? JOptionPane.showMessageDialog(null,+ j+ NO es..." ); 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..." ); Slide 31

Estructura for Una vez el ciclo se interrumpe se ejecuta la instrucción ubicada después 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 ); Slide 32

Estructura for Una vez el ciclo se interrumpe se ejecuta la instrucción ubicada después 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 instrucción a++ (recuerde que a++ es lo mismo que a=a+1). Luego se muestra en pantalla el valor de a, es decir, 3. Slide 33

Estructura for Ejercicio 1: Desarrollar un programa Java que pregunte al usuario el número de estudiantes de un curso, luego pregunte el nombre de cada uno de ellos. Finalmente, se debe mostrar un listado con todos los estudiantes. Slide 34

Estructuras de Repetición Problema: Desarrollar un programa Java que pregunte al usuario el número de estudiantes de un curso, luego pregunte el nombre de cada uno de ellos. Finalmente, se debe mostrar un listado con todos los estudiantes 1. Análisis del problema Entradas: numeroestudiantes, nombreestudiante, Salidas: listadoestudiantes Proceso:?? Slide 35

Estructuras de Repetición Problema: Desarrollar un programa Java que pregunte al usuario el número de estudiantes de un curso, luego pregunte el nombre de cada uno de ellos. Finalmente, se debe mostrar un listado con todos los estudiantes 1. Análisis del problema Entradas: numeroestudiantes, nombreestudiante, Salidas: listadoestudiantes Proceso: Desde x=1 mientras x<= numeroestudiantes incrementando en x = x +1 Haga leer(nombreestudiante) listadoestudiantes = listadoestudiantes + nombreestudiante Fin Desde Slide 36

Estructura for Ejercicio 1: Inicio numeroestudiantes: entero listadoestudiantes: texto nombreestudiante: texto Fin leer(numeroestudiantes) Desde x=1 mientras x<= numeroestudiantes incrementando en x = x +1 Haga leer(nombreestudiante) listadoestudiantes = listadoestudiantes + nombreestudiante Fin Desde imprimir(listadoestudiantes ) Slide 37

Estructura for Ejercicio 1: public class Asignatura { public static void main (String arg[]) { int numestudiantes; String listadoestudiantes= ; String nombreestudiante; numestudiantes= Integer.parseInt(JOptionPane.showInputDialog("Ingrese el número de Estudiantes:")); for (int x = 1; x <= numestudiantes; x++){ nombreestudiante = JOptionPane.showInputDialog( Nombre No: +x); listadoestudiantes = listadoestudiantes + "\nestudiante No: "+ x + " : "+ nombreestudiante; JOptionPane.showMessageDialog(null, listadoestudiantes ); Slide 38

Estructura for Ciclos Anidados Ejemplo: Suponga que se desea crear un programa en Java que permita imprimir en pantalla el factorial de cada número existente en la serie 1 a n, siendo n un número menor a 20 el cual es digitado por un usuario. Desde i=1 mientras i<=n incrementando en i = i +1 Haga Fin Desde Desde j=1 mientras j<=i incrementando en j = j +1 Haga instrucción 1 instrucción 2 Fin Desde instrucción 3 instrucción 4 NOTA: Usamos la condición n<=20 con fines académicos y evitar resultados con números exageradamente grandes. Slide 39

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 n i. Por ejemplo: si el usuario digita el número 5 el sistema debe recorrer la serie 1 a 5, y para cada número 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 número n es la multiplicación de todos los números 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. Slide 40

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 Desde j=1 mientras j<=i incrementando en j = j +1 Haga factorial = factorial*j Fin Desde Fin Desde respuesta = respuesta + El factorial de + j + es: factorial; Fin imprima(respuesta) SINO imprima( Ha digitado un numero superior a 20 ) Slide 41

Estructura for Ciclos Anidados Inicio factorial,n: entero respuesta: texto leer(n) SI n<= 20 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 Fin Fin Desde respuesta = respuesta + El factorial de + j + es: factorial; imprima(respuesta) SINO imprima( Ha digitado un numero superior a 20 ) Slide 42

Estructura for Ciclos Anidados public class Factorial { public static void main(string arg[]){ int n, factorial; String respuesta = ""; n = Integer.parseInt(JOptionPane.showInputDialog("Ingrese n:")); 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 número superior a 20"); Slide 43

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 número de líneas que debe tener la figura (En el ejemplo hay 7 filas). Slide 44

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 Slide 45

Estructura for Ciclos Anidados Ejercicio 2: Slide 46

Estructura For Ciclos Anidados Ejercicio 2: Slide 47

Estructura for - Contadores Los contadores son variables utilizadas para realizar, como su nombre lo indica, conteos de la cantidad de veces que se cumple una situación específica. 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. Slide 48

Estructura for - Contadores Ejemplo: Suponga que se desea crear un programa en Java que permita imprimir en pantalla la cantidad de números múltiplos de 3 que se encuentran en la serie 1 a n, siendo n un número digitado por un usuario. Slide 49

Estructura for - Contadores Ejemplo: Suponga que se desea crear un programa en Java que permita imprimir en pantalla la cantidad de números múltiplos de 3 que se encuentran en la serie 1 a n, siendo n un número 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 Slide 50

Estructura for - Contadores Ejemplo: Suponga que se desea crear un programa en Java que permita imprimir en pantalla la cantidad de números múltiplos de 3 que se encuentran en la serie 1 a n, siendo n un número 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 Slide 51

Estructura for - Contadores Ejemplo: public class MultiplosDeTres { static int n; public static void leern() { n = Integer.parseInt(JOptionPane.showInputDialog("Ingrese n:")); public static boolean esmultiplodetres(int numero) { if(numero%3==0){ return true; else{ return false; Slide 52

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 + " múltiplos de 3"); System.exit(0); 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++; La variable contador se incrementa en 1 cada vez que el método esmultiplodetres retorna true (cierto) para el número i JOptionPane.showMessageDialog(null,"En la serie 1 a "+ n+ " hay " + contador + " múltiplos de 3"); System.exit(0); Slide 54

Estructura for - Acumuladores Los acumuladores son variables utilizadas para ir almacenando (acumulando) el resultado de una operación. Pueden ser de tipo numérico (entero o real) en las cuales acumula el resultado de operaciones matemáticas, 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 actúan como acumuladores numéricos y de cadena respectivamente. Slide 55

Estructura For - Acumuladores public static void calcularfactorial(int n) { int factorial = 1; String respuesta=""; if (n >= 0) { 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; else { respuesta += Factorial de un negativo no existe ;. La variable factorial va acumulando el valor de la multiplicación y la variable respuesta va acumulando las cadenas usadas como respuesta en cada iteración del ciclo principal. Slide 56

Ejercicios Estructura for 1. Diseñe un algoritmo que permita detectar los números pares existentes en una serie de 1 a n, siendo n un número digitado por un usuario. 2. Diseñe un algoritmo que permita obtener la suma de todos los números enteros existentes en una serie de 1 a n y la cantidad de números pares encontrados, siendo n un número digitado por un usuario. Use un ciclo for en su diseño. 3. Suponga que se desea saber la nota promedio del curso de algoritmia, diseñe un algoritmo que solicite la cantidad de estudiantes del curso y el promedio de cada estudiante. NOTA: Para cada ejercicio realice su respectiva implementación en Java Slide 57

Ejercicios Estructura for 4. Suponga que el calculo de la pensión de una persona se realiza de la siguiente manera: por cada año de servicio se paga $80 si el empleado ingresó en o después de 1995 y $100 si ingresó antes, dicho valor (80 o 100) se multiplica por el número de cada año más la edad que tenía en el año (ej. (100*1994+32)+(100*1995+33)+ ), el descuento de seguridad social salud es del 12%. El programa debe recibir el año de ingreso y la edad del empleado en el año 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 tenía 44 años en dicho año, 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 implementación en Java. Slide 58

Ejercicios Estructura for 5. Escribir una aplicación que permita: generar los números enteros impares entre a y b 6. Crear una aplicación que permita: Generar los números pares entre p y q Generar los primeros z múltiplos de 3 Generar la suma de m primeros múltiplos de 7 más los n primeros múltiplos de 9 NOTA: Realice la respectiva implementación en Java. Slide 59

Estructura while Evalúa una condición dada para determinar si repite un conjunto de instrucciones. Si la condición es verdadera se repiten las instrucciones. Observe que el primer paso es validar la condición y luego se ejecutan las instrucciones (en caso de que la condición cumpla). Pseudocódigo Mientras condición Haga instrucción 1 instrucción 2. Fin mientras Java while( condicion) { instrucción 1; instrucción 2; Slide 60

Estructura while Debe existir una variable de control del ciclo La variable de control se inicializa antes del ciclo Iniciar condiciones; ( condiciones ) while La variable de control se compara contra el valor final // Instrucciones a repetir La variable debe actualizarse dentro de cada ciclo Slide 61

Estructura while Ejemplo: int a=5, b=7, c=3; while (a < b){ c = c *2; a = a + 1; Slide 62

Estructura while Ejemplo: int a=5, b=7, c=3; while (a < b){ c = c *2; a = a + 1; Número Iteración Valor variable a Valor variable c 0 5 3 1 6 6 2 7 12 Se interrumpe Slide 63

Estructura while Ejemplo: int a=9, b=7, c=3; while (a < b){ c = c *2; a = a + 1; Número Iteración Valor variable a Valor variable c 0 9 3 Se interrumpe Si la primera vez la condición del ciclo while no se cumple, no se ejecuta ninguna instrucción. Slide 64

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 validación. Ciclo do-while: Realiza un bloque de instrucciones y después evalúa la condición para determinar si repite el bloque o no. Pseudocódigo Haga instrucción 1 instrucción 2. Mientras condición Java do { instrucción 1; instrucción 2; while(condicion); Slide 65

Estructura do-while Debe existir una variable de control del ciclo La variable de control se inicializa antes del ciclo Iniciar condiciones; do La variable de control debe actualizarse dentro de cada ciclo //Instrucciones a repetir while (condiciones) La variable de control se compara contra el valor final Slide 66

Estructura do-while Ejemplo: int a=5, b=7, c=3; do { c = c *2; a = a + 1; while (a<b); Slide 67

Estructura do-while Ejemplo: int a=5, b=7, c=3; do { c = c *2; a = a + 1; while (a<b); Número Iteración Valor variable a 0 5 3 1 6 6 2 7 12 Se interrumpe Valor variable c Slide 68

Estructura do-while Observe que la primera vez se ejecutan las instrucciones aunque la condición del ciclo no sea válida. Por ejemplo: int a=9, b=7, c=3; do { c = c *2; a = a + 1; while (a < b); Slide 69

Estructura do-while Observe que la primera vez se ejecutan las instrucciones aunque la condición del ciclo no sea válida. Por ejemplo: int a=9, b=7, c=3; do { c = c *2; a = a + 1; while (a < b); Número Iteración Valor variable a Valor variable c 0 9 3 1 10 6 Se interrumpe Slide 70

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 Slide 71

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 método calculadefinitiva 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. 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 método calculadefinitiva p1 p2 lab tra 3,2 2,4 4,4 3,0 def = 3,2 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. 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 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 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; nes=integer.parseint(joptionpane.showinputdialog ( Numero de Estudiantes:")); while (j < = nest) { nomb= JOptionPane.showInputDialog( Nombre"); par1= Double.parseDouble (JOptionPane.showInputDialog ( Parcial 1")); par2, lab, tar =D.pD(JOP.sMD ( )); JOptionPane.showMessageDialog(null, "\n"+nomb+ \t +par1+"\t"+par2+"\t"+lab+"\t"+ tar+"\t"+calculadefinitiva (par1, par2, lab, tar) ); j++; 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 Slide 75

Ejercicio Estructura while Ejercicio: Para ingresar al curso de Producción Cinematográfica 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 cuántos aspirantes aprobaron el examen, cuántos lo perdieron (nota menor que 3.0) y cuál fue el promedio de todo el grupo de aspirantes. No sabemos cuántos aspirantes son, pero sabemos que cuando se quiera indicar que se finalizó el ingreso de notas se digitará un valor negativo. Slide 76

Ejercicio Estructura while void determinarestadisticassegunnotas() Inicio nota, promediocalificaiones: real numaprobados, numreprobados : entero leer(nota) Mientras nota>=0 Haga 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 Slide 77

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 + \n Aspirantes reprobados : + numreprobados + \n Promedio notas : + promediocalificaciones ); Slide 78

Ejercicio Estructura while public static void main (String arg[]) { determinarestadisticassegunnotas(); System.exit(0); Slide 79

Ejercicio Estructura do-while Ejercicio: Realice el ejercicio anterior (sobre el calculo de estadísticas para el ingreso al curso de Producción Cinematográfica) utilizando el ciclo do-while. Slide 80

Ejercicio Estructura do-while Ejercicio: Algoritmos del programa Curso Cinematografía. void determinarestadisticassegunnotas() Inicio numaprobados, numreprobados : entero nota, promediocalificaciones : real Haga leer(nota) 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 Slide 81

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){ if(nota>=3.0){ numaprobados = numaprobados +1; else { numreprobados = numreprobados +1; promediocalificaciones = promediocalificaciones + nota; while (nota>=0.0); Slide 82

Estructuras de Repetición Importante: En cualquiera de las estructuras de repetición implementadas en Java, se puede detener el ciclo usando la instrucción break o detener una iteración utilizando la instrucción continue. Normalmente se usan las instrucciones break o continue cuando se ha cumplido una condición 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 iteración pasando a la siguiente. Slide 83

Estructuras de Repetición Importante: Cualquiera de los ejercicios mostrados en esta presentación pueden ser implementados sin la necesidad de crear métodos (dentro del método main). Slide 84

Ejercicios Estructuras while y do-while 1. Diseñe un algoritmo que reciba números digitados por el usuario y los imprima en pantalla, el programa debe terminar cuando el usuario digite un número negativo. 2. Diseñe un algoritmo que reciba números digitados por el usuario y al final imprima la suma de los números digitados, el programa debe terminar cuando el usuario digite 0 (cero). 3. Cree un algoritmo que permita digitar palabras y al final imprima la concatenación de las palabras digitadas, el programa debe terminar cuando el usuario digite la palabra terminar. NOTA: Para cada ejercicio realice su respectiva implementación en Java, use la estructura que le parezca más conveniente (while o do-while) Slide 85

Ejercicios Estructuras while y do-while 4. Suponga que el cálculo de la pensión de una persona se realiza de la siguiente manera: por cada año de servicio se paga $80 si el empleado ingresó en o después de 1995 y $100 si ingresó antes, dicho valor (80 o 100) se multiplica por el número de cada año más la edad que tenía en el año (ej (100*1994+32)+(100*1995+33)+ ), el descuento de seguridad social en salud es del 12%. El programa debe recibir el año de ingreso y la edad del empleado en el año 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 tenía 44 años en dicho año, 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 implementación en Java. Slide 86

Ejercicios Estructuras while y do-while Suponga que el administrador de una tienda desea calcular el total de ventas del día, 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 día y el valor global cobrado por concepto del IVA. El administrador puede registrar productos hasta que él decida que ha terminado para lo cual digita un dato negativo. NOTA: Realice la respectiva implementación en Java. Slide 87

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 número de estudiantes Slide 88

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 número 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 método calculadefinitiva 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 número 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 método calculadefinitiva p1 p2 lab tra 3,2 2,4 4,4 3,0 def = 3,2 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 número 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 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 número de estudiantes. Ahora elaboramos el programa principal a partir del algoritmo, en Java : public static void main (String [ ] arg) { String nomb; float par1, par2, lab, tar; DecimalFormat forma = new DecimalFormat ("0.00"); JTextArea miarea = new JTextArea(15,30); JScrollPane miscroll = new JScrollPane(miArea); miarea.append( \nnomb \tparc1 \t + Parc2\tLab\tTareas\tDefin"); nomb= JOptionPane.showInputDialog( Nombre"); // Sigue instrucción do-while Inicio nomb: String; par1, par2, lab, tar: float; 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).. mientras (nomb!= Final ) ; Fin 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 número 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 ( )); miarea.append ("\n"+nomb+ \t +forma.format(par1)+ "\t"+forma.format(par2)+"\t"+ forma.format(lab)+"\t"+ forma.format(tar)+"\t"+ forma.format(calculadefinitiva (par1, par2, lab, tar) ) ); nomb= JOptionPane.showInputDialog( Nombre"); while (!nomb.equals("final")); // Se realiza la impresión del área de texto JOptionPane.showMessageDialog(null, miscroll, "Calculo de la Nota Final del Curso ", JOptionPane.INFORMATION_MESSAGE); System.exit(0); // fin del método main Inicio nomb: String; par1, par2, lab, tar: float; 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).. mientras (nomb!= Final ) ; Fin 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 número de estudiantes. Probemos el programa: JTextArea Area de Texto miarea JScrollPane barra de desplazamiento miscroll Slide 94

Uso del JTextArea La instrucción JOptionPane.showMessageDialog sirve para mostrar el conjunto formado por el área de texto y el scroll JOptionPane.showMessageDialog(null, miscroll); Scroll donde se insertó el área de texto (miarea) JOptionPane.showMessageDialog(null, miscroll,"calculo de Nota Final del Curso ", JOptionPane.INFORMATION_MESSAGE); Ventana de dialogo con el título "Calculo de Nota Final del Curso " Slide 95

Estructura de Iteración (do-while) Ejercicio: Calcular el valor del cos (X) (coseno del ángulo x), usando la serie infinita: Imprima el valor del cos (Π/2) con 8 dígitos de precisión Slide 96

Estructura de Iteración (do-while) 1. Entender el Problema Sea x = π/2 Entonces la serie será: Si tomamos 10 términos de la serie, tenemos: cos(π / 2 )= 11,23370055013617 + 0,253669507901048 0,020863480763353 + 0,000919260274839426 0,0000252020423730606 +... + -0,000000000000529440020073462 Para un valor final de la suma igual a 0.00 Slide 97

Ejercicios Estructuras de Iteración a. Generar los números enteros impares entre p y q utilizando un ciclo for b. Generar el valor de e x para los números enteros x entre p y q utilizando un ciclo do-while Utilice la metodología de solución de problemas Muestre los resultados en un JTextArea Utilice la clase DecimalFormat para mostrar los resultados reales con 8 decimales. Slide 98

Slide 99 Ejercicios Estructuras de Iteración Construya una aplicación Java para los siguientes problemas: Utilice la metodología de solución de problemas )! (2 1) (... 10! 8! 6! 4! 2! 1 ) cos( 2 10 8 6 4 2 m x x x x x x x m m 1)! (2 1) (... 11! 9! 7! 5! 3! ) ( 1 2 11 9 7 5 3 m x x x x x x x x sen m m )! (2... 10! 8! 6! 4! 2! 1 ) cosh( 2 10 8 6 4 2 m x x x x x x x m 1)! (2... 11! 9! 7! 5! 3! ) ( 1 2 11 9 7 5 3 m x x x x x x x x senh m! 1) (... 5! 4! 3! 2! 1 5 4 3 2 n X x x x x x e n n x... 5 1) ( 4 1) ( 3 1) ( 2 1) ( 1) ( ) ln( 5 4 3 2 x x x x x x