360 likes | 604 Views
Estructuras de Control de Flujo. Proposiciones y Bloques If else Else if Ciclo for Ciclo while y Do While Break y Continue Goto y Etiquetas. Identificar las estructuras de control de flujo en Lenguaje C. Objetivo:. Estructuras de Control.
E N D
Estructuras de Control de Flujo Proposiciones y Bloques Ifelse Elseif Ciclo for Ciclo while y Do While Break y Continue Goto y Etiquetas L.I. Juan Moises Yam Chan
Identificar las estructuras de control de flujo en Lenguaje C. Objetivo: L.I. Juan Moises Yam Chan
Estructuras de Control Son enunciados de código que determinan el flujo de la información. L.I. Juan Moises Yam Chan Pueden ser : Condicionales Repetitivos
Estructuras de Control Condicionales Los enunciados de un programa en C, normalmente se ejecutan de arriba hacia abajo, en el mismo orden en que aparecen en el código fuente. Una estructura de control condicional indica la ejecución o no, de ciertos enunciados. L.I. Juan Moises Yam Chan
Estructuras de Control Condicionales Pueder ser: Cuando se evalúa una condición, y se tienen solamente dos alternativas. • Simples • if – else L.I. Juan Moises Yam Chan • Múltiples • Switch Cuando se evalúa una condición, y se tienen varias alternativas para elegir.
if (condición) { enunciado 1; enunciado 2; . . . enunciado n; } No se pone ; Se pone { para abrir el bloque Entre { y } todos los enunciados a ejecutar Condicional Simple if Finaliza con } L.I. Juan Moises Yam Chan En su forma básica, evalúa una condición y dirige la ejecución del programa dependiendo del resultado de esa evaluación.
if (condición) { /*Se ejecutan Si se cumple la condición*/ Enuciados… } Si la expresión evalúa a verdadero, se ejecuta el bloque de código. Los enunciados solo se ejecutan si se cumple la condición. Condicional Simple L.I. Juan Moises Yam Chan La ejecución del programa continua después de la llave que cierra el bloque perteneciente al enunciado if.
Ejemplo Determinar sí un alumno aprobó una materia. Calif. Aprob. Minima: 6 if (expresión) { enunciado 1; enunciado 2; . . . enunciado n; } if (calif >= 6) { printf (“aprobado”); } L.I. Juan Moises Yam Chan
Ejemplo Determinar sí un alumno aprobó una materia. Calif. Aprob. Minima: 6 Suponga que la calificación del alumno sea 8 if (calif >= 6) { printf (“aprobado”); } L.I. Juan Moises Yam Chan La condición será: 8 >= 6 Como la condición es verdadera se ejecuta la instrucción y se imprime el mensaje. (8 >= 6)
Ejemplo Determinar sí un alumno aprobó una materia. Calif. Aprob. Minima: 6 Ahora suponga que la calificación del alumno sea 5 if (calif >= 6) { printf (“aprobado”); } L.I. Juan Moises Yam Chan La condición será: 5 >= 6 Como la condición es falsa no se ejecuta la instrucción y continua la ejecucción del programa después de la llave del if. (5 >= 6)
En algunos casos como este conviene realizar algo cuando no se cumple la condición if (calif >= 6) { printf (“aprobado”); } (5 >= 6) En este ejemplo sería conveniente mostrar un mensaje cuando el alumno este reprobado. L.I. Juan Moises Yam Chan Para eso esta la cláusula else, la cuál ejecuta un enunciado o bloque cuando no se cumple la condición.
La forma del enunciado if con la cláusula else ofrece 2 opciones; cuando se cumpla y cuando no se cumpla la condición. if else if (condición) { /* inicio de if */ enunciados; } /* fin de if */ else { /* inicio de else */ enunciados; } /* fin de else */ Esta es la parte básica del If los enunciadose ejecutan si se cumple la condición La parte del else, se ejecuta cuando no se cumple L.I. Juan Moises Yam Chan Igual se usan las llaves
Ejemplo if #include <stdio.h> #include <conio.h> int usuario, clave; void main() { clave=13406; printf("Introduce tu clave: "); scanf("%d",&usuario); if(usuario==clave) { printf("Acceso permitido"); } getch( ); } L.I. Juan Moises Yam Chan
Ejemplo if -else #include <stdio.h> #include <conio.h> int usuario, clave; void main() { clave=13406; printf("Introduce tu clave: "); scanf("%d",&usuario); if(usuario==clave) { printf("Acceso permitido"); } else { printf(“Clave incorrecta”); } getch( ); } Dentro del if y del else se pueden escribir cualquier enunciado del lenguaje C, como: solicitar variables, hacer operaciones, incluso otras estructuras. L.I. Juan Moises Yam Chan
Ejercicios Determinar si un número es par o impar. Cuanto va a ganar un empleado a la semana si le pagan $30 por hora y cada hora extra se la pagan al doble. el número de horas normales a la semana son 40. calcular si un número del 1 al 20 es múltiplo de 2,3 o de otro número. Solicitar 3 números y determinar la posición del menor. L.I. Juan Moises Yam Chan
Ejemplo if Cuando se trata de un solo enunciado dentro del if o else no es necesario poner las llaves. Como sucede en este ejemplo. #include <stdio.h> #include <conio.h> int num1, num2; main() { clrscr(); printf("Teclea un valor entero: "); scanf("%i",&num1); printf("Teclea otro número entero: "); scanf("%i",&num2); if (num1==num2) printf("%i es igual a %i",num1,num2); if (num1>num2) printf("%i es mayor que %i",num1,num2); if (num1<num2) printf("%i es menor que %i",num1,num2); getch(); } Solicita 2 números Compara si son iguales Se cumpla o no la condición compara si el 1º es mayor que el 2o Lo mismo sucede al comparar si el 1º es menor que el 2o L.I. Juan Moises Yam Chan
Ejemplo if Observe que si se cumple la 1ª. condición no es necesario evaluar la 2ª. y si se cumple la segunda, pues no tiene caso evaluar la 3ª. El programa es ineficiente. #include <stdio.h> #include <conio.h> int num1, num2; main() { clrscr(); printf("Teclea un valor entero: "); scanf("%i",&num1); printf("Teclea otro número entero: "); scanf("%i",&num2); if (num1==num2) printf("%i es igual a %i",num1,num2); if (num1>num2) printf("%i es mayor que %i",num1,num2); if (num1<num2) printf("%i es menor que %i",num1,num2); getch(); } L.I. Juan Moises Yam Chan
Estructuras de Control anidadas Anidar una estructura de control significa poner una o más estructuras dentro de otra para mejorar la funcionalidad de los programas. L.I. Juan Moises Yam Chan
Ejemplo if - anidado #include <stdio.h> #include <conio.h> int num1, num2; main() { clrscr(); printf("Teclea un valor entero: "); scanf("%i",&num1); printf("Teclea otro número entero: "); scanf("%i",&num2); if (num1==num2) printf("%i es igual a %i",num1,num2); else if (num1>num2) printf("%i es mayor que %i",num1,num2); else printf("%i es menor que %i",num1,num2); getch(); } Con este concepto se puede mejorar el programa de mayor o menor; utilizando un if anidado L.I. Juan Moises Yam Chan
Etiquetas Una etiqueta es un enunciado que sirve como marca, para que el programa llegue ahí en un momento determinado de la ejecución. Para el uso de las etiquetas en C es necesario conocer el enunciado goto. L.I. Juan Moises Yam Chan
Enunciado goto Es uno de los enunciados de salto incondicional o ramificación. Cuando el programa llega a un enunciado goto, la ejecución salta inmediata y automáticamente a la posición especificada(a una etiqueta). L.I. Juan Moises Yam Chan
Sintaxis goto Destino es una etiqueta que identifica la posición del programa a la que debe de dirigirse la ejecución.. goto destino; Una etiquetaconsiste de un identificador seguido de dos puntos, como ejemplo vea estas dos etiquetas; L.I. Juan Moises Yam Chan destino: Repetir:
Estructuras de Control Repetitivas Los enunciados de un programa en C, normalmente se ejecutan de arriba hacia abajo, en el mismo orden en que aparecen en el código fuente. Una estructura de control condicional indica la ejecución o no, de ciertos enunciados. L.I. Juan Moises Yam Chan
Estructuras de Control Repetitivas Este ciclo es utilizado cuando se conoce el número de repeticiones que se requieren. • for Es útil cuando se desconoce el número de iteraciones requeridas. L.I. Juan Moises Yam Chan • while Es similar al ciclo while, pero a diferencia, se verifica la condición al final del ciclo en vez de hacerlo al principio. • do while
No se pone ; for(inicio;fin;incremento ) { Enunciados que se van a repetir. } Ciclo for donde empieza el ciclo. Ej. x=1 donde termina el ciclo. Ej. X<=100 Indica el avance del ciclo. Ej. X++ L.I. Juan Moises Yam Chan inicio, fin e incremento son expresiones de C, separadas por ;que actúan sobre una variable llamada Variable de Control.
¿Cómo funciona el Ciclo For?. for(entero=1; entero<=20; entero++) printf("%i\n",entero); getch(); 1.- La expresión inicio es evaluada. Inicio por lo general es una expresión de asignación que pone la variable de control a un valor determinado. En el ejemplo, entero es la variable de control, se inicia con el valor de 1. L.I. Juan Moises Yam Chan
¿Cómo funciona el Ciclo For?. for(entero=1; entero<=20; entero++) printf("%i\n",entero); getch(); 2.- La expresión de condición es evaluada. La condición es típicamente una expresión relacional que indica el número de vueltas que dará el ciclo. En el ejemplo el ciclo se repetirá mientras que la variable de control sea menor o igual a 20. L.I. Juan Moises Yam Chan
¿Cómo funciona el Ciclo For?. for(entero=1; entero<=20; entero++) printf("%i\n",entero); getch(); 3.- Cuando la condición es falsa el ciclo termina. En el ejemplo será falsa cuando entero sea 21. L.I. Juan Moises Yam Chan 4.- Si la condición si cumple se ejecutan los enunciados que se encuentran dentro del ciclo. En el ejemplo se imprime el valor que tenga la variable entero.
¿Cómo funciona el Ciclo For?. for(entero=1; entero<=20; entero++) printf("%i\n",entero); getch(); 5.- La expresión de incremento es evaluada y aumentada, luego pasa el control al paso 2. En el ejemplo se utiliza un operador unario de incremento que aumenta en uno la variable de control, es equivalente a escribir: entero = entero +1 L.I. Juan Moises Yam Chan
Ejemplo for Imprimir los primeros 20 números enteros positivos #include <stdio.h> #include <conio.h> int entero; void main() { clrscr(); for(entero=1; entero<=20; entero++) printf("%i\n",entero); getch(); } Inicio En 1 Fin En 20 Incremento De 1 en 1 L.I. Juan Moises Yam Chan Cuando es una línea no requiere { } Esta fuera del ciclo
Ejemplo for #include <stdio.h> #include <conio.h> int x; float cal, prom,suma; void main() { clrscr(); for(x=1;x<=8;x++) { printf("Teclea la calificicación %i: ",x); scanf("%f",&cal); suma=suma+cal; } prom=suma/8; printf("\n%.2f",prom); getch(); } L.I. Juan Moises Yam Chan
Ciclo Ejecuta un bloque de enunciados en tanto una condición específica sea cierta, es decir, mientras se cumpla la condición. While Es útil cuando se desconoce el número de iteraciones requeridas, L.I. Juan Moises Yam Chan Se puede terminar el ciclo cuestionando al usuario o generando algún valor desde dentro del ciclo.
Ciclo valor inicial; while (condición) { bloque o cuerpo del ciclo (todo lo que se va a repetir) evento salida; } El valor inicial permite que el ciclo se realice al menos la primera vez. Es un valor que hace que se cumpla la condición. While Se evalúa la condición. Para saber cuando termina Es necesario generar un evento de salida o solicitarlo al usuario L.I. Juan Moises Yam Chan
Ciclo Se evalúa la condición Si la condición no se cumple, el enunciado while termina y la ejecución pasa al siguiente enunciado después de la llave que indica el fin del ciclo. Si la condición es verdadera (se cumple) se ejecutan los enunciados del ciclo, los que están dentro de las llaves. While L.I. Juan Moises Yam Chan
Ciclo La ejecución regresa al paso 1. Y se repite hasta que en algún momento ya no se cumple la condición. While cont=1; while(cont<=10) { printf("%i \n",cont); cont++; } getch(); L.I. Juan Moises Yam Chan