Tema 4: Estructura y Contenidos

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 downloads 0 Views 169KB Size
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

i=0; /*Inicialización*/ while(i