CICLOS por Profesora Lillian Bras

Slides:



Advertisements
Presentaciones similares
Sesión 3 Estructuras Repetitivas
Advertisements

Estructuras Repetitivas para
VBA – Iteración Indefinida
Estructuras de Repetición Algoritmos
CICLOS EN C – PARTE 2.
Seminario de Actualización - Excel Avanzado y Macros
Estructuras de Control
Bucle for.
Estructuras de Control
Introducción a la Computación
Estructuras de Repetición
PARADIGMA Es un esquema de pensamiento que nos lleva a concebir las cosas de una manera determinada. el término paradigma puede indicar el concepto de esquema.
Estructuras de repetición
Fundamentos de Programación
CORPOCIDES Ing. Emilio Medina Baquero

 Definición: Estas estructuras, también llamadas bifurcativas condicionales, dividen o ramifican el flujo del programa según una determinada condición.
Son aquellas que van a ejecutar un número determinado de veces una instrucción o un conjunto de ellas. Un BUCLE O CICLO son las instrucciones a repetirse.
ESTRUCTURAS REPETITIVAS CICLOS O BUCLES EL MIENTRAS Y EL PARA
Estructuras de Control de Repetición
ESTRUCTURAS ITERATIVAS
Estructuras de Control Iterativas
Control de flujo: Bucles
ESTRUCTURAS DO-WHILE Y FOR.
Capítulo 1 “Elementos de Programación”
Conversión cadena a número
Estructuras de Repetición (Repita para)
COMPUTACION 2009 C lase 4 Programa PASCAL SENTENCIAS DATOS Expresiones Tipos Declaración de variables Declaración de variables Asignación Entrada/Salida.
Chapter 6 Looping Dale/Weems/Headington. 2 Chapter 6 Topics l While Statement Syntax l Count-Controlled Loops l Event-Controlled Loops l Using the End-of-File.
Parte 4: Estructura FOR Basada en diapositivas de Prof. Elizabeth Vidal Duarte.
Estructura de Control Repeticiones(Loops) Ejercicios
COMP 250.  Ejemplo:  Suponer que se necesita codificar un programa donde se muestre como resultado el string “Bienvenidos al mundo de JAVA!!!” cien.

Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 18/08/2006.
REPETITIVAS (CÍCLICAS)
While En este ciclo el cuerpo de instrucciones se ejecuta mientras una condición permanezca como verdadera en el momento en que la condición se convierte.
Introducción a la Programación “El lenguaje C” Semestre de Otoño 2006 Claudio Gutiérrez-Soto.
Introducción a la Programación “El lenguaje C” Manuel Crisosto M., Claudio Gutiérrez S., Christian Vidal C.
Tema ‧ Comando - while Repeticiones. Comando while ‧ Un ciclo es cualquier construcción de programa que repite una sentencia ó secuencia de sentencias.
COMPUTO III Ing. Jimmy Ojeda Arnica.
Sesión 13: Python (4) – Estructura Repetición. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática.
Estructuras de Control en Visual Basic.net
Se pueden incluir comentarios en cualquier parte de un programa pero deben delimitarse con llaves o con paréntesis y asterisco:
Otrogar el prestamo si El pedido es menor que 100 Para importes mayores de 100 se necesita que el cliente sea mayor de 18 y tenga trabajo Para importes.
ESTRUCTURAS REPETITIVAS
Prueba de escritorio Computación y Sistemas de Información.
Estructuras de Decisión
Estructuras de Control
CICLOS EN C – PARTE 3.
ESTRUCTURA DE CONTROL REPETITIVAS: WHILE, DO… WHILE
Estructura de Repetición en Visual Basic
PROGRAMACIÓN Grupo de Modelamiento de Sistemas
Page 1 Ciclo de Estructuras de Repetición Carlos Bautista García Unidad VI PROG 2270L.
Ciclos en Visual Basic Yaimira Pérez. Los ciclos son estructuras de repetición que ejecutan una o varias instrucciones durante la cantidad de veces que.
Tipos de ciclos en Visual Basic. Dinámicos y fijos. 6.1 Foro. Wuilson Valencia, Desarrollo de aplicaciones I y Laboratorio. 1.
Jose A Chirino. Unidad 6. Ciclos condicionales dinámicos: Do-While Do-Until.
Prof. Jonathan Silva Ingeniería Civil – Informática I Ingeniería Civil Informática I Clase 6 – Bucles.
CICLOS ESTRUCTURA DE REPETICIÓN PROG 2270LGUILLERMO SOLLA.
Ciclos de Visual Basic Isis Cruz Martínez Clase : Applications Development 1 Sección: NCBTO c-Prog ONL Prof: Damaris Martínez.
Ciclos de Repeticion Yoel Gutierrez Unidad 6. Contenido DefinicionExplicacionEjemplosReferencias.
 Do- While y Do- Until Las instrucciones Do-while y Do-until permiten repetir un bloque de código mientras cierta condición sea True o hasta que cierta.
DO - WHILE Trejo Mendoza Armando Isacc Díaz Jiménez Christian Alexis César Cerón Cortez Juárez reyes Jason Elihu Hernández Mera Rubén Hernández López José.
Ciclos condicionales y exactos Estructura de control de ciclos
Ciclos Condicionales Dinámicos Luis Beato National University College.
Estructuras Repetitivas Consideraciones. Estructuras Repetitivas  Son aquellas que van a ejecutar un número determinado de veces una instrucción o un.
Materia: Informática II Semestre: 2 Mtra. Ericka Yazmin Medina Rodríguez Campus: Tonalá Competencia: Manejo de la información y aprendizaje permanente.
Luis R. Martínez Curso (PROG ONL) National University College Online Profesora Rebeca Acevedo Rivera 11 de enero de 2014.
Ciclos en Visual Basic Rebeca M. Colón Crespo. Introducción Visual Basic es una aplicación y un lenguaje en programación. Este programa fue originado.
Introduction a la Programacion
Transcripción de la presentación:

CICLOS por Profesora Lillian Bras

Ciclos Un ciclo es una estructura de control para repetir una o más instrucciones. Se le llama cuerpo del ciclo al grupo de instrucciones que se repiten. La ejecución del cuerpo del ciclo es controlada por una expresión lógica.

Ciclos… La evaluación de la expresión lógica puede estar antes o después del cuerpo del ciclo. Los ciclos que tienen la evaluación de la expresión lógica antes del cuerpo se conocen como “pre-test loops” y los que la tienen después se conocen como “post test loops”.

“Pre-Test Loops” en Java While Controlado por contador o evento (respuesta o sentinela). For Controlado por contador 4

Flujograma de Ciclo while statement(s) true boolean expression false statement(s) true boolean expression? false

Ciclo while La sintáxis del ciclo while es como sigue: while(condition) { //loop body statements; } Como puede ver la condición es evaluada al principio, antes de ejecutar el cuerpo del ciclo. Al evaluar la condición, si ésta es cierta, se ejecuta el cuerpo del ciclo y si es falsa, se procede a la siguiente instrucción después del ciclo. Decimos que un while se ejecuta de 0 a n veces ya que cabe la posibilidad que la primera vez la condición sea falsa y el ciclo no se ejecute ni siquiera una vez.

Un ejemplo de while x=1 True Display x = x +1 x<=10 ‘*’ False // En Java int x = 1; while (x <= 10) { System.out.println(‘*’); x = x + 1; } False

Un ciclo que no se ejecuta El siguiente es un ejemplo de un ciclo que se ejecuta 0 veces: int x = 1; while(x >= 10) { System.out.println(‘*’); x = x + 1; } El cuerpo del ciclo nunca se ejecuta ya que la condición es falsa la primera vez que se evalúa.

Ciclos... La mayor parte de las veces la condición que se utiliza para controlar un ciclo depende del valor de una variable y a ésta la llamamos variable de control. Para que un ciclo sea diseñado correctamente debemos: Inicializar la variable de control correctamente antes del ciclo Usar una expresión lógica adecuada para evaluar la variable de control Actualizar la variable de control dentro del ciclo.

En Java… System.out.println(‘*’); int x = 1; //Inicialización de variable de control: x while(x < = 10) //Evaluación de la variable de control { System.out.println(‘*’); x = x + 1; //Actualización de la variable de control }

Ciclos controlados por un contador Cuando el cuerpo se debe repetir un número específico de veces decimos que el ciclo está controlado por un contador. En este caso la variable de control trabaja contando las veces que se ejecuta el ciclo.

Ciclos Infinitos Si dentro del ciclo no hay una instrucción que logre que en algún momento la condición sea falsa, tendremos un ciclo infinito. Por ejemplo si en el ejercicio anterior olvidamos incrementar x, ocurre un ciclo infinito: int x = 1; while (x <= 10) { System.out.println(‘*’); } // La x SIEMPRE será menor o igual a 10 Si se nos olvidan las llaves como en el siguiente ejemplo podemos obtener un ciclo infinito: while (x <= 10) x = x + 1; // Esta instrucción NO es parte del ciclo

Enunciados en bloque en los ciclos Como usted ya sabe, las llaves se utilizan para agrupar un número de instrucciones para que sean ejecutadas en bloque. Igual que en los if, en el ciclo while solo hace falta las llaves si el cuerpo del ciclo contiene mas de una instrucción. Esto implica que si se olvida incluir las llaves y queríamos que se ejecutaran más de una instrucción como cuerpo del ciclo, sólo se va a ejecutar una.

Flujograma para acumular la suma de 10 números usando ciclo controlado por contador count = 1 count=count+1 sum = sum + num count<=10 Display ”Enter a number: ” Get num T F

…en Java //Ejemplo para sumar 10 números entrados // por el teclado Scanner keyboard = new Scanner(System.in); double num, sum = 0.0; int count = 1; while (count <= 10) { System.out.print("Enter a number: "); num = keyboard.nextDouble(); sum = sum + num; count = count + 1; } System.out.println("The sum is: " + sum); Ver la ejecución con el debugger.

Acumuladores de suma… Un acumulador de suma es una variable donde se van sumando valores utilizando la suma anterior. La variable que se va a usar para acumular la suma se tiene que inicializar en 0 o el primer valor a ser sumado. La instrucción que logra este proceso es una instrucción de asignación donde la variable que acumula aparece en los dos lados del operador de asignación. Por ejemplo: sum = sum + num; En Java podemos usar el operador compuesto de += para acumular. Por ejemplo: sum += num;

Validación El proceso de asegurarse que el usuario entre un dato válido se conoce como validación.

Validación… num < 0 T F Display “Enter a positive number: ” Get num “Invalid number.” Display “Enter a positive number: ” F

En Java System.out.print("Enter a positive number: ”); number = keyboard.nextInt(); // Validate the input. while ( number < 0 ) { System.out.println("Invalid number.”); System.out.print("Enter a positive number: "); }

Otro Ejemplo de Validación de datos Ejemplo en Java System.out.print("Enter a number in the " + "range of 1 through 100: "); number = keyboard.nextInt(); // Validate the input. while (number < 1 || number > 100) { System.out.println("That number is invalid."); }

Ciclo controlado por variable lógica (Flag) //Ciclo controlado por bandera countGoodReadings = 0; int thisBP; boolean isSafe = true; // Inicialización de bandera while (isSafe) { System.out.print("Enter blood pressure “); thisBP = keyboard.nextInt(); if (thisBP >= 200) isSafe = false; //Actualizar bandera else countGoodReadings++; }

Ciclo controlado por respuesta Display “¿Tiene un dato para entrar?” Get respuesta Get respuesta True respuesta ==‘S’ Or respuesta ==‘s’ Entrar y procesar Dato Display “¿Tiene otro dato para entrar?” False

Ciclo controlado por respuesta Se le pregunta al usuario antes de la entrada de cada dato si tiene algún dato para entrar. Duplica la entrada de datos ya que antes de cada dato hay que entrar una respuesta de S o Y además del dato. La variable de control es de tipo caracter pues es la variable donde se recoge la respuesta.

Ciclos controlados por un evento Cuando algún suceso durante la ejecución del cuerpo del ciclo debe lograr la terminación del mismo decimos que es un ciclo controlado por un evento. Un ejemplo de este tipo de ciclo es el ciclo controlado por un valor centinela.

Centinela Centinela: valor en la lista de datos que indica el final de la entrada de datos. Debe ser un valor que no pueda confundirse con un valor real, pero del mismo tipo. Debe informarse al usuario cual es el valor que va a usarse como centinela. Se utiliza cuando no se puede determinar cuantos datos se van a entrar o leer.

Ciclo Controlado Por Centinela Requiere una lectura(input) antes del ciclo (priming read) Requiere una lectura(input) dentro del ciclo, al final del cuerpo.

Ejemplo de la Técnica del Centinela: Leer y sumar una cantidad indefinida de medidas de presión sanguínea int total = 0; int thisBP; Scanner keyboard = new Scanner(System.in); //Inicialización de la variable de control por lectura System.out.print(“Enter a blood pressure or -1 to stop: ”); thisBP = keyboard.nextInt(); // Lectura primaria while (thisBP != -1) // Evaluación para centinela { total = total + thisBP; System.out.print(“Enter a blood pressure or -1” + “to stop: ”); thisBP = keyboard.nextInt(); // Lectura de actualización } System.out.print(“El total de las presiones “ + “sanguineas entradas es : “ + total);

Otro ciclo : for El ciclo for evalúa la condición antes de ejecutar el cuerpo del ciclo, por esto es también un “pretest loop”. Este tipo de ciclo le permite al programador inicializar la variable de control, evaluar la condición y actualizar la variable de control en la misma línea( el encabezado del for). Típicamente la variable de control de un for es un contador. Este ciclo es equivalente a la estructura de un ciclo while controlado por un contador. La sintáxis del for es la siguiente: for(initialization; test; update) { statement(s); }

Los tres componentes del for Inicialización La sección de inicialización permite que el ciclo inicialize su propia variable de control. Después de esta va un punto y coma. Las variables declaradas en esta sección solo pueden ser utilizadas dentro del for. Está permitido inicializar mas de una variable en esta sección. La segunda sección es la de la evaluación de la variable de control del for. De ser esta falsa el cuerpo del for no se ejecuta, igual que en el caso del while.(Después de esta sección también va un punto y coma.)

Los tres componentes del for… Actualización La última sección o componente es la actualización de la variable de control Esta sección se utiliza típicamente para incrementar o decrementar los contadores declarados en la sección de inicialización. Esta sección se ejecuta al final, después del cuerpo y antes de regresar a evaluar la variable de control. En esta sección también se pueden actualizar múltiples variables Se debe evitar el actualizar la variable de control dentro del cuerpo del ciclo, para esto está la sección de actualización en el encabezado del for.

Flujograma del for true false Actualización de la Cuerpo del ciclo Inicialización de variable de control for (inicializacion; evaluación; actualización) { // cuerpo del ciclo } Cuerpo del ciclo true Evaluación de la variable de control false Actualización de la

Ejemplo de For public class UserSquares { public static void main(String[] args) { int number; // Loop control variable int maxValue; // Maximum value to display Scanner keyboard = new Scanner(System.in); System.out.println("I will display a table of numbers" + " and their squares."); System.out.print("How high should I go? "); maxValue = keyboard.nextInt(); System.out.println("Number Number Squared"); System.out.println("-----------------------"); for (number = 1; number <= maxValue; number++) { System.out.println(number + "\t\t“ + number * number); }

Otro ejemplo de for… public class TotalSales { public static void main(String[] args) { int days; // The number of days double sales; // A day's sales figure double totalSales; // Accumulator String input; // To hold the user's input DecimalFormat dollar = new DecimalFormat("#,##0.00"); // Get the number of days. input = JOptionPane.showInputDialog("For how many days do you have " + "sales figures?"); days = Integer.parseInt(input); totalSales = 0.0; // Set the accumulator to 0. // Get the sales figures and calculate a running total. for (int count = 1; count <= days; count++) { input = JOptionPane.showInputDialog("Enter the sales for day " + count + ": "); sales = Double.parseDouble(input); totalSales += sales; // Add sales to totalSales. } // Display the total sales. JOptionPane.showMessageDialog(null, "The total sales are $" + dollar.format(totalSales)); System.exit(0);

Ciclos anidados Igual que podemos anidar los if’s también podemos anidar los ciclos. Ciclos anidados significa que hay un ciclo dentro de otro, cuando esto sucede el ciclo interior se ejecuta completo( todas sus iteraciones) para cada iteración del ciclo exterior. El siguiente es un ejemplo de ciclos for anidados: for(int i = 1; i < = 5; i++) { System.out.println(“i: ” + i); System.out.print(“j: ”); for(int j = 1; j < = 3 ; j++) System.out.print(j); System.out.println(); } Fíjese que, por cada vez que se ejecuta el cuerpo del ciclo externo, se ejecuta 3 veces el cuerpo del ciclo interno.

Las instrucción de break y continue La instrucción de break termina por completo con la ejecución de un ciclo en forma anormal. El uso del break rompe con las normas y mecanismos adecuados para controlar un ciclo y no se considera una forma adecuada de terminar un ciclo. La instrucción continue ocasiona que se termine la ejecución de la iteración del ciclo que se está llevando acabo y que se continúe con la siguiente iteración. Igual que sucede con la instrucción break, puede hacer que el código sea mas difícil de entender y depurar por esto es aconsejable limitar su uso a situaciones muy particulares.

Ciclo do-while La estructura de repetición do-while es un ejemplo de ciclo “post-test” . En este tipo de ciclo, el cuerpo se ejecuta y luego se evalúa la condición. La sintáxis en java para este tipo de ciclo es como sigue: do { statement(s); } while (condition); Note el punto y coma después de los paréntesis y la llave de cerrar antes de la palabra while

Flujograma de ciclo do-while Cuerpo del ciclo cierto Evaluación de condición falso

Ejemplo de técnica de respuesta con do - while public class TestAverage1 { public static void main(String[] args) int score1, score2, score3; // Three test scores double average; // Average test score char repeat; // To hold 'y' or 'n' System.out.println("This program calculates the " + "average of three test scores."); // Create a Scanner object for keyboard input. Scanner keyboard = new Scanner(System.in);

// Get as many sets of three test scores as the user wants. do { // Get the three test scores in this set. System.out.print("Enter score #1: "); score1 = keyboard.nextInt(); System.out.print("Enter score #2: "); score2 = keyboard.nextInt(); System.out.print("Enter score #3: "); score3 = keyboard.nextInt(); // Calculate and print the average test score. average = (score1 + score2 + score3) / 3.0; System.out.println("The average is " + average); System.out.println(); // Does the user want to average another set? System.out.println("Would you like to average " + "another set of test scores?"); System.out.print("Enter Y for yes or N for no: "); repeat = keyboard.next.charAt(0); } while (repeat == 'Y' || repeat == 'y'); } Recuerde el punto y coma

Validación : while versus do-while Usando while: System.out.print("Enter number in the range of 1 through 100: "); number = keyboard.nextInt(); while (number < 1 || number > 100) { System.out.println("That number is invalid."); System.out.print("Enter number in the range of 1 through 100: ”); } Usando do-while: do { System.out.print("Enter number in the range of 1 through 100: "); number = keyboard.nextInt(); if (number < 1 || number > 100) System.out.println("That number is invalid."); } while (number < 1 || number > 100);

Qué tipo de ciclo usar while do-while for Use siempre que quiera cubrir la posibilidad de que el ciclo no se ejecute si la condición es falsa de entrada Si va a usar la técnica del centinela Puede usarse con técnica de respuesta Puede usarse para validar datos entrados do-while Use siempre que quiera que el ciclo se ejecute por lo menos una vez Ideal para técnica de menú for Use siempre que sepa la cantidad de veces que quiere que se ejecute el ciclo o que le pueda preguntar al usuario la cantidad de datos que va a procesar