Está en la página 1de 109
CAPITULO 1 ALGORITMOS Y PROGRAMAS 1.1. CONCEPTO Y DESCRIPCION DE UN PROCESO Una aecién es un suceso 0 acontecimiento producido por un actor (ejecutan- te). Tieng la caracteristica de una duracién limitada y produce un resultado bien definido y previsto. El tener una duracién limitada en el tiempo implica la existencia de un instante inicial de la acci6n (1,) y un instante final (f,. Para poder reconocer el resultado del sistema debe estar provisto de indicadores que tomen valores diferentes, El valor de estos indicadores se denomina inyormacién, El conjunto de los valores de los distintos indicadores en un instante dado (i) del desarrollo del acontecimiento se denomina estado en el instante ( del sistema observado. El resultado es el estado del sistema en el instante t,, El estado del sistema en {, define los datos de la accién. Proceso es una accién que se puede descomponer en otras mas simples, 0 también conjunto de fenémenos organizados en el tiempo y coneebidos como activos, Se puede considera un proceso como un conjunto dé acciones clementa- les que forman un acontecimiento. Procesador es el elemento capaz de ejecutar un determinado proceso de trabajo, Los procesos pueden ser: secuenciales y paraietos, Un proceso es secuencial si una accion del mismo no puede empezar antes que la accion en curso esté completamente terminada: en otras palabras: dos jones no se ¢jecutan simultdneamente, sino en un orden secuencial. Un proceso es paratelo si se ejecutan simultaneamente dos o mas acciones. 4 2. METODOLOGIA DE LA PROGRAMACION Alo largo de! libro slo trataremos los procesos secuenciales que en un instante dado tan solo pueden ejecutar una vinica accién. Un giemplo tiptco de proceso es: Un cocincro labora un plato de cocina (por ejemplo, un estofude de earne para 6 personas}: Tas acciones a seguit son: calentar el aceite, ett la carne, poner condimen- 105, etc. Un ejemplo de proceso secuenctal es: Un estudiante calcula cl producto de los niimeros naturales m=25 y n=36, La descripcion del proceso necesttard: 1. La lista de datos. 2. EL conjunto de acciones, orden de éstas y condiciones que determinan la ejecucion de una u otra accion, Los procesos en los que estamos interesados som aquellos que se pueden repetir y en Tos cuales el resultado no depende det eieeusor (siempre que ésie atenga perfectamente al punto 2 antenor). El proceso nos ha de servir para resolver todos los problemas de cierto tipo (todos los que resultan de tomar 7 y mcomo nimeros naturales). 1.2. ALGORITMOS Un algorizmoes una serie de operaciones detalladas y no ambiguas, acjecutar ‘aso a paso, y que conducen ala resolucién de un problema. En ateas palabras, aun aigoniti ¢s wx conjurto de reglas para resolver wa cierta clase de problema oo una jorma de deseribir la solcidn de un problema. Una recta de cocina pack hacer «cordero asadon es un algoritmo. Un algoritmo es el mado por el que se explica cdmo puede resolverse un problema, mediante aproximaciones paso a paso. Se puede formula de muchas formas, siempre y euando se realice de modo no ambiguo. Para describir algoritmos de computadocas se han disenado lenguajes de programacion. Cada una de las ecciones de las que consta un algritmo se llamara seniencia y estas deben ser eseritas en terminos de ciero Lenguaje com- prensible para ol Gocutor (maquina), que es el Lenguaje ds programacién, El conjunto formado por la representacion de datos wuiizada y el algeritmo ten si, se concee usualmente con e! nombre de programa. En esencia, ei progr ‘ma es fa deseripcion del proceso en un ciere longue, 0 dicho de otra manera: 1a stcveneia de aeciones emtendibles por Ia computadora conducen a realizar ana tarea determined y el correcto tratamiento de unos datos. Recordemos le definicion de algorimo Gada por el profesor Niklaus Wirth, pack del lenguaje Pascal: Un algoritmo o programa de computadora consist en dos partes esencials: wna descripciin de acciones que deben ser ejecutadas y sina deseripciin de los datos que son manipulados por esas acciones. Las accio- nes se deseriben medignte las lamadas sentencias y los datos mediante declara- ALGOATVOS ¥ PROGRAMAS 3 ciones y definiciones (PASCAL, New York Ine., 1975), Los programas constan de una serie de sentencias (lineas de informacion ‘con unas determinadas realas de sintaxis) Estas partes elementales de un progras ‘ma que son las sentencias se componen a su vez de insinucciones que son. 135 acciones concretas que debe realizar la maquina. Con frecuencia Tes pelabras sentencia e instrucciones se confunden o consideran sinénimas. Nosotros prefe- rimos utilizar senencia para tenguajes de alto nivel —proximos al usuario— © instrucciones para lenguajes de bajo nivel y méquina —proximosa la maquina, 1 Manual /ind Report. Springer-Veslang, 1.2.1, Caracteristicas de los algoritmos Se observa, normalmente, que el rtimera de operaciones que realiza un algoritmo (0 programa) no se conocen de antemano, eunque ser fnito siempre que los datos sean adacuados. Por consiguiente, el numero de operaciones que «8 preciso realizar al ejecutar un algoritmo dependeré de los datos cel problema ¥y solamente se conoceri al gocutar este Las caracieristioas undamentates de un algoritmo o proceso algoritmico son: 4} Unalgoritmo debe ser preciso ¢ indicar ¢} orden de realizacién de cada paso, 5} Um algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez. o} Unalgoritmo debe ser finigo. Si se sigue un algoritmo, se debe terminar en algun momento, La definicion de un algoritmo deberia describir res partes: entrada, proceso salida. Un algoritmo implica eeneralmente alguna entrada (algo que existe ¥ €: utilizado por el algoritmo), en un algoritmo de receta de cocina, Ia entrada «std constituids por los ingredientes y los utensilios empleados. Un algoritmo produce tambien resultados denominados salida. La salida de la receta ser la terminacién del plato (cordero asado). Tin algoritmo deseribe la transformacién de ta entrada on ta salida. 1.3. DATOS, TIPOS DE DATOS Y OPERACIONES PRIMITIVAS. El primer objetivo de toda méquina (procesador) es ef manejo de informa- ign 0 datos. La representacién de las datos utilizada determina la forma del algoritm: realmente, 10s dependen del tipo de informacién sobre ls que acta, En conse- cuencia, la identificacion de los objetos (datos) que manipula el algoritmo debe realizarse sin ninguna ambigiedad para que la maquina sepa en cada momento {qué tipo de datos manipula y como debe operar con ellos. El sistema de identi ceacion de los datos que lamaremos definieiOn de la estruciura de datos, es, ‘menos, tan importante como los algoritmos que los transforman. 4 METODOLOGIA DE LA PROGRAMACION El lenguaje de programacién no es mas que una noiacion que describe las estructuras de datos y los algoritmos. Los datos con los cuales trabaje un progr ‘ma se sitian en objetos llamados variables. Al igual que todos Jos objetos de un Programa, las variables evan un nombre llamado identifieador que sieve para Feferenciar su valor o contenido. Este valor puede ser examinado tan a menudo ‘vomo sea necesario, borrado © reescrito. La aceion que consisie en atribuir un valor a una variable se llama asignacién, Los datos y sus valores tratados por lun programa pueden ser de diferente naturaleza (mimeros, earacteres, etc). El tipo de una variable ¢s cl del conjunto de valores que puede tomar. La mayoria de las computadoras son capaces de trabajar con distintos tipos de datos: numéricoy y no numéricas (series 0 eadenas de caracteres alfa- Ddeticos). 1.3.1. Datos numéricos Los datos numericos se representan en dos formas: mimcras enteros y minac- 10s reales. La computadora maneja de modo diferente ambas formas, Los enteras corresponden a nimezos completos; no tienen componente deci- malo fraccionario y pueden s2r negativos o positivos. Ejemplos de enteros son: 3285 45 4672 321 35 ~5 El rango normal de los numeros enteros suele ir de ~32768 @ 432767. Los reales tienen siempre un punto decimal: las fracciones se almacenan en Ia computaciora como numeros decimales porque no existe otra forma de alma- cenar numeradores u denominadores separados. Al contrario de fos enteros que suelen tomar valores en un rango determinado, los nimeros reales pueden tomar, tedricamente, cualquier valor de la recta numérica real y ser positivos 0 negativos. Los siguientes ejemplos son numeros reales: 346 4507.34 231,512 313.216 8.31 8.74 En notacion de computadora la coma decimal no existe y es siempre sust da por un punto. Al objeto de poder representar nuimeros Feales muy grandes o muy pequetias (463.297 314 6 0,00000000003845) se ha disenado una notacién denominada cieniifica 0 de coma, punio flotanse que tiene el siguiente formato n=mxtte mee ALGORTVOS Y PROGRAMAS 5 m esta mantis © exponentc, igual a un enter. ‘base del sistema de numeracin (normelmente 10). 1. simbolo de la operacion exponenciacisn En el sistema decimal el formato resulta ser: x10te nem 10" aunque el rango se dijo antes es indefinido, \ésicamente a efectos pricticos tiene limitaciones. Normalmente mr puede contener de 4 a 6 u 8 digitos y ¢ dos digitos positives 0 ncgativos Ejemplos tipicos de mameros reales en coma flotante son: 0.34567 x 10123 34.567 x 10115 0.386 x 107-7 3.4567 x 10014 (Pes simbolo de la exponenciacitin) se sustituye normalmente por la Tetra ey entonees resultara: 0.34567 223 34.567 018 0.386 0-7 3.4967 014 La ocupacion en memoria de los numeros enteros y los niimeros reales es cistinta Asien el c2s0 de Tos micros TBM PC, los tipos de muimeros aceptados enteros:sang0 ~22768 a +32767 (ocuoan 2 bytes de memoria), seates: simple precision (7 digitos de precision) doble precision (15 digitos de precision), 1.3.2. Datos no numéricos Existen lundamentalmente dos tipos: datos alfaruméricos y datos ligicas: Los datos aifanumeéricosse agrupan en series o cadenas de earacteres (caracte= res alfabsticas A,B. .., XY. Z. a, b, a X,Y % los disitos 0,1, 2, 0, 8, 9 cargcteres especizles #, 8, -, etc). Los dates fégicos son aquellos que pucden tomar dos valores «verdadero» y “ehalso. Una Sintesis de los tipos de datos utilizadas por los procesadores es la Figura |. 16 METODOLOGIA DE LA PROGRAMACION Namen cosons de eectros Taicos Dosifles Som Foret Figura 1.1. Tot de dstoe do lae procobadoree, 1.4. CONSTANTES, VARIABLES Y EXPRESIONES Una variable es un objeto cuyo valor no es variable, Ademeas de este valor toda variable posee dos atributos: un nombre (invariable, denominado en ocasianes, caso del lenguaje Pascal, identificador) que sirve para designarla v un tipo (inva. rable) que describe la posible utilizacion de la variable. Al definir una variable se ha de precisar su nombre y su tipo. El nombre como ya se ha indieado antcriormente se sucle conocer como identifcador. Elvalor de as variables puede ser modificado durante laciecucién del prograe ima, Dependiendo de los lenguajes las variables pueden ser: enveras, reales, de caracteres y kigécas (boolean) y tomarda los valores visios en el apartado ante= Una constante es un objeto de valor invariable. Este valor no cambia durante of proceso, Para expresar ina constante se eseribe explicitamente su valor. por sjemplo, 5, ~70 0 3.141519. La mayorta de los lenguajes permiten diferentes tipos de constantes, siendo las mis comunes enterus, decimales, caracieres ewleanas (idgicos), 1.4.1, Constantes Conscanee entera (integer): es un niimero con un valor entero, positive o negativo, por ejemplo, 3, ~4, 0 Constante reat: Una consiante real o decimal es un nimero escrito con un punto decimal, Obsérvese que 3.0, aunque su valor es un aumero completo 0 entero, se considera una constante decimal, Constante de caracteres: es un conjunto de uno o varios caracteres. Normale ‘mente los earacteres disponibles som letras maytsculas, mintisculas, digitos,sig- fos dé puntiwacidn y oirus simbolos especiales. AUGORIIMOS Y PROGRAMAS 7 1.4.2. Variables Enueras Ginter: Su representacion intema etd formada por una eeovensia de bits en un cosigo binano (omplomento a uno, complemenna dos codigo de exces, signo y mognitud. Las varables enteras pueden ser decaradas explicitamente por el progric maton BASIC Pascal 2%, NOTASY War, ¥, 2 imoger: Reales: la codificact cientfica BASIC A. NOTAS, alge cera se representa en coma flotante o ea notacion Pascal var x, y. 2: real: var u, v, Wi real; Caraetores (ehary: ¢s un conjunto de caracteres. BASIC Pascal AS, BS NOMBRESS var a, 8: cher Boolean: puede tomar los valores de Algebra de Boole (0, 1) 0 bien (cierto, falso // true, false) Paseal var a, 5: boolean, 1.4.3. Expresiones Las expresiones son combinaciones de constantes variables, simbolos de operacién, paréntesis izquierda y derecha y nombres de Tunciones especiales, Las mismas ideas se utlizan en notacién’matemética tradicional, por gem plo: min +8145 En la expresién anterior, los paréntesis indican el orden de cdleulo y representa la funcién raiz cuadrada, Cada expresidn tiene un velor, gue se determina tomando los valores de las variables y constantes implicadas y ¢jecutando las operaciones indicadas. Las expresiones se clasifican en dos tipos: expresiones ariumeticas expresiones boolearas ALGORTWOS ¥ PROGRAMAS 9 (sua, resia, muhiplicacién, division... BI resultado de la evaluacion de tal cexpresion send el valor que se le asigne a la variable indicada, W245 47343 se le asigna a V el valor 121 Vieatbom a V 52 le asigna la resultante de la operaciéin a 4 b ~ m, donde a, b y m son los valores que en ee momenta tenga. 1.5. LOS PROGRAMAS Se podria considerar fa prosramaciin como el conjunto de actividades y ‘operaciones realizadas por el personal informatico tendentes a instruir a la mé- ‘ouina para que pueds realizar las Tunciones previstas en el algoritmo. La progr rmacién se manifiesta en los programas (el concepto de programa se introdujo ‘en ot spartado 1.2), Eldesarrollo de un programa aharca diferentes tapas, dc las cuales la eseritue 1 puede ser Ia menos signficativa, Ta primera etapa al escribir un programa es la definieién del problema. Una vez dofinido el problema se puede disehar la salucién, E! disefo general clegido © decrrolla posteriormente en forma de algoritmo; un metodo muy utilizado para cl desarrollo es el método arriba-abajo (top-down), que consiste en pai de una idea general y definir cada paso posterior con mas detalle hasta llegar ala resolucidn del problema. En esta descomposiciéin de la ides general, se suele recur, a veces, a algoriimos normalizados. ‘Tras disehar el algoritmo, se pasa a fa eseritura ea wa lenguaje dle programa ci6n, El proceso de escribir las sentencias reales de un Ienguaje de programacién se denomina cudificacion. Es importante no realizar 12 codificacion hasta tanto lalgoritmo no esté précticamente definido. La eodificacisn es una parte de la programacion, Una ver covificado el programa, se ejecuta y se compruchen sus errores. La ‘operaci6n de detectar y cortegir errores se denomina depuracidn. Las comproba- ciones sueesivas del programa pormitiran deteetar la presencia ee evrores, pero 2o detectardin su ausencia, ya que pueden exist o110s exrores quc no se hayan enconirado por no haberse probado. Tras la depuracin final del programa y la cjecucion sin errores, es preciso decumensar el programa. Es necesaria una documentacion interna con comentarios convenientes a lo largo del programa que permizan ayudar futuras modificaciones, y deciumeniueién externa basada en la descripcin completa de algoritmo, organierama, tablas de decision, ete La vida del programa se continda con la fase de mantenimiena, que consiste en as operaciones necesarias para mantener el programa al dia, es decir posibili- tar que el programa curpla sus abjetivos pase a las variantes 0 modificaciones ‘ue sus datos, acciones, etc. puedan su‘tir con el paso del tiempo. CAPITULO 2 DIAGRAMAS DE FLUJO 2.1, INTRODUCCION La realizacién de trabajos mediante compatadore, como eualauice otra avtvidad (Ingenieria, arquitectura, et.) requiere un método que expligue de un modo ordenado y secuencial hasta los éltimos detalles a realizar por a mi- ‘ui. A igual que pera construir una casa, la empresa consiructora no comienza porl teido, sino que s> cncarga a un arquiteeto el diseio de unos plans, al Jefe de proyectos un calendario de actividades, et, una aplicacion informatica, sobre toi si tiene cierta complejidad, no debe comenzar nunca por la codifica- cion éel progeama, sino que exige una serie de fses previas destinadas 2 conocer todos los aspecios del problema planteado y estudiar las posibes soluciones. EL conjunto do todas la fases necesarias para el completo deserrollo de una aplica- Gon informatica rece el nombre de andlisisy analisa se denomins la persona encarzada de realizaria, Elandliss de ssternas se encarga del funcionamiento de un sistema informn- tico, incluyende en él, todos los medics informéticos materiales (hardware! software) y humanos, as como dela organizacion que controla su funcionamien- to. Fl anata de sistemas es la persona encargade de controlar todo el sistema injormatico y estudiar la necesidad de nuevos medios humanos 6 informaticos, uidando ef buen funcionamiento de los existentes, Asi mismo el analisa de sistemas deberd proponer las soluciones Gptimas ante eualquier problema de fancionarniento que se plantee en al sistema informatio y super el desarrollo 14 METODOLOGIA DE LA PROGRAMACION. 2.2, DIAGRAMAS DE FLUJO Como ya sc ha comentado, el plantcamiento de un problema que pueda Negara una solucion, requiere la aplicacion de una logica que evolucione secuen- cialmente, Le resolucién de todo problema exige tres grandes elementos: datos dei problema, resultados solicitados y algeriimo de resolucibn Los datos del problema son informacién de partida y sobre 1s que normal: ‘mente no se puede actuar con la excepcion de su manipulacion correcta, Los resultados constituyen la informacién de salida y estardn intimamente relaciona- dos con la informacion de entrada, El algoritmo do resolucion es el conjunto de ‘operaciones (matemticas, légicas, etc.) 0 manipulaciones que se deben realizar con los daios para Liegar a la obtencién de resultados ‘Log algaritmos se suelen representar en forma narrativa, pero cuanda tienen su aplicaciGn mas dirceta ¢s cuando se convierten cn diagramas o grificos de programacion, v son la representacion grafica de la solucion del problema que se desea mecanizar. Un diagraraa de programacién es la representacién grfica de unos procedi- mientos y de la secuencia u orden en gue deben ejecutarse; en resumen fa representacién gréfica de la solucién de sei problema o de un procedimient. Se pueden considerar tres tipos fundamentales de diagramas de programa. ida, conocidos también como diagramas de flujo v orgauigramas. a) Diagramas del sistema 0 de configuracién ‘Son diagramas destinados a deseribir cl flujo de informacion entre los distin- tos soportes fisicos de un sistema informatio. Reflejan las operaciones normales ppara cl desarrollo de! proceso, que realizan los componentes utilizados en un pro grama, D) Diagramas de mucroprocesos o blogues Represemtan [a estructura en los médulos o blaques que se ban realizado del problema a resolver. Incluye también el flujo de informacién entre los diversos ‘modulos, asi como el orden de ejecucion de los mismos. Estos diagramas estan relacionados con el proceso, ©) Diagramas de detalle u ordinograma Son las érdenesen secuencia que se deben dar ala méquina para laresolucién del problema, DIAGRAMAS DE FLUJO. 15 2.3. SIMBOLOS UTILIZADOS EN LOS DIAGRAMAS Los diagramas que se realizan durante el desarrollo de une aplicacién infor imitica deben ser claros, concisos, esqueméticos y, especialmente, independien- tes del lenguaje de programacién que se vaya @ utilizar. Asi mismo deben ser comprensibies para cualquier analista 0 programador que los examine, procu- sande no presenten eacesiva complejidad, El Instituto de Normalizacion Americano (ANSI) (Amerioan National Star- dards Institute} ha disetacio un conjunto de simbolos y signos estandar que pricticamente han sido adoptados internacionalmente Los simbolos utilizados varian segin sean de aplicacién a diagramas de srstemas o a diagramas de bloques y diagramas de detalle, Aunque deseribiremos los dos conjuntos de simboles, este libro esta orientado basicamente hacia los diagramas de flujo de macroprocesos o blogues y los de detalle (ordincgrae mas), 2.3.1. Diagramas de flujo de sistema ‘Los simbolos utlizades sirven para representar operaciones manuales y auto- rmaticas con los diferentes dispositivos del sistema informético, Se denominan tambien organigramas del sistema o de la maquina; no reflejan las grandes Funciones que soma. Puede representa wrnbin una parada 0 inwinupcdn Bro ‘ramads que soa necesara relia en un progiema), EniadaSealeeleuer to de operacibn, de intioduccion ce da tos enla mermore desde los perfricos “enaxa".0 esto Ue ‘Sforrasn processcs an un piece "sada" Proteso (evalquer tpo ée cperacén datinga quo pueds enignar ‘amie 6 valor, fermatao poseisn de la nforraoGn alas onmemera opercionos artmétese, do raneforencia ed oo ession ves operaciones ogicas © de comparscibn erte satos —hormarneme dos yen funciona esuitace dela msm deter mind cul de Ios cisimies caminas aematvas dol pogrems se Sobasogar normamante ianades ealsae —rospuosioe S1oNC a pero puede tere tres 9 mde eegin los 260d) DIAGRAMAS DE FLUO 28 2.3.3. Plantillas y hojas de eodificacin En el comercio existen a la venta plantillas para la realizacion de diagramas de Nujo. Generalmente son piezas rectangulares planas y transparentes, en les, cuales figuran recortados los simbolos vistes en los parrafos anteriores. El uso elas plantillas es similar al de cualquier otra plantilla de dibujo, es decir, basta con deslizar el lépiz 0 rotulador por el contorno del simbolo correspondiente para dibujar dicho simbolo, nooo eg eae Spectacle Figura 2.1. arta pars conteccién de dagrames de fu. Aunque la confeccion de formatos de pantalla 6 de salida en impresora se pueden realizar en cualquier folio de papel (cuadriewlado 0 10), se dispone normalmente en Tos centros de proceso de datos de formulacios que lacilitan los disenos asi como hojes de codificacion, donde se suclen representar normal. mente las posicionesfisicas de los caracteres en pantalla (25 flas por 80 colum- nas, €s decir 25 x 80 caracteres) de modo que facilitarin considerablemente el tliseno de formatos de texto en pantalla 0 de salida en impresora BAGRAMAS DE FLUO a1 2.4. DIAGRAMAS DE FLUJO ESTRUCTURADOS: Aunque en los capitulos siguientes se profundizaré en los conceptos de ‘gramas de fjo estructurades, en este apartado realizaremos un pequeho antic o.de los mismos, al objeto de que al lector se introduzca de rode general en cl importante concepto de estructuracién de datos, diagramas y programas, En general, un ordinograms contara con las siguientes fuses: 1. Inicio 2, Entrada de datos 3. Proceso 4 Salida de datos 5. Fin Aungue las cinco partes existen practicamente siempre, cl orien de las fasos 2, 3 4 puede varia ¢ incluso confundirse unas fases con ottas +t ‘ 38 METODOLOGIA DE LA PROGEAMACION ‘los diggrames de flujo construidos de esta forma se les Llama diagramas de fujos estructurados 0 sirnplemente diagravnas estruciurados, Estas wecnicas forman parte del concepto denominado programacisn extruciurada ¥ que hoy fen dia tiene una gran aceptacion. En los capitulos siguientes y especialmente en cl 7 se estudiar las técnicas de la programacién esiructurada 2.5. REGLAS PARA LA CONSTRUCCION DE DIAGRAMAS DE FLUJO Lafinalidad de un diagrama de flujo es describir de modo grafico la estructu- ri logica del programa y que posteriormente permita una faeil codificacion en tun lenguaje especitico. El proceso para la construccion de un dicgrame de Mlujo no supone an étodo rigido y de hecho la mayoria de Tos programadores terminan acunandose l propio. Sin embargo se pueden enunciar unas reglas de tipo general, wtiles para cualquier nivel La elaboracién de un diagrama de flujo debe comenzar com un diagrama ce bbloques que represente las reiaciones fundamentales y posteriormente ir descom- pponicnidd las operaciones furdamentales en otras més sencillas. pero sin tratar de que los ordinoaramas se correspondan instruccién a instruccién con el funcio- rnamicnto real del programa, ya que en ese caso obtendriamos unos diagramas de flujo excesivamente recargados y no serfun tiles. Reghas priicticas 1. Tedo diagtama debe tener un principio (inicio) y un fin, al objeto de auc pueda scr utilizado como submédulo de oo médulo de nivel superior. 2. Las lineas de conesién o de flujo deben ser siempre rectas ¥, si es posible, ‘que sean solo verticales y horizontales (no cruzarse, ni inclinadas); para vonseguir lo anterior se debe recuttir@ conectores, nummerades conveniente= ‘mente y solo en los casos estrictamente necesarios. 3, Las linees que enlzzan los simbolos ene si deben estar toces conectadas, ‘Cada linea o Hocha debe entrar cn un blogue, en ua simbolo de decisi terminar en «Fin © uninge a otra flecha, 4. Se deten dibujar todos los simbotos de modo que se pueda seguir el pro- eso visualmente de artiba abajo (diseno afapsdowny) y de izquierda a derecha, 5. Realizar un grafico claro y equilibrado, procurancio que el Aujo central del diagrama sea la parte central de la hoja de papel. 6, Evitar la uilizacidn de terminologia espeoifica de un lenguaje de programa- idn 0 maquina, sobre todo en las expresiones donde s= tiene tendencia ral a ello, DIAGRAMAS Cb LUO 37 1. Se debe dejar un bloque 0 dos de proceso libres al comienzo del diagrams, para reservar posiciones de memoria para variables, acumuladeres,iniciali- zacion de subindices de listas y tablas (arrays) conmutadores (suiteh), etc. 8, Indicar con comentarios al margen o mediante el simbolo grdfico comenta rios. las variables utilizadas y su descripcisn, procurando no abusar ée su uso, Diferenciar las variables propizs del proceso de las pseudoveriables 0 ‘variables ficticias (contadores, conmuiadores o interruptores) 9. En las operaciones lésicas recur preferentemente a la Iigica positiva que ‘ala logica negativa (es siempre mas claro asi A = Boque esi noes A < > Bo). 10. A cada bloque o simbolo se accede por arriba yo por la izquienda y se sale por abajo y/o por Ia devecha. ‘Las entradas pueden ser varias pero la salida es Unica excepro en Tos easos de simbolos de decisisn. « 1L, Realizar todas las anotaciones o comentarios marginales al diagrama para ue éste sea comprensible no s6lo por la persona que Io ha elaborado sino también por cualauier persona ajena al mismo, sobre todo con el paso del ‘tiempo y para cuando se necesite una actualizacion o modifteacion det dite gram, 12, Siempre que sca posible, ¢s conveniente que cl diagrama no sobrepase una pagina; sino es posible, numerar adecuaclamente las hojas del diagrama y utilizar los correspondientes conectores de paginas que indiguen sin dudas, la dizeccion correcta del flujo (de donde viene y a donde se dirige) 2.8.1. Comprobacién de diagramas Terminado el diagrams de flujo, s+ deben tomar un conjunto de datessigniti- cativos y comenzar la Iectura del mismo en el orden arriba abajo/izquierda 38 METODOLOGA DE LA PROGRAMACION erecta y seguir paso a paso todos lo simbolos, a sus operaciones correspon digntes,inttoduciendo los Gatos tomados inicialmente en los momenios oporti- nes y ver como responde el diggrama de Alujo y s Tos resultadas obtenides son correctosy coherentes. No se debe pasar la fise de codificacion, mientras que ol Giagrama de flujo no haya sido comprobado su funcionamiento con datos ig- nilcativos, “Tras Ia ejecucion de un programa por la computadors, los ordinogtamas deben ayudar en el proceso de depuracicn (deteccibn,localizacién y correeciin de vrrores). 2.5.2. Ventajas e inconvenientes de los diagramas de flujo En e] analisis de 1a programacion los hengficios que se pueden derivar del uso de los diagramas de Aujo se pueden sintetizar en los siguientes: 1. Rapida comprensién de las relaciones. 2. Analisis efectivo de las diferentes secciones del programa. 3. Los diagramas de flujo pueden utilizarse como modelos Ge trabajo en el isefio de nuevos programas y sistemas, Comunieacion con el usuario. 5. Documentacién adecuada de los programas. - Codificacion eficaz de los programas. - Depuracién y prucbas ordenailas de programas. Las limitaciones o inconvenientes se pueden englobar Los diagramas complejos y detallados sueien ser laborioses en su plant iento y dibujo. 2. Las acciones a seguir tas la salida de un simbolo de decision, pueden ser ifieles de seguir si existen diferentes carninos. 3. No existon normas fijas para la claboracién de los diagramas de Majo que permitan ineluir todos los detalles que el usuario desea introducir, 2.6. PSEUDOCODIGO ‘Otsa herramienta muy stl en el andlisis de programacion esel pseudocdidige. Pseudo o seudo, significa «also», «amitacion» y codigo se refire a lus instrueci- res escritas en un lenguaje de programacidn; pyeudocddgo no es realmente un codigo sino una imitacién y una version abreviada de instrucciones reales para las computadoras, Lastres herramientes que utilizan os programadores son: diagramas de fluie, tablas de decision y pseudocodigos. Ao largo de esta obra se trataran. 14s ies bherramientas detcnidamente. Aunque se utilizan las tres son sin duda los diaere- ‘mas de flujo y los pseudovédigos los que més wilizan los programadores. DIAGRAMAS DE FLUO 39 El pseudocédigo es una técnica para expresar en Jenguaje natural a osica de wn programa, es decir, su flujo de contol. FI pseaciocodigo no es un lengusic de programacion sino un modo de planiear un proceso de forma que st traduc- clon a un lenguaje de alto nivel sea sencilo para un programador. La fase de confeccién de pseudocbuligos es inmediatamente anterior a su codificacion en fe lenguaje de programacion elegida, En la actualad el psevdocédigo es una técnica muy utilzade sobre todo en la prograrmacién de enguajs estructurados como Pesci, o bien ut lizanco técricas de programacion estructurada en otros lenguajes. Los pseudocodigos utiizan palabras clave como DO (Hacer), IF-THEN- ELSE (Si-entoncee-sino), ENDIF (Fin de), REPEAT-UNTIL (Repetir hast), REPEAT-WHILE (Repetir-mieniras) 0 bien DO-WHILE (Hacer-mientras) DO-UNIIL (Hacer-hasta), et. El ejemplo del programa de ealeulo del caliieae ion media de un alumno en pseudecdigo podria ser: Lectura registro o ficha de estudiame. Mientras no ¢¢ encuentre afin de fichero» Sumar notes. Dividir la cuma totel entre numero de ssignaturas Impresién dal registro Fin-mientras En el Capitulo 4 se profundizara en los coneeptos de la pseudo-programa- isn. 2.7. DIAGRAMA DE NASSI/SHNEIDERMAN (N/S) ‘Un diagrama N-$ ¢s como un diggrama de flujo con las flechas omitidas y cajas 0 blogues contiguos. Las acciones sucesivas s=escriben en caja sucesivas. ‘Como en un diggrama de flujo, diferentes acciones pueden ser eacritas on una ceja. La diferencia entre esta forma y las otras dos formas (Jiagrama de Nyjo y lgorivma) parece trivial. Sin embargo, esto es debido a que los algoritmos son bastante sencillos. Ese sistema de representacin permite tener una vision mucho masestructue rada de ellos y por consiguiente mayor facilidad al traducirios al lenguaje de tuna computador Estos diagramas tratan de optimizar los programe, va que permiten gran Alexibilidad, al permitir Files vorrecciones, modificaciones 0 amplizciones «I diagram original Tldiagrama sclee de arsiba-abajo. Cada bloque ejezuta una operacion espect- fica que se puede docurneatar o describir con la precision que se desee ‘Los diagramas dc las estructuras l6gias som los siguientes: 44 METODOLOGIA DE LA PROGRANACION Diagram N-S mcI0 Leer 3 némoros NIAZNG Nisa si No NI>Ns nena s No st No mayor | mayor | mayor | mayor m ns ne Na sertir “el numero mayor es:~ MAYOR FN 2.8. MODULARIZACION El sistema mas idénco para la resolucién de un problema es la descomposi- ion en modules mas pequenos, que serin objeto de un estudio y desarrollo independiente para posteriormente enlazar en um solo programa. La modularizacion de un problema debe seguir un proceso arriba-abajo (ccop-domnv), que consist: en abordar el problem a nivel general y posterior ‘mente hacer sueesivas modularzaciones que realizarén tareas de mayor detalle Las normas a tener en cuenta es que ef proceso de modularizacion inctuird deseripcién de los médulos, celaciones entre ellos, entradas y salidas a cada modulo, CAPITULO 3 ESTRUCTURA GENERAL DE UN PROGRAMA 3.1. CONCEPTO DE PROGRAMA Le programacién de computadores (va enunciada en el apartado 1.5) ¢s el proceso de planificar una secuencia de instruceiones que ha de seguir una compu- tadora, Un programma es la secuencia de instrucciones que indica las acciones que ha de ejecutar la computadora. El concepto de programa almacenado en la memoria fue ideado por Joba von Neumann en 1946 y desde entonces todas las computadoras utilizan esta, caracteristica que las hace mas flexibles y permite realizar cambios de un progra- maa otro, En general, el desarrollo de un programa para lg resolucion de un problema ‘endré en Iineas gencrales las fases siguientes: Andlisis: Definicién del problema Algoriimo: Desarrollo de la secvencia logica de pasos para la resclucion del problema, Prucha del algoritono: Segui los pasos del algoritmo y ver siresuelven real ‘mente el problema Codijicacién: Conversién del alzoritmo en un programa excribiéndolo en un lenguaje de programaciéa, Edicisn, ejecucion v prueba: Introducir €} programa en la memoria, ejecutar- lo y protar sus resultados, corrigiendo los errores hasta su puesta a punto final Uso y manteninniento: Manejo y actualizacién de] programa, 45 48. VETODOLOGIA DE LA PROGRAMACION En el apartado siguiente ampliaremos los concepios anteriores, Uno de los objetivos fundamentales de este libro es la prozramacién y ello ‘en resumen signifiea realizar por el programador las fases de Ia Figura 3.1 eto oe Cosine ct ‘agerero ‘igertmo 1 Figura 2.1, Fazes da a programscion, Povere Progra No se debe pasar nunca a la codifcacion o escritura del programa sin haber realizado las fases de andlisis del problema y resolucion del algoritmo. Muchos esiudiantes —incluso profesionales— tienden 2 eliminar la fase de diseno de! algoritmo y ello supone un grave error, pues si bien en ocasiones puede akorrar tiempo y producir un resultado satisfactorio, 2 la larga produoira errores y aumentaré el tiempo de la fase de ejecucion y puesta 2 punto del programa, 3.1.1. Desarrollo de un programa Dependiendo de la naturaleza del problema a resolver se puede considerar ‘el equipo de desarrollo de un programa, y asi éste puede constar de una sola persona 0 un equipo de personas dirigidos por un programador jefe del equipo. En cualquier caso, la deseripcion general de cada programa incluira al menos Jos siguientes conceptos: + Tipo de lenguaje de programacién (COBOL, Pascal, BASIC, ets) ‘= Deseripcion del programa con indicacion de las tareas 2 realizar y det algoritmo de resolucién, Frecuencia de procesamiento (diaria, semanal, en linea, etc.) Entradas y salides del programa. Esnecificaciones detalladas de célculos, tablas, ete Limitaciones y restriceiones (orden de entrada/salida de datos, tiempos de respuesta, et.) ‘Una vez que les conceptos anteriores se conocen, es ef momento de escribir os programas. Las personas que eseriben y depuran los programas se llaman pro- ‘gramadores. Los pasos que exige el desarrollo de un programa —como se ha descrito ‘anteriorments— se suelen sintetizar en los siete siguientes: L. Planificacion del problema: descripeion y analisis. 2. Desarrollo de las especificaciones del programa. AB METODOLOGIA DE LA PROGRANACION aguiente debe medificarse programa, En resumen, el programador debe mante- ner el programa, corrigiendo cualquier error o introdueiendo las nevesarias mo- dlificaciones para que el programa contintie durante todo el tiempo de su vida activa, siendo itil para cumplir las necesidades del usuario, 3.2. LENGUAJES DE PROGRAMACION Al igual que los Tenguajes humanos, fales como el inglés o el espafic, Los lenguajes de programacion poseen una estructura (gramatica 0 sintaxis) y wn significado (semdntica). La gramética espatola trata de los diferentes: modos {reglas) en que pucden ser combinados los diferentes tipos de palabras para formar sentencias 0 frases aceptables en espaol, La gramdtica de Pascal se reficre a las diferentes reglas en que puccen combinarse las sentencias (instruc- viones) de Paseal para formar un programa valido en Pascal. Los lenguajes de ‘computadoras tienen menos combinaciones aceptables que los lenguajes natura- les, sin embargo, estas combinaciones deben ser utiizadas correctamente; ello jpontrasta con los lerguajes naturales que se pueden utilizar aunque no sigan las regles gramaticales ¢ incluso aunque no sean comprendidos. 3.2.1. Concepte de lenguaje, vocabulario y reglas sintécticas Un lenguaje de programacidn es un conjunto de reglas,simbolos y palabras ‘especiales que permiten construir un programma. La sintaxis es cl conjunto de reglas que gobiernan la construceidn o forma. con de sentencias (instruociones) vélidas en un lengueie. La semdtica ¢s el conjunto de raya que proporcionan el significado de una sentencia o instruc ion del lenguaje Solamente las sentencias correctamente sintéctces pueden ser traducidas por un lenguaje de programacién, y los programs que contienen errores de sintaxis son rechsados por la computadora. Cada lenguaje de progree macién posce sus propias reelas sintacticas, El vocabulavio de un lenguaje 2s un conjunto de simbolos (en ocasiones se ienominan sirabelos termainales). Los simbolos usvales son; letras, digitos, sitn- boolos especiales (,: :/ & + ~ 4 etc.), palabras reservadas o claves —if (i), then (eatonces), repeat (sepetin, for (0), begin (inicic), end (in), Las reglas sintdcticas son los métodos de produccidn de sentencias o instruc ones vlids que permitirdn formar un programa. Las reglas sintécticas permi- tea reconocer si una cadena 0 serie de simbolos es correcta gramaticalmente y 2 $u vez informacion sobre su significado o semantica Las reglas sinticticas ccben definic los conceptos de sentencia (instrucciém), ‘xpresion, identificador, variables, constantes, ec., y deben permitir de modo facil verificar si una secuencia de simbolos es una sentencia, expresidin, te correcta del leneuaje. aca defini las reglas sintcticas se suelen utilizar dos tipos de noraciones: Ja formatizacién de Backus-Naw-For (BNF) y los diagramas 0 grajos sintéc eos 64 METODOLOGIA DE LA PROGRAMAGON o bien van ‘deriader es declaraciones validas de variables son: VAR A,B: INTEGER : CONTADOR: REAL; CADENA: CHAR, Ejercicio de aplicacio: Dados los diagramas sintécticos correspondientes a hipoteticas expresiones “PRUEBA", “DEMO”, "SALUD" de un lenguaje de programacion, averigue nombres validos de expresiones. PRUEBA DEMO ‘saLUOO Nota: Loesmbolos‘'s‘B. ouivalon a A, yo dsr son smbelostemiales 3.2.2. Clasificacion de los lenguajes: bajo nivel y alto nivel Existon contenares de lenguajes de programacion para computadoras y cada uno tiene diferentes versiones. Cada lengua tiene sus venajase inconvenientes Junto eon sus defensores y detractores. Algunos Jenguajes son ideales para la programacion de un tipo de problemas (gestion, cientficos ..) y otros han sido diseiados para resolver otros problemas dterentes (educacién, investix gicion, etc.) Los lenguas se sucten casificaren términos de niveles que consttuyen una Jerarouia de los lenguajes de programacién, rlacionada con el numero de ins ESTAUCTURA GENERAL OE UN PROGRAMA 59 LENGUAJES ORIENTADOS A LOS PROCEDIMIENTOS. Son los mas utilizados y se subdividen a su ver segun su gplicacion en: Lenguajes cientificos: FORTRAN, APL. Lenguajes de gestion: COBOL, RPG. Lengiuajes de aplicaciones multiples: BASIC, Pascal, Ada, C, Lenguajes educativas: Logo. Pilot y Prolog. Lenguajes de ta imeligencta artificial: Lisp. 3.2.3. Intérpretes y compiladores. ‘En cualquier lenguaje de alto nivel en que se escriba un programa, éte debe ser traducido a lenguiaje maquina antes de que pueda ser ejecutado, Esta conver- sién de instrucciones de alto-nivel 2 instrucciones a nivel de méquina se hace por programas de software del sisiema, denominedos compiladores-e intérpretes. Estos programas especiales se denominan en general craducrores. ‘Cuando se prepara un programa, el programador lo eseribe en un lenguale de computadora de los citados en el parrafo 3.2.2. Normalmente, el programa se introduce en la computadora utilizando un editor (un programa procesacior 4e palabras, propio del sistema operativo de la maquina —¢aso de EDLIN en el Sistema operativa MS-DOS ce las computadoras IBM PC y compatibles— 0 ‘ajeno al sisiema, Personal Editor, por ejemplo, en al mismo easo de MS-DOS. Uneeditor permite al programador teclear e) programa linea alinea, para introgu- cirlo en RAM y guardar 0 grabar una copia en disco. La version del programa cserita en un lenguaje de computador es el programa o cédigo fuente del progra- ‘a general. Antes de gue el programa se pueda cjccutar, se debe traducir desde cl cddligo fuente al lenguaje maquina lamandose al programa tradueide progea- ‘ma o eédige objeto, El proceso de traduccidn y su conversién en programa objeto ifiere segin que el programa sea compilacor o intérprete, COMPILADORES ‘Un compiludor es un programa que traduce el programma fuente {conjunto de instrucciones de un Jenguaje de alto nivel, por eemplo COBOL o Pascal) 2 programa objeto Gnstrucciones en ienguaja maquina que le computedora pucda interpreta y eiecutar). Un compilador independiente (0 un intérprete, como se vera en fa siguiente seecion) se requiere para cada lenguaie de programaci6n; esto es, para cjocutar programas en COBOL o Pascal, necesitars un compilador COBOL 0 un compilador Pascal, Ei compilador efecria soto la traduccion, no ejecuta el programe. ] proceso de compilacidn en Pascal se muesira en la Figura 3.5 Una vez compilado el programa, el resultado en forma de programa objeto seré directamente ejecutable Pra asontar las ideas sobre la compilaciGn consideremos un segundo ejem= 66 METODOLOGIA DE LA PROGRAMACION Operacion Tiempo (en segundos) intorprexacion 10 40 <0 ccompitcion| 300 300 300 econ da eScigo compiado _ 1s. 2 (programs oojeto) Sin embargo, se puede dar la paradgja siguiente: el tiempo de compilacién, correccién de errores, vuelta a compilar, etc. puede ser mayor que el tiempo empleado en ejecutar directamente un programa de forma interpretada (donde Jas errores se corrigen sobre la marcha) Conelusiones: Los Jenguajes comapiladores presentan la ventaja considerable frente a los intéxpretes de la velocidad de elecucion, por lo que su uso seré mejoren aquellos ‘programas probados en los que no se esperan cambios y que deban ejecutarse ‘muchas veces. Asi mismo, en general, ccuparén menos memoria en el caso de programas cortos ya que cn el caso de interpretacién, cl intenpretacor que tendrit lun tamatio considerable debe residir siempre en memoria. Los lenguajes iniérpreres encuentran su mayor veniaja en la interaccion con el usuario, al faciltar el desarrollo y puesta a punto de programas, ya que los errores son ficiles de devsctar y sobre todo de cocregie. Por el contrario, como el §niérprete no produce un programa objeto, debe realizar el proceso de traduccién, ceada vez que 82 ejecuta un programa y por ello sera mas lento el interprete En la actualidad los programadores suclen aprovechur con fivcuencia fas -ventajas tanto de intéroretes como de compiladores. En primer lugar desarrollan y depuran los programas utilizando un intérprete interactive (por ejemplo, MBASIC intérprete); después compilan ef programa terminado a fin de obtener lun programa objeto (por ejemplo, MBASIC compilador) 3.3. PARTES CONSTITUTIVAS DE UN PROGRAMA Despues que se ha tomado la decision de desarrollar un programa, el progras ‘mador debe establecer el conjunto de especificaciones que deben contener el programa: entradas, salidas, algoritme de resolucisn que ineluirs las técnicas ‘para obtener les salidas a partir de las entradas. Asi pues, se pueden considerar ‘es grandes bloques en al diseno de todo programa’ 1. Enurada de datos, 2. Algoritmo de resolucién cil problema/e 3, Salida de resultados, ESTRUCTURA GENERAL DE UN PROGRAMA 67 Conceptualmente ua programa puede ser considerado como una caja neera como se muestra en Ia Figura 3.11 Progen Froradas >| wgormoce >} Salidas resol canes Figura 3.11. Sloques de un prosram La caja negra o algoritmo de resolucion, en realidad, es el conjunto de codigos que transforman las entradas de programa (daras) en salidas de prozra- ima (resultados), Al establecer las espeeificaviones del programa, el programa- dor debe conocer, en primer lugar, cuales son las entradas del programa y cuales son Jas saliddas del programa, antes de que pueda especificar el contenido de la caja negra 3.3.1. Entrada de datos El programador debe establecer las entradas al programa o conocer de dinde provienen, asi como el momento en gue se requieren en el programa, Si cl procesamiento Ge datos es interactive, las entradas pueden proceder del ustario ‘mientras el programa se esid ejecutando; en otros casos pucden estar contenidas cn ficheros © bases de datos almacenadas en disco 0 en memoria principal: incluso puede haber entradas procedentes de ficheros de papel 0 microfilm propios del usuario o externos, En esencia los datos procederin de un dispositive periferico de entrada. |Al proceso de introducir la informaciéa de entrada (datos) en la memoria de la computadora se denomina entrada de datos. EI programacior debe realizar unc lista de todas las entradas sequcridas por cl programa, la fuente de cada entrada y el formato en el que existen actualmente cada una de ellas, Fl programador debe Geterminar ta frecuencia con gue son zequeridas las diferentes entradas por el programa diariamente, semanaimente, ‘mensualmente o en intervalos irregulares, Ademss, el programacor cebe deter- minar el lugar donde se prepararan, si las entraces serdn en linea (on-line), fuera de linea (ofF ine) y si las entrads seran procesadas por lotes (modo «batch» Las computadoras reciben la secuercia de ejecucién de las instrucciones a ‘avés del programa, Esta secuencia la seguirin las maquinas exactamente, y jecutaran las suicesivas instrucciones, por ello el programador debe prever todas las situaciones posibles y evitar que un dato pueda ser soliitedo sin que haya sido previamente introducido en la memoria 88 WETODOLOGIA DE LA PROGRAVAGON 3.3.2. Salida de resultado El programador debe listar todas las salidas previstas del programa, asf como el formato requerido por el usuario. Algunas de las caracteristicas que deben reunir las salidas son! ‘© Salida en pantalla o en papel impreso. '» GrabaciGn de resultados en cinta o disco, ‘© Diseno o presentacion de resultade: listas, tabla, informes, gréficos, ete. © Frecuencia de salida de resultados, La contestacion a las preguntas anteriores o similares permitira codificar ‘cortectamente las instrucciones de salida y la eleccién adccuada del diszositivo periférico de sida: pantalla, impresora, unigad de cinta magnetica, unidad de disquete, unidad de disco, trazador enifico (apiotter>), et. 3.3.3. Algoritmo de resolucion/codificacion Una ver. que las entradas y salidas han sido determinadas, el programador debe decidir como obtener las salidas deseadas @ partir de las entradas dadas, La cajie negra que se denominé algoritrao de resoluciin en esencia eonstara de dos etapas: 1, Disedo del modelo de resolucién del problema. 2 Algoritmo de resolucién del problema. En la etapa 1 se establece el modelo preciso para la resolucion del problema, para lo cual se tendrin en cuenta los datos de entrada y los resultados que se desean chtener; su estudio y desarrollo lievard al algoriimo de reseluctdn del problema que deberé codificarse en un Jenguaje de programacién de alto 0 bajo nivel de los estuciados en el apariado 3.2.2, El algoritmo de resolucion se sucle expresar previamente a la codificaeion ‘en el enguaje de programacioa, en alauna de las siguientes representaciones: 1. Pseudocddign. 2. Diagrama de Nuje. 3, Diagram estructurado o N-S (Nassi-Shneiderman), 3.4, TIPOS DE INSTRUCCIONES {Las instrucciones disponibles en un lenguaje de programacion, dependen del tipo de lenguaje bajo o alto nivel. La diferencia esencial entre ambos lenguajes: proximoal usuario (ato nivel) y proximo ala maquina (bajo nivel), se manifiesta en el juego 0 repertorie de instrucciones (conjunto espeetfico de insttucciones ESTRUCTURA GENERAL OE UN PROGRAIZA 68 del lenguaje). As{ para conocer en profundidad las instrucciones en ensamblador s¢ requicre conocer la estructure del procesador (registros, acumuladores, diree- ciones en memoria, eic.), mientras que en los Jenguajes de alto nivel —salvo raras excepciones— no ser necesario conocer la estructura interna de Ta méqui- ‘na. Como ya se ha comentadlo el repertorio de instracciones en lenguaje ensam- blador es especifice del precesador (@ microprecesacior —en su caso—, Z-80, 8088, 68000, etc.) mientras que en un lenguaje de alto nivel son especticas de dicho lenguaje, Una clasiticaci6n ce las instrucciones —Iemadas tambien senrencias en los Jenguajes de alto nivel— podria ser la siguiente: — Entradaysalida — Asignacién/movimiento — Anitmeticas, — Logicas — Bifurcacién © transferencia de control — Especiales En un sentido global las instrucciones se pueden dividir en dos grandes ‘grupos: 1) las que manipulan datos; 2) las que gobicrnan la logica del programa (es decir el orden de ejecucion de les instrueciones del programa). 3.4.1. Instrucciones de entrada/salida Permiten la transferencia de informacion desde los periféricos de entrada (teclado, unidad de cinta, umidad de disco, ete.) ala memoria de Ia. computadora y desde ¢sia aun periférico de salida (pantalla, impresora, unidad de cinta Unidad de diseo, et.) El proceso de intraduccion de datos en fa memoria desde un dispositivo periférico de enirade se denomina lettura 0 carga de los datos, y al proceso de extraccion de datos de la memoria y su envio a un dispositivo periferieo de selida se denomina eseritura, grabacién 0 canservacién (memoria externa), inte presi (impresora 0 trazador préfico). Instrueciones de lectura (entrada) Las instruceiones de lectura aeetan a las unidades o dispositivos tlamados de lectura: pantalla (terminal), unidad de cinta magnética, unidad de disco © disouete, lectora de tarjetas perforadas, digitalizador, etc. -Bjemplos de estas instrucciones en pseudocsdign podrian ser: Leer A, #,C Lectura de los valores numéricos eorrespondientes alas variables A, By C. Leer 425, 327 Lectura de las constantes numéricas 425 y 21 70 METODOLOGIA DE LA PROGRAMACION En lenguajes de alto nivel estas instruceiones son: BASIC Pascal INPUT READ UNE INPUT READLN EAD nstrucciones de eseritura (salida) Afectan a las unidades de salida: pantalla, disco trazador grélico, tc. jemplos de estas instrucciones en pseudocodigos y lengustes de alto nivel son: Preudocédigo ——Escribir A, B,C escritura de los valores numéri- 03 correspondientes a las varia dies A, B YC. Escribir 53,64 eseritura de las constanies nu- méricas 53 y 64, BASIC PRINT A, B.C PRINT USING. Pascal waite WRITELN 3.4.2. Instrucciones de asignacién/movimiento ‘Las instrucciones de asignacion son fundamentales en casi todos|os lenguaies dde programacién, Permiten asignar valores o variables del programa, As5 el valor numérico 5 se asigna a la variable A (BASIC), LET A=6 equivatenie @ A~ 5 en lenguaje BASIC; es opcional ef uso de LET en BASIC. “5 equivatente aA ~ 5 on lenguaie Pascal, A=B+5 equivateme a A= B+ $ en lenguaje Pascal. sia insiruccin gjecuts el edleulo del lado derecho y asigna el valor obtenido a Ia variable de la izquierda, el lado derecho de Ia instraccion puece ser cualquier ‘expresion legal el lado izquierdo debe ser un nombre de variable, En cl lado icquierdo no puede haber una expresion, La instraccion de asignacion no tiene ‘que confundirse con una ecuacién matematica, Asi: As5 Oba Bierence No 28 manor [ees mayor Estos operadores relacionan dos expresiones aritméticas entre si con cl si uiente formato: Eipmsicn | CPERADOR DE RELACION Expos 2 Al conjunto anterior se le suele denominar eo a>B C>D-E Fl resultado de evaluar una condicién puede tomar sélo dos valores: Verde deroy Falso. Asi, por ejemplo 3. ontonees A > B es verdadero 27 entonces A > Bes falso, ADB SiA=7 y A= l4y Si on un programa se clige una determinada condicion para realizar una area concreta, ésta solo se realizard cuando dicka condicién sea verdadera 0 74 METODOLOGIA DE LA PROGRANACION Ast la tabla de verdad completa en el easo de tres condiciones C1, C2 y C3, ¥ dos operaciones ligicas AND y OR. cee a cr ano C3. coca cr anpczonca, oo 0 ° ° ° o 0 1 o 1 ° 0 1 0 © 1 ° Oh a © 1 ° 109 0 3 ° 1 aH 1 1 1 1 109 ° 1 1 Th 1 1 1 El operador de negacién NOT (NO) transforma la certeza o felsedad de cada suceso en su opuesto de modo que si el suceso A es verdadero NOT A ¢s falso ¥ de igual forma si A cs falso, NOT A es verdadero. Como aplicacion de ta condicion NOT, los siguientes ejemplos represeatan Ja misina condicion: NOT (A=B) Ac>B AaB NOT ((A>B) OR (A © Enirada 1 penne Uamde2 02 | a m0 Sake Figura 4.7. Uamacss 9 subratinas How: Un subproiama puode so lamede dee cuclgnier parte de! programa principal oe otros subpeopramas, micrlss quo an programa pencipal nuace poodo las entradas cambian anual mente (cambios de direceiones ce las abonados, alas, boajas, etc,), sin embargo, la disposicidn alfabetica no se suele variar. ‘No obstante,el ejemplo anterior no siempre es significativo pues, en ocasio- nics, ua cambio en 1os valores de los datos produce un cambio en la disposicion 144 METODOLOGIA OF La PROGRAMACION de los mismos, Consideremos Ia tabla do clasificacién de la Liga de fibol expaiio- Ia de primera division, Los resultados de los partidos semanales influiran en la clasificacién modificando no sélo cl valor de los datos (puntuacién), sino el orden de los equipos. Oito caso significativo, aunque no frecuente, se produce cuando se modifica cl tipo de estructura de datos, permaneciendo constantes (os valores de los datos; este es ef caso de ls guia celefinica par direcciones Le cleccién del método adecuado para expresar los datos del problema es ‘esencial para conseguir una buena solucion, Si se hace una eleccion incorrecta 1 algoritmo resuliante puede ser muchas veces complicado y por consiguiente dificil de codificar. Por el contrario, una buers eleccién de estructura de datos puede llevar @ un algoritmo que sea més claro, mas sencillo y mas rapido. Una vez que se lige una buena estructura de datos debemos intentar utilizar tun Ienguage de programacion en el que esta estructura de datos pueda ser Ficilmente descrita y con rapidez y cémodo acceso. 5.3. CLASIFICACION DE LAS ESTRUCTURAS DE DATOS Las estructuras de datos més usuales son: cadonas, matrices, listas, iablas, ‘arboles,pilas,colas y ieneros. EL estudio de las estructuras conduce 2 os algorit- ‘mos de manipulacidn de los datos. Supongamos que se desea escribir un progre~ ma en FORTRAN para almacenat los dias de un mes y sus temperatures medias ‘coma la Ginica estructura de datos es fz matriz —un tipo determinada de lista— habrii que realizar los aleoritmos adecuades de manipulaci6n; por ello cuando se desee anadir nuevos nombres a la lista habra que disenar un algoritono de insercién y cuando se desce buscar un nombre dado se deberd diseflar un algorit mo de bitsquede, Las estructuras de datos se pueden definir como una forma prictica de organizar hileras, listas, arboles, etc., en la memoria interna o central de las computadoras. Una de las primeras estructuras utilizadas y conoci¢as por los programadores son las matriciales conocisas por arrays 0 maurices (vectores —arrays unicimen- sionales—, tablas 0 variables con subindices —arrays multidimensionales— Las matrices se almaeenan en un bloque de posiciones de memoria consecuti- vas, Cada elemento de una matriz se puede recuperar 0 identificar por su direc- fn (valor numérico tinico). Cada posicion de una computadora se asocia con un numero fijo 0 diteccion. Asi pues la computadora ve la memoria como un bloque de posiciones consecu- tivas que se identifican por una direvcion 0 valor numérico. ngs imaginamos una retacion de apellidos de personas, podira asociar cada posicion de memoria a un apellido. El orden 0 disposicién de los apellidos formaria una estructura de datos. En realidad la memoria no ests organizada asf, porque normalmente una posicién de memoria equivale a una palabra de 8 6 16 bits, ysu equivalente es ua caréeter de alfabeoto —en el caso de 8 bits—; sin embargo, a efectos didcticos preferimos 146 METODOLOGA DE LA PROGRAMACION Pr aera ‘Sande Penis rime pawero carci | 1800]—>| wceez | 1200]—>] uz | 1200 >| acunan’ t t t f PaIvene 2000 eco 1300 1209 Figure 5.12. Lissa ancade ESTRUCTURA DE DATOS 167 5.4.3. Listas circulares Esta estructura conocida también como anillo es una subelase de una lista lineal consistente en enlazar el iltimo elemento de la lista (eon cl puntero) con €l primero, [easement | Este tipo de lista es cerrada. Puede recorrerse circularmente, en el sentido indicado por los punteros. Las listes circulares presentan el inconveniente de fos bucles 0 lazos infinitos que se presentan cuando no se tiene especial cuidado. ‘en detectar el final de la lista. 5.5. LISTAS DOBLEMENTE ENCADENADAS Hasta este momento las listas lineales se han recorrido de izauierda w derecha. En numerosas ocasiones se necesita recorrerlas en ambas direcciones. La explo- tacién en los dos sentidos puede realizarse con ios punteres por étomo a registro, fen lugar de uno, De este modo se puede utilizar un puatero para Jocalizar el registro precedente y otro para el siguiente. ‘Las lstaslineales son doblemente encadenadas ovando su estructura contic- ne dos campos 0 punteros encadeniados: uno que sefila el elemento siguiente ¥ otro el que upunta al elemento precedente, <| — Un uso de listas de varios punteros es llevar Ia cuenta en un orden diferente al ordinario, 5.6. ARBOLES Las estructuras de datos estuciadas anteriormente no permiten representar {informaciones jerarquicas. Sin embargo, en informatica existen multiples aplica- ciones donde se utilizan este tipo de organizaciones, Algunos ejemplos de representaciones jerdrquicas de estructuras de objetos ESTRUCTURA DE DATOS 163 5.6.1. Definicién Un drbol, estructura arborescente o arborescencia ¢s una estructura no lineal en lz que cada elemento esta relzcionado con dos © miis elementos, Un arbol consta de un conjunto de nodes (unidacies de informacidn) en Tas que ademas de la propia informacion contione direccion de otros nodes de menor imporcan- cia 0 jerarqufa, y cumple les siguientes condiciones: 4g) Existe un nodo raiz. 5) EL esto de los nodos se distribuye en un miimero n de subconjuntos dis- Lintos. 1) Cada uno de estos subconjuntos es un subésbol del nodo raf En el ejemplo de la estructura EMPLEADO, existe un arbol raz (EMPLEA- DO) y por los tres subsrboles: ESTADO CIVIL, DIRECCION y ESTUDIOS. Los elementos de la estructura se denominan nodos. El nodo A es el node raz del erbol. @) O © 2 OOOGOO © © El nodo B es nodo del subdrbol 1, el nodo C ¢s raiz del subarbel2 y el D es afr del subirbol 3, Grado de un nodo es el nimero de subérboles de ese nodo. BI grado det node A es 3 y el del nado D es 2. ‘Los nados de grado son los terminales también llamados hojas, Las lineas que nen dos nodos se aman lados 0 aristas 0 ramas, Camino de un nodo es el conjunto de arisias 2 tcavés de las cuales se pasa desde el nedo raiz a ese nodo. ‘A cada nodo se le asocian uno 0 varios subirboles lamados descendientes © hijas. Los nods B, C y D son hijos del nodo A. ‘Los nados hermanos son Jos sucesores directos de un mismo nedo (hijos de sno padre). D, Ey F son todoshermanos. F y P no son novos hermanos. Siel nivel del nodo raiz es 1, el nivel de we nodo es el de su padre més 1 Se dice que un arbol es n-ario (n, constante entera) cuando e] numero mi mo de hijos de un mismo nodo es 1. Un drbo! binario es un érbo! en el cual 184 VETODOLOGIA DE LA PROGRAMACION cada nodo tiene, como maximo, dos hijos. Todo arbol x-ario se puede transfor- ‘mar ea un drbol binario cquivalente. E] arbol EMPLEADO es un atbol ternatio, {Un arbol no prtede estar vacio: contiene como mainimo un elemento, la rate Un gjemplo grafico completo de un srbol seria: Piet ives (Oteas formas de representar un drbol som: 5.6.2. Arboles binarios Una de las estructuras més comunes de los dirboles, es aquella en que cada rnodo tiene como maximo dos subzrboles (grado 2), que se conoven como subar- bol izauierdo y subar'ol derecho. Dos 4rboles binarios contiguos son distintos 185 VETODOLOGIA DE LA PROGRAMACION 5.6.3 Recorrido de un arbol binario Existen diferentes maneras de recorrer un érbol para tratar los diferentes nodes que Io constituyen. Supongamos un érbol binario, Las acciones a considerar son tres y seguin el orden en que se efeetien se tendri el recocrido en un sistema o en otra, «© Posicionarse en la ratz ‘© Recorrer el subérbol izquierdo, ‘© Recorrer el subarbol derecho, Los tres tipos de recorridos mas frecuentes y su aplicacion concreta sl cbol anterior son: Recorrido prefijo 0 preorden © Poxicionarse en la rat Recorrer el subarbol izquicrdo. © Recorrer el subarbol deresho. Recorrido postfijo o postorden © Recorrer el subsrbol izuierdo © Recorrer el subsirbol dereciio. «© Posicionarse en la ratz. DBGEHIFCA Recorrido en orden 0 simétrico © Revorrer el subartol izquierdo. «© Posicionarse en la rar. ‘© Recorer el subarbol derecho DBAGECHFI ESTRUCTURA DE DATOS 167, EJERCICIOS PROPUESTOS Disenar un algoritmo que caleule el mayor valor de la lista: Ul) SIENDO 1+1,2.3..4.N ‘Dada una lista L(1) de N mimeros disear un algoritmo que calcule-en forma independiente a} La suma de los numeros impares. 5) La suma de los mirmeros pares. | Escribir el diagrama de flujo y el algoritmo que permite imprimir los ndme- ros de una tabla de dos dimensiones (5 x 4). Sccesea disenar un algoritmo que permita obtener el mayor valor almaccnae do en una tabla VENTAS de dos dimensiones (4 filas y 5 columnas). NOTA" La tabla contiene informacién almacenada on cade clement. Hacer diferentes istados de una lista de 10 auimeros segun el siguiente crite Ho: — Si los nmeros estan comprendides entre 0 y 50, ponerios en la lista | (21 30 no pertencee a la lista 1). — Si los nrimeros estan comprendides entre 50 y 100, cn la lista 2 (el 50 pertenece a la lista 2) — Siestan entro 100 y 150, colocarlos en la lista 3 (el 100 y el 150 pertenecen ala lista 3). CAPITULO 6 TABLAS DE DECISION 6.1. INTRODUGCION A LAS TABLAS DE DECISION Los organigramas esiudiados en los capitulos anteriores presentan una serie do inconvenientes ‘ El ordinograma no es unico para ua problema determinado, Dificiles de modificar. + En lenguajes muy evolucionads, los organigramas pierden eficacia, ‘¢ El proceso secuencial del ordinograma obliga a establecerto de manera rogresiva antes de tener la totalidiad del proceso a realizar El uso de las Tablas de Decision en Informatica es reciente —2nos 58.2 60—, ‘aunque anteriormente se habian utilizado en numerosas actividades como tablas de taifas, contabilidades, etc Las tablas de decisi6n (11D) constituyen una herramienta poderosa para definr fa ldgica de un programa complejo. Constituyen un medio de represents cién de la informaciéa en forma tabular, cuyo objetivo primordial es el de aportar informacion en un formato que sea facil de leer y comprender. E] uso de las tablas de-decisin aunque no tan extendido como los orino- ‘ramas, suele constituir en algunas ocasiones una téenica para capturar datos ¥ la primera operacién de ansiisis del problema. Una vez planteade 2 TD se suele realizar la construceién de ordinograma o algoritmo correspondiente. En ocasio- ‘nes las TD sustituyen a los diagramas de flujo u ordinogramas, 169 170 METODOLOGIA DE LA PROGRAMAGION 6.2. DEFINICION DE UNA TABLA DE DECISION (TD) La seeuencia de un programa puede ser descrita por una estructura de decie sion, la Tabla de Deeisign (TD). Una TD es un documento de comunicacion entre wsuarios, analistas, prowrae sradores, ec. ¥ un instramento de andlisis y programacitn, que se puede aplicar «& numerosos y diversos problemas permitienco la representacicn de las dileren- tes situaciones de un modo facil y logico, Una TD es una herramienta que permite presentar de forma concisa las reglas ‘6gicas que hay que wilizar para deciair avciones a ejecutar on funcidn de lac condiciones y (a logica de decisisn de un problema expectico. Une TD es un tipo de tabla que muestra lo que debe realizar el programa cuando se cumpien ciertas condiciones. Son especialmente tiles para deseribir Drocesgs que incluyan muchas deeisiones multiples, En esencia las TD constituyen una téenica facil de aprender y emplear que ‘no requiere grandes esfuerzos de imaginacién para sa comprension e intecpre:2- ion, Uni tabla de decision se representa en un cuadro de cuatro bloques (Figu- a6.) ware of eutnanece NOISE GoMcicOnes feacngs (Baawc uraaoa oc warn oe Mi ‘csowes CIOS em Figura 6.1. Representacion orion de una table de design (7D). A a izquierda de la Figura 6.1 se tiene ta meiriz ya la derecha las entradas, La matriz de condiciones recoge las condiciones de todo o parte del problema, dicho en otras palabras, las preguntas que deben probarse para alcanzar una decision. La matriz de acciones releja todas o parte de las acciones del problema «a rcalizaro las acciones que han de emprenderse cuando se presenta un conjunto dado de condiciones. TABLAS DE DEGSION 171 La entrada de las condiciones (combinacién de las posibles condiciones), permiten refiejar en la TD si se cumple 0 mo tal condicin o si ¢s indiferente, es decir, sea cual su condiciSn de entrada, no tiene influeneia sobre la accién ‘que deberia efectuarse La entrada de las acciones (decisi¢n) indica efectuar la accién correspondien- fe a un conjunto de condiciones cumplimentadas, 6.2.1 Reglas de decision Cada combinacién de entrada de condiciones y su correspondiente entrada de acciones constituyen una relacion denominaca regia de decision, Existen ‘antas reglas como pares distintos de entradas condiciones/aceiones, £7 mibnera de reglas de decision debe cubrir todos los casos posibles, sin repeticiones ni omi- siones. Notas de construccicn ‘¢ ELmiimero de reelas de decisién es 2" siencio rl numero de condiciones post Dies, 4 Avuna condicién de entrada silo le corresponde una decision o condicion de salida. ® A una condicién de salida Je pueden corresponder varias condiciones de en- ‘rads, ‘¢ Para que una TD esté bien construida es necesario que en cada momento sea cierta una y s6lo una de las situaciones. ‘¢ Fl resultado de una regla no varia si ge permuta al orden de las linces de condicién, nila ligica de decision cambia si se permuta el orden de as 5.000 pesetss..) Al cleyado niimero de condiciones habria que sumer las nuevas acciones, 1o que hace la resolucion del problema con TD limitada sumamente compleja, ¥ por ello es més sencillo recurrir a una TD ampliada, Ter eo de to a[“][s|~]s]w]s Inpare do compe 3.000 [5000 10000] 0000 ys0.000] = 60000 Payp conv x x x x (erg cuenta x x x x coger WA we PRP aE ae fac [oe ‘coger pow 100% 76% | 50% ow TABLAS DE DECISION 179 En este caso ha sido necesario desdoblar la condivién «Tarjeta de Crédito» en dos subcondiciones, pero en cualquier caso esta tabla siempre sera mis facil de leer y entender que su equivalente tabla limitada, 6.3.3. Tablas de decisién mixtas Se denominan asa las tablas que resultan ce Ia combinaciSn de las tablas vistas en los parrafos anteriores ‘Una aplicacion de este tipo de tabla podia ser una ampliacién del ejemplo de expedicidn de billeres de la siguiente forms: # Comprobar plazas fibres en [2 y 2. * Peticion del viajero, # Acepta cambio de clase si no existe la soliciteda. La TD ampliada resultante seria le siguiente Ai RZ AS RO RS AG RT RB AD RIORITAIZ Bilotes dopenbice| seiots rayon Josie No hoy plazas Paictn vero ve ae 2s|ts 2elie qa 2e/ae qayas 2a Combo ge eee - 5s N[--|s n -[s nloon Expedicin bilets 1." x x |x Expedién bllets 2” x|x x Lise do espero 1 xo ae te le Use de espera 2° x ratte Pigeon Esta tabla resuclts en representacisn gréfica limitada seria enormemente ‘compleja, ya que de cada condiciGn actual se derivarian las escritas en la entrada de conuliciones 6.3.4. Comparacién y transformacién de los tipos de tablas, La comparacion de las TD produce las siguientes caracteristica © Las TD de entradas amplias son mas legibles que las TD limitadas por ser menos voluminosas que sus equivalentes. La raz6n como va se ha visto reside en ef necho de que una condicion de una tabla de entrada amplia corresponde a varias condiciones de la tabla de entradas limitades equiva- lentes, debido a que éstas solo tienen dos posibles alzernativas § 0 N. ‘¢ Las TD de entradss limitadas son més facil de codlificar en programa (las rogas de decisién constituyen caminos de un diggrama de flujo) que las ‘ablas implicadas. 180 METODOLOGIA DE LA PROGRAMAGON Para convertir una TD de entradas emplias en una TD de entradas limitadas serd necesario ejecutar las siguientes tareas: ‘© formular tantas condiciones binarias (S/N) como alternativas consideradas cxistan para cada condicién de la tabla de entreda amplia, ‘* formular tantas acciones binarias (S/N) como posibilidades consideradas enlas reglas, para cada una de lasacciones de la tabla de entrada amplia, La tabla mixta ant ior podria quedar asi i fa 3 Bites asporibies sto 1 sy 5 ss Blots tspaniias 19 2° sulie 2 es Biletee hapnile ein 2° ea - s No roy poss a3. = = Pereion ge vaio 1# ecng = 8 atc de sje 2+ 7 s es Cambio la = s s Expodioen atte 18 x Expodiogn blots 2 x Lista do expera 19 - tins de espera 24 - Procediendo en forma inversa se convertra una TD limitada 2 una TD am- pliada. 6.4. TIPOS DE REGLAS DE DECISION Las regles de decision seguin las rclaciones que existan entre las condiciones de una tabla de decision pueden ser: Reglas «Y» (AND) En cada situacion se necesita que se satistaga Ja primera condicion Y la segunda Y la tercera, ... (operador Igico AND) sicondicion 1 Y condicion 2 Y... entonces, TABLAS DE DECISION 187 Roglas «O» (OR) Para que se satisfgga una regle basta con que se cumpla cualquiera de las condiciones de la situacién (operador logico OR), Existen dos tipor de regles ©. OR iretisivo ‘Se cumple una u otra condicion aislada 0 simultincamente, OR exeiusivo Entre dos condiciones se cumple una u otra pero no ambas simultanes- mente, En Ja siguiente tabla se pueden apreciar las reglas «Yo, «OR i Fe ra Ra | 6 s s || ow 8 N 8 Acciones Las replas R2, R3 y Re son del tipo «0 inclusivon, las reglas R2 y R3 «0 exclusivon. La reala Rd constituye una del tipo «¥». Reglis ELSE (sino) Entre las diversas situaciones posibles solo alguaas de ellas condiucen a trata. rmientos diversos, mientras que el resto de las reglas conducen a un tinico tratae ‘miento, Las reglas que conducen a un tratamiento Unico se agrupan en una sola regla denominada ELSE (sino o en otro caso). Se suele colocar al final de la TD sin evaluar sus condiciones 6.4.1. Conversién de regias «O» y «SINO» Una regla «> se transforma enn REGLAS and, sieado 1 el mimero de condiciones que intervienen en la regla (las n reglas se suponen con indiferencias, ya que sin clias xe tendria 2 ~ 1). 182 METODOLOGIA DE LA PROGRAMACION ‘Supongamos la situacion de una regla OR extraida de una TD de 4 condi- sino se cumple la primera condici6n, O si se cumple la segunda, O no se cumple Ia tercera si se cumple la cuarta, wz0z Esta regla OR equivale a 4 reglas AND Rt R2 R3 Ra N s s s = s N N = se N s = = s (C+) significa indiferencia que procede de la fusion de dos situaciones similares, ozoz equivale a o2|2 oze2 6.5. CONSTRUCCION DE TABLAS DE DECISION Para construir una TD son necesarios los siguientes pasos: 4a) Estudio de condiciones, acciones y sus relaciones. by Rellenat la TD. ¢) Analizar la TD. 4 Simplificar fa TD, 6.5.1, Estudio de condiciones, acciones y relaciones “Tras la lectura del enunciado del problema se localizan las condiciones, que se han de extracr del enunciado, mediante la basqueda de palabras similares a «Si, cuando, si no, ete>. Las acciones como el diccionario de la lengua indica se han de lovalizar en ‘al enunciado con los verbos que implican aeciGn, es decir «hacer algo»: realizar, ‘ejecutar, sumar, restar, etc TABLAS DE DedIsiON 185 6.5.2. Anil is y requisitos de una TD Antes de convert la TD en programa se necesita efectuar un anilisis de sus, ‘oglas y comprobar que la TD disefads cumple los siguientes requisiioz: + Completa. +e No tiene redundancias. # No tione contrudivciones, Una TD es completa cuando se han establecido todas las situaciones posibles todas las combinaciones matematicamente posibles de las entradas 0 estaclos de las condiciones—, o dicho de otra forma: no sc ha clvidade ninguna posible entrada, ‘Una TD no tiene redundancias cuando oo existen ningunassituaciones idén- teas que conduzcan a tratamientos idénticos. Existeredundancia cuando apare- ce dos 0 mas veces la misma entrada de condiciones con igual tratamiento, Una TD no es coniradictoria ovando siendo redundant los tratamientos son los mismos, o dicho de otra manera, es contradictoria cuando a un mismo estado, de condiciones le corresponden tratemientos diferentes. Si el conjunto de reas, supera 2, exist errores 6.5.3. Simplificacién de una tabla de decision La simplificacion de una TD se debe sealizar siempre que sca posible. Un miétodo consiste en agrupar reglas simples en reglas compuestas (reglas simples son Jas que no contienen ninguna indiferencia y reglas compuestas las que ccontienen al menos una indiferencia}. Dos reglas pueden simplificarse siempre que se produzean Jas mismas accio- nes y un estado de condiciones ciliere s6lo en la situacidn de una condicion. PL ne Fra cr s [nN ce s @ s [on™ 2 = 5 wn ooN couivale a 68 N aL Nesleek ai x a2 a2 As A La siguiente tabla no s puede simplificar (difiere en mas de dos situae ciones). TABLAS DE OECISON 187 Una forma de comprobar la simplificacion, seria hacer estos dos pasos: BIZ AS Rize aiff si] s ore @|s |s ca ts ef cquivlonte a wo] a | s [ow cf a al a2 az | x 6.6. ENCADENAMIENTO DE TABLAS DE DECISION ‘Cuando un problema de légica ¢s complejo, la TD cquivatente resultara asi mismo compleja. En estos casos es preferible dividir €] probleraa en problemas sccundarios d¢ modo que cada uno de ellos dé lugar a la creacién de una tabla particular. Las TD pequettas son més ficiles de realizar, utilizar, modificar y lor que una TD voluminoss. Posteriormente las diferentes tablas se encadenan ‘0 eniazan para la soluciéa del problema lobe. Los encacienamientos se realizan con las ya conocidas tablas abiertas y tablas cerradas, 6.6.1. Tablas abiortas, Estas tablas presentan una conexiGn al principio de la tabla llamada (7) sin necesidac! de reiorno a la tabla que llama, después de la ejecucion de ta tabla 7. Las Hamadas se realizan mediante una bifurcacién incondicional del ipo GOTO y una vez sjecutada no retorna a la tabla anterior. Se clasfican en dos grandes grupos: Encadenamiento en cascada 0 TABLAS DE DECISION 189 Otros ejemplos de encadenamientos serian: ro? be 108, 6.6.2. Tablas cerradas Son aquellzs en que una vez ejecutada la tabla llamade, devuelve el contol ala tabla que le Hamé. La llamada se realize mediante una estructura DO (hacer) y el retorno del control a Ia tabla precedente con RETURN (volver 2), Existen numerosos casos de tables cerradas, sired AnD [a ee i I hs20 TABLAS DE DECISION 191 Las condiciones que se deben cumplir para que pueda existir un encadena- miento son: 1, Cada tabla se debe identificar mediante una etiqueta (numero 0 serie de saracteres) 2. La tabla invocada se ejecutara totalmente. 3. Cada tegla de decision dee indicat lo que se ha de hacer @ continuacion bifwoar, hacer, termiinar, ee.). 6.7. CONVERSION DE TABLAS DE DECISION EN PROGRAMAS, La conversion de las TD on programas se pueden realizar con diferentes t62- 44) Programacién directa en lenguajes de alto nivel como COBOL, FOR- TRAN 0 BASIC. 6) Transformacion de la tabla en diagramas de flujo. ©) Convertidores de TD en programas, @) Métodos matriciales. 6.7.1. Programacién directa en lenguajes de alto nivel Las reas de decisién se convierten en instrucciones de los lenguajes. En el ceaso de la siguiente regla. Rt a oe) 109 COBOL ve aodeerie ast ai 5 a2 x IF C1 AND NOT C2 AND C3 HACER Al A? ELSE... Esta tGenica es eémoda pero tiene cl inconveniente de preguntar ea la misma ‘pasada varias veces por la misma condicion, Si se han definido tablas encadenadas, cada une de cllas dard lugar a subpro- ‘pramas abiertos o cerrados seyin el tipo de tabla. En el caso de tablas abvertas, fa accién ir a la tabla » se traduce segin el «aso, por una instruccién de bifurcaci6n incondicional del tipo GOTO (BASIC ‘9 Pascal) GO TO (COBOL), 0 bien por una instruccién de Hamada a subpro- 192 METODOLOGIA DE LA PROGRAMACION grama abierto 0 subrotina mediante Ie instsuecién CALL en COBOL, BASIC, exeétera, Si fon tablas cerradas, la accion ejeewar fa tabla n se traduce por una ins- truccién de Tamada de’ subprograma cerrado (instruccién PERFORM en COBOL), 6.7.2. Transformacién de la tabla en diagrama de flujo Esta teoniea fue desarrollada por S.. Pollack y establece como hipstesis {que [a evaluacidn de cada condicién va a ocupar siempre las mismas posiciones cde memoria. A continuacién se debe minimizer el numero de evaluaciones 2 etectuar, 0 sea, lograr un minimo numero de pruebas de concliciones. El métodose basa en Ia localizacidn de las indiferencias de cada reela,siguien- do Ios siguientes pasos: 1, Caleulo del néimero de reales simples a les que equivale cada regia (una regla con n indiferencias equivale a 2° regias simples) y rellene el final de cada columna, Por cada condicin se calcula un coeficiente sumando los valores calcula- dosen 1 y sesegistra en una columns ala derecha dela TD; el coeficiente de cuenta mide al mimero de reglas en que la condicign en estudio 10 interviene (su valor sera tanto mas importante cuanto menor sca su valor) Se evaliaen primer lugar la condicion cuyo coeficiente sea menor. Si existen varias condiciones con una cuenta ménima igual, se elige un ‘nuevo valor (coeficiente) que es el que mide en valor absolute la diferen- cia entre ol niimero de SI y NO que aperecen en dichas condiciones, eligiendose el de mayor valor absoluto. 4. Si subsistc la igualdad so clige indiferentemente cualquiera de las condi- ciones. 5. Se repite e! proceso (pasos | a 4) hasta le iltima condicion, Sea, por ¢jemplo una TD de 4 condiciones y 7 reslas con las indiferencias si- guientes: en ct vw fs [-[s ]s [= [es GB Bla foam) aifso saps: [ei obpition meal oe w 3 - - | - Wrote anifon aean fe Me ca Setar decd ds clei ne ee 200 METODOLOGIA DE LA PROGRAMACION EJERCICIOS PROPUESTOS 1. Construir la TD de las decisiones a tomar por ua conductor frente @ un se- mafora, 2. Constrair una TD para la expedicién de facturas a los clientes de una ‘empresa de acuerdo con las siguientes hipotesis: 4g) Los clientes deudores no tienen descuento. by Side un articulo se facturan mais de 5.000 unidades se realizaré un 10% de descuento a los ariculos del tipo M y un 5% a los del tipo N, ¢ Solo en el caso de los articulos del tipo M, se aizadird al desexemto cel apartado b un 5 % més sila venta se realiz6 en la zona de Exiremedura yun 34 mds para la zona de Valencia, 3. Realizar una TD que permita la distribucién de los pedidos de una empresa yy la expedicién de Tacturas, de acuerdo con las siguientes hipotesis. 4) Si cxiste saldo y existencias de! articulo solicitado. ‘© ¥ el pedido es superior o igual al minimo (1.000) y el cliente es mayotista, hacer ua descuento del 20 %, enviar pedido y Iaewura. + Sicl podido os inferior al minimo (1,000), facturar sin descuento sea el cliente mayorista 0 detallista 4j Si existe saldo pero no hay existencias disponibles suficientes: '¢ Facturas existencias, '¢ Dejar pendiente de envio el resto det pedido. '» No hacer decuento, ‘¢ Bmitir factur, 6) Sino existe saldo. ‘© Remit presupuesto del pedido al cliente 4, Realizar una TD limitada y su equivalente ampliada que indique el salario {@ pagar a Jos empleados por cada hora extraordinaria, dependicndo de la categoria det empleado (A 0 B) y su division (1.40 2.) ors extra categoria 1° = 2.500 ps ora entra categoria 2+ 1500 poses Division A — 300 pesetas: Divisin B = 280 pects 5. Disear una TD que permita calcular el salario total a pagar a un empleado de una empress de acuerdo con las siguientes propasiciones: + Sicl empleado esté autorizado a realizar horas extraoedinarias y ha traba Jado durante a semana més de 40 horas, se le debe pagar su salario normal y ademas el importe de las horas extraoriinarias. CAPITULO 7 PROGRAMACION ESTRUCTURADA 7.1, INTRODUGCION ‘Tras conocer las caracteristices que debe tener un programa es necesatio seguir una metodologfa encaminada al cumplimiento de esas caracteristicas. La metodoiogia de la programaciOn es la técnica que permite que la programacién sea lo mas effcaz posible en cuanto al desarrollo y manicnimicnto. En los capttulos anteriores hemos definido el lenguaje de diagramas de Nuio enordinogramas y algoritmos. Si la complejidad del problema aumenta es nece- sario reeurrir a téenicas que nos ayucen en la descripeion de nuestros organigrae ms y fundamentalmente algoritmos. 7.2. PROGRAMACION CONVENCIONAL Larealizacién de un programa sin seguir un método de programacién riguro- so, aunque funcione, a la larga no sera mas que un conjunto més © mencs grande de instrucciones. La definicién de les diferentes etapas adclecen en gene- ral de indefiniciOn y falta de continuidad (desarrollo y mantenimiento), La consecuencia inmedieta de lo expuesto anteriormente se podria recoger ea la siguiente relacidn de problemas vdefectos que suelen tener los programas escritos sin un determinado metodo, © Los programas suelen ser excesivamente rigides, presentande problemas para adzptarlos a las cada dia mds cambiantes configuraciones. 202 PROGRAMACION ESTAUCTURADA 208, — legible: dehe ser entendido por cualquier programador, que permite féciles, ‘modificaciones; — medificable: el diseno nunca es definitive y por ello su estructura debe permitir modificaciones; — derurable: dete ser facil la Jocalizacion y correcci6n de errores. En resumen se debe realizar un programa siguiendo técnicas 0 métodos es- tandarizados que consigan las caracicristicas anteriores rapide y eficazmente Las técnicas de programacion que permiten seguir una metodologia de ka progremacion mas empleadas son: . — Programacién moduler — Programacién estructurada Estas técnicas suelen ser complementarias, ya que el anilisis de un problema puede utilizar criterios de programacién modular para dividirlo en partes inde- endientes y utilizar métodos estructurados en la programacién de cada modulo. 7.3. PROGRAMACION MODULAR El eoncepto bésico de la programacién modular es muy simple, consiste en dividir un programa en médulos. En realidad ¢s un méiodo de diseflo que tlende a dividir el problema, de forma Idgica, en partes porfeciamente diferenciadas que pueden ser analizadas, programades y puestas a punto independientemente. La division de un problema en modulos 0 programas independientes exige ‘otto médulo que controle y relacione a todos los demas, es el denominado ‘médulo hase o principal det problems, Realmente la programacion modular és un intento para disefiar programas, de forma tal que cualquier funcidn légiea pueda ser intereambiada sin afectar a otras partes del programa, Las venstajas de la programacign modular se pueden resumir en los siguientes puntos: ) Un programa modular ¢s mas fic de eseribir y depurar (ejecutar, probar ¥ poner # punto). Se puede profundizar en las pruebas parciales de cada médulo mucho mas de lo que se hace en un programa mayor. b) Un programa medular es fcil de mantener y modificar. © Un programa modular es facil de controlar, El desglose de un problema ‘eh Mduos permite encomendar los médulos mas complejos alos progra- ‘madores mas experimentados y los mas sencillos a los programadores mas novels, 4) Posibilta cl uso repetitive de las rutinas en el mismo o en diferentes pro- grames, 206 METODOLOGIA DE LA PROGRAMACICN Los inconvenientes se pueden resumi en: 2) Nose dispone de algoritmos formals de modularidad, por lo que a veces Jos programadores no tienen claras las ideas de los médulos. b) La programacin modular requiere mas memoria y tiempo de ciccux ion, Se podrian sintetizar los objetivos de la programacion modular an los siguien- Dismainuir la complejidad. wumentar la claridad y fiabilidad. — Disminuir el coste. — Aumentar el control del proyecto, — Facilitar la ampliacién del programa mediante nuevos médulos. — Facilitar las modificaciones y correcciones al quedar autométicamente localizadas en un modulo. 7.3.1. Concepto de médulo El concepto de médulo no es unico y se pueden dar varias definiciones, aunque tal vez la més acertada sea Ia siguiente: ‘Un mciulo esta constituido por una o varias instrucciones fsicamente conti- ‘guas y Idgicamente encadenadas, las cuales se pueden referenciar mediante un nombre ¥ pueden ser llamadas desde diferentes puntos de un programa, Un medulo puede ser: = Un programa = Una funcin. — Una subrutina (0 procedimiento). 7.2.1.1. Caracteristicas de un médulo Los médulos deben tener la méxima cchesién y el minimo acoplamiente. Es decir, deben tener la maaima independencia entre ellos Lasalida del modulo debe ser funcion de la entrada pero no de imerno. En esencia el modulo ha de ser una caja negra que facilite unos valores de entradas y suministre unos valores de salida que sean exclusivamente funcién de las entradas. Enrode———»| abdulo, |x Sada PROGRAMAGION ESTRUCTURADA 207 En la ereacién de los médulos deben cumplirse tres aspectos bsicos: desorip- ion, rendimiento y diseio. En la deseripein se definen las funciones y objetivos del programa. Para ‘obtener el maximo rendimiento se ha de comprobar que e! programa realice el proceso eprovechando al méximo todos los recursos dc los que dispone. En cuanto al discito se debe comprobar la estructura auc sigue el médule asi como la estructura dc los datos y la forma de comunicacién entre los diversos y diferentes médulos. 7.3.2. Requi tos de la programacién modular Con independencia de las técnieas, los requisites que debe cumplir la progra- maci6n modular son’ a) Bstablecimiento de un organigrama modular. b) Descripcion del médulo principal, ©) Deseripcién de los médulos bisicos 0 secundarios. 6) Normas de la programacion, El organigrama modular se realiza mediante bloques, en cl que cada blogue corresponds a un médulo y mucsira graficamente la comunicacion entre el médulo principal y los secundarios. EI médulo principal debe ser claro y coneiso, reflejando los puntos funda- ‘mentales del programa Los modules basicos deen resolver partes bien definidas de! problema. Solo pueden terer,un punto de entrada y un punto de salida. Si un modulo es complejo de fesolver conviene se subdivida en submédulos. Ningun modulo puece ser llamado desde distintos puntos del médulo principal. Las normas de programacién dependerin del andlisis de cada problema y de las normas generales 0 particulares que haya recibido el programador. 7.3.3. Clasificacién de los médulos Scetin las funciones que pucden desarrollar cada modulo, éstos se clasifican en: — Modulos tipo raiz, director o principal. = Modulos tipo subraiz — Modulos de entrada (captura de datos). — Modulos de variacion de entradss. — Modulos de proceso. — Modulos de creacion y formates de salidas, 208 METCDOLOGIA DE LA PROGRAMACION 7.3.4, Técnicas de la programacién modular Las faces de la resolucion de un problema con programacién modular son las siguientes: + Esindio de las especificaciones del problema, En esta etapa las Tablas de Decision son una herramienta de gran utilidad, Confeceion det ordinograma o tabla de deeision de cada modulo, Codificacién de cada medule en ef lenguaie adecudo Pruebas parciales de cada uno de los médulos components. Prueba final de los mededos enlazadas. Bl discito de una aplicacién con prosramacién modular coasiste cn la realiza~ ‘cién de una red de modulos. Existird un médulo ratz, que se denomina principal 6 ditector Cada moilulo solo puede tener una entrada y una salida que 1o enlaean con el modulo principal —inciuso habiendo estructuras repetitivas y alternatives dentro de un modulo La programacion modular se basa en el diseho descendente (fopedowm) que permite comprobar el funcionamiento de cada modulo mediante modulos va comprobados. | Ms 4 edie? | | Medio? wsduo 4 neces meus ||| Moawo7 tmooue Modula 9 | aie 100 REM « estructura Mientras ** 110 IF condicion THEN 130 — 120 GOTO 210 130 REM ** Hacer -*+ <1 _. 200 GOTO 100 2110 REM *+ Fin do Miontras +* 220 VETODOLOGIA DE LA PROGRAMACION +b) Caso de que Ia condicion sea fas. 100 REM +> estructura Mientras ** 110 IF condicion THEN 120 120 GOTO 210 130 REM ++ Hacer ++ 200 GOTO 100 210 REM + Fin de Mientras ++ <——+ 7.6. METODOS DE PROGRAMACION ESTRUCTURADA Existon diferentes métodos de programacién estructurada, Entre los mis sonocidos se encuentran: Jackson, Bertini y Warner. 7.6.1. Método Jackson Esta meiodologia creada por el inglés Michael Jackson se fase en que la estructura de un programa esti en funcion de la estructura de los datos que manipals, Jackson emplea médulos seauin un orden jerarquieo dentro de los diferentes niveles donde se encuentra. Cada médhido es um dato 0 conjunto de datos Las estructuras y son las siguiantes: {cas en este método vienen represertadas on la Figura 7.1 — Secuencial: Un numero determinado de médulos se ejecuian una scla vox en el orden jexdirquico precstablecide. — Repeiitiva. Un médulo se cjecuta desde cero hasta n veces. El proceso repetitive se indica con un asterisco (*). — Alternativa: Se selecciona para la ejecuciéa un modulo entre varios posi- bles. El proceso se indica por medio de una letra O, Con estas estructuras basicas se puede obtener cualquier otra que intervenga en el diseno del programa, El uso del metodo de Jackson supone lectura arriba-abajo y de izquierda ade. recha, LLos pasos a seguir para resolver un ceterminado problema siguiendo esta ‘metodologia son: |. Establecer 0 definir los datos de entrada y salida (resultados). 2. Creacién de la estructura del programa a partir de las diferentes estructu- ras de los datos. PROGRAMACION ESTRUCTURADA 223 Por consiguiente el omganigrama aplicando el método Jackson podria ser: mer 7 Nerve 99 tine « ayer irveros Nayar © Noyor=Nonero Nemsero Menor Menor « Nero tein 7.6.2. Método Bertini La metodologia Bertini consiste en la descomposicion de un problema en niveles, teniendo cada uno de ellos un inicio, an conjuntode procesosy un fin. Esta metodologia representa Ia estructura de los programas y no las operacio= acs del tratamiento, Las diferentes estructuras se representan en la Figura 7.3. Sepiin Bertini las insirucciones se ejecutan de derecha a izquierda pero el programador puece lecrlo al revés si le resulta mas comodo, PROGRAWACION ESTRUCTURADA 226, El diagrams de Aujo del problema anterior de obtencién del méximo y minime de una serie de nismeros, aplicando este método seria cl siguiente: 7.6.3. Método Warnier Se basa en una metodologia matemitica que establece un vinico lenguaje de comunicacién entre usuarics, analistas y programadores, lo que permite la com prensién de forma sencilla por cualquier programador. La representacién de ‘cualquier proceso se puede hacer mediante Taves. EI metodo sc basa en la descompesicion por niveles det problema. En cada nivel se dciallan Tos tratamientos que permiten fa resolucion cel problema pane teado, Las estructuras mtilizadas son conceptuaimente idénticas a I2s de Jackson si bien su representacion varia 228 METODOLOGIA DE LA PROGRAMACION EJERCICIOS PROPUESTOS 1. Hllar ¢ imprimir los valores maximo y minimo d¢ una serie de aumeros introducidos manualmente hasta encontrar el nuimero 999 (fin del fichero), debiéndose imprimir un mensaje si el valor introducido no cumple ninguna de las condiciones citadas, Disefiar un organigrama para cada uno de los siguientes casos: eonvencional, método Jackson, método Bertini. 2, Escribir el algoritmo y cl orgenigrama que imprime un listado con los mime- ros del 1 al 100 un niimero ea cada linea. 3. Escribir el algoritmo y cl organizrama que efecivec le suma de los alimeros centers del 1 al 100. 4. Imprimir la tabla de multiplicar del 4, Escribic el organigrama y el algoritmo comtespondiente. 5. Disenar el organigrama y algoritmo que pecmita imprimir un listado con Tos nnumeros constcutivos desde M hasta N, siendo My NV des valores que se introducen desde teclado, tales que M J) PERFORM RUTINA-1 ELSEIF (K = A) OR (C =v) PERFORM . ELSE... COBOL estructurado ‘dentiticedor expresion Formeto; EVALUATE } PaO ] FALSE WHEN objoic-soleccién sontoncia [WHEN OTHER center] [END-EVALUATE] 230 APENDICE. CODIFICACION DE LAS ESTAUCTURAS BASICAS 233 Ejomple: F A > B THEN 400 IF A > BGOTO 400 Formato: sentencia-etiquets IF expresion tégica THEN semtencia [: sontensia..] sentencia-etiqueta [ese sontoncia [: sontontia...] jomple: EM < 0 THEN Ne5 : Ma? : Net ELSEN=5:M=i4; ESTRUCTURA CASE PASCAL, Formato: case expresin OF Ci: sentenciat; 2: semtencis2 Cm: sentencian: end Kjomple: case Notas of 1.2.3 NieNi3 4" CN 0 DO BEGIN Formato: while lexpresién) soniencia ADA Formato: while (condiciin) loop ‘seniencias: end loop; Ejernplo: while porcial=demo parva! loop total: =totalscampo; ‘end loop; APENDCE. COUIFICACION DE LAS ESTFUCTURAS BASICS 237 iomplo: DOWHILE (N.GT.M DISCRIMINANTE=B=-2-4-A-C. IF (OISCRIMINANTE.GT.0} THEN R1=|-B4SQRT(DISCRIMINANTE)|/2°A) R2=|-B-SORT(DISCRIMINANTE)}/2°A) ENDIF ENDDO ESTRUCTURA DOUNTIL PASCAL Formato: REPEAT seniencia;/seniencia..! UNTIL expresisn tégiva jempio: NUMEIN, TOTAL: = REPEAT BEGIN READLN (NUMERO); TOTAL:=TOTAL+NUMERO NUMFIN:=NUMFIN 1 END; UNTIL EOF; MEDIA: =TOTAL/NUMFIN: “ Formato: do sentencias while (expresién): PL/I Formaio: DO WHILE (coretcér) sentence END: 238 METODOLOGIA DE LA FROGRAMACION cOBOL Formato: a: PERFORM nombre procedimiento [THRU rembre procedtimientc] WITH TEST AFTER UNTIL conefeién by PERFORM WITH TEST AFTER UNTIL condici6n sentoncia END PERFORM FORTRAN Formato: 1 CONTINUE 1 Sentences IF (NOT.(EXPRU) GOTO 1 ADA Formac: exit [nombre bucle] when condicién) FORTH Formate: BEGIN sentoncio condicién UNTIL SALTOS INCONDICIONALES BASIC Formato: GOTO nimero de trea ALGOL 68 Formato: Goto etiqueia ADA Formac: goto erigueta APENDICE. CODFICACION DE LAS ESTRUCTURAS BASICAS 239 C Formato: goto eviqueta ome. 6070 (228%, COBOL Format: 60 70 namie procetniets PL/I Foret: aro {ettets variable PASCAL. Formato: goto etiuete SALTOS CONDICIONALES: FORTRAN Founato: a] GOTO fotiqueta’, etquetad,... tiguetan),tl NeJ-L GOTO(10,20,30,60),N 10 leh GOTO 100 240, METODOLOGA DE LA PROGRAMACION b} GOTO Nfetiquetad, etiguets?, ... edeueten) ASSIGN 2 TON GOTO N(1.2.3.4) 1 iebN GOTO 100 2 -{hN-5 GOTO 100 3 4 100 PRINT 45,N BASIC = a, Ejemplo: ON N GOTO 100,200,200,40 COBOL Formato. GO TO euiguera i Jetiqueta2| ... etiqueten DEPENDING ON idertifeader INTERACCION GENERAL/BUCLES REPETITIVOS BASIC Foirnato: FOR varible control=valor nical TO valor tinal [STEP incrermento) sentences NEXT variable de contro! Ejemplo: FOR |=1 TO 100 STEP 4 PRINT na, NEXT REFERENCIAS BIBLIOGRAFICAS idioma castellano Bronoi y Ciaven: Tairodvecicn « la programactén, tomas 1 y 2, Masson, 1988. CEDED: Eurmieiura do la InforvnaciSn, 1985. CEDED: Metodoiogia de la programacién. 1085, ECC: Analisis informetico, tomos 1,2, 4, 6, Barcelona, 1985, ECC: Pregramacion de Ordenadores, tomas | a 5, Barcelona, 1988. Gatan Pascual: Programacton con el lengnafe COBOL, 3. edicion, Paraninfo, 1985. Gain Pascual: Programucton y prdctica eon el Sinciair QL, Paraninfo, 1985. Hukrape Masto: Informdica I (Tonos, J y 2), Escuela Universitaria de Taformatica Universidad Politésnica de Madrid Jovanes Aguiar: Programacién BASIC para microcomputadoras, 2 cdicidn, McGraw Hill, 1986, Lrvrs-Suime Bsinuetura de datos, Paraninto, 1985. Lueas, M., Prveis, J. Py Scuout, P. Cs Algoritmica »representacicn de dates, Masson, 19k MaRUNEZ/ANELLER: Metodologia de la programacion, Ed, Ferre Moret, 1985. NCR: Prograrmacion estructurada Sanctns y Gavan: Compiladares. Teorte y Consenuccida, Paraninlo, 1986 ‘Vaquene y Jovnnts: Informatica. Glosario de térmiuas, McGrail, 1985, Vorzenio, Revrer Il: Precesamionso de datas, MoGraw-Uil, 1983. Vincos: Téenicas » elementos de programaciéa, Gustave Gili, 1985, Warric Alporionés « Esiruetures de detos = Programas, 6reimpresién, Ediciones del Casto, 1986. ‘Wink: Fairoduecion @ fa programacion sistemartea, EI Ateneo, Buenos Aires, 1984. Winnk: PASCAL. Mamual del usuario ¢ irforme, El Ateneo, Buenos Aires, 1985. Otros idiomas Boussen. J. C., ¥ MAL, Rs Programmation avancee: algorithmtane et strives de données, Eyrolles, 1983, Const, M.,y Paosciur, As Princip! di programmazione, Bullet Edtore, 1985. Covrosee y Youna: La programmation seruciurcé en BASIC, Turgeon, 1986. Goupstens: Computers and their applications, Prentice Hall, 1986, Liz, Peren; Programming Concepts and Problem Soiving, Benjamin Cumming, 1983, Winn: Algorithms ond Dara Strvetures, Prentice Hall, 1986, WooDHOLSE, JOHNSTONE, DoUuGtas: Computer Science’ Wiley Sons, 1982,

También podría gustarte