Professional Documents
Culture Documents
RepresentacindeAlgoritmos Fundamentalmente,dostiposdenotacin: Pseudocdigo Diagramasdeflujo. Eldiseodeunalgoritmoesindependientedellenguajequedespussevayaautilizarpara codificarlo. Algoritmoenpseudocdigo Pseudocdigoesladescripcindeunalgoritmoqueasemejaaunlenguajedeprogramacinpero conalgunasconvencionesdellenguajenatural.Tienevariasventajasconrespectoalosdiagramas deflujo,entrelasquesedestacaelpocoespacioqueserequierepararepresentarinstrucciones complejas. El pseudocdigo no est regido por ningn estndar. Lasintaxisparaescribirunalgoritmoenpseudocdigoes: algoritmo<nombre_del_algoritmo> [constantes <declaraciones_de_constantes>] [tipos_de_datos <declaraciones_de_tipos_de_datos>] [variables <declaraciones_de_variables>] inicio <bloque_de_instrucciones> fin
Unalgoritmoescritoenpseudocdigosiempresesueleorganizarentressecciones: Cabecera:Enlaseccindecabeceraseescribeelnombredelalgoritmo. Declaraciones : En la seccin de declaraciones se declaran algunos objetos (variables, constantes,...)quevaautilizarelprograma. Cuerpo:Enelcuerpoestndescritastodaslasaccionesquesetienenquellevaracaboenel programa,ysiempreseescribenentrelaspalabrasinicioyfin.
Ejemplo de un algoritmo en Pseudocdigo Por ejemplo, el algoritmo de un programa que va a calcular la suma de dos nmeros enteros cualesquieraintroducidosporelusuarioy,despus,vaamostrarporpantallaelresultadoobtenido, puede ser el siguiente: algoritmoSumar variables enteroa,b,c inicio escribir("Introduzcaelprimernmero(entero):") leer(a) escribir("Introduzcaelsegundonmero(entero):") leer(b) ca+b escribir("Lasumaes:",c) fin
Diagramasdeflujos. Losdiagramasdeflujosondescripcionesgrficasdealgoritmos;usansmbolosconectadoscon flechasparaindicarlasecuenciadeinstruccionesyestnregidosporISO. Losdiagramasdeflujosonusadospararepresentaralgoritmospequeos,yaqueabarcanmucho espacioysuconstruccineslaboriosa.Porsufacilidaddelecturasonusadoscomointroduccina los algoritmos, descripcin de un lenguaje y descripcin de procesos a personas ajenas a la computacin. Otra definicin del diagrama de flujo es la siguiente: "Esunesquemapararepresentargrficamenteunalgoritmo.Sebasanenlautilizacindediversos smbolos para representar operaciones especficas. Se les llama diagramas de flujo porque los smbolosutilizadosseconectanpormediodeflechasparaindicarlasecuenciadeoperacin.Para hacer comprensibles los diagramas a todas las personas, los smbolos se someten a una normalizacin;esdecir,sehicieronsmboloscasiuniversales,yaque,enunprincipiocadausuario podratenersuspropiossmbolospararepresentarsusprocesosenformadeDiagramadeflujo. Estotrajocomoconsecuenciaquesloaquelqueconocasussmbolos,lospodainterpretar.La simbologautilizadaparalaelaboracindediagramasdeflujoesvariableydebeajustarseaun 2
patrndefinidopreviamente." Principalessmbolos: Flecha:Indicaelsentidoytrayectoriadelprocesodeinformacinotarea. Rectngulo: Seusapararepresentaruneventooprocesodeterminado.steescontroladodentro deldiagramadeflujoenqueseencuentra.Eselsmbolomscomnmenteutilizado. Rectnguloredondeado:Seusapararepresentaruneventoqueocurredeformaautomticaydel cualgeneralmentesesigueunasecuenciadeterminada. Rombo:Seutilizapararepresentarunacondicin.Normalmenteelflujodeinformacinentrapor arribaysaleporunladosilacondicinsecumpleosaleporelladoopuestosilacondicinnose cumple.Loanteriorhacequeapartirdesteelprocesotengadoscaminosposibles. Crculo:Representaunpuntodeconexinentreprocesos.Seutilizacuandoesnecesariodividirun diagrama de flujo en varias partes, por ejemplo por razones de espacio o simplicidad. Una referencia debe de darse dentro para distinguirlo de otros. La mayora de las veces se utilizan nmerosenlosmismos. Losalgoritmostambinsepuedenrepresentar,grficamente,pormediodediagramasdeflujo.Los diagramasdeflujosepuedenutilizarconotrosfines,noobstante,alosdiagramasdeflujoque representan algoritmos tambin se les conoce como ordinogramas. Dicho de otra forma, un ordinogramarepresenta,demaneragrfica,elordendelospasosoaccionesdeunalgoritmo.Por ejemplo,elagoritmoescritoenpseudocdigotambinsepuederepresentarmedianteelsiguiente ordinograma:
Elpseudocdigoylosdiagramasdeflujosonlasdosherramientasmsutilizadasparadisear algoritmosenprogramacinestructurada.Sibien,entreambostiposderepresentacinexistenlas siguientesdiferenciasimportantes: 1. Losdiagramasdeflujoempezaronautilizarseantesqueelpseudocdigo. 2. Enpseudocdigosesuelendefinirtresseccionesdelalgoritmo(cabecera,declaracionesy cuerpo).Sinembargo,enunordinogramasloserepresentaelcuerpo. 3. Enunordinogramasuelesermsfcilver,aprimeravista,culeselordendelasacciones delalgoritmo. 4. Lossmbolosgrficosutilizadosenundiagramadeflujohansidoestandarizadosporel AmericanNationalStandardsInstitute(ANSI).Sinembargo,noexisteun"pseudocdigo estndar".
FiguraN1.Smbolosgrficosmsutilizadosparadisearordinogramas
Undatosimpleesindivisible(atmico),esdecir,nosepuededescomponer. Ejemplo1:Unaoesundatosimple. Ao...:2006 Unaoseexpresaconunnmeroentero,elcualnosepuededescomponer.Sinembargo,undato compuestoestformadoporotrosdatos. Ejemplo2:Unafechaesundatocompuestoportresdatossimples(da,mes,ao). Fecha: Da...:30 Mes...:11 Ao...:2006 Ejemplo3:Otroejemplodedatosimpleesunaletra. Letra...:t Unaletraserepresentaconuncarcterdelalfabeto.Pero,cuandovariasletrasseagrupan,entonces seobtieneundatocompuestoporvarioscaracteres. Ejemplo4:Paraformarunnombredepersonaseutilizanvarioscaracteres. Nombre...:Ana(datocompuestoportrescaracteres)
Algunodelostiposdedatos:
De ellos, tan solo el tipo cadena es compuesto. Los dems son los tipos de datos simples considerados estndares. Esto quiere decir que la mayora de los lenguajes de programacin permitentrabajarconellos. Datos de tipo entero Undatodetipoenteroesaquelquepuedetomarporvalorunnmeropertenecientealconjuntode losnmerosenteros(Z),elcualestformadoporlosnmerosnaturales,suopuestos(nmeros negativos)yelcero. Z={...,3,2,1,0,1,2,3,...}
Ejemplo 5: La edad de una persona y el ao en que naci, son dos datos de tipo entero: Edad...: 29 Ao....:1976 Zesunconjuntoinfinitodenmerosenteros,ycomoelordenadornopuederepresentarlostodos, undatodetipoenteroslopuedetomarporvalorunnmeropertenecienteaunsubconjuntodeZ. Los valores mximo y mnimo de dicho subconjunto varan segn las caractersticas de cada ordenadorydelcompiladorqueseutilice. Enpseudocdigo,paraindicarqueundatoesdetipoenteroseutilizalapalabrareservada:entero Datos de tipo real Undatodetiporealesaquelquepuedetomarporvalorunnmeropertenecientealconjuntodelos nmeros reales (R), el cual est formado por los nmeros racionales e irracionales. Ejemplo6:Elpesodeunapersona(enkilogramos)ysualtura(encentmetros),sondatosque pueden considerarse de tipo real. Peso.....: 75,3 Altura...: 172,7 Resunconjuntoinfinitodenmerosreales,ycomoelordenadornopuederepresentarlostodos,un datodetiporealslopuedetomarporvalorunnmeropertenecienteaunsubconjuntodeR.Los valoresdedichosubconjuntovaransegnlascaractersticasdecadaordenadorydelcompilador que se utilice. Enpseudocdigo,paraindicarqueundatoesdetiporealseutilizalapalabrareservada:real Datos de tipo lgico Enprogramacin,undatodetipolgicoesaquelquepuedetomarporvalorslounodelosdos siguientes: {verdadero,falso} Losvaloresverdaderoyfalsosoncontrapuestos,demaneraque,undatodetipolgicosiempreest asociado a que algo se cumpla o no se cumpla. Ejemplo7:Elestadodeunabarreradepasodetrenesesundatoquepuedeconsiderarsedetipo lgico, por ejemplo, asociando verdadero a que est subida y falso a que est bajada. Estado...:falso(indica que la barrera est bajada) Enpseudocdigo,paraindicarqueundatoesdetipolgicoseutilizalapalabrareservada:logico
Datos de tipo carcter Undatodetipocarcteresaquelquepuedetomarporvaloruncarcterpertenecientealconjuntode los caracteres que puede representar el ordenador. Enpseudocdigo,elvalordeundatodetipocarctersepuederepresentarentrecomillassimples(') odobles(").Pero,enestecurso,sevanautilizarsolamentelascomillassimples(aligualquese hace en lenguaje C). 7
Ejemplo:Enunexamenconpreguntasenlasquehayqueseleccionarlarespuestacorrectaentre variasopcionesdadas(a,b,c,d,e),larespuestacorrectadecadaunadelaspreguntasesundatode tipo carcter. Respuetacorrectaalapregunta3...:'c' Datos de tipo cadena Un dato de tipo cadena es aquel que pueden tomar por valor una secuencia de caracteres. Enpseudocdigo,elvalordeundatodetipocadenasepuederepresentarentrecomillassimples(') o dobles ("). Ejemplo : El ttulo de un libro y el nombre de su autor, son datos de tipo cadena. Ttulo...: Autor....: "La Odisea" "Homero" (cadena (cadena de de 6 9 caracteres) caracteres)
Obsrvese que, en la cadena "La Odisea", el carcter espacio en blanco tambin se cuenta. Enpseudocdigo,paraindicarqueundatoesdetipocadenaseutilizalapalabrareservada: cadena Variables Enprogramacin,unavariablerepresentaaunespaciodememoriaenelcualsepuedealmacenar undato.Grficamente,sepuederepresentarcomo:
FiguraN2.Operadoresaritmticos
Operadoreslgicos Unoperadorlgicoacta,exclusivamente,sobrevaloresdeexpresioneslgicas.Los 9
operadoreslgicosson:
FiguraN4.Clasificacindelosoperadoreslgicosenpseudocdigo. El operador conjuncin (y) y el operador disyuncin (o) siempre actan sobre dos operandos, mientrasque,eloperadornegacin(no)sloactasobreunoperando,odichodeotraforma,esun operadormonario. Operadoresdecadenas Sloexisteunoperadordecadena:
10
FiguraN6.Prioridaddelosoperadores. Instruccindeasignacin Unainstruccindeasignacin(osimplementeasignacin)consisteenasignarelresultadodela evaluacindeunaexpresinaunavariable. Enpseudocdigo,lasintaxisparaescribirunaasignacines: <nombre_de_la_variable><expresin> Instruccindesalida Unainstruccindesalida(osimplementesalida)consisteenllevarhaciaelexteriorlosvalores (datos)obtenidosdelaevaluacindeunalistadeexpresiones.Normalmente,losdatossonenviados alasalidaestndar(lapantalla),pero,tambinexistenotrosdispositivosdesalida(laimpresora,el plotter,...). Enpseudocdigo,lasintaxisdeunainstruccindesalidaes: escribir(<expresin_1>,<expresin_2>,...,<expresin_n>) Tambinsepuedeescribircomo:
11
Tambinsepuedeescribircomo: leer(<lista_de_variables>) Instruccionesdecontrolalternativas Instruccinalternativadoble Instruccinalternativasimple Instruccinalternativamltiple Instruccinalternativadoble Enpseudocdigo,paraescribirunainstruccinalternativadobleseutilizalasintaxis: si(<expresin_lgica>) <bloque_de_instrucciones_1> sino <bloque_de_instrucciones_2> fin_si Paraqueseejecuteel<bloque_de_instrucciones_1>,lacondicintienequeserverdadera.Porel contrario,silacondicinesfalsa,seejecutarel<bloque_de_instrucciones_2>. Instruccindedecisicinsimple Unainstruccinalternativasimple(osimplementealternativasimple)esunavariante(mssencilla) deunainstruccinalternativadoble.Enpseudocdigo,paraescribirunaalternativasimpleseutiliza lasintaxis: si(<expresin_lgica>) <bloque_de_instrucciones> fin_si Instruccindedecisicinmltiple Unainstruccinalternativamltiple(osimplementealternativamltiple)permiteseleccionar,por 12
Instruccionesdecontrolrepetitivas
Instruccinrepetitivahacer...mientras Enpseudocdigo,paraescribirunainstruccinrepetitivahacer...mientrasseutilizalasintaxis: hacer <bloque_de_instrucciones> mientras(<expresin_lgica>) Enunbuclehacer...mientras,primeroseejecutaelbloquedeinstruccionesy,despus,seevalala condicin.Enelcasodequestaseaverdadera,sevuelveaejecutarelbloquedeinstrucciones.Y assucesivamente,hastaque,lacondicinseafalsa. Instruccinrepetitivapara Enpseudocdigo,paraescribirunainstruccinrepetitivaparaseutilizalasintaxis: para<variable><valor_inicial>hasta<valor_final>[incremento<valor_incremento>|
13
decremento<valor_decremento>]hacer <bloque_de_instrucciones> fin_para Elcarctertubera(|)seutilizaparaindicarque,obienseescribe incremento<valor_incremento> obienseescribe decremento<valor_decremento> pero,noambos. Enunainstruccinrepetitivapara,siempreseutilizauna<variable>alaquesedebeasignarun <valor_inicial>.Deformaquesi,porejemplo,seescribe: incremento<valor_incremento>encadaiteracindelbucle,alvalordela<variable>selesumael <valor_incremento>y,cuandola<variable>superael<valor_final>,elbuclefinaliza.
14