Programación I Instrucciones de control - bucles



Documentos relacionados
Tema 3. Estructuras de control

TEMA 4. ESTRUCTURAS DE CONTROL

Fundamentos de Informática ETSID. Tema 4: Estructuras de Repetición (Bucles).

Actividad Algoritmos, Estructura y Programación I. FOR, DO-WHILE

Bloque 3. Expresiones, sentencias y estructuras de control

Programación I Funciones

TEMA 5. CONTROL DE FLUJO DEL PROGRAMA. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ;

Programación I Instrucciones de control - condicionales

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

Objetivos de la práctica: - Trabajar las estructuras de control repetitivas en la realización de programas.

Fundamentos de programación

Resolución de Problemas y Algoritmos Clase 6: Repetición (continuación)

ESTRUCTURAS REPETITIVAS EN PHP

Preprocesador de C. Ejemplo: ejecución de código dependiente de la máquina.

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

ESTRUCTURAS DE CONTROL

Estructuras de control Agosto de Facultad de Ingeniería. Universidad del Valle

Programación (PRG) PRACTICA 4. Elementos de programación: estructuras de control.

Lenguaje de programación

Programación 1 Tema 5. Instrucciones simples y estructuradas

Laboratorio de Arquitectura de Redes. Sentencias de control en lenguaje C

Informática Ingeniería en Electrónica y Automática Industrial

TEMA 4: Programación estructurada

Introducción general al Lenguaje C (2010/2011)

Lección 3 Sentencias de control

Operadores aritméticos

Programación. Grupo 1B. Tema 2: Elementos de Programación (Parte B)

Lenguaje de Programación: C++ Estructuras de control:for

MÚLTIPLES Estructuras condicionales anidadas if(expresion1 o condición1){ Sentencias1 } else { if (expresion2){ Sentencias2

1. Saber si un número y diga si es primo o no. #include <stdio.h> #include <stdlib.h> int main(void) { int num, cont, x;

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

VGOC"6<"Rtqitcocekôp"guvtwevwtcfc

Sentencias DO-WHILE EN C++

Capítulo 4. Estructuras Iterativas

Programación: Estructuras de Control

Bloque 5. Tipos de datos compuestos estáticos: arrays, strings y structs

WHILE Y DO WHILE BREAK EN LENGUAJE C. BUCLES MIENTRAS. FORZAR SALIDA O TERMINACIÓN. EJEMPLO (CU00534F)

Capítulo 13 INSTRUCCIONES DE CONTROL REPETITIVAS. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

Ejercicios de Programación

Prácticas de JavaScript

TEMA 5. ESTRUCTURAS DE CONTROL: BUCLES.

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

Objetivos. Conceptos 1. ESTRUCTURAS DE CONTROL SELECTIVAS. Estructura condicional if-else

Informática. ETSIGCT curso 2017/2018 Boletín 2 de prácticas J. Javier Ibáñez González

Titulo: Calculo de PI

SESIÓN DE EJERCICIOS E1

Sentencias iterativas

Bloque II. Elementos del lenguaje de programación Java

Programación. Test Autoevaluación Tema 4

Estructuras de Repetición: Repita Mientras.

Estructuras de control. Dept. Ciencias de la Computación e I.A. Universidad de Granada

Introducción a la Programación

Sentencias de control de flujo

Fundamentos de Informática 6. Estructuras de control (y sus algoritmos)

#include <stdio.h> float cubica(float numero) { float cubica; cubica = numero * numero * numero; return cubica; }

Operadores de comparación

6. Sentencias repetitivas o bucles

Sentencia for : Ejemplo de Uso

1.9. SENTENCIAS DE CONTROL DE PROGRAMA

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

Lenguaje de Programación: C++ Repaso de Material C++

Examen de Fundamentos de la Programación (Modelo 1)

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

1000+(4/100)*1000 =1000 * (1+4/100) =1000 * 1.04 = Al finalizar el segundo año, el 4% se aplica sobre los 1040, y obtenemos:

Programación 1 Grado de Ingeniería Robótica

1. Repaso del Lenguaje C M.C. Luis A. Zarza López

Guía práctica de estudio 09: Estructuras de repetición

Conocimientos previos

Programación I Arrays, cadenas de caracteres y estructuras

Guía práctica de estudio 09: Estructuras de repetición

CLASIFICACION DE LAS ESTRUCTURAS DE CONTROL

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Programación 1 Tema 5. Instrucciones simples y estructuradas

Estructuras de Control 3

Unidad 2 Recursividad. 2.1 Definición 2.2 Procedimientos Recursivos 2.3 Ejemplos de Casos Recursivos

ESTRUCTURAS DE CONTROL

Tema 1: Sentencias de Control

Práctica #4: Uso de control de flujo

09/02/2016 ET1032 ET1032. Informática Industrial. Informática Industrial. Hacer programas 1. Hacer programas 2

ET1032. Informática Industrial. Hacer programas 1

Formato para prácticas de laboratorio

Operadores de comparación

Hoja de ejercicios resueltos Tema 1

FUNDAMENTOS DE INFORMÁTICA

Fundamentos de Informática

Informática II para Bachillerato

Unidad 4. Estructuras de control Tema. Estructuras de Iteración (do-while)

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

Programación I Teoría I.

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

Introducción a la. Programación con

TEMA 4: Estructuras de Control

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

Microprocesadores. Introducción al Lenguaje C - Parte III. Prof. Luis Araujo. Universidad de Los Andes

Estructuras de Control JAVA

Programación Digital 10

Lenguajes de programación

Tema 6 Control de Flujo

Transcripción:

Contenidos 1 Instrucciones de control - bucles anidados Iván Cantador Contenidos 2 Bucles: la instrucción for (I) 3 anidados Un bucle forejecuta un bloque de sentencias de forma iterativa mientras se cumpla una condición de fin, a partir de una sentencia de inicio y considerando una sentencia de paso de iteración Sintaxis for ( <inicio>; <condicion_fin>; <paso_iteracion> ) { <bloque_sentencias> Las sentencias inicio, paso_iteraciony condicion_finson optativas

Bucles: la instrucción for (II) 4 Bucles: la instrucción for (III) 5 En general, el número de iteraciones de un bucle forviene determinado por valores inicial, de incremento y final de una variable entera(contador), que por motivos históricos suele nombrarse i, j, k, int numiteraciones = 10; int i; // El siguiente bucle se lee "para/desde i=0, mientras que // i<numiteraciones, incrementar i de 1 en 1" for ( i = 0; i < numiteraciones; i++ ) { printf("iteracion %d de %d.\n", i, numiteraciones); int i, suma; // Calculo de la suma de los numeros impares menores o iguales que 99 suma = 0; for ( i = 1; i <= 99; i += 2 ) { suma += i; Bucles: la instrucción for (IV) #include <limits.h> 6 Bucles: la instrucción for (IV) #include <limits.h> 7 int lista[] = {4, 3, 7, 2, 9, 5; int longitudlista = 6; int i, valormedio, valorminimo, valormaximo; int lista[] = {4, 3, 7, 2, 9, 5; int longitudlista = 6; int i, valormedio, valorminimo, valormaximo; // Calculo de los valores medio, minimo, y maximo de la lista valormedio = 0; valorminimo = INT_MAX; valormaximo = INT_MIN; for ( i = 0; i < longitudlista; i++ ) { valormedio += lista[i]; // Calculo de los valores medio, minimo, y maximo de la lista valormedio = 0; valorminimo = INT_MAX; valormaximo = INT_MIN; for ( i = 0; i < longitudlista; i++ ) { valormedio += lista[i]; if ( lista[i] < valorminimo ) { valorminimo = lista[i]; if ( lista[i] < valorminimo ) { valorminimo = lista[i]; if ( lista[i] > valormaximo ) { valormaximo = lista[i]; valormedio /= longitudlista; if ( lista[i] > valormaximo ) { valormaximo = lista[i]; valormedio /= longitudlista;

Bucles: la instrucción for (V) 8 Bucles: la instrucción for (VI) 9 La sentencia break rompe la ejecución del bucle en el que se encuentra Bucle for infinito int lista[] = {4, 3, 7, 2, 9, 5, 8, 1, 2, 6 int i, x, n = 10, posicion; for ( ; ; ) { printf("bucle infinito!\n"); // Busca la PRIMERA posicion en la lista del número introducido o // establece la posicion a -1 en caso de que el numero no este en la lista posicion = -1; for ( i = 0; i < n; i++ ) { if ( lista[i] == x ) { posicion = i; printf("la posicion de %d en la lista es %d.\n", x, posicion); Bucles: la instrucción for (VII) 10 Bucles: la instrucción for (VIII) 11 La sentencia break rompe la ejecución del bucle en el que se encuentra int lista[] = {4, 3, 7, 2, 9, 5, 8, 1, 2, 6 int i, j, x, n = 10, posiciones[10]; int lista[] = {4, 3, 7, 2, 9, 5, 8, 1, 2, 6 int i, x, n = 10, posicion; // Busca la ULTIMA posicion en la lista del número introducido o // establece la posicion a -1 en caso de que el numero no este en la lista posicion = -1; for ( i = n-1; i >= 0; i-- ) { if ( lista[i] == x ) { posicion = i; printf("la posicion de %d en la lista es %d.\n", x, posicion); // Busca TODAS las posiciones en la lista del número introducido o // estableciendolas a -1 en caso de que el numero no este en la lista posiciones[0] = -1; j = 0; for ( i = 0; i < 10; i++ ) { if ( lista[i] == x ) { posiciones[j] = i; j++; // Imprimimos por pantalla todas las posiciones encontradas for ( i = 0; i < j; i++ ) { printf("la posicion de %d en la lista es %d.\n", x, posiciones[i]);

Bucles: la instrucción for (IX) 12 Contenidos 13 La sentencia continue continua (salta) a la siguiente iteración de un bucle sin ejecutar en la iteración actual aquellas sentencias posteriores al continue int lista[] = {4, 3, 7, 2, 9, 5, 8, 1, 2, 6 int i, x, n = 10; // Imprime por pantalla los numeros de una lista que son mayores a uno dado for ( i = 0; i < n; i++ ) { // Si el numero i-esimo de la lista es menor o igual que x se sigue // la ejecucion del bucle con el siguiente numero if ( lista[i] <= x ) { continue; anidados printf("numero mayor que %d en la posicion %d: %d.\n", x, i, lista[i]); Bucles: la instrucción while (I) 14 Bucles: la instrucción while (II) 15 Un bucle whileejecuta un bloque de sentencias de forma iterativa mientras se cumpla una condición de fin Sintaxis while ( <condicion_fin> ) { <bloque_sentencias> char opcion = 'X'; while ( opcion!= 'A' && opcion!= 'B' ) { printf("elija una opcion, A o B: "); Las sentencia condicion_fin es obligatoria printf("has elegido la opcion %c!\n", opcion);

Bucles: la instrucción while (III) Bucle while infinito while ( 1 ) { printf("bucle infinito!\n"); 16 Bucles: la instrucción while (IV) Al igual que en los bucles for, la instrucción breakrompe la ejecución del bucle while en el que se encuentra char opcion; while ( 1 ) { printf("elija una opcion, A o B: "); 17 if ( opcion == 'A' opcion == 'B' ) { printf("has elegido la opcion %c!\n", opcion); Bucles: la instrucción while (V) Equivalencia entre bucles for y bucles while int n = 10, i; for ( i = 0; i < n; i++ ) { printf("iteracion %d.\n", i); int n = 10, i; i = 0; while ( i < n ) { printf("iteracion %d.\n", i); i++; 18 Bucles: la instrucción while (VI) Al igual que en los bucles for, la instrucción continuesalta a la siguiente iteración del bucle while en el que se encuentra #define AS 1 #define DOS 2 // El resto de macros irian aqui #define SIETE 7 #define SOTA 0.5 #define CABALLO 0.5 #define REY 0.5 double puntos=0, cartas[40] = {SOTA, AS, CUATRO, DOS, REY, /* resto de cartas */ DOS; int opcion, c=0; while ( puntos < 7.5 ) { printf("quieres carta (s/n)? "); if ( opcion == 's' opcion == 'S' ) { puntos += cartas[c]; c++; continue; printf("te has plantado!\n"); printf("tienes %f puntos!\n", puntos); 19

Contenidos 20 Bucles: la instrucción do while (I) 21 anidados Un bucle do whileejecuta un bloque de sentencias una vezy luego lo ejecuta de forma iterativa mientras se cumpla una condición de fin Sintaxis do { <bloque_sentencias> while ( <condicion_fin> ); Las sentencia condicion_fin es obligatoria Bucles: la instrucción do while (II) 22 Bucles: la instrucción do while (III) 23 : char opcion; do { printf("elija una opcion, A o B: "); while (opcion!= 'A' && opcion!= 'B' ); Al igual que en los bucles for y while, en los bucles do while también se puede hacer uso de las instrucciones break y continue printf("has elegido la opcion %c!\n", opcion);

Contenidos anidados 24 Bucles anidados (I) Un bucle anidado es un bucle que está dentro de otro La anidación de bucles puede ser imprescindible para la realización de cálculos complejos : double A[2][3] = {{1, 2, 3, {4, 5, 6; double media; int i, j; // 2 bucles anidados para calcular la media de los numeros // de una matriz media = 0; for ( i=0; i<2; i++ ) { for ( j=0; j<3; j++ ) { media += A[i][j]; media /= 2*3; 25 Bucles anidados (II) Un bucle anidado es un bucle que está dentro de otro Puede existir más de un nivel de anidación : double A[2][3] = {{1, 2, 3, {4, 5, 6; double B[3][1] = {{1, {2, {3; double C[2][1]; int i, j; // 3 bucles anidados para multiplicar las matrices A y B for ( i=0; i<2; i++ ) { for ( j=0; j<1; j++ ) { C[i][j] = 0.0; for ( k=0; k<3; k++ ) { C[i][j] += A[i][k] * B[k][j]; 26 Bucles anidados (III) En bucles anidados las instrucciones breaky continuese aplican al bucle más interno al que pertenecen double x, A[2][3] = {{1, 2, 3, {4, 5, 6; int i, j, fila, columna; // Busca la posicion de una matriz en la que se encuentra un numero dado printf("introduce el numero a buscar: "); scanf("%f", &x); fila = columna = -1; for ( i=0; i<2; i++ ) { for ( j=0; j<3; j++ ) { if ( A[i][j] == x ) { fila = i; columna = j; // Aquí se rompe el bucle j if ( fila!= -1 ) { // Aquí se rompe el bucle i printf("el numero %d esta en la posicion (%d, %d).\n", x, fila, columna); 27