Manual de Practicas de laboratorio de AC-LIA

35
1 Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales MANUAL DE PRACTICAS DE LABORATORIO: “Algoritmos Computacionales” Elaborado por: Dr. en C. y E. José Luis Sánchez Ramírez & Dra. en C. y E. Cristina Juárez Landín Colaboración: Mtro. en S. C. Marco Alberto Mendoza Pérez Fecha: Septiembre de 2017 Validado por el H. Consejo Académico, En su Sesión Ordinaria el 28 de Septiembre de 2017 Revisado por: Dr. Samuel Olmos Peña Coordinador de Licenciatura en Informática Administrativa Fecha: 9 de octubre de 2017 Aprobado por el H. Consejo de Gobierno, En su Sesión Extra Ordinaria el 16 de octubre de 2017

Transcript of Manual de Practicas de laboratorio de AC-LIA

1

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales

MANUAL DE PRACTICAS

DE LABORATORIO:

“AlgoritmosComputacionales”

Elaboradopor:Dr.enC.yE.JoséLuisSánchezRamírez&Dra.enC.yE.CristinaJuárezLandínColaboración:Mtro.enS.C.MarcoAlbertoMendozaPérezFecha:Septiembrede2017ValidadoporelH.ConsejoAcadémico,EnsuSesiónOrdinariael28deSeptiembrede2017Revisadopor:Dr.SamuelOlmosPeñaCoordinadordeLicenciaturaenInformáticaAdministrativaFecha:9deoctubrede2017AprobadoporelH.ConsejodeGobierno,EnsuSesiónExtraOrdinariael16deoctubrede2017

2

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales

INDICE PRESENTACIÓN .................................................................................................................. 3

PRACTICA 1: “INTRODUCCIÓN AL SOFTWARE FreeDFD” ........................................ 4

PRACTICA 2: “IMPLEMENTACIÓN DE ALGORITMOS Y DIAGRAMAS DE FLUJO

CON FreeDFD” .................................................................................................................... 10

PRACTICA 3: “UTILIZACIÓN DE ASIGNACIÓN, DECISIÓN Y CICLOS EN

FreeDFD” ............................................................................................................................. 12

PRACTICA 4: “MANEJO DE VECTORES Y SUS PRINCIPALES OPERACIONES EN

FreeDFD” ............................................................................................................................. 14

PRACTICA 5: “MANEJO Y REALIZACIÓN DE OPERACIONES CON MATRICES EN

FreeDFD” ............................................................................................................................. 16

PRACTICA 6: “CREACION Y UTILIZACIÓN DE SUBPROGRAMAS EN FreeDFD” 18

PRACTICA 7: “ALGORITMOS PARA ENTRADA Y SALIDA DE DATOS” ................ 21

PRACTICA 8: “ALGORITMOS CON EL BUCLE O CICLO DE REPETICION FOR” .. 27

PRACTICA 9: “ALGORITMOS CON ESTRUCTURAS DE DECISIÓN MÚLTIPLE

SWITCH & CASE” .............................................................................................................. 31

REFERENCIASGENERALES ................................................................................................... 35

3

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales

PRESENTACIÓNLaspresentesprácticasde laboratorio fuerondesarrolladasenestricto apegoal programade la

Unidad de Aprendizaje de Algoritmos Computacionales perteneciente al mapa curricular de la

LicenciaturaenInformáticaAdministrativa,conlafinalidaddequelosalumnospuedanponeren

prácticalosconocimientosteóricosquesevanadquiriendoalolargodelcurso.

Estemanualconstade9prácticas,cuyacomplejidadesacordealtemaqueabarca.Enestesentido

laprimeraprácticaeslamássencilla,peroasuvezesfundamentodelasprácticassubsecuentes.

Cada práctica consta de un Objetivo, Marco teórico, Listado de equipo y materiales a utilizar,

Desarrollo y al final el alumno debe realizar las Conclusiones de cada práctica, así mismo al

finalizar cada práctica se ofrecenReferencias bibliográficas que servirán de apoyo al estudiante

pararealizartodaslasactividadesqueindicanlaprácticassindificultades.

Lasprimeras6prácticasestánplanteadasparatrabajarenelSoftwarelibreFreeDFDpara

generacióneimplementacióndeDiagramasdeFlujo,ylas3últimasestánplanificadasparaquese

realicenenunLenguajedeProgramacióncomoLenguajeCoC++,conlafinalidaddeimplementar

demaneraprácticalosalgoritmos.

4

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales

PRACTICA1

INTRODUCCIÓNALSOFTWAREFreeDFD

OBJETIVO:Que el alumno se introduzca en el entorno de la interfaz de FreeDFD, para que sefamiliariceconcadaunodeloselementosquecomponenelmenúdelainterfaz.

INTRODUCCIÓN:Para conocer el entorno de trabajo sobre el que se realizarán diagramas de flujo esnecesariotenerconocimientospreviosdelmanejodeunaPC,relacionarseconlainterfazde FreeDFD. FreeDFD es un programa de libre disposición para ayuda al diseño eimplementacióndealgoritmosexpresadosendiagramasdeflujo(DF).Ademásincorporaopcionesparaeldepuradodelosalgoritmos,loquefacilitaenormementelalocalizacióndeloserroresdeejecuciónylógicosmáshabituales.Suutilizaciónesmuysencilla,altratarsedeunaherramientagráfica,enestaprácticanosvamosacentrarenelusobásicodelasherramientasdediseñoydepuración.

MATERIALYEQUIPOAUTILIZAR:Paralarealizacióndeestaprácticasonnecesarioslossiguientescomponentes:Equipo:

• PCSoftware:

• ElSoftwareFreeDFDMaterial:

• LápizoBolígrafo(almenosdoscoloresdiferentes)• Regla• Goma

DESARROLLO:ACTIVIDAD1:IniciarlaaplicaciónFreeDFD,observetodaslasopcionesdemenúquetiene.Enlasiguientepáginadibujeelmenú,concadaunadelasopcionesquepresenta,tantoenelmenúcomoenlosbotones.NOTA:Siesnecesariopuedeutilizarelreversodeestaspáginaspararealizarsusanotaciones

5

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales

ACTIVIDAD2:2.1.INICIODEDFDLa ejecución de DFD presenta una pantalla de inicio, donde tiene una barra demenúsdesplegablesyotrabarradeherramientasporbotones,comosemuestra.

Aunquepuedeaccederseatodaslasopcionesquecomentaremosacontinuaciónatravésdelmenú,yconatajosdeteclado,enestasnotaslasdescribiremosatravésdelosbotonescorrespondientes.• El bloque de botones de objetos nos permite seleccionar los distintos elementos

(objetos) que vamos a introducir en el DF: sentencias de asignación, selección,iteración,operación,resultado,etc...

• Elbloquedeejecuciónpermiteponerenfuncionamientoelalgoritmo• El bloque de depuración se utiliza, en caso de funcionamiento incorrecto, para

detectarerroresenlaconstruccióndelalgoritmoycorregirlos.• Los botones de subprogramas permiten introducir funciones definidas por el

programador• Los restantes botones tienen una funcionalidad similar a la de las restantes

aplicacionesWindows:abrirfichero,guardarfichero,cortar,pegar,...Puedeversesutareaasociadaacercandoelcursordelratón(sinhacerclic)albotóncorrespondiente.

2.2PrimerejemplodediseñoconFreeDFDConstruiremosunprimerejemplosencillodealgoritmoparailustrarlascapacidadesmásbásicasdeDFD.Dichoalgoritmoconsistiráenpedirunnúmeroalusuario ypresentarloporpantalla.La operación básica será la de inserción de objetos. En primer lugar, insertaremos unasentenciadesalidaquelepidaalusuarioelnúmeroqueposteriormentesevaaimprimir.Paraellopulsamoselbotóncorrespondientealobjetoquesedeseainsertar

yllevamoselratónalpuntodondevamosainsertarlo.Lainserciónserealizapulsandoelbotónizquierdo,conloquetendremosunasituacióncomolasiguiente:

6

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales

Lospuntosazulesindicanquéobjetoseacabadeinsertar.Paraintroducirenlasentenciade salida el mensaje que queremos imprimir será necesario EDITAR dicho objeto,haciendodobleclicsobreelmismo.Deestemodoseabreunaventanadondepodemosdichomensaje(porejemplo'Buenosdías.Dígameunnúmero,porfavor').

Como elmensaje es una cadena de caracteres, no debemos olvidarnos de las comillassimplesalinicioyfinaldelamisma.Seguidamente vamos a insertar una sentencia de ENTRADA, para almacenar en unavariable el valor del número que nos proporcione el usuario. Para ello pulsaremos elbotóncorrespondiente.

yloinsertaremosacontinuacióndelasentenciadesalidaanterior.Sieditamoselobjeto,haciendo doble clic sobre el mismo, aparecerá una pantalla cuyo cuadro de texto nospermitirádarlenombrealavariabledondevamosaguardarelvalor(enesteejemplolavariablesevaallamarnumero:

7

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales

Para finalizar, mostraremos al usuario el número que ha introducido, para lo cualinsertaremos una nueva sentencia de SALIDA, que editaremos para que muestre elsiguientemensaje:

Conloqueelalgoritmotendráelsiguienteaspectoenpantalla:

8

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales

2.3UnprimerejemplodeejecuciónconFreeDFDTras haber diseñado el algoritmo podemos probar a ejecutarlo, al objeto de detectarposibleserroresenél.Paraelloutilizaremos losbotonesdeejecución,yenparticularelbotónEJECUTAR

Quepondráenmarchaelalgoritmo.LaprimerasentenciaenejecutarseseráladeSALIDA,quemostraráenpantallaelmensajecorrespondiente:

SeguidamenteladeENTRADA,quenosmuestrauncuadrodetextodondeintroduciremoselvalorquequeramosdarlealavariable(porejemplo,123.45):

y,finalmente,laúltimasentenciadeSALIDA:

9

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales

Cuando el algoritmo finaliza su ejecución sin error se muestra el siguiente mensaje:

Dado que el algoritmo es correcto, procederemos a guardarlo (por ejemplo, con elnombre entradasalida). La opción de guardar es similar a la de cualquier aplicaciónWindows,porloquenomerecemayorcomentario.Únicamenterecordarqueengeneral,durante el proceso de elaboración de un algoritmo (que puede ser largo) debemosguardarfrecuentementeendiscoeldiseño,alobjetodeprevenirposiblesfallosoerroresquedejeninutilizadoelordenadoryprovoquenlapérdidadeltrabajorealizado.2.4Ejercicio1:Conelobjetodeverejemplosdeerrores,modificarelalgoritmoanteriorenelsiguientesentido:

1.erroresdesintaxis:Eliminarunade lascomillasenalgunade lassentenciasdesalidayejecutarelalgoritmo.2. errores de ejecución: Eliminar la sentencia de entrada (para ello seleccionardichasentenciahaciendoclicsobreelobjetoypulsarelbotónELIMINARolateclaSUPRIMIR).Ejecutarelalgoritmo.

Ejercicio2:diseñarunnuevoalgoritmoquepidaalusuariodosnúmerosayby ledigacuálessusuma.Guardarsuejercicio.

CONCLUSIONES:Elalumnodebeexpresarsusconclusionespersonalesalfinalizarlapráctica.Paralocualpuedeutilizarelsiguienteespaciooelreversodelashojas.

REFERENCIASSugerida

• Técnicas de Diseño de Algoritmos, Rosa Guerequeta y Antonio Vallecillo, Ed. Servicio de Publicaciones de la Universidad de Málaga, Mayo 2000

10

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales

PRACTICA2 IMPLEMENTACIÓNDEALGORITMOSYDIAGRAMASDEFLUJOCONFreeDFD

OBJETIVO:Que el alumno realice la implementación de algoritmos sencillos, demodo que puedaponerenprácticalovistoenclaseyalmismotiempoutilizarlosdiagramasdeflujocomounaherramientaderepresentacióngráficadealgoritmos.

INTRODUCCIÓN:Para poner en práctica los temas vistos en clase el alumno debe elaborar diferentesalgoritmos,tantopropuestosenclasecomopropuestosporelmismo.Sedebedeponermuchaatenciónenque losalgoritmosquerealicecumplancon lascaracterísticasdeunalgoritmo (Preciso, Definido y Finito). En todos los casos debe de realizar primero lapropuestadealgoritmoydiagramadeflujoamanoyunavezquehayaconcluidodebedehacersureporteenlimpio,realizandoelalgoritmoydiagramadeflujoencomputadora.Nota:Paralaelaboracióndelosdiagramasdeflujo,utilizarlaherramientaFreeDFD.

MATERIALYEQUIPOAUTILIZAR:Paralarealizacióndeestaprácticasonnecesarioslossiguientescomponentes:Equipo:

• PCSoftware:

• EditordeDiagramasdeFlujoFreeDFD• ProcesadordeTextooPresentaciones(WordoPowerPoint)

Material:• Estaprácticaimpresa• LápizoBolígrafo(almenosdoscoloresdiferentes)• Regla• Goma

DESARROLLO:I. Elaborarlossiguientesalgoritmos:

1. Calcularelvalordelasuma1+2+3+4+…+100.2. Realizarlasumadetodoslosnúmerosparesentre2y1000.

II. ImplementeunalgoritmoenFreeDFDqueresuelvaunaecvuacióndesegundogradodelaforma:

𝑎𝑥! + 𝑏𝑥 + 𝑐 = 0

11

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales

III. Finalmente elabore los diagramas de flujo en FreeDFD de cada uno de losproblemasanteriores

NOTA:Siesnecesariopuedeutilizarelreversodeestaspáginaspararealizarsusanotaciones

CONCLUSIONES:

El alumnodebeexpresar sus conclusionespersonales al finalizar lapráctica. Para lo cualpuedeutilizar elsiguienteespaciooelreversodelashojas.

REFERENCIASSugerida

• Técnicas de Diseño de Algoritmos, Rosa Guerequeta y Antonio Vallecillo, Ed. Servicio de Publicaciones de la Universidad de Málaga, Mayo 2000

12

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales

PRACTICA3

UTILIZACIÓNDEASIGNACIÓN,DECISIÓNYCICLOSENFreeDFD

OBJETIVO:QueelalumnoconozcayutilicelosdistintostiposdeobjetosquemanejaFreeDFD.

INTRODUCCIÓN:DFD permite incluir los objetos básicos de programación estructurada: asignación,selección,lazosysubprogramas.Cualquierobjetoqueseinserteenelalgoritmopuedesereditadohaciendodobleclic,loquepermitedefinirloselementosquelocomponen.EstoquieredecirquelaEDICIÓNpermitirá,porejemplo,enelcasode:

• Sentenciasdesalida:indicarlaexpresiónquesevaapresentarenpantalla.• Sentencias de entrada: indicar los nombres de las variables donde se

guardará la información. • Sentencias de asignación: indicar las expresiones y los nombres de las

variables donde se guardará el resultado. • Estructuras de selección: indicar la condición.

Otra acción interesante sobre los objetos es la SELECCIÓN de losmismos (clic sobre elobjeto), que permite realizar acciones como eliminarlos y cortarlos o copiarlos paraposteriormentepegarlosenotropuntodelalgoritmo.

MATERIALYEQUIPOAUTILIZAR:Paralarealizacióndeestaprácticasonnecesarioslossiguientescomponentes:Equipo:

• PCSoftware:

• ElSoftwareFreeDFDMaterial:

• LápizoBolígrafo

DESARROLLO:Utilizando lasherramientasdeFreeDFDde“asignación”,“decisión”,“ciclopara”y“ciclomientras”realizarlassiguientesactividades.ACTIVIDAD1:(Utilizandolaherramienta“asignación”)

• Diseñaryejecutarunalgoritmoquepidadosnúmeros“a”y“b”alusuarioycalculesusuma,restayproducto,ymuestrelosresultadosalusuario.

13

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales

ACTIVIDAD2:(Utilizandolaherramienta“decisión”)

• Diseñaryejecutarunalgoritmoqueindiquesiunnúmero“a”pedidoportecladoespositivoonegativo.Guardarloconelnombreseleccion1.

• Modificar el algoritmo de la actividad 1 para que incluya la división, y que noproduzcaerrordeejecucióncuando“b”seaigualacero.

ACTIVIDAD3:(Utilizandolaherramienta“ciclopara”)

• Diseñaryejecutarunalgoritmoquecalculeelfactorialdeunnúmero“n”pedidoalusuarioporteclado.Probarloconvaloresn=-1,0,1,2y100.

ACTIVIDAD4:(Utilizandolaherramienta“ciclomientras”)

• Implementarelproblemaanterior,peroutilizandoel“ciclomientras”.Para cada una de las actividades realizar su implementación en el software FreeDFD,verificar el funcionamiento y entregar su reporte con sus diagramas, explicaciones yconclusiones.

CONCLUSIONES:(Elalumnodebeexpresarsusconclusionespersonalesalfinalizarlapráctica.Paralocualpuedeutilizarelsiguienteespaciooelreversodelashojas.)

REFERENCIASSugerida

• Técnicas de Diseño de Algoritmos, Rosa Guerequeta y Antonio Vallecillo, Ed. Servicio de Publicaciones de la Universidad de Málaga, Mayo 2000

• Lenguaje C.Ceballos, Francisco Javier.RA-MA Addison.EUA2009

14

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales

PRACTICA4

MANEJODEVECTORESYSUSPRINCIPALESOPERACIONESENFreeDFD

OBJETIVO:QueelalumnoconozcayutilicelaformaenquesemanejanlosvectoresenFreeDFD,asícomo losalgoritmosdebúsquedadevalores condiferentesgradosdedificultadque sepueden implementar, así como la forma en que se puede convertir un vector en unamatrizyviceversa.

INTRODUCCIÓN:En la práctica anterior se aprendió a definir vectores en DFD, así como también seimplementóunalgoritmodeordenamientoquepermitióordenarlosdatosdelvectordemanera descendente y ascendente. En esta práctica se realizarán tres importantesoperacionesquesepuedenrealizarconunvector.

• Buscarunvalordeterminado.• Convertir un vector en Matriz. • Convertir una matriz en Vector.

MATERIALYEQUIPOAUTILIZAR:Paralarealizacióndeestaprácticasonnecesarioslossiguientescomponentes:Equipo:

• PCSoftware:

• ElSoftwareFreeDFDMaterial:

• LibretayBolígrafo(pararealizaranotaciones)

DESARROLLO:UtilizandolasherramientasdeFreeDFDrealizarlassiguientesactividades.ACTIVIDAD1:

• Diseñar y ejecutar un algoritmo que permita introducir un vector de “n”elementos,posteriormentedebedepreguntarunvalorabuscarydebeindicarsielvalordadoestáonoenelvector.

ACTIVIDAD2:

• Modificarelalgoritmoanteriorparadecirademássielvalordadoseencuentraenelvector,cuantasvecesaparece.

15

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales

ACTIVIDAD3:• Modificar el algoritmo anterior para que nos indique, aparte de cuantas veces

aparece,enqueposicionesseencuentradentrodelvector.ACTIVIDAD4:

• Diseñar y ejecutar un algoritmo que permita introducir un vector de “n”elementos, posteriormente debe de preguntar un valor “r” (múltiplo de “n”), ydebedeconvertiralvectorde1*nelementosenunamatrizder*(n/r)elementos.

ACTIVIDAD5:

• Diseñar y ejecutar un algoritmo que permita introducir una matriz de “n*m”elementos, posteriormente debe convertir la matriz en un vector de 1*(n*m)elementos.

Para cada una de las actividades realizar su implementación en el software FreeDFD,verificar el funcionamiento y entregar su reporte con sus diagramas, explicaciones yconclusiones.

CONCLUSIONES:(Elalumnodebeexpresarsusconclusionespersonalesalfinalizarlapráctica.Paralocualpuedeutilizarelsiguienteespaciooelreversodelashojas.)

REFERENCIASSugerida

• Técnicas de Diseño de Algoritmos, Rosa Guerequeta y Antonio Vallecillo, Ed. Servicio de Publicaciones de la Universidad de Málaga, Mayo 2000

• Lenguaje C.Ceballos, Francisco Javier.RA-MA Addison.EUA2009

16

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales

PRACTICA5

MANEJOYREALIZACIÓNDEOPERACIONESCONMATRICESENFreeDFD

OBJETIVO:Queelestudianteaprendaladefinición,manejoyutilizacióndevariablescomomatrices,parasudefinición,manejoeimplementaciónenFreeDFD.Lasmatricessonvariablesqueestáncompuestasdeunnúmerode“nxm”variablesdelmismotipoacomodadosenunarreglode“n”filasy“m”columnas.

INTRODUCCIÓN:ParadefinirlasyutilizarlasenFreeDFDesnecesariohacerusodeciclosderepetición,yasea Ciclo “Para” o “While”. Generalmente utilizamos el tipo “Para”, pero también esposibleutilizarelciclo“While”.Comosabemoslosobjetosqueseinsertenenelalgoritmopuedensereditadoshaciendodoble“clic”,loquepermitedefinirloselementosqueloscomponen.EstoquieredecirquelaEDICIÓNpermitirá,porejemplo,enelcasode:

• Sentenciasdesalida:indicarlaexpresiónquesevaapresentarenpantalla.• Sentencias de entrada: indicar los nombres de las variables donde se

guardará la información. • Sentencias de asignación: indicar las expresiones y los nombres de las

variables donde se guardará el resultado. • Estructuras de selección: indicar la condición.

Otra acción interesante sobre los objetos es la SELECCIÓN de losmismos (clic sobre elobjeto), que permite realizar acciones como eliminarlos y cortarlos o copiarlos paraposteriormentepegarlosenotropuntodelalgoritmo.

MATERIALYEQUIPOAUTILIZAR:Paralarealizacióndeestaprácticasonnecesarioslossiguientescomponentes:Equipo:

• PCSoftware:

• ElSoftwareFreeDFDMaterial:

• LápizoBolígrafo

17

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales

DESARROLLO:UtilizandolasherramientasdeFreeDFDde“salida”,“entrada”,“asignación”,“decisión”y“ciclopara”realizarlassiguientesactividades.ACTIVIDAD1:

• Diseñar y ejecutar un algoritmo que pida dos números “n” y “m” al usuario yposteriormentealmacenelosdatosdeunamatriz.

ACTIVIDAD2:

• Modificarelalgoritmoparaquemuestrelosvaloresdelamatrizintroducidos.ACTIVIDAD3:

• Modificarnuevamenteelalgoritmoparaquepuedaalmacenarlosvaloresdedosmatrices de lasmismas dimensiones “nxm”, una vez almacenados debemostrarlosvaloresalmacenados.

ACTIVIDAD4:

• Hacerlamodificaciónalalgoritmoparaqueunavezalmacenadaslasdosmatriceselprogramarealicelasumadeestasymuestreelresultado.

ACTIVIDAD5:

• Finalmenteintroducirunacondiciónalprogramademodoquepreguntealusuariosideseasumarorestarlasmatricesyunavezdadalaopciónelalgoritmorealicelaopciónseleccionadaymuestreelresultadoobtenido.

Para cada una de las actividades realizar su implementación en el software FreeDFD,verificar el funcionamiento y entregar su reporte con sus diagramas, explicaciones yconclusiones.

CONCLUSIONES:(Elalumnodebeexpresarsusconclusionespersonalesalfinalizarlapráctica.Paralocualpuedeutilizarelsiguienteespaciooelreversodelashojas.)

REFERENCIASSugerida

• Técnicas de Diseño de Algoritmos, Rosa Guerequeta y Antonio Vallecillo, Ed. Servicio de Publicaciones de la Universidad de Málaga, Mayo 2000

• Lenguaje C.Ceballos, Francisco Javier.RA-MA Addison.EUA2009

18

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales

PRACTICA6

CREACIONYUTILIZACIÓNDESUBPROGRAMASENFreeDFD

OBJETIVO:QueelalumnoconozcaypuedagenerarsubprogramasenFreeDFDdeformaeficientelaforma en que se crean y utilizan programas en FreeDFD, realizará implementacionessencillasconestaherramientayposteriormentelosaplicaráensusprácticasyahechas.

INTRODUCCIÓN:La utilización de subprogramas o subrutinas es demucha ayuda e importancia cuandoestamos realizando un algoritmo o programando. Por que permite eficiente el procesosimplificandolacomplejidaddeunprogramaquedeformageneralsedividiríaenvariossubprogramas.Losbotonesqueestánrelacionadosconelusodesubprogramassonlossiguientes:

Seutilizaparacrearunsubprograma.

Seutilizaparaeliminarunsubprograma.

Seutilizaparapasarnosaunsubprogramahacialaderecha.

Seutilizaparapasarnosaunsubprogramahacialaizquierda.

MATERIALYEQUIPOAUTILIZAR:Paralarealizacióndeestaprácticasonnecesarioslossiguientescomponentes:Equipo:

• PCSoftware:

• ElSoftwareFreeDFDMaterial:

• LibretayBolígrafo(pararealizaranotaciones)

DESARROLLO:UtilizandolasherramientasdeFreeDFDrealizarlassiguientesactividades.ACTIVIDAD1:

• Realizarunprogramaquenospermitaleerdosvalores“A”y“B”,despuésrealizarunsubprogramaquerealicelasuma,losparámetrosdeestesubprogramasonlosvaloresasumar“A”,“B”yelresultado“Res”.(comosemuestraacontinuación)

19

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales

ACTIVIDAD2:

• Realizar un programa que nos permita introducir un valor “L” y después nospermita introducir los “L” valores de un vector pero utilizando un subprograma,cuyosparámetrossoneltamaño“L”delvectoryelvector“V”dondeguardaremos.

ACTIVIDAD3:

• En el mismo programa generar un subprograma que nos permita mostrar losvalores introducidos,enestecasoal igualqueenelcasoanterior losparámetrosqueledebemosdareseltamañodelvector“L”yelmismovectoradesplegar“V”.

ACTIVIDAD4:

• Realizarunsubprogramaquepermitaordenarloselementosdeunvector,enestecaso los parámetros del subprograma son el tamaño del vector “L” y el mismovectoraordenar“V”.

ACTIVIDAD5:

• Realizar un subprograma que permita multiplicar una matriz de n*m, por unamatrizdem*k, losparámetrosdeentradason lasmatrices1y2y lasalidaes lamatriz3,quetieneelresultado.

Programa Principal

Subprograma para hacer la suma.

20

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales

Para cada una de las actividades realizar su implementación en el software FreeDFD,verificarel funcionamientoyentregar su reporteadjuntadoevidenciade losdiagramas,explicacionesyconclusiones.

CONCLUSIONES:(Elalumnodebeexpresarsusconclusionespersonalesalfinalizarlapráctica.Paralocualpuedeutilizarelsiguienteespaciooelreversodelashojas.)

REFERENCIASSugerida

• Técnicas de Diseño de Algoritmos, Rosa Guerequeta y Antonio Vallecillo, Ed. Servicio de Publicaciones de la Universidad de Málaga, Mayo 2000

• Lenguaje C.Ceballos, Francisco Javier.RA-MA Addison.EUA2009

21

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales

PRACTICA7

ALGORITMOSPARAENTRADAYSALIDADEDATOS

OBJETIVO:El alumno realizará programas en lenguaje C utilizando las instrucciones de entrada ysalida de datos de manera correcta, así como en el desarrollo de sus respectivosalgoritmosydiagramasdeflujo.

INTRODUCCIÓN:Losprogramasinteractúanconelexterior,atravésdedatosdeentradaodatosdesalida.El lenguaje C proporciona facilidades para entrada y salida, para lo que todo programadeberátenerelarchivodecabecerastdio.h.EnClaentradaysalidaseleeyescribedelosdispositivosestándardeentradaysalida,sedenominanstdinystdoutrespectivamente.Lasalida,normalmente,esapantalladelcomputador,mientrasque laentradasecaptadelteclado.En el archivo stdio.h están definidas macros, constantes, variables y funciones quepermitenintercambiardatosconelexterior.Nota: El compilador de C que se utilizará es Turbo C++, aunque la práctica se puededesarrollarsinproblemaenalgúnotrocompilador,solotomandoencuentalaspequeñasvariacionesqueexisten.

MATERIALYEQUIPOAUTILIZAR:Paralarealizacióndeestaprácticasonnecesarioslossiguientescomponentes:Equipo:

• PCSoftware:

• CompiladordelenguajeC(TurboC++)Material:

• DiccionarioInglés-Español• LápizoBolígrafo(almenosdoscoloresdiferentes)• Reglaoescuadra• Estaprácticaimpresa

22

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales

DESARROLLO:FUNDAMENTO:SalidaLasalidadedatosdeunprogramasepuededirigiradiversosdispositivos,porejemplolapantalla, una impresora o archivos. La función printf() visualiza en la pantalla datos delprograma, transforma los datos que están en representación binaria, a ASCII según loscódigosdeformatopredefinidos.Laformageneralquetienelafunciónprintf()es:

printf("cadena_de_control",dato_1,dato_2,.....,dato_n);Donde:

cadena_de_control:Contieneloscódigosdelformatodelosdatosquesedeseanmostrarenpantalla.dato_1,dato_2,...,dato_n:Sonlasvariablesy/oconstantesquesedeseanmostrar

Acontinuaciónsemuestranloscódigosdeformatomásutilizadosysusignificado.

Asíporejemplosi:

suma=0;suma=suma+10;printf("%s%d","Suma=",suma);

Sevisualizaráenpantallacomo,Suma=10

Elnúmerodeargumentosdeprintf()esindefinido,porloquesepuedenmostrarcuantosdatosseannecesarios.Así,suponiendoquesetienenlassiguientesasignaciones:

i=5;j=12;c='A';n=40.791512;Lainstrucción:

printf("%d%d%c%f",i,j,c,n);Visualizaráenlapantalla

512A40.79152Lafunciónprintf()convierte,daformatodesalidaalosdatosylosescribeenpantalla.Lacadenadecontrolcontienecódigosdeformatoqueseasocianunoaunoconlosdatos.

23

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales

Cadacódigocomienzaconelcarácterde%.Acontinuaciónpuedeespecificarseelanchomínimodeldatoyterminaconelcarácterdeconversión.Así,suponiendoquesetienelassiguientesasignaciones:

i=11;j=12;c='A';n=40.791512;Lainstrucción:

printf("%x%3d%c%.3f",i,,j,c,n);Visualizaráenpantalla

B12A40.792El primer dato es 11 en hexadecimal (%x ), el segundo es el número entero 12 en unanchode3, le sigueel carácterAy,porúltimoelnúmero realn redondeadoa3 cifrasdecimales(%.3f).Unsignomenos(-)acontinuaciónde%indicaqueeldatoseajustealaizquierdaenvezdelajustealaderechapordefault,porejemplo:

Paraelejemploanterior,lasalidaenpantallatiene15espacios,ycomosepuedever,lalíneaquetieneunmenos(-)estájustificadaalaizquierda.El lenguaje C utiliza secuencias de escape para visualizar caracteres que no estánrepresentados por símbolos tradicionales. Las secuencias de escape proporcionanflexibilidad en las aplicacionesmediante efectos especiales. A continuación semuestraunatablaconteniendolassecuenciasdeescapemáscomunes:

EntradaLaentradadedatosaunprogramapuedetenerdiversasfuentescomosonelteclado,unarchivoendisco.Laentradaqueconsideramosahoraesatravésdelteclado,asociadoalarchivo estándar de entrada stdin. La función más utilizada, por su versatilidad, paraentrada formateada de datos es scanf( ). El archivo de cabecera stdio.h del lenguaje C

24

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales

proporciona la definición (el prototipo) de scanf( ), así como de las otras funciones deentradaodesalida.Laformageneralquetienelafunciónscanf()es:

scanf("cadenadecontrol",var1,var2,...);Donde:

cadenadecontrolcontienelostiposdedatosy,sisedesea,suformatovar1,var2,...sonvariablesquesevanacapturar

Loscódigosdecontroldeformatomáscomunessonlosmismosutilizadosparalasalidadedatosprintf().Porejemplo:

intn;doublex;scanf("%d%lf",&n,&x);

Laentradadelosdatostienequeserdelaforma:134-1.4E-4

En este caso la función scanf( ) devuelve n=134, x=-1.4E-4 (en doble precisión). Losargumentosvar1,var2,...delafunciónscanf()sepasanpordirecciónoreferenciapuesvan a ser modificados por la función para devolver los datos. Por ello necesitan eloperadordedirección,elprefijo&.Unerrorfrecuenteseproducealescribir:

scanf("%lf",x);envezde: scanf("%lf",&x);Acontinuaciónsepresentanalgunosejemplotípicosdelusodelafunciónscanf():

printf("Introduzcav1yv2:");scanf("%d%f",&v1,&v2);printf("Preciodeventaalpúblico");scanf("%f",&Precio_venta);printf("Baseyaltura:");scanf("%f%f",&b,&h);

La funciónscanf( ) terminacuandohacaptadotantosdatoscomocódigosdecontrolsehanespecificado,ocuandoundatonocoincideconelcódigodecontrolespecificado.A continuación se presenta un ejemplo de un pequeño programa que imprime en lapantalla “Bienvenido a la Programación en C”, así mismo también como compilarlo yejecutarlo.Paraquepuedasobservarcomofunciona,realizacadaunodelospasosqueacontinuaciónsedescriben:1.-IniciarTurboC++,eintroduceelsiguienteprogramaenCeneleditordeprogramas.#include<stdio.h>intmain()

{printf("BienvenidoalaProgramaciónenC\n");return0;}

25

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales

2.-GuardatuprogramaconelnombrePRACTI02.CPP3.- Compila tu programa utilizando el menú compilar, esta instrucción compilará elprograma y si no se detecta ningún error se generará un archivo objeto llamadoPRACTI02.OBJyunarchivoejecutablePRACTI02.EXE.4.-Sielprogramatienealgúnerrorhayquecorregirloyvolveracompilar,siestalibredeerrores entonces ya puedes ejecutar el programa en la opción “RUN” del menú“COMPILE”oalternativamente,tecleandolatecladefunción“F5”.ACTIVIDADES:

i) HacerunprogramaenCqueimprimaenlapantallalasinicialesdesunombre,porejemplo José Luis SánchezRamírez, el programadeberá imprimir JLSRutilizandoasteriscos(*).

ii) HacerunprogramaenCqueleaunacantidadcualesquieradepesos,yquecalculee imprima su equivalente en dólares, libras, euros y francos suizos utilizandoformatopara2decimales,justificaciónaladerechadelascantidadesymostrandolainformaciónendiferentesrenglones,sisesabequelostiposdecambiosonlossiguientes: 11.10 pesos por dolar, 16.80 pesos por libra, 15.45 pesos por euro y21.07pesosporfrancosuizo.

iii) HacerunprogramaenCparaconvertirunamedidadadaenpiesasuequivalenteena)yardas;b)pulgadas;c)metros;d)centímetrosye)milímetros,sabiendoque1pie=12pulgadas,1yarda=3pies,1pulgada=2.54cm.Utilizarformatoparalosvaloresdecimales.

iv) Hacerunprogramaquecalculeelsueldonetosemanalapercibirporunempleado,losdatosacapturarsonsueldodiario,díastrabajados,porcentajedeispteimss.Elsueldo neto semanal será calculado de la siguientemanera : El sueldo semanalserá el sueldo diario por los días trabajadosmas el séptimodía proporcional (Elcualserácalculadoenbasealacantidaddedíastrabajados,estoquieredecirquesieltrabajadorasistió los6díastrabajadosentoncestienederechoaunséptimodíadesueldoequivalenteaunsueldodiario,denocontarconlos6díastrabajadossolo tendráderechoa laparteproporcional según losdíasque trabajo),unavezcalculadoelsueldosemanalentoncessecalcularanelisptyelimpuestodelimss,los cuales se descontarandel sueldo semanal paraobtener finalmente el sueldonetosemanaldelempleado.Utilizarformatode2decimales.

v) HacerunprogramaenCparaobtener lahipotenusadeun triángulo rectángulo,teniendocomodatosdeentradalosvaloresdeloscatetos.

vi) Hacer un programa en C que desglose una cantidad N de minutos, en suequivalenteperíododetiempodadoenmeses,semanas,días,horas,ysegundos.

vii) HacerunprogramaenCqueleaelradiodeuncírculoyacontinuaciónvisualiceelárea del círculo, el diámetro del círculo y la longitud de la circunferencia delcírculo.

26

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales

viii) HacerunprogramaenCquelealamasade2cuerposyladistanciaentreellosyquecalculeeimprimalafuerzagravitacionalentreellos,sabiendoquelafuerzadeatracciónentredoscuerposm1ym2,separadasporunadistanciadestadadaporlaformulaF=(G*m1*m2)/d²dondeGeslaconstantedegravitaciónuniversaliguala6.673E-8,elresultadoseráendinas.

ix) HacerunprogramaenCparacalculareimprimirladistanciaquerecorreráunhazdeluzen1hora,siesteviajaaunavelocidadde300,000km/seg.

x) HacerunprogramaenCqueleaunatemperaturaengradosCelsius(Centígrados)y que obtenga su equivalente en grados Fahrenheit, Kelvin y Ranking, éstos secalculan de la siguiente manera, para convertir de Celsius a Fahrenheit semultiplicalatemperaturaenCelsiuspor32ysemultiplicapor9/5,paraconvertiraKelvin se le suman 273 grados a la temperatura en Celsius y para convertir aRankineselesuman460alatemperaturaenFahrenheit.

xi) HacerunprogramaenCparacalculareláreadeuntriángulomediantelafórmula:𝑎𝑟𝑒𝑎 = 𝑝 𝑝 − 𝑎 (𝑝 − 𝑏)(𝑝 − 𝑐), donde p es el semiperímetro, dado por:𝑝 = (𝑎 + 𝑏 + 𝑐) 2,siendoa,byclostresladosdeltriangulo.

Todos los alumnos deberán hacer los incisos i y xi, de los incisos ii al x, el profesorseleccionarácualocualesdeberánrealizarcadaalumno.

CONCLUSIONES:

Los resultados serán solo a nivel visualización, no serán impresos, éstos podrán variardependiendodelosejerciciosqueelalumnorealice.Perodebeexpresarsusconclusionespersonales al finalizar la práctica. Para lo cual puede utilizar el siguiente espacio o elreversodelashojas.

REFERENCIAS Sugerida

• Lenguaje C.Ceballos, Francisco Javier.RA-MA Addison.EUA2009• Programación en C.Gottfried, Byron.Mc Graw Hill.México2007,5ªEdición

27

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales

PRACTICA8

ALGORITMOSCONELBUCLEOCICLODEREPETICION“FOR”

OBJETIVO:El alumno utilizará el bucle o ciclo de control repetitivo en sus programas de maneraadecuada

INTRODUCCIÓN:Losciclossirvenpararepetirlaejecucióndeunasentenciaobloquedesentencias,éstassentencias se ejecutan un número determinado de veces de acuerdo a un valorpredefinidooelcumplimientodeunadeterminadaacciónocondición.Losciclostambiénconocidoscomoestructurasdecontrolrepetitivas,correspondenaunasdelasestructurasde controlmás poderosas en lo que respecta al área de programación, en lenguaje deprogramaciónCsecuentacon3tiposdeciclos:elciclowhile,elciclodo_whileyelciclofor,enestaprácticanoscentraremosenelprimerodeestos.

MATERIALYEQUIPOAUTILIZAR:Paralarealizacióndeestaprácticasonnecesarioslossiguientescomponentes:Equipo:

• PCSoftware:

• CompiladordelenguajeC(TurboC++)Material:

• DiccionarioInglés-Español• LápizoBolígrafo(almenosdoscoloresdiferentes)• Reglaoescuadra• Estaprácticaimpresa

DESARROLLO:FUNDAMENTO:Elciclofortienelasiguientesintaxis

for(ValorInicial;ValorFinal;IncrementoodecrementodelaVariable){(BloquedeInstrucciones);}

El ciclo for se ejecutará un cierto númerode veces especificandodesdeun valor inicialhastaelvalorfinal.Sielvalorfinalesmayorqueelvalorinicialsignificaqueelciclovaenincrementoasíquellegaremosalvalorfinalsumándoleunoomásalvalordelavariable

28

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales

(incremento). Si el valor inicial es mayor al valor final significa que es un ciclo endecremento así que llegaremos al valor final restándole uno o más a la variable(decremento). Si en lugar de un bloque de instrucciones se tiene una sola instrucciónpodránomitirse loscorchetes { }. Se recomiendasuusocuandosenecesitaejecutarunnúmeropredeterminadodevecesunbloquedeinstrucciones.Actividad1:Enestaactividadsevanaescribirdistintosbuclesforparasumarlosenterosdel1al5.Enlaforma1sedejanenblanco laspartesde inicializaciónyactualizacióndelbuclefor;elresultadoescorrectoporquedichastareassehan incluidodeotraforma.Laforma2escompletamenteestándar.Enlaforma3todosehaintroducidoenelparéntesisdelbucle;en la inicialización se da valor inicial tanto a i como a suma; en la actualización semodifica también tanto i como suma. El resultado es que el bucle sólo necesita unasentenciavacía, representadaporelpuntoy coma (;). La forma4esunavariantede laforma3.Se debe crear un programa cuyo nombre será PRACT03A.cpp. A continuación se debecopiarelsiguienteprogramaeneleditordecódigo,compilarloyrealizarsuejecución.#include<stdio.h>//Parafunciónprintf()voidmain(void)

{inti=1,suma=0;for(;i<=5;) //forma1

{suma+=i;++i;}

printf(“Suma1=%d”,suma);suma=0;for(i=1;i<=5;++i) //forma2

suma+=i;printf(“Suma2=%d”,suma);for(i=1,suma=0;i<=5;++i,suma+=i) //forma3

;printf(“Suma3=%d”,suma);for(i=1,suma=0;i<=5;suma+=i,++i) //forma4

;printf(“Suma4=%d”,suma);}

29

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales

Despuésdecrear,compilarydeejecutaresteprograma,observaráquelaforma3daunresultadodiferentedelasdemás.¿Sabríasexplicarporqué?¿Tratadecorregirla?Actividad2:En esta actividad se va a realizar un menú, desde el cual se pueden escoger distintasopciones.Paraello sevaausarunbucle for sinningúnparámetroqueactúacomounbucleinfinito,estoquieredecirquenuncaterminará,poresoseterminaelprogramapormediodelafunciónexit(0)aunquetambiénsepuedeprobarautilizarlasentenciabreak;parasalirdelbuclefor.Se debe crear un programa cuyo nombre será PRACT03B.cpp. A continuación se debeescribirelsiguienteprogramaeneleditordecódigo,compilarloyrealizarsuejecución.#include<stdio.h>//paraprintf();yscanf();#include<conio.h>//paraclrscr()ygetch();voidmain(void)

{intopcion;clrscr();//borralapantallaaliniciofor(;;)

{printf(“\n\tMiMenu”);printf(“\n\t-------”);printf(“\n\t1.Opción1”);printf(“\n\t2.Opción2”);printf(“\n\t3.Opción3”);printf(“\n\t4.Opción4”);printf(“\n\t5.Salir”);printf(“\n\tSeleccionaunaopción:”);//pedimosalusuarioqueescoja.scanf(“%d”,&opcion);//evaluamoslaopcionescogidaif(opcion==1)

{printf(“\n\tHaselegidolaopción1”);}

elseif(opcion==2){printf(“\n\tHaselegidolaopción2”);}

elseif(opcion==3){printf(“\n\tHaselegidolaopción3”);}

30

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales

elseif(opcion==4){printf(“\n\tHaselegidolaopción4”);}

elseif(opcion==5){printf(“\n\tHastapronto!Oprimecualquierteclaparasalir”);getch();break;//Salirdelciclo}

else{printf(“\n\tOpciónnovalida,seleccionaotraopción…”);}

}}

CONCLUSIONES:

Los resultados serán solo a nivel visualización, no serán impresos, éstos podrán variardependiendodelosejerciciosqueelalumnorealice.Perodebeexpresarsusconclusionespersonales al finalizar la práctica. Para lo cual puede utilizar el siguiente espacio o elreversodelashojas.

REFERENCIAS Sugerida

• Lenguaje C.Ceballos, Francisco Javier.RA-MA Addison.EUA2009• Programación en C.Gottfried, Byron.Mc Graw Hill.México2007,2ªEdición

31

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales

PRACTICA9 ALGORITMOSCONESTRUCTURASDEDECISIÓNMÚLTIPLE“SWITCH&CASE”

OBJETIVO:El alumno utilizará las estructuras de decisión múltiple en sus programas de maneraadecuada

INTRODUCCIÓN:El lenguajeC tiene incorporadaunasentenciadebifurcaciónmúltiple llamadaswitch, lacomputadora comprueba una variable sucesivamente frente a una lista de constantesenterasocaracteres.Despuésdeencontrarunacoincidencia, lacomputadoraejecuta lasentenciaobloquedesentenciasqueseasocianconlaconstante.

MATERIALYEQUIPOAUTILIZAR:Paralarealizacióndeestaprácticasonnecesarioslossiguientescomponentes:Equipo:

• PCSoftware:

• CompiladordelenguajeC(TurboC++)Material:

• DiccionarioInglés-Español• LápizoBolígrafo(almenosdoscoloresdiferentes)• Reglaoescuadra• Estaprácticaimpresa

DESARROLLO:FUNDAMENTO:Laformageneraldelasentenciaswitches:

switch(variable){

caseconstante1:secuenciadesentenciasbreak;caseconstante2:secuenciadesentenciasbreak;..

32

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales

.default:secuenciadesentencias

}Donde lacomputadoraejecuta la sentenciadefault sielvalorde lavariablenocoincideconninguna constantede la lista. El default es opcional. Cuandoel valor de la variablecoincideconalgunaconstantedelalista,lacomputadoraejecutalassentenciasasociadasconelcasehastaencontrarunbreak.Otro elemento importante es la instrucción break al final de las instrucciones de cadacaso. Es imprescindible, pues de otra manera se seguirían ejecutando el resto deinstruccionesquevandespuéshastaencontrarunbreak,locualprovocaríaunaejecuciónincorrecta.Tambiénesposibleponerelmismocódigoparadiversoscasos:

switch(expresion){casev1:casev2:casev3:instr1_1;

...instr1_N1;break;

}Ejemplodesentenciaswitch:

inti;...switch(i){

case1: printf("iesuno\n");break;/*sinoponemoselbreakaquí,continuara*//*ejecutandoelcódigodelsiguientecase*/

case2: printf("iesdos\n");break;

default: printf("inoesniunonidos\n");break; /*paradefault,elbreakesopcional*/

}ACTIVIDAD:RealizanuevamenteelprogramadeMenúutilizandolasentenciaswitch();(elquesehizoconcicloforinfinito)

33

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales

IIEstructurasderepeticiónEllenguajeCtambiénaportaestructurasparalarepeticióndeunaovariasinstrucciones(bucles).Elbuclefundamentaleselwhile,conlasiguientesintaxis:while(expresion)instruccion;Oparamúltiplesinstrucciones:while(expresion){

instruccion1;instruccion2;...instruccionN;}

Conestaestructuraseejecutarálainstrucciónoelbloquemientraslaexpresiónseevalúeacierto.Existeunaestructurasimilar,eldowhile,quehacelacomprobacióndecontinuidadalfinalenvezdealprincipio,yquemantienelasiguientesintaxis:doinstruccion;while(expresion);Oparamúltiplesinstrucciones:do {

instruccion1;instruccion2;...instruccionN;}while(expresion);

Ladiferenciaesqueconestaúltimaestructurasiempreseejecutaalmenosunavezlainstrucciónobloqueasociados.Denuevo,laejecuciónserepetirámientraslaexpresiónseevalúeaverdadero.Ejemplosdeutilización:while(i<30) {/*testalprincipiodelbucle*/

printf();....}

34

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales

....do {

printf();....}while(i<30);/*testalfinaldelbucle*/

....ACTIVIDAD:Realizanuevamenteelprogramadesumadenúmeros(1-100),peroutilizandolasentenciadowhile();

CONCLUSIONES:

Los resultados serán solo a nivel visualización, no serán impresos, éstos podrán variardependiendodelosejerciciosqueelalumnorealice.Perodebeexpresarsusconclusionespersonales al finalizar la práctica. Para lo cual puede utilizar el siguiente espacio o elreversodelashojas.

REFERENCIAS Sugerida

• Lenguaje C.Ceballos, Francisco Javier.RA-MA Addison.EUA2009• Programación en C.Gottfried, Byron.Mc Graw Hill.México2007,5ªEdición

35

Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Universidad Autónoma del Estado de México Licenciatura en Informática Administrativa Manual de Prácticas de Laboratorio de Algoritmos Computacionales

REFERENCIASGENERALES

v Estévez,N.E.H.,EnseñaraAprender,Ed.MaestrosyEnseñazaPaidós,2002.

v Rugarcía, T. A., et. al., El futuro de la educación en ingeniería, Universidad

Iberoamericana,2001.

v Cooper,J.M.,Estrategiasdeenseñanza,Ed.LIMUSA,2003.

v AlbarránTrujilloS.E,SalgadoGallegosM,ProgramaciónBásica,UAEM,2000

v Gottfried,Byron,ProgramaciónenC,5a.Edición,McGrawHill,México,2007.

v Joyanes, Luis, Fundamentos de programación. Algoritmos y estructura de datos,

McGraw-Hill,México,2002.

v Balcázar,JoséLuis,Programaciónmetódica,McGraw-Hill,España,2003.

v Ceballos,FranciscoJavier,LenguajeC,RA-MAAddison,E.U.A,2009.

v Heileman, Gregory, Algorithmics, the Spirit of Computing, Addison Wesley,

Massachusetts,2005.

v Joyanes, Aguilar Luis y Zahonero, Martínez I., Programación en C, Metodología,

EstructuradeDatosyObjetos,McGrawHill,México,2001.