Tema 4: Estructuras de Control Estructura y Contenidos 4.1. ESTRUCTURA SECUENCIAL. 4.2. ESTRUCTURAS DE SELECCIÓN. 4.2.1. Selección simple ( if ). 4.2.2. Selección binaria ( if ... else ). 4.2.3. Selección múltiple ( switch ). 4.2.4. Anidamientos. 4.3. ESTRUCTURAS DE REPETICIÓN O ITERATIVAS. BUCLES. 4.3.1. Estructuras no deterministas ( while, do...while ). 4.3.2. Estructuras deterministas ( for ). 4.3.3. Las sentencias break y continue. 4.3.4. Diseño de bucles: anidamientos y bucles infinitos.
Fundamentos de Informática
Tema 4:
ETSI Industrial 1 Universidad de Málaga
José Antonio Gómez Ruiz
Estructuras de Control OBJETIVOS
9 Establecer la necesidad de las estructuras de control 9 Diferenciar las estructuras de selección de las iterativas 9 Estructuras de selección e iterativas en C 9 Diseño de bucles: anidamientos y bucles infinitos 9 Todo problema que se pueda resolver en un numero finito de pasos puede expresarse con el uso de estructuras secuenciales, selectivas e iterativas
Fundamentos de Informática
ETSI Industrial 2 Universidad de Málaga
José Antonio Gómez Ruiz
Tema 4: Estructuras de Control Estructura y Contenidos 4.1. ESTRUCTURA SECUENCIAL. 4.2. Estructuras de selección. 4.2.1. Selección simple ( if ). 4.2.2. Selección binaria ( if ... else ). 4.2.3. Selección múltiple ( switch ). 4.2.4. Anidamientos. 4.3. Estructuras de repetición o iterativas. Bucles. 4.3.1. Estructuras no deterministas ( while, do...while ). 4.3.2. Estructuras deterministas ( for ). 4.3.3. Las sentencias break y continue. 4.3.4. Diseño de bucles: anidamientos y bucles infinitos.
Fundamentos de Informática
ETSI Industrial 3 Universidad de Málaga
José Antonio Gómez Ruiz
ESTRUCTURA SECUENCIAL
Estructura Secuencial: aquella en la que las instrucciones o sentencias son ejecutadas una a continuación de la otra en un determinado orden
Se puede alterar esa secuencialidad usando estructuras o sentencias de control. Estas estructuras permiten variar el flujo de control del programa dependiendo de ciertas condiciones ¾
Estructuras de Selección: Permiten que se tomen rutas alternativas de acción dependiendo del resultado de una condición
¾
Estructuras de Iteración: (de repetición o bucle): Permiten repetir un conjunto de sentencias un número determinado de veces
Fundamentos de Informática
ETSI Industrial 4 Universidad de Málaga
José Antonio Gómez Ruiz
ESTRUCTURA SECUENCIAL Inicio
Inicio V Sentencia
¿?
F
Selección Sentencias
Sentencias
Sentencia
Sentencia
Sentencias
Fin
¿?
Estructura Secuencial
F Fin
Iteración
V
Estructura no Secuencial Fundamentos de Informática
ETSI Industrial 5 Universidad de Málaga
José Antonio Gómez Ruiz
Tema 4: Estructuras de Control Estructura y Contenidos 4.1. Estructura secuencial. 4.2. ESTRUCTURAS DE SELECCIÓN. 4.2.1. Selección simple ( if ). 4.2.2. Selección binaria ( if ... else ). 4.2.3. Selección múltiple ( switch ). 4.2.4. Anidamientos. 4.3. Estructuras de repetición o iterativas. Bucles. 4.3.1. Estructuras no deterministas ( while, do...while ). 4.3.2. Estructuras deterministas ( for ). 4.3.3. Las sentencias break y continue. 4.3.4. Diseño de bucles: anidamientos y bucles infinitos.
Fundamentos de Informática
ETSI Industrial 6 Universidad de Málaga
José Antonio Gómez Ruiz
ESTRUCTURAS DE SELECCIÓN
Controlan la selección de flujos alternativos en un algoritmo
Permiten seleccionar una sentencia o grupo de sentencias en función de una condición que, normalmente, es una expresión lógica
Tipos de sentencias de selección: − Selección Simple
→ if
− Selección Binaria
→ if ... else
− Selección Múltiple
→ switch
Fundamentos de Informática
ETSI Industrial 7 Universidad de Málaga
José Antonio Gómez Ruiz
EXPRESIONES LÓGICAS
Las expresiones lógicas son aquellas en las que aparecen exclusivamente operadores relacionales y/o lógicos (>, =, = 0 !((letra==‘Q’) || (letra==‘z’)) && (x>=6) (largo==ancho) && !(x=a && sqrt(x)>=1.0) ⇔ (bn2) { /*Estas llaves se pueden omitir*/ if (n1>n3) printf(“El máximo es ”, n1); else printf(“El máximo es ”, n3); } else { if (n2>n3) printf(“El máximo es ”, n2); else printf(“El máximo es ”, n3); }
Fundamentos de Informática
ETSI Industrial 18 Universidad de Málaga
José Antonio Gómez Ruiz
ANIDAMIENTOS Selección Múltiple SI
cond_1
acción_1
NO SI
cond_2
acción_2
NO
cond_3
SI
acción_3
M
NO
M Fundamentos de Informática
ETSI Industrial 19 Universidad de Málaga
José Antonio Gómez Ruiz
ANIDAMIENTOS /*caso binario especial*/ if (cond_1) acción_1; else if (cond_2) acción_2; else if (cond_3) acción_3; ...
¡Importante la indentación!
Fundamentos de Informática
/* sintaxis abreviada */ if (cond_1) acción_1; else if (cond_2) acción_2; else if (cond_3) acción_3; ... if (nota=1 && mes=1 && dia max ) max = num; }while( num > 0 ); if( max!=0 ) printf(“El número más grande es %d.\n”, max); else printf(“No se han introducido números.\n”); return 0; } Fundamentos de Informática
ETSI Industrial 29 Universidad de Málaga
José Antonio
Tema 4: Estructuras de Control Estructura y Contenidos 4.1. ESTRUCTURA SECUENCIAL. 4.2. ESTRUCTURAS DE SELECCIÓN. 4.2.1. Selección simple ( if ). 4.2.2. Selección binaria ( if ... else ). 4.2.3. Selección múltiple ( switch ). 4.2.4. Anidamientos. 4.3. ESTRUCTURAS DE REPETICIÓN O ITERATIVAS. BUCLES. 4.3.1. Estructuras no deterministas ( while, do...while ). 4.3.2. Estructuras deterministas ( for ). 4.3.3. Las sentencias break y continue. 4.3.4. Diseño de bucles: anidamientos y bucles infinitos.
Fundamentos de Informática
Tema 4:
ETSI Industrial 1 Universidad de Málaga
José Antonio Gómez Ruiz
Estructuras de Control OBJETIVOS
9 Establecer la necesidad de las estructuras de control 9 Diferenciar las estructuras de selección de las iterativas 9 Estructuras de selección e iterativas en C 9 Diseño de bucles: anidamientos y bucles infinitos 9 Todo problema que se pueda resolver en un numero finito de pasos puede expresarse con el uso de estructuras secuenciales, selectivas e iterativas
Fundamentos de Informática
ETSI Industrial 2 Universidad de Málaga
José Antonio Gómez Ruiz
Tema 4: Estructuras de Control Estructura y Contenidos 4.1. ESTRUCTURA SECUENCIAL. 4.2. Estructuras de selección. 4.2.1. Selección simple ( if ). 4.2.2. Selección binaria ( if ... else ). 4.2.3. Selección múltiple ( switch ). 4.2.4. Anidamientos. 4.3. Estructuras de repetición o iterativas. Bucles. 4.3.1. Estructuras no deterministas ( while, do...while ). 4.3.2. Estructuras deterministas ( for ). 4.3.3. Las sentencias break y continue. 4.3.4. Diseño de bucles: anidamientos y bucles infinitos.
Fundamentos de Informática
ETSI Industrial 3 Universidad de Málaga
José Antonio Gómez Ruiz
ESTRUCTURA SECUENCIAL
Estructura Secuencial: aquella en la que las instrucciones o sentencias son ejecutadas una a continuación de la otra en un determinado orden
Se puede alterar esa secuencialidad usando estructuras o sentencias de control. Estas estructuras permiten variar el flujo de control del programa dependiendo de ciertas condiciones ¾
Estructuras de Selección: Permiten que se tomen rutas alternativas de acción dependiendo del resultado de una condición
¾
Estructuras de Iteración: (de repetición o bucle): Permiten repetir un conjunto de sentencias un número determinado de veces
Fundamentos de Informática
ETSI Industrial 4 Universidad de Málaga
José Antonio Gómez Ruiz
ESTRUCTURA SECUENCIAL Inicio
Inicio V Sentencia
¿?
F
Selección Sentencias
Sentencias
Sentencia
Sentencia
Sentencias
Fin
¿?
Estructura Secuencial
F Fin
Iteración
V
Estructura no Secuencial Fundamentos de Informática
ETSI Industrial 5 Universidad de Málaga
José Antonio Gómez Ruiz
Tema 4: Estructuras de Control Estructura y Contenidos 4.1. Estructura secuencial. 4.2. ESTRUCTURAS DE SELECCIÓN. 4.2.1. Selección simple ( if ). 4.2.2. Selección binaria ( if ... else ). 4.2.3. Selección múltiple ( switch ). 4.2.4. Anidamientos. 4.3. Estructuras de repetición o iterativas. Bucles. 4.3.1. Estructuras no deterministas ( while, do...while ). 4.3.2. Estructuras deterministas ( for ). 4.3.3. Las sentencias break y continue. 4.3.4. Diseño de bucles: anidamientos y bucles infinitos.
Fundamentos de Informática
ETSI Industrial 6 Universidad de Málaga
José Antonio Gómez Ruiz
ESTRUCTURAS DE SELECCIÓN
Controlan la selección de flujos alternativos en un algoritmo
Permiten seleccionar una sentencia o grupo de sentencias en función de una condición que, normalmente, es una expresión lógica
Tipos de sentencias de selección: − Selección Simple
→ if
− Selección Binaria
→ if ... else
− Selección Múltiple
→ switch
Fundamentos de Informática
ETSI Industrial 7 Universidad de Málaga
José Antonio Gómez Ruiz
EXPRESIONES LÓGICAS
Las expresiones lógicas son aquellas en las que aparecen exclusivamente operadores relacionales y/o lógicos (>, =, = 0 !((letra==‘Q’) || (letra==‘z’)) && (x>=6) (largo==ancho) && !(x=a && sqrt(x)>=1.0) ⇔ (bn2) { /*Estas llaves se pueden omitir*/ if (n1>n3) printf(“El máximo es ”, n1); else printf(“El máximo es ”, n3); } else { if (n2>n3) printf(“El máximo es ”, n2); else printf(“El máximo es ”, n3); }
Fundamentos de Informática
ETSI Industrial 18 Universidad de Málaga
José Antonio Gómez Ruiz
ANIDAMIENTOS Selección Múltiple SI
cond_1
acción_1
NO SI
cond_2
acción_2
NO
cond_3
SI
acción_3
M
NO
M Fundamentos de Informática
ETSI Industrial 19 Universidad de Málaga
José Antonio Gómez Ruiz
ANIDAMIENTOS /*caso binario especial*/ if (cond_1) acción_1; else if (cond_2) acción_2; else if (cond_3) acción_3; ...
¡Importante la indentación!
Fundamentos de Informática
/* sintaxis abreviada */ if (cond_1) acción_1; else if (cond_2) acción_2; else if (cond_3) acción_3; ... if (nota=1 && mes=1 && dia max ) max = num; }while( num > 0 ); if( max!=0 ) printf(“El número más grande es %d.\n”, max); else printf(“No se han introducido números.\n”); return 0; } Fundamentos de Informática
ETSI Industrial 29 Universidad de Málaga
José Antonio Gómez Ruiz
BUCLES NO DETERMINISTAS
Bucle pre-condición: while ¾
la condición de terminación se evalúa antes de cada iteración condición
NO
SI
sentencias
SI sentencias_fuera
cuidado con poner involuntariamente un ;
while() { }
tiene que ir SIEMPRE entre paréntesis se ejecuta 0 ó más veces Fundamentos de Informática
ETSI Industrial 30 Universidad de Málaga
José Antonio Gómez Ruiz
BUCLES NO DETERMINISTAS
Bucle pre-condición: while ¾
Algunos ejemplos muy utilizados son: − Bucle controlado por contador − Bucle controlado por centinela − Bucle contador
Fundamentos de Informática
ETSI Industrial 31 Universidad de Málaga
José Antonio Gómez Ruiz
BUCLES NO DETERMINISTAS
Bucle controlado por contador ¾ ¾ ¾
Se ejecuta un numero determinado de veces Se utiliza una variable de control del bucle (vcb) Componentes − Inicialización − Comprobación de la condición − Actualización