L.I. Juan M
oise
s Yam
Chan
Estructuras de Estructuras de Control Control de Flujode Flujo
Proposiciones y Proposiciones y BloquesBloquesIf elseIf elseElse ifElse ifCiclo forCiclo forCiclo while y Do WhileCiclo while y Do WhileBreak y ContinueBreak y ContinueGoto y EtiquetasGoto y Etiquetas
L.I. Juan M
oise
s Yam
Chan
IDENTIFICAR LAS ESTRUCTURAS DE CONTROL DE FLUJO EN LENGUAJE C.
Objetivo:Objetivo:L.I. Ju
an M
oise
s Yam
Chan
Estructuras de Estructuras de ControlControl
Son enunciados de código que determinan el flujo de la
información.
Pueden ser :Condicionales Repetitivos
L.I. Juan M
oise
s Yam
Chan
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.
Estructuras de Estructuras de ControlControl
CondicionalesCondicionales
L.I. Juan M
oise
s Yam
Chan
Simplesif –
else
Estructuras de Estructuras de ControlControl
CondicionalesCondicionales
Cuando se evalúa una condición, y se tienen solamente dos alternativas.
Cuando se evalúa una condición, y se tienen varias alternativas para elegir.
Pueder ser:
MúltiplesSwitch
L.I. Juan M
oise
s 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.
ifif
if (condición) {enunciado 1;enunciado 2; . . .enunciado n;}
Condicional Condicional SimpleSimple
No se pone ;Se pone { para abrir el bloque
Entre { y }
todos los enunciado
s a ejecutarFinaliza con }
L.I. Juan M
oise
s Yam
Chan
if (condición) {/*Se ejecutan Si se cumplela condición*/Enuciados…}
CCoonnddiicciioonnaall
SSiimmppllee
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.
La ejecución del programa continua después de la llave que cierra el bloque perteneciente al
enunciado if.
L.I. Juan M
oise
s Yam
Chan
if (expresión) {enunciado 1;enunciado 2; . . .enunciado n;}
if (calif >= 6) {printf (“aprobado”); }
EjemploDeterminar sí un alumno aprobó una
materia. Calif. Aprob. Minima: 6
L.I. Juan M
oise
s Yam
Chan
if (calif >= 6) {printf (“aprobado”); }
EjemploDeterminar sí un alumno aprobó una
materia. Calif. Aprob. Minima: 6
Suponga que la calificación del alumno sea 8
La condición
será: 8 >= 6(8 >=
6)
Como la condición es verdadera se ejecuta la instrucción y se imprime el mensaje.
L.I. Juan M
oise
s Yam
Chan
if (calif >= 6) {printf (“aprobado”); }
EjemploDeterminar sí un alumno aprobó una
materia. Calif. Aprob. Minima: 6Ahora suponga que la calificación del alumno sea 5
La condición
será: 5 >= 6(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.
L.I. Juan M
oise
s Yam
Chan
if (calif >= 6) {printf (“aprobado”); }
En algunos casos como este conviene realizar algo cuando no se cumple la condición
(5 >= 6)
Para eso esta la cláusula else, la cuál ejecuta un enunciado o bloque cuando no se cumple la condición.
En este ejemplo sería conveniente mostrar un mensaje cuando el alumno
este reprobado.
L.I. Juan M
oise
s Yam
Chan
La forma del enunciado if con la cláusula else ofrece 2 opciones;
cuando se cumpla y cuando no se cumpla la condición.
ififif (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 enunciad
ose ejecutan
si se cumple la condición
eellssee
La parte del else,
se ejecuta cuando no se
cumple
Igual se usan las llaves
L.I. Juan M
oise
s Yam
Chan
#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( );}
Ejemplo ifL.I. Ju
an M
oise
s Yam
Chan
#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( );}
Ejemplo if -elseDentro del if y del else se pueden escribir cualquier enunciado del lenguaje C, como: solicitar variables, hacer operaciones, incluso otras estructuras.
L.I. Juan M
oise
s Yam
Chan
Ejercicios1. Determinar si un número es par o
impar.2. 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.
3. calcular si un número del 1 al 20 es múltiplo de 2,3 o de otro número.
4. Solicitar 3 números y determinar la posición del menor.
L.I. Juan M
oise
s Yam
Chan
#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();}
Ejemplo ifCuando se trata de un
solo enunciado
dentro del if o else no es necesario poner las llaves.
Como sucede en este ejemplo.
Solicita 2
números
Compara si son igualesSe 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 M
oise
s Yam
Chan
#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();}
Ejemplo ifObserve 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.
L.I. Juan M
oise
s Yam
Chan
Estructuras de Estructuras de Control anidadasControl 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 M
oise
s Yam
Chan
#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(); }
Ejemplo if - anidadoCon este
concepto se puede
mejorar el programa
de mayor o menor;
utilizando un if
anidado
L.I. Juan M
oise
s Yam
Chan
EtiquetasEtiquetasL.I. Ju
an M
oise
s Yam
Chan
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.
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).
Enunciado Enunciado gotogotoL.I. Ju
an M
oise
s Yam
Chan
goto destino;
Sintaxis gotoDestino es
una etiqueta que identifica la posición del programa a la que debe de dirigirse la ejecución..
L.I. Juan M
oise
s Yam
Chan
destino:Repetir:
Una etiqueta consiste de un identificador seguido de dos puntos, como ejemplo vea estas dos etiquetas;
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.
Estructuras de Estructuras de ControlControl
RepetitivasRepetitivas
L.I. Juan M
oise
s Yam
Chan
while
Estructuras de Estructuras de ControlControl
RepetitivasRepetitivasEste ciclo es utilizado cuando se conoce el número de repeticiones que se requieren.Es útil cuando se desconoce el número de iteraciones requeridas.
for
do while
L.I. Juan M
oise
s Yam
Chan
Es similar al ciclo while, pero a diferencia, se verifica la condición al final del ciclo en vez de hacerlo al principio.
inicio, fin e incremento son expresiones de C, separadas por ;;que actúan sobre una
variable llamada Variable de Control.
ffoorr
for(inicio;fin;incremento ) {Enunciados que se van a repetir. }
CicloCicloNo se pone ;
L.I. Juan M
oise
s Yam
Chan
donde empieza el
ciclo. Ej. x=1
donde termina el ciclo. Ej. X<=100
Indica el avance del
ciclo. Ej. X++
for(entero=1; entero<=20; entero++) printf("%i\n",entero); getch();
L.I. Juan M
oise
s Yam
Chan
¿Cómo funciona el Ciclo For?.
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.
for(entero=1; entero<=20; entero++) printf("%i\n",entero); getch(); L.I. Ju
an M
oise
s Yam
Chan
¿Cómo funciona el Ciclo For?.
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 M
oise
s Yam
Chan
¿Cómo funciona el Ciclo For?.
3.- Cuando la condición es falsa el ciclo termina. En el ejemplo será falsa
cuando entero sea 21.
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.
for(entero=1; entero<=20; entero++) printf("%i\n",entero); getch();
L.I. Juan M
oise
s Yam
Chan
¿Cómo funciona el Ciclo For?.
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
for(entero=1; entero<=20; entero++) printf("%i\n",entero); getch();
#include <stdio.h>#include <conio.h>int entero;void main(){clrscr(); for(entero=1; entero<=20; entero++) printf("%i\n",entero); getch(); }
Ejemplo forL.I. Ju
an M
oise
s Yam
Chan
Imprimir los primeros 20 números enteros positivos
Inicio En 1
FinEn 20
Incremento
De 1 en 1Cuando es una línea
no requiere
{ }
Esta fuera del ciclo
#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();}
Ejemplo forL.I. Ju
an M
oise
s Yam
Chan
Ejecuta un bloque de enunciados en tanto una condición específica sea
cierta, es decir, mientras se cumpla la condición.
WWhhililee
CicloCicloL.I. Ju
an M
oise
s Yam
Chan
Es útil cuando se desconoce el número de iteraciones
requeridas,Se puede terminar el ciclo cuestionando al usuario o
generando algún valor desde dentro del ciclo.
WWhhililee
valor inicial;while (condición){bloque o cuerpo del ciclo (todo lo que se va a repetir) evento salida;}
CicloCicloEl valor inicial
permite que el ciclo se realice al menos la
primera vez. Es un valor
que hace que se cumpla la condición.
L.I. Juan M
oise
s Yam
Chan
Se evalúa la condición. Para saber
cuando termina
Es necesario generar un evento de salida o
solicitarlo al usuario
WWhhililee
CicloCicloL.I. Ju
an M
oise
s Yam
Chan
1. Se evalúa la condición2. 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.
3. Si la condición es verdadera (se cumple) se ejecutan los enunciados del ciclo, los que están dentro de las llaves.
WWhhililee
CicloCicloL.I. Ju
an M
oise
s Yam
Chan
4. La ejecución regresa al paso 1. Y se repite hasta que en algún momento ya no se cumple la condición.
cont=1; while(cont<=10) { printf("%i \n",cont); cont++; }getch();