Manual de Practicas de laboratorio de AC-LIA · 2018-04-17 · 5 Manual de Universidad Autónoma...
Transcript of Manual de Practicas de laboratorio de AC-LIA · 2018-04-17 · 5 Manual de Universidad Autónoma...
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.