Sentencias de repetición

Slides:



Advertisements
Presentaciones similares
Sesión 3 Estructuras Repetitivas
Advertisements

Unidad 1 DISEÑO DE ALGORITMOS ING. Nelwi Baez. MSC
Estructuras de Repetición Algoritmos
Introducción a los Algoritmos
CICLOS EN C – PARTE 2.
Bucle for.
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
Concepto de programa. Directorio Concepto de programa. Analisis del problema. Resolucion del problema. Desarroollo de un programa. Partes constitutivas.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
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
Tema 6: Clases Antonio J. Sierra.
Fundamentos de Programació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
Programación de Computadores
Estructuras de Iteracion (Repetitivas ) while , for,, do-while
CI TEORIA semana 4 Estructura Algorítmica: SELECCIÓN

ESTRUCTURAS DO-WHILE Y FOR.
Capítulo 1 “Elementos de Programación”
Conversión cadena a número
Sentencias de selección
WHILE Estructuras Repetitivas
Informática Tema 5 - Estructuras de Control Estructuras de Repetición.
Parte 4: Estructura FOR Basada en diapositivas de Prof. Elizabeth Vidal Duarte.
Ciclos (Loops, Repeticiones) Permiten ejecutar una secuencia de sentencias mas de una vez. Hay 2 tipos de loops:  WHILE repite la acción un número indefinido.
Resumen Fundamentos de Programación/ Programación I
Figure: Algoritmos Conceptos básicos. Programación: 1.Establecer una secuencia de acciones que: puedan ser ejecutadas por el procesador realicen una.
COMP 250.  Ejemplo:  Suponer que se necesita codificar un programa donde se muestre como resultado el string “Bienvenidos al mundo de JAVA!!!” cien.

Estructuras de Control.
Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 18/08/2006.
Estructuras de repetición
Vectores y matrices Curso de Computación.
Sentencias de selección Curso de Programación. OBJETIVOS Implementar sentencias de control de selección en un programa usando sentencias if. Implementar.
Estructuras de Repetición (Hacer-Mientras)
1 1 1.
Tema ‧ Comando - while Repeticiones. Comando while ‧ Un ciclo es cualquier construcción de programa que repite una sentencia ó secuencia de sentencias.
Estructuras de Repetición (Hacer-Mientras)
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.
Operadores Lógicos Y (Conjunción): Tanto P como Q (Ambas). O (Disyunción): Puede ser que P o Q o ambas (mínimo 1)
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:
Estructuras de Decisión
Algoritmo.
2011/1 - CLASE 12. AGENDA 1 Introducción 2 Sentencia while 3 Sentencia for 14 Sentencia do-while 5 Instrucciones Especiales 6 Ciclos anidados.
CICLOS EN C – PARTE 3.
ESTRUCTURA DE CONTROL REPETITIVAS: WHILE, DO… WHILE
Ing. Esp. Ricardo Cujar. Permite la ejecución de una sentencia, dada una determinada condición. If(condición){ sentencia(s) a ejecutar en caso de que.
PROGRAMACIÓN Grupo de Modelamiento de Sistemas
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) V. GESTIÓN DE TIPOS Y GENERACIÓN DE CÓDIGOS.
QUE ES PNL. CONCEPTO La programación neurolingüística es un proceso mental, mediante el cual utilizamos los sentidos con los cuales percibimos el mundo,
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Arreglo.
Page 1 Ciclo de Estructuras de Repetición Carlos Bautista García Unidad VI PROG 2270L.
Tipos de ciclos en Visual Basic. Dinámicos y fijos. 6.1 Foro. Wuilson Valencia, Desarrollo de aplicaciones I y Laboratorio. 1.
ESTRUCTURAS SELECTIVAS Elaborado por; Ing. Alberto Pérez.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Entrada y Salida en C++, Estructuras de Control Prof. Manuel B. Sánchez.
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ Facultad de Ingeniería de Sistemas Computacionales Programa de Lic. en Informática Educativa Computación.
Ciclos de Repeticion Yoel Gutierrez Unidad 6. Contenido DefinicionExplicacionEjemplosReferencias.
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
Paso de parámetros Diseño de programas iterativos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 7 Versión.
Estructuras Repetitivas Consideraciones. Estructuras Repetitivas  Son aquellas que van a ejecutar un número determinado de veces una instrucción o un.
Transcripción de la presentación:

Sentencias de repetición Programación

Objetivos Implementar control con repeticiones en un programa usando sentencias while Implementar control con repeticiones en un programa usando sentencias do-while Implementar control con repeticiones en un programa usando sentencias for Anidar la sentencia de control de repetición de un bucle dentro de otra sentencia de repetición Elegir la sentencia de control de repetición adecuada para una tarea determinada Preguntar al usuario por una respuesta de tipo si-no usando el AnswerBox Formatear los datos de salida usando la clase Format del paquete javabook

Introducción Las sentencias de repetición controlan un bloque de código para que se ejecute un número fijo de veces o hasta que se cumple una determinada condición. En java existen tres tipos de ciclos: while, do-while, for

La sentencia while La sintaxis de la sentencia while es: while (<expresión booleana>) <sentencias> int suma = 0, numero = 1; while (numero <= 20) { suma = suma + numero; numero = numero + 1; } Expresión booleana Sentencia Cuerpo del bucle

Diagrama de flujo int suma = 0; numero = 1; verdadero numero <= 20 suma = suma + numero; numero = numero + 1; falso

Valores de las variables en el ciclo numero: 11 suma= 66 numero: 12 suma= 78 numero: 13 suma= 91 numero: 14 suma= 105 numero: 15 suma= 120 numero: 16 suma= 136 numero: 17 suma= 153 numero: 18 suma= 171 numero: 19 suma= 190 numero: 20 suma= 210 numero: 1 suma= 1 numero: 2 suma= 3 numero: 3 suma= 6 numero: 4 suma= 10 numero: 5 suma= 15 numero: 6 suma= 21 numero: 7 suma= 28 numero: 8 suma= 36 numero: 9 suma= 45 numero: 10 suma= 55

Producto de impares int producto = 1, numero = 1, contador = 20, ultimoNumero; ultimoNumero = 2 * contador -1; while (numero <= ultimoNumero) { producto = producto * numero; numero = numero + 2; }

Diagrama de flujo int producto = 0; numero = 1; contado = 20; ultimoNumero = 2*contador -1 numero<= ultimoNumero verdadero producto = producto * numero; numero = numero + 2; falso

Ciclos controlados por centinela Lee la edad de una persona entre 0 y 130. int edad; edad = entrada.getInteger("Su edad entre 0 y 130 : "); while (edad < 0 || edad > 130) { System.out.pritnln("Se ha introducido una edad inválida.“ +"intentelo de nuevo."); edad = entrada.getInteger("Su edad entre 0 y 130 : "); }

edad inválida. inténtelo de nuevo. Diagrama de flujo edad edad < 0 || edad > 130? verdadero Se ha introducido una” edad inválida. inténtelo de nuevo. falso edad

Ciclos controlados por centinela Lee enteros y calcula la suma hasta que se teclea un número negativo int suma = 0, numero; numero = entrada.getInteger(“Teclee un entero : "); while (numero >= 0) { suma = suma + numero; System.out.println("suma = "+suma); numero = entrada.getInteger("Teclee un entero : "); }

Tarea 1. Escriba una sentencia while que sume los números del 10 al 50. 2. Escriba un lazo while que sume los cuadrados de los número del 1 al 40. 3. Escriba una sentencia while para calcular el promedio de un conjunto de valores. La entrada de datos deberá terminar con un valor negativo, ¿es un bucle controlado por contador o por centinela? Debe tener un contador del número de valores que se introducen.

Ciclos infinitos Cuando la condición de un ciclo while es siempre verdadera, se tiene un ciclo infinito. byte contador = 1; while (contador != 10){ contador++; }

float contador = 0.0f; while (contador != 1.0f) contador = contador + 0.3333333f; } contador = contador + 0.33333333f;

float contador = 0.0f; while (contador <= 1.0f) contador = contador + 0.3333333f; } contador = contador + 0.25f;

Error de fuera por uno OBOE int contador = 1; while (contador < 10) ... contador++; } int contador = 0; while (contador <= 10)

OBOE corregido int contador = 0; while (contador < 10) ... } int contador = 1; while (contador <= 10)

Comprobaciones en las sentencias de control de repetición 1. Asegúrese de que el cuerpo del bucle contiene una sentencia que hará terminar al bucle en algún momento. 2. Asegúrese de que el bucle se repite exactamente un número correcto de veces. 3. Se quiere ejecutar el cuerpo del bucle N veces, entonces inicie el contador a 0 y use la condición de prueba contador < N o inicie el contador a 1 use la condición de prueba contador <= N.

Preguntas rápidas 1. ¿Cuál de los siguientes es un bucle infinito? a. int suma = 0, i = 0; while (i >= 0){ Suma += i; i++; } b. int suma = 0, i = 100; while (i != 0){ Suma += i; i--; }

2. Para cada una de las siguientes sentencias de lazo, determine el valor de la suma después de que se haya ejecutado el lazo. a. int contador = 0,suma = 0; while (contador < 10){ suma += contador; contador++; } b. int contador = 1,suma = 0; while (contador <= 30){ suma += contador; contador += 3; } c. int contador = 0,suma = 0; while (contador < 20){ suma += 3*contador; contador += 2; }

La sentencia do-while La sintaxis de la sentencia do-while es: do <sentencias> while (<expresión booleana>); int suma = 0, numero = 1; do { suma += numero; numero++; } while (numero <= 20); Expresión booleana Sentencia Cuerpo del bucle

Diagrama de flujo int suma = 0; numero = 1; suma += numero; numero++; <= 20 verdadero falso

Lazo con centinela int edad; do { edad = entrada.getInteger( "Su edad entre 0 y 130 : "); if(edad < 0 || edad> 130) System.out.prinln("Se ha introducido”+ ” una edad inválida." + "intentelo de nuevo."); } while (edad < 0 || edad> 130);

Condición compleja El bucle termina cuando se reciba el valor centinela 0, cuando se introduzca un número par o cuando la suma sea mayor que 100. suma = 0; do { num = entrada.getInteger(“teclee un entero:”); if(num == 0)// centinela mensaje.show(“suma = “+suma); else if(num % 2 ==0)// número par mensaje.show(“Error: número par”); else{ suma += num; if(suma>100)//mayor que 100 mensaje.show(“Suma > 100”); } } while(!(num % 2 == 0 || num == 0 || suma > 100));

La condición anterior se puede expresar como sigue haciendo uso de la equivalencia: !(a || b) <==> !a && !b (num % 2 != 0 && num != 0 && suma <= 100);

boolean repetir = true; suma = 0; do { num = entrada.getInteger(“teclee un entero:”); if(num == 0){ // centinela mensaje.show(“suma = “+suma); repetir = false; } else if(num % 2 ==0){ // número par mensaje.show(“Error: número par”); repetir = false; } else{ suma += num; if(suma>100)//mayor que 100 mensaje.show(“Suma > 100”); repetir = false; } } while(repetir);

Preguntas rápidas 1. Escriba una sentencia do-while para calcular la suma de los primeros 30 enteros positivos e impares. 2. Reescriba los siguientes bucles while como bucles do-while a. int contador = 0, suma = 0; while(contador < 10){ suma += contador; contador++; } b. int contador = 1, suma = 0; while(contador <= 30){ suma += contador; contador += 3; }

La sentencia for La sintaxis de la sentencia for es: for(<inicio>; <expresión booleana>; <incremento>) <sentencia> Expresión booleana inicio Incremento for( i = 0 ; i < 20 ; i++ ){ numero = entrada.getInteger(); suma += numero; } Sentencia

numero = entradagetInteger(); Diagrama de flujo <Inicio> i = 0; falso <Expresión booelana> i < 20 verdadero <Sentencia> numero = entradagetInteger(); suma += numero; i++; <incremento>

Cálculo del factorial El factorial de n se define como: n! = 1*2*3...*(n-1)*n SimpleInput entrada = new SimpleInput(); int n, contador; float producto = 1; n = entrada.getInteger(" Teclee un entero "); for(contador = 1; contador <= n; contador++) { producto = producto * contador; System.out.println("numero: " + contador + " producto= " + producto); } System.out.println("El factorial es " + producto);

Caída libre Se deja caer un objeto desde una altura H, la posición P del objeto en el instante t esta dada por, P = –16t2 + H El instante en que toca el suelo se encuentra haciendo P = 0 en la ecuación anterior y es igual a t = (H/16)

Programa double alturaInicial, posicion,tiempoContacto; SimpleInput entrada = new SimpleInput(); alturaInicial = entrada.getDouble(" Altura inicial: "); tiempoContacto = Math.sqrt(alturaInicial/16.0); System.out.println( " Tiempo t posicion en el instante t "); for(int instante=0;instante<tiempoContacto;instante++){ posicion = -16.0*instante*instante+alturaInicial; System.out.pritnln(" " + instante+" " + posicion); } System.out.println(tiempoContacto + " 0.00");

Declaración dentro del for El elemento inicio del for se pueden declarar variables: for(int i = 0; i < 10; i++) En lugar de int i for(i = 0; i < 10; i++) Los incrementos pueden ser por cualquier valor. for(int i=0; i<100; i+=5) // i = 0, 5, 10, ... for(int j=2; j<40; j*=2) // j = 2, 4, 8, 16, 32 for(int k=100; k>0; k--) // k = 100, 99, 98, ...

Preguntas rápidas 1. Escriba un bucle for para calcular: a. La suma de 1, 2, ..., 100 b. La suma de 2, 4, ..., 500 c. El producto de 3, 5, 7, ..., 25 2. Reescriba los siguientes bucles while usando sentencias for, a. int contador = 0, suma = 0; while(contador < 10){ suma += contador; contador++; } b. int contador = 1, suma = 0; while(contador <= 30){ suma += contador; contador += 3; }

Preguntas rápidas Escriba sentencias for, do-while y while para calcular las siguientes sumas y productos a. 1 + 3 + 7 + ...+ (220 -1) b. 1 + 1/2 + 1/3 + ... + 1/20 c. 1*2 + 2*3 + 3*4 + ... + 19*20 d. 1 x 2 x 4 x 8 x ... x 220

Lazos anidados Es posible tener una lazo dentro de otro. A esto se le llama anidamiento. int precio=100; salida.printLine(" 5 10 15 20 25"); for(int ancho = 11; ancho <= 20; ancho++) { salida.print(ancho + " "); for(int longitud = 5; longitud <= 25; longitud+=5){ salida.print(" " + precio); } salida.skipLine(1); }

Tabla de multimplicar static public void main(String[] args){ MainWindow ventana = new MainWindow(); OutputBox salida = new OutputBox(ventana); ventana.show(); salida.setTitle("Tabla de multiplicar"); salida.show(); salida.printLine(" 1 2 3”+ “ 5 6 7 8 9 10"); for(int i = 1; i <= 10; i++) { salida.print(i + " "); for(int j = 1; j <= 10; j++){ salida.print(" " + i*j); } salida.skipLine(1); } }

Preguntas rápidas 1. ¿Cuál será la suma después de ejecutar los siguientes for anidados? a. Int suma = 0; for(int i=0; i<5; i++){ suma = suma + i; for(int j=0; i<5; j++){ suma = suma + j; } b. Int suma = 0; for(int i=0; i<5; i++){ suma = suma + i; for(int j=i; i<5; j++){ suma = suma + j; }

El juego alto bajo Escriba una aplicación que permita jugar Alto-Bajo con el usuario. Se generarán números secretos aleatorios entre 1 y 100. Cuando el usuario propone un número, el programa responde Alto o Bajo dependiendo si es mayor o menor que el número secreto. El número máximo de intentos es 6.

Generar número secreto algoritmo inicio Generar número secreto intentos = 0 intentos = intentos + 1 num != secreto && intentos != 6? V num F F V num>secreto? V num == secreto? F F V Alto num<secreto? Fallo Acerto Bajo fin

Tarea 1. Escriba un método que devuelva true si el argumento es un número primo. 2. Utilizando el método del problema 1 escriba un método que liste todos los primos entre 1 y N , donde N es tecleado por el usuario. 3. Una terna de números a, b, c es cuadrada perfecta si a2 + b2 = c2. Por ejemplo, 3, 4, 5 es una terna cuadrada perfecta. Escriba un programa para obtener todos las ternas cuadradas perfectas entre 1 y N, donde N es tecleado por el usuario. El programa no deberá repetir ternas, es decir, la terna 3, 4, 5 es la misma que la terna 4, 3, 5, y deberá imprimirse una sola vez.