36
L . I . J u a n M o i s e s Y a m C h a n

L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

Embed Size (px)

Citation preview

Page 1: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

L.I. Juan M

oise

s Yam

Chan

Page 2: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

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

Page 3: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

IDENTIFICAR LAS ESTRUCTURAS DE CONTROL DE FLUJO EN LENGUAJE C.

Objetivo:Objetivo:L.I. Ju

an M

oise

s Yam

Chan

Page 4: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

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

Page 5: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

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

Page 6: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

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

Page 7: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

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

Page 8: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

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

Page 9: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

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

Page 10: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

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

Page 11: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

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

Page 12: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

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

Page 13: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

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

Page 14: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

#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

Page 15: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

#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

Page 16: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

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

Page 17: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

#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

Page 18: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

#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

Page 19: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

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

Page 20: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

#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

Page 21: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

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.

Page 22: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

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

Page 23: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

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;

Page 24: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

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

Page 25: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

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.

Page 26: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

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++

Page 27: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

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.

Page 28: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

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.

Page 29: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

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();

Page 30: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

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();

Page 31: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

#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

Page 32: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

#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

Page 33: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

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.

Page 34: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

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

Page 35: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

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.

Page 36: L.I. Juan Moises Yam Chan ESTRUCTURAS DE CONTROL Proposiciones y Bloques Exit() Incondicionales Etiquetas goto Condicionales Simple If if-else elseif Multiple

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();