You are on page 1of 14

Algoritmos Un algoritmo establece, de manera genrica e informal, la secuencia de pasos o acciones que resuelveundeterminadoproblema.Losalgoritmosconstituyenladocumentacinprincipalquese necesitaparapoderiniciarlafasedecodificacin. Unalgoritmoparaunprogramadoresunaherramientaquelepermiteresaltarlosaspectosms importantesdeunasituacinydescartarlosmenosrelevantes.Todoproblemadecmputosepuede resolverejecutandounaseriedeaccionesenunordenespecfico.

rdenespecfico. Porejemploconsidereelalgoritmoqueseelaboraraparaelproblemaosituacindelevantarse todaslasmaanasparairaltrabajo: 1. Salirdelacama 2. quitarseelpijama 3. ducharse 4. vestirse 5. desayunar 6. arrancarelautomvilparairaltrabajootomartransporte.

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

FiguraN1.Smbolosgrficosmsutilizadosparadisearordinogramas Pararealizarunalgoritmosecombinarloselementosbsicosquesepuedenutilizaralahorade disearunalgoritmo: Tiposdedatos


Variables Constantes Operadores Expresiones Instrucciones

Losdatosqueutilizanlosprogramassepuedenclasificarenbaseadiferentescriterios.Unodelos mssignificativosesaquelquedicequetodoslosdatosqueutilizanlosprogramassonsimpleso compuestos.

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:

Entero Real Lgico Carcter Cadena

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:

Constantes Enprogramacin,unaconstanterepresentaaunvalor(datoalmacenadoenmemoria)quenopuede cambiardurantelaejecucindeunprograma.

TiposdeOperadores Operadoresaritmticos Enlasexpresionesaritmticassepuedenutilizarlossiguientesoperadoresaritmticos:

FiguraN2.Operadoresaritmticos

Operadoresrelacionales Unoperadorrelacionalseutilizaparacompararlosvaloresdedosexpresiones.stasdeben serdelmismotipo(aritmticas,lgicas,decarcterodecadena).

FiguraN3.Clasificacindelosoperadoresrelacionalesenpseudocdigo. Paraescribirunaexpresinrelacional(lgica)seutilizalasintaxis: <expresin_1><operador_de_relacin><expresin_2>

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:

FiguraN5.Clasificacindelosoperadoresdecadenaenpseudocdigo. Eloperadorconcatenacin(+)realizalaconcatenacindedosoperandosdetipocadena,esdecir, losencadena. Prioridaddeoperadores Enpseudocdigo,laprioridadentrelosoperadoresaritmticos,relacionales,lgicosydecadena es:

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

escribir(<lista_de_expresiones>) Instruccindeentrada Unainstruccindeentrada(osimplementeentrada)consisteenasignaraunaomsvariables,unoo msvalores(datos)recibidosdesdeelexterior.Normalmente,losdatossonrecogidosdesdela entradaestndar(elteclado),pero,tambinexistenotrosdispositivosdeentrada(elratn,el escner,...). Enpseudocdigo,lasintaxisdeunainstruccindeentradaes: leer(<nombre_de_la_variable_1>,nombre_de_la_variable_2>,..,<nombre_de_la_variable_n>)

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

mediodeunaexpresin,elsiguientebloquedeinstruccionesaejecutardeentrevariosposibles.En pseudocdigo,paraescribirunaalternativamltipleseutilizalasintaxis: segun_sea(<expresin>) <lista_de_valores_1>:<bloque_de_instrucciones_1> <lista_de_valores_2>:<bloque_de_instrucciones_2> . .. <lista_de_valores_n>:<bloque_de_instrucciones_n> [sino:<bloque_de_instrucciones_n+1>] fin_segun_sea

Instruccionesdecontrolrepetitivas

Instruccinrepetitivamientras Instruccinrepetitivahacer...mientra Instruccinrepetitivapara

Instruccinrepetitivamientras Enpseudocdigo,paraescribirunainstruccinrepetitivamientras,seutilizalasintaxis: mientras(<expresin_lgica>) <bloque_de_instrucciones> fin_mientras Paraqueseejecuteel<bloque_de_instrucciones>,lacondicintienequeserverdadera.Porel contrario,silacondicinesfalsa,el<bloque_de_instrucciones>noseejecuta.

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

You might also like