Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de...

47
Centro Universitario UAEM Zumpango Ingeniería en Computación Agosto 2016

Transcript of Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de...

Page 1: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

Centro Universitario UAEM ZumpangoIngeniería en Computación

Agosto 2016

Page 2: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

UniversidadAutónomadelEstadodeMéxicoCentroUniversitarioUAEMZumpango

IngenieríaenComputación

UA:ProgramaciónEstructuradaTema:Estructurasdecontroldeflujoselectivas

Dr.AsdrúbalLó[email protected]

Octubre2017

2

Page 3: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

Contenido

3

1. Propósito de la UA2. Propósito de la UC 13. Estructuras de control de flujo

a. Selectivas4. Ejemplos5. Conclusiones6. Referencias

Page 4: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

Propósito delaUA

• Aplicarelparadigmadelaprogramaciónestructuradapararepresentarentérminosdepseudocódigo,lasolucióndeproblemasrealesautomatizables,mostrandoenellaeldominiodevariablessimples,vectores,matrices,registrosymodularidad.

4

Page 5: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

Propósito delaUC1:

• Identificarlasfasesdelametodologíadeprogramaciónestructuradaparalasolucióndeproblemas

ConocimientosdelaUC1:• Definiryexplicar:Algoritmo,fasesdelasolucióndeunprograma,sentencia,identificadores,expresiones,reglasdeprecedenciadesignosoperacionales,estructurasdedatosyestructurasdecontrol.

5

Page 6: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

Guionexplicativodelusodeestematerial

• Enestasdiapositivasseexplicanlasestructurasdecontroldeflujoselectivas,aplicablesacualquierlenguajedeprogramación.• Serecomiendaaldocentecomenzarconejemplossimplesparaquelosalumnosentiendanelfuncionamientodecadaestructuradecontrol,ypaulatinamenteavanzarhaciaejemplosmáscomplejos.

6

Page 7: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

Guionexplicativodelusodeestematerial

• SepresentanejemploscompletoslenguajeC,conlafinalidaddedespertarelinterésenlosalumnos,ydeorientarlosenlaimplementacióndeprogramassimplesperocompletosenunlenguajedeprogramaciónreal.• Serecomiendaaldocente,usarellenguajedeprogramaciónqueconsideremásapropiado.

7

Page 8: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

Estructurasdecontroldeflujo

• EnlosprimerosejemplosdeestaUA,sedesarrollaronejemplosenlosqueseintroducendatosyseproducenresultadosqueseimprimenenlapantalladelacomputadora.• Entodosestosejemplos,losprogramasSONINCAPACESDETOMARDECISIONESBASADASENLOSDATOSINTRODUCIDOS.

8

Page 9: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

Estructurasdecontroldeflujo

• Enestetema,seaprenderánlasprincipalesestructurasdecontroldeflujoselectivas,quepermitenhacerprogramasmásinteresantes,concapacidadde“tomardecisiones”simples.

9

Page 10: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

Estructurasdecontroldeflujo

Lasestructurasdecontroldeflujosiguientes,sonválidasparacualquierlenguajedeprogramación.

• Selectivas:IF,IF-ELSE,SWITCH• Repetitivas:FOR,WHILE,DO-WHILE

10

Page 11: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

Estructurasdecontroldeflujo

Lasestructurasdecontroldeflujosiguientes,sonválidasparacualquierlenguajedeprogramación.

• Selectivas:IF,IF-ELSE,SWITCH• Repetitivas:FOR,WHILE,DO-WHILE

11

Estasseránrevisadasenelpresentetema

Próximotema

Page 12: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

EstructuradecontroldeflujoIF

Permiteejecutar,oevitarlaejecucióndeungrupodesentencias.

LaformageneraldelaestructuraIF eslasiguiente:IF condición THEN

sentencia(s)END

12

Page 13: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

EstructuradecontroldeflujoIF

Permiteejecutar,oevitarlaejecucióndeungrupodesentencias.

Explicacióndecondición:IF condición THEN

sentencia(s)END

13

Lacondición esunasentenciaquetomavaloresTRUE oFALSE.

Page 14: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

NOTAEneltemaanterior,seexplicaronlosoperadoresrelacionales.Serecomiendaunrepaso.

14

Operador Se lee

> Mayorque

< Menorque

>= Mayoroigual

<= Menoroigualque

== Igualque

!= Diferente que

Page 15: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

EstructuradecontroldeflujoIF

Permiteejecutar,oevitarlaejecucióndeungrupodesentencias.

FuncionamientodeIF:IF condición THEN

sentencia(s)END

15

Sicondición esTRUE entonces seejecutanestassentencias,encasocontrario(condición esFALSE)noseejecutan.

Page 16: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

EstructuradecontroldeflujoIF

Ejemplo:Dadounnúmero,imprimirlapalabra“Negativo”encasodequeseamenoracero.

Solución.IF numero < 0 THEN

Imprime “Negativo”

END

16

Page 17: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

EstructuradecontroldeflujoIFEjemploenC:Dadounnúmero,imprimirlapalabra“Negativo”encasodequeseamenoracero.

17

Page 18: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

EstructuradecontroldeflujoIF

Ejemplo:Dadounnúmero,imprimirlapalabra“Positivo”encasodequeseamayoracero.

Solución.IF numero > 0 THEN

Imprime “Positivo”

END

18

Page 19: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

EstructuradecontroldeflujoIFEjemploenC:Dadounnúmero,imprimirlapalabra“Positivo”encasodequeseamayoracero.

19

Page 20: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

EstructuradecontroldeflujoIF

Ejemplo:Dadounnúmero,imprimirlapalabra“Cero”encasodequeseaigualacero.

Solución.IF numero == 0 THEN

Imprime “Positivo”

END

20

Page 21: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

EstructuradecontroldeflujoIFEjemploenC:Dadounnúmero,imprimirlapalabra“Cero”encasodequeseaigualacero.

21

Page 22: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

EstructuradecontroldeflujoIF-ELSE

IF-ELSE permiteelegirlaejecucióndeunodedosbloquesdecódigo.Laformageneraleslasiguiente:

IF condición THENsentencias

ELSEsentencias

END

22

Page 23: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

EstructuradecontroldeflujoIF-ELSE

IF-ELSE permiteelegirlaejecucióndeunodedosbloquesdecódigo.FuncionamientodeIF-ELSE:

IF condición THENsentencias

ELSEsentencias

END

23

Lacondición tomavalorTRUE oFALSE

Page 24: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

EstructuradecontroldeflujoIF-ELSE

IF-ELSE permiteelegirlaejecucióndeunodedosbloquesdecódigo.FuncionamientodeIF-ELSE:

IF condición THENsentencias

ELSEsentencias

END

24

Sicondición tomavalorTRUEentoncesseejecutanestassentencias

Sicondición tomavalorFALSEentoncesseejecutanestassentencias

Page 25: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

EstructuradecontroldeflujoIF-ELSE

NOTA:EnlacondiciónIF-ELSE,lassentenciassonejecutadasdemaneraexclusiva.

IF condición THENsentencias

ELSEsentencias

END

25

Sóloseejecutaráunadeéstas,nuncalasdos.

Page 26: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

EstructuradecontroldeflujoIF-ELSE

Ejemplo:Dadounnúmero,detectareimprimirsiésteesparoimpar.Solución.IF numero % 2 ==0 THEN

Imprime “Par”

ELSEImprime “Impar”

END

26

Page 27: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

EstructuradecontroldeflujoIF-ELSEEjemploenC:Dadounnúmero,detectareimprimirsiésteesparoimpar.

27

Page 28: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

EstructuradecontroldeflujoIF-ELSE

Ejemplo:Dadodosnúmerosdiferentesacero,indicarsitienenelmismosignoosignoscontrarios.Solución.IF numero1*numero2 > 0 THEN

Imprime “Signos iguales”

ELSEImprime “Signos diferentes”

END

28

Page 29: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

EstructuradecontroldeflujoIF-ELSEEjemploenC:Dadodosnúmerosdiferentesacero,indicarsitienenelmismosignoosignoscontrarios.

29

Page 30: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

NOTAEneltemaanterior,seexplicaronlosoperadoreslógicos.Serecomiendaunrepasodeestosoperadores.

30

Operador Nombre Produceverdaderosiysólosi

&& AND A &&B,siA=verdaderoyBesverdadero

½½ OR A½½ B, si cualquiera oambosdeAyBsonverdaderos

^ XOR A^ B,siAyBtienenvaloresdistintos

! NOT !A,siAesfalso

Page 31: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

EstructuradecontroldeflujoIF-ELSE

Ejemplo:LascalificacionesdelosalumnosenlaUAEMseencuentranenunaescalaentre0y10.Dadaunacalificación,identificarsiesválidaono.Esdecir,verificarsiseencuentraonoenelintervalo[0a10]Solución.IF score >= 0 && score <= 10 THEN

Imprime “Calificación válida”

ELSEImprime “Calificación inválida”

END

31

Page 32: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

EstructuradecontroldeflujoIF-ELSEEjemploenC:LascalificacionesdelosalumnosenlaUAEMseencuentranenunaescalaentre0y10.Dadaunacalificación,identificarsiesválidaono.Esdecir,verificarsiseencuentraonoenelintervalo[0a10].

32

Page 33: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

EstructuradecontroldeflujoIF-ELSE

• PuedenanidarseestructurasIF-ELSE,estoesparticularmenteútilcuandoserequieredeprobarvariascondiciones.IF condición THEN

Sentencia

ELSE IF condición THENSentencia

ELSESentencia

END

33

Page 34: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

EstructuradecontroldeflujoIF-ELSE

• PuedenanidarseestructurasIF-ELSE,estoesparticularmenteútilcuandoserequieredeprobarvariascondiciones.IF condición THEN

Sentencia

ELSE IF condición THENSentencia

ELSESentencia

END

34

Sóloseejecutaráunadeéstas.

Page 35: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

EstructuradecontroldeflujoIF-ELSE

Ejemplo:Dadounnúmero,detectarsiésteesnegativo,positivoocero,imprimirlaspalabras“Negativo”,“Positivo”o“Cero”segúnelcaso.Solución.IF numero < 0 THEN

Imprime “Negativo”

ENDIF numero > 0 THEN

Imprime “Positivo”

ENDIF numero == 0 THEN

Imprime “Cero”

END

35

OBSERVAQUESEDEBENDEPROBARTODAS LASCONDICIONES.

LASOLUCIÓNCONIF-ELSESEMUESTRAENLASIGUIENTEDIAPOSITIVA.

Page 36: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

EstructuradecontroldeflujoIF-ELSE

Ejemplo:Dadounnúmero,detectarsiésteesnegativo,positivoocero,imprimirlaspalabras“Negativo”,“Positivo”o“Cero”segúnelcaso.Solución.IF numero < 0 THEN

Imprime “Negativo”

ELSE IF numero > 0 THENImprime “Positivo”

ELSEImprime “Cero”

END

36

CuandounacondiciónesTRUEseejecutalasentenciacorrespondiente,yYANOSECONTINÚANEVALUANDOlassiguientescondiciones.

Page 37: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

EstructuradecontroldeflujoIF vsIF-ELSE

IF numero < 0 THENImprime “Negativo”

ELSE IF numero > 0 THENImprime “Positivo”

ELSEImprime “Cero”

END

37

IF numero < 0 THENImprime “Negativo”

ENDIF numero > 0 THEN

Imprime “Positivo”ENDIF numero == 0 THEN

Imprime “Cero”END

Page 38: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

EstructuradecontroldeflujoIF vsIF-ELSE

38

Page 39: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

EstructuradecontroldeflujoSWITCH

39

Estaestructuradecontrolpermiteseleccionarlaejecucióndeunbloquedecódigo,dependiendodelvalor(ocaso)quetengaunavariable.LaestructuradeSWITCH eslasiguiente:SWITCH variable

CASE c1:

sentencias

CASE c2:

sentencias

DEFAULT

sentencias

END

Page 40: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

EstructuradecontroldeflujoSWITCH

40

FuncionamientodeSWITCH:SWITCH variableCASE c1:

sentenciasCASE c2:

sentenciasDEFAULT

sentenciasEND

Sebuscalacoincidenciadelvalordelavariable conlosposiblescasos

Page 41: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

EstructuradecontroldeflujoSWITCH

41

FuncionamientodeSWITCH:SWITCH variableCASE c1:

sentenciasCASE c2:

sentenciasDEFAULT

sentenciasEND

Sebuscalacoincidenciadelvalordelavariable conlosposiblescasos

Seejecutanlassentencias deacuerdoadichacoincidencia

Page 42: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

EstructuradecontroldeflujoSWITCH

42

FuncionamientodeSWITCH:SWITCH variableCASE c1:

sentenciasCASE c2:

sentenciasDEFAULT

sentenciasEND

Sinoexistealgunacoincidencia,seejecutanestas sentencias.

Page 43: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

EstructuradecontroldeflujoSWITCHSWITCH diaCASE 1:

Imprimir “Lunes”CASE 2:

Imprimir “Martes”CASE 3:

Imprimir “Miércoles”CASE 4:

Imprimir “Jueves”CASE 5:

Imprimir “Viernes”CASE 6:

Imprimir “Sábado”CASE 7:

Imprimir “Domingo”DEFAULT

Imprimir “No le corresponde algún día”END

43

Ejemplo:Dadounnúmeroenteroentre1y7,imprimirelcorrespondientedíadelasemanaquelecorresponde.

Page 44: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció 44

EjemploenC:Dadounnúmeroenteroentre1y7,imprimirelcorrespondientedíadelasemanaquelecorresponde.

Page 45: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

NOTAS:EstructuradecontroldeflujoSWITCH

• Engeneral,SWITCH sólopuedeusarseconvariablesenteras.Sinembargo,algunoslenguajessoportanotrostiposcomoenumeracionesocadenas.• NoserecomiendausarSWITCHparaidentificarintervalos.

45

Page 46: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

Conclusiones

• EnestetemasehancubiertolastresestructurasdecontroldeflujoselectivasIF,IF-ELSE YSWITCH.• TambiénsehanpresentadoejemplosdeimplementacionescompletasenlenguajeC.Dependiendodelcurso,puedeoptarseporotrolenguajedeprogramación.• Serecomiendaampliamenterealizarvariosejerciciostantoenclasecomofueradeella.

46

Page 47: Centro Universitario UAEM Zumpango · Estructuras de control de flujo Las estructuras de control de flujo siguientes, son válidas para cualquier lenguaje de programación. •Selectivas:

IngenieríaenComputación CursodeInducció

Referencias.

• Nell Dale.Programaciónyresolucióndeproblemas.McGrawHill,2010.• GarcíaBermejo,J.R. ProgramaciónEstructuradaenC.PRENTICE-HALL,9788483224236,2008.• Joyanes Aguilar,L.Fundamentosdeprogramación.McGrawHill,2008.• OSVALDOCAIRO,FUNDAMENTOSDEPROGRAMACION:PIENSAENC,ISBN9702608104,Pearson2006.

47