1.9. SENTENCIAS DE CONTROL DE PROGRAMA

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

TEMA 4. ESTRUCTURAS DE CONTROL

ESTRUCTURAS DE CONTROL

Programación. Test Autoevaluación Tema 4

Sentencias de control de flujo

Lección 3 Sentencias de control

Tema 3. Estructuras de control

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Operadores aritméticos

Tema 4. Control de flujo. Programación Programación - Tema 4: Control de Flujo

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

TEMA 5. ESTRUCTURAS DE CONTROL: BUCLES.

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

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

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

Programación Orientada Objetos. Estructuras de control if, If else, switch

Cuales son los tipos de instrucciones que se utilizan en la programación?

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

Fundamentos de programación

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

ESTRUCTURAS DE CONTROL

TEMA 4: Estructuras de Control

TEMA 3. Sentencias de control.

5. Sentencias selectivas o condicionales

Programación: Estructuras de Control

Estructuras de selección

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

Sentencias iterativas

GUÍA DE LABORATORIO #3 ESTRUCTURAS ALGORÍTMICAS CONDICIONALES SIMPLES, DOBLES Y MÚLTIPLES

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Sentencias DO-WHILE EN C++

TEMA 4: Programación estructurada

Sentencias de salto: break, continue, goto Sentencia de Salto: break

Operadores de comparación

Tema 06: Estructuras y sentencias de control en C

PYTHON. Programación estructurada

Capítulo 3. Sentencias condicionales

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

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO

SESIÓN DE EJERCICIOS E1

fundamentos de programación (unidad 4) programación estructurada en Java

Estructuras de Control 3

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

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

Programación en Lenguaje C

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

Operadores. Java es un lenguaje rico en operadores, que son casi idénticos a los de C/C++.

Cuáles son los lenguajes que pueden utilizarse para programar Karel?

Introducción a las sentencias de control

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

Estructuras de Repetición: Repita Mientras.

Estructuras de Decisión Simples y Dobles. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz

SESIÓN DE EJERCICIOS E1

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

Capítulo 4. Control de flujo. Continuar

Operadores de comparación

Repaso Lenguaje C Área de Servicios Programación (Ing. Elect. y Prof. Tec.), Programación I (TUG y TUR) y Electrónica programable (TUE)

Estructuras de control

Aprendiendo a programar Microcontroladores PIC en Lenguaje C con CCS

Introducción a C++ Algoritmos y Estructuras de datos II Dra. Carmen Mezura Godoy. Febrero 2009

Esquemas repetitivos en Fortran 90. Esquemas repetitivos en Fortran 90. Esquemas repetitivos en Fortran 90. Tipos de Esquema

Curso Informática Lección 4. Instrucciones de control

Programación.Net Lenguaje C#

Instrucciones de control

Lenguaje C. República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III

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

Programación Orientada a Objetos

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

Tema 3. Estructuras de control en C++

Estructuras de Control

Esquemas repetitivos en Fortran 90

GUIÓN DE PRÁCTICAS 3: ESTRUCTURAS CONDICIONALES

Lenguaje de programación C. Introducción

Sentencias de Procesamiento Iterativo: while y do-while

6. Sentencias repetitivas o bucles

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

Conocer los tipos de esquemas condicionales. Entender su funcionamiento y sus diferencias. 1. Introducción. 3. Esquemas condicionales en C

INSTITUTO TECNOLÓGICO

Tema 07: Programación estructurada en C

Lógica de programación

Tema 3. Estructuras de Datos

Práctica #4: Uso de control de flujo

Transcripción:

1.9. SENTENCIAS DE CONTROL DE PROGRAMA En C todas las instrucciones o sentencias terminan en punto y coma (;) Un bloque se compone de varias instrucciones o sentencias encerradas entre llaves. Las estructuras secuencial, alternativas y repetitivas se les denomina estructuras de control debido a que controlan el modo de ejecución del programa. 1.9.1. Estructura Secuencial La estructura secuencial puede estar formada por sentencias o instrucciones simples o por bloques de instrucciones. EJEMPLO: instrucción 1; instrucción 2; instrucción 3; instrucción 4; instrucción 5; 1.9.2. Estructuras Alternativas: if, if-, switch 1.9.2.1.- Estructura Alternativa Simple: if SINTAXIS 1: if (exp_logica) sentencia; sentencia sólo se ejecutará cuando sea cierta (es decir, se cumpla) la expresión lógica exp_logica. SINTAXIS 2:

if (exp_logica) sentencia_2;... sentencia_n; En este caso las sentencias de la 1 a la n (simples o compuestas) sólo se ejecutan cuando se cumpla la expresión lógica exp_logica ; en otro caso, no se ejecutan, las salta. Si la expresión lógica del if es cierta (DISTINTO DE 0), la sentencia o sentencias que incluya el if se ejecutarán. Si la expresión lógica del if es falsa (CERO), el if se salta y se continúa la ejecución con la siguiente sentencia del programa. Dentro del if y del, en C si hay más de una instrucción, éstas deben ir entre llaves. La expresión debe ir escrita SIEMPRE entre PARÉNTESIS EJEMPLO DE USO void main(void ) char x; printf( Introduzca una letra--> ); x=getchar( ); if ((x>= A ) && (x<= Z )) printf( HAS ESCRITO UNA LETRA MAYÚSCULA ); printf( \nintroduzca otra letra--> ); scanf( %c,&x); if (x== m ) printf( HAS ESCRITO UNA %c,x);

1.9.2.2. Estructura Alternativa Doble: if- SINTAXIS 1: if (exp_logica) sentencia_2; Se ejecuta la sentencia_1 (simple o compuesta) si se cumple la expresión lógica y se ejecuta la sentencia_2 si no se cumple la expresión lógica. SINTAXIS 2: if (exp_logica) sentencia_2;... sentencia_n; sentencia_a;... sentencia_z; En este caso, se ejecutan las sentencias desde la sentencia_1 a la sentencia_n si se cumple la expresión lógica y se ejecutan las sentencias desde la sentencia_a a la sentencia_z si no se cumple la expresión lógica. Dentro del if y del, en C si hay más de una instrucción, éstas deben ir entre llaves. La expresión debe ir escrita SIEMPRE entre PARÉNTESIS Los if pueden ir anidados, es decir, uno dentro de otro Ejemplo: Programa que escribe la palabra POSITIVO si el valor de una variable A es mayor que 0, NEGATIVO si es menor que 0 y NULO si es 0.

int A; printf( Introducir el valor de A ); scanf( %d, &A); if (A>0) printf( POSITIVO ); if (A<0) printf( NEGATIVO ); printf( NULO ); EJEMPLO DE USO char x; printf( Introduzca una letra--> ); x=getchar( ); if ((x>= A ) && (x<= Z )) printf( HAS ESCRITO UNA LETRA MAYÚSCULA ); printf( HAS ESCRITO UN CARÁCTER QUE NO ES UNA LETRA MAYÚSCULA ); EJEMPLO DE USO 2: sentencias IF anidadas: char x; printf( Introduzca una letra--> ); x=getchar( ); if (x== a ) printf( Has tecleado la primera letra del alfabeto\n ); if (x== z )

printf( Has tecleado la última letra del alfabeto\n ); if ((x>= A ) && (x<= Z )) printf( Has tecleado una letra mayúscula\n ); printf( Has tecleado otra letra\n ); 1.9.2.3. Estructura Alternativa Múltiple: switch La sentencia switch hace que se seleccione un grupo de sentencias entre varios grupos disponibles. SINTAXIS: donde: switch (expresión) case constante1:... sentencia_n; case constante2: sentencia_a;... sentencia_z;... default: sentencias; 1) Expresión: debe ser una expresión que nos devuelva un ENTERO O CARÁCTER. 2) Constante1, constante2,...: deben ser constantes ENTERAS O CARÁCTER.

CÓMO FUNCIONA EL switch?: 1º) La sentencia SWITCH evalúa la expresión escrita entre paréntesis y compara su valor con las constantes de cada CASE. 2º) Si encuentra un CASE cuya constante coincida con el valor de la expresión entre paréntesis del switch, empieza a ejecutar las sentencias de ese CASE y no para al llegar al siguiente CASE, sino que sigue ejecutando las sentencias que haya hasta el final del switch, o hasta encontrar un BREAK. Por eso es muy importante poner BREAK al final de cada CASE. 3º) Si no encuentra ningún CASE cuya constante coincida, intentará ejecutar las sentencias que hubiese bajo la etiqueta DEFAULT. Si no existe la etiqueta DEFAULT, entonces, no hace nada el switch y pasaría a ejecutarse la sentencia que se encuentre después del switch. EJEMPLO DE USO: void main(void ) int mes; printf( INTRODUZCA UN MES CON Nº: ); scanf( %d,&mes); switch (mes) case 1: case 2: case 3: case 4: default: printf( Su mes es ENERO\n ); printf( Su mes es FEBRERO\n ); printf( Su mes es MARZO\n ); printf( Su mes es ABRIL\n ); printf( SÓLO LE INFORMO HASTA ABRIL\n );

OTRO EJEMPLO DE USO: Programa que lee un carácter y escribe la palabra ROJO si el carácter leído es R, BLANCO si el carácter leído es B y AZUL si el carácter leído es A. Si no se introduce ninguno de estos caracteres, debe visualizar un mensaje de error: char color; printf( Introducir un color ); color=getchar(); switch (color) case R : printf( ROJO ); case B : printf( BLANCO ); case A : printf( AZUL ); default : printf( Carácter erróneo ); 1.9.3. Estructuras Repetitivas: while, do-while, for Las estructuras repetitivas se utilizan para generar bucles, es decir, para repetir la ejecución de una o más sentencias varias veces. 1.9.3.1.- Estructura Repetitiva: while o mientras La sentencia o sentencias incluidas en este bucle se ejecutarán repetidamente, MIENTRAS el valor de expresión sea verdadero (es decir, distinto de CERO). La sentencia incluida en el bucle puede ser simple o compuesta y debe incluir algún elemento que altere el valor de expresión lógica, proporcionando así la condición de salida del bucle.

SINTAXIS 1: while (expr_logica) sentencia; SINTAXIS 2: while(expr_lógica)... sentencia_n; CÓMO FUNCIONA EL BUCLE WHILE? 1º) Se evalúa la expresión_lógica de la cabecera del bucle. 2º) Si la expresión lógica es CIERTA (distinta de 0), se ejecutan la/s sentencia/s del CUERPO del while. Tras la última sentencia del cuerpo del bucle, se vuelve a la CABECERA a COMPROBAR DE NUEVO la expresión lógica o condición. 3º) Si la expresión lógica es FALSA (vale 0), el bucle while se salta y se pasa a ejecutar la instrucción siguiente al while. EJEMPLO DE USO: Programa que imprime los números del 1 al 100: int cont; cont=0; while(cont <100) cont++; printf( %d \n,cont);

OTRO EJEMPLO DE USO: Programa que pide y escribe caracteres hasta que se pulse la j : char a; a= \0 ; printf( INTRODUCE CARACTERES (j para terminar): ); while (a!= j ) a=getchar( ); putchar(a); 1.9.3.2.- Estructura Repetitiva: do-while o repetir-mientras Cuando se construye un bucle utilizando la sentencia while descrita en el apartado anterior, el test para la continuación del bucle se realiza al comienzo de cada pasada. Sin embargo, a veces es deseable disponer de un bucle en el que se realice el test al final de cada pasada. Esto se puede hacer mediante la sentencia do-while. SINTAXIS 1: do sentencia; while (expr_logica); SINTAXIS 2: do... sentencia_n; while (expr_lógica);

La sentencia o sentencias incluidas en el cuerpo del bucle se ejecutarán repetidamente, mientras el valor de expresión sea CIERTO (es decir, sea distinto de cero). La sentencia incluida en el bucle puede ser simple o compuesta y debe incluir algún elemento que altere el valor de expresión lógica, proporcionando así la condición de salida del bucle. Nótese que sentencia siempre se ejecutará al menos una vez, ya que el test de comprobación de la expresión_lógica que controla el bucle no se realiza hasta el final de la primera pasada por el bucle. CÓMO FUNCIONA EL BUCLE DO - WHILE? 1º) Se ejecutan la/s sentencia/s del CUERPO del bucle 2º) Se evalúa la expresión lógica que aparece al final del bucle. 3º) Si la expresión lógica es CIERTA (distinta de CERO), se ejecutan la/s sentencia/s del CUERPO del while OTRA VEZ. 4º) Si la expresión lógica es FALSA (es CERO), se pasa a ejecutar la instrucción siguiente al do-while. PERO EL CONTENIDO DEL CUERPO DEL DO-WHILE SE HABRÁ EJECUTADO UNA VEZ. EJEMPLO DE USO: Programa que imprime los números del 1 al 100: int cont; cont=0; do cont++; printf( %d \n,cont); while (cont<100); OTRO EJEMPLO DE USO: Programa que pide y escribe caracteres hasta que se pulse la j :

char a; a= \0 ; printf( INTRODUCE CARACTERES (j para terminar): ); do a=getchar( ); putchar(a); while (a!= j ); 1.9.3.3.- Estructura Repetitiva: for o para La sentencia for es quizá la más frecuentemente usada para crear bucles en C. Esta sentencia incluye: una expresión o inicialización que especifica el valor inicial de un índice; otra expresión o condición que determina cuando se continúa o no el bucle y una tercera expresión o actualización que permite que el índice se modifique al final de cada pasada. Su formato o sintaxis es: for(inicialización; condición; actualización) sentencia_2;... sentencia_n; CÓMO FUNCIONA EL BUCLE for? 4º) Si la expresión lógica es FALSA (es CERO), se pasa a ejecutar la instrucción siguiente al do-while. PERO EL CONTENIDO DEL CUERPO DEL DO-WHILE SE HABRÁ EJECUTADO UNA VEZ. 1º) Se ejecuta la INICIALIZACIÓN 2º) Se evalúa la CONDICIÓN. 3º) Si la condición es CIERTA (distinto de 0):

- Ejecuta las sentencias del CUERPO del for - Ejecuta la expresión de ACTUALIZACIÓN - Vuelve a evaluar la CONDICIÓN. 4º) Si la condición es FALSA (vale 0): el cuerpo del for no se ejecuta y se sale del for. Por tanto, la sentencia o sentencias incluidas en el cuerpo del bucle se ejecutarán repetidamente, mientras el valor de la condición que lleva el for en la cabecera sea CIERTO (es decir, sea distinto de cero). En un for se puede omitir: la inicialización, la condición y la actualización. Pero LOS ; DEBEN DEJARSE SIEMPRE. Por ejemplo, se podría poner: for (; ;) printf( hola ); EJEMPLO DE USO: Programa que imprime los números del 1 al 100: int cont; for (cont=0; cont<100; cont++) printf( %d \n,cont); OTRO EJEMPLO DE USO: Programa que pide y escribe caracteres hasta que se pulse la j : char a; printf( INTRODUCE CARACTERES (j para terminar): ); for (a= \0 ; a!= j ; a=getchar( )) putchar(a);