Programacion Estructurada
Programacion Estructurada
Programacion Estructurada
ETIMOLOGIA
Desde la antigedad la Programacin se ha venido dando un inters mutuo y esto se puede ver en la actualidad teniendo como base la ampliacin de las memorias centrales y las altas velocidades de los procesadores , el estilo de escritura de los programas se vuelve una de las caractersticas mas sobresalientes en la programacin
4.1. Tcnicas de programacin. En esta parte las herramientas de programacin son: El Diagrama de Flujo , pseudo cdigo, etc.
Diagrama de Flujo: Herramienta que constituye el fundamento de Programacin convencional siendo muy til en los programas de pequeo y Mediano complejidad.
Concepto: Es uno de los mtodos mas flexibles y potentes para mejorar la Calidad de un programa y su productividad, en lo cual dicho programa se divide En mdulos (partes independientes). Cada programa se tiene un modulo principal denominado programa Principal que controla a los submodulos que posteriormente se denominan sub. Programas. Los mdulos son independientes ya que ninguno tiene acceso Directo a otro modulo o sub. Programa, un modulo se puede modificar sin Radicalmente sin afectar a otros mdulos inclusive sin alterar su funcionamiento; a este proceso se le conoce tambin como el mtodo de divide y vencers (Divide and conquer). Programacin Modular
Raz
Modulo1
Modulo2
Modulo3
Modulo4
Modulo 11
Modulo12
Modulo13
Modulo14
Modulo15
Modulo 24
Modulo 25
Modulo 26
Modulo 27
Modulo30
Modulo 31
Modulo 41
4.2.1. Tamao de los mdulos. Esto se origina debido a la complejidad del programa y para un fcil entendimiento por lo que lo el tamao mas usual de un mdulo seria de una pagina (40lineas de Instrucciones). Ejemplo: Disear un algoritmo que muestre los sgts resultados: Impresin de Cabeceras de un Informe. Lectura de Datos. Ejecutar Clculos Imprimir lneas detalladas de informacin. Imprimir totales. Solucin Modulo Principal: Llamada a sub. moduloImpresin de Cabeceras. Llamada a sub. moduloProceso de Datos. Llamada a sub. modulo Impresin de totales Fin del Proceso
Submodulo Impresin de Cabeceras: Instruccin para impresin de Cabeceras. Retorno al modulo Principal. Submodulo Proceso de Datos: Lectura de Datos. Ejecucin de Clculos. Impresin detallada de lneas. Retorno al modulo Principal.
Esta implementacin se realiza teniendo en cuenta el lenguaje de programacin en la que se desea compilar el programa SINDO los ms comunes: Funciones ( Lenguaje C/C++) Subrutinas ( Lenguaje BASICC) Procedimientos (Lenguaje PASCAL) Subrutinas (Lenguaje FORTRAN) Secciones (Lenguaje COBOL) Funciones (En todos los lenguajes C, C++, ADA, ETC)
a) b) c) d) e) f)
4.3.2. Diseo descendente. (Top-down). Concepto: Proceso mediante el cual un problema se descompone en una serie de
Niveles o pasos sucesivos de refinamiento (stepwise). Su Metodologa consiste en efectuar una relacin entre las sucesivas etapas de Estructuracin de modo que se relacionen unas con otras mediante entradas y Salidas de informacin, sea el problema se descompone en etapas o Estructuras jerrquicas. Diseo Descendente
Accin 2
Accin n
Diagrama de Flujo
Inicio
Leer A
Escribir S, P Fin
4.5. Estructura selectiva. Funcin: Se utililiza para tomar decisiones lgicas; se denominan tambin
Estructuras de decisin o alternativas, primero se evala primero una condicin y en Funcin del resultado de la misma se realiza una opcin u otra. Su representacin se realiza o hace con palabras de pseudo cdigos (if, then, else) Espaol (si, entonces, si_no), con una figura geomtrica en forma de rombo o bien Con un triangulo en el interior de una caja rectangular (Diagrama de Flujo)
Tipos Alternativa simple (si-entonces/if-then). Alternativa doble(si-entonces-si_no / if- then- else). Alternativa mltiple(segn _sea ,caso de / case)
4.5.1Alternativa simple (si entonces / if then). Funcin: Ejecuta una determinada accin cuando se cumple una determinada
Accin: Si la condicin es verdadera entonces se ejecuta la accin SI (o acciones caso de ser SI una accin compuesta y constar de varias acciones) Si la condicin es falsa , entonces no hacer nada
Pseudocodigo en castellano Si < condicin > entonces < accin SI > Fin _ si Pseudocodigo en Ingls If < condicin > then < Accin SI > Endif
Diagrama de Flujo
Si
Accin S1
Condicin
no Accin S2
Pseudocodigo en Castellano Si < Condicin> entonces < Accin SI > Si_no < Accin S2 > Fin _ si Pseudocodigo en Ingls If < condicin > then < Accin SI > Else < Accin S2 > Endif Representacin del Algoritmo Diagrama N-S Condicin? Verdadera Accin S1 Falsa Accin S2
Pseudocodigo en Castellano S1 (accin compuesta) Si < Condicin> entonces < Accin s11 > . . . < Accin S 2n > si_no < Accin S21 > < Accin S22 > . < Accin S 1n > Fin _ si
Ejemplo: Dados tres nmeros imprimir o escribir cual es el mayor (Pseudocodigo) Start Read: a, b, c If a > b and b > c then m m else m Write : m End c a b if b >a and a>c then
4.5.3. Alternativa mltiple (segn _sea, caso de / case) Concepto: Es aquella que evala una expresin que podr tomar N valores
distintos (1, 2, 3, 4,n) segn que elija uno de estos valores en la condicin, se realizara una de las n acciones, o lo que es igual, el flujo del algoritmo seguir un determinado camino entre los n posibles. Modelo (simplificado) Segn E hacer . . . Fin _ segn Diagrama de Flujo 1 Condicin 2 3 Accin S3 4 n
Accin S1
Accin S2
Accin S4
Accin Sn
4.6.1. Estructura mientras (while). Concepto: Es aquella en que el cuerpo del bucle se repite mientras se cumple una determinada condicin. Cuando se ejecuta la accin mientras, la primera
cosa que sucede es que se evala la condicin (una expresin booleana), si se evala falsa ninguna accin se tomara y el programa en la siguiente instruccin del bucle; si la expresin booleana es verdadera, entonces se ejecuta el cuerpo del bucle, depuse del cual se evala de nuevo la expresin booleana. Esta expresin booleana se repite una y otra vez mientras la expresin booleana (condicin) sea verdadera Expresin de un Bucle cero veces En una estructura mientras la primera cosa que sucede es la evaluacin de la expresin booleana; si es falsa en este punto entonces el cuerpo del bucle nunca se ejecuta. Puede parecer intil ejecutar el cuerpo del bucle cero veces, ya que no tendr efecto en ningn valor o salida. Sin embargo no es una accin deseada Bucles infinitos Algunos bucles no existen fin y otros no encuentran el fin por error en su diseo, el bucle y el programa corren siempre, o al menos hasta que la computadora se apaga; en otras ocasiones el bucle no se termina nunca por que nunca se cumple la condicin.
Regla Prctica Las pruebas o tesis en las expresiones booleanas es conveniente que sean mayor o menor que en lugar de pruebas de igualdad o desigualdad. En el caso de la codificacin en un lenguaje de programacin, esta regla debe seguirse rgidamente el caso de comparacin de nmeros reales.
Diferencias entre las estructuras mientras y repetir La estructura mientras termina cuando la condicin es falsa, mientras que repetir termina cuando la condicin es verdadera. En la estructura repetir el cuerpo del bucle se ejecuta siempre al menos una sola vez; por el contrario mientras es mas general y permite la posibilidad de que el bucle pueda no ser ejecutado. Para usar la estructura repetir debe estar seguro de que el cuerpo del bucle se repetir al menos una sola vez.
Concepto: Son el numero total de veces que se desea ejecutar las acciones del Bucle (numero de interacciones fijo), este ejecuta las acciones del cuerpo o del Bucle un numero especifico de veces y de modo automtico controla el numero de Interacciones o pasos a travs del cuerpo del bucle.
a)
b)
c)
d)
Nota: Las variables ndices o de control de los bucles toman valores de modo tal que por cada valor de la variable ndice del ciclo externo se debe ejecutar totalmente el bucle internos .Es posible anidar cualquier tipo de estructura selectiva con tal que cumpla las condiciones de la grafica vista anteriormente
EJERCICIOS 4.1. Determinar la media de una lista indefinida de nmeros positivos, terminados con un Nmero negativo. 4.2. Dado el nombre o nmero de un mes y si el ao es o no bisiesto, deducir el nmero de das del mes. 4.3. Sumar los nmeros enteros de 1 a 100 mediante: a) estructura repetir b) estructura mientras c) estructura desde 4.4. Determinar la media de una lista de nmeros positivos terminada con un nmero no Positivo despus del ltimo nmero vlido. 4.5. Imprimir todos los nmeros primos entre 2 y 1000 inclusive. 4.6. Se desea leer las calificaciones de una clase de informtica y contar el nmero total de aprobados (5 o mayor que 5) 4.7. Leer las notas de una clase de Informtica y deducir todas aquellas que sean Notables (>= 7 y <9) 4.8. Leer 100 nmeros .Determinar la media de los nmeros positivos y la media de los Nmeros negativos. 4.9. Un comercio dispone de dos tipos de artculos en fichas correspondientes a diversas Sucursales con los siguientes campos: a) Cdigo del artculo A o B b) precio unitario del artculo c) nmero de artculos La ltima ficha del archivo del artculo tiene un cdigo de artculo, una letra se pide: a) el nmero de artculos existentes en cada categora b) el importe total de los artculos de cada categora 4.10. Una estacin climtica proporciona un par de temperaturas diarias (Mxima, mnima)(no es posible que alguna o ambas temperaturas sea 9 grados).La Pareja fin de temperaturas es 0,0.Se pide determinar el nmero de das ,cuyas Temperaturas se han proporcionado, las medias mxima y mnima, el nmero de Das cuyas temperaturas se han proporcionado, las medias mxima y mnima, el Nmero de errores-temperaturas de o__y el porcentaje que representaban. 4.11. Calcular: 2 E(x) = 1+x+x ++n 2! n! n
4.12. Calcular el ensimo trmino de la serie de Fibonanci definida por: A1 = 1 A2 = 1 A3 = 1 + 2 = A1 + A2 An-1 + An-2 (n >=3)
4.13. Se pretende leer todos los empleados de una empresa__situados en un archivo empresa__ y a la terminacin de la lectura del archivo se debe visualizar un Mensaje existen trabajadores mayores de 65 aos en un nmero de t trabajadores mayores de 65 aos. 4.14. Un capital c est situado a un tipo de inters R, al trmino de cuntos aos se Doblara? 4.15. Los empleados de una fbrica trabajan en dos turnos, diurno y nocturno.Se desea Calcular el jornal diario de acuerdo con los siguientes puntos: a) la tarifa de las horas diurnas es de 500 pesetas b) la tarifa de las horas nocturnas es de 800 pesetas c) caso de ser domingo, la tarifa se incrementar en 200 pesetas el turno diurno 300 Pesetas el turno nocturno. 4.16. Averiguar si dados dos nmeros ledos del teclado, uno es divisor de otro. 4.17. Se introduce la hora del da en horas, minutos y segundos desea escribir la hora correspondiente al siguiente segundo. 4.18. Se desea conocer una serie de datos de una empresa con 50 empleados: a) Cuntos empleados ganan ms de 300.000 pesetas al mes( salarios altos) b) entre 100.000 y 300.000 pesetas (salarios medios) c) Menos de 100.000 pesetas (salarios bajos empleados a tiempo parcial)? 4.19. Imprimir una tabla de multiplicar como ** 1* 2* 3* 4* . . . 15* 1 2 3 ** ** ** ** 1 2 3 2 4 6 3 6 9 4 8 12 4 4 8 12 16 ** 15 15 30 45 60
15
30
45
60
225
CONTENIDO 4.1. Tcnicas de programacin. 4.2. Programacin modular. 4.3. Programacin estructurada. 4.4. Estructurura secuencial. 4.5. Estructura selectiva. 4.6. Estructura repetitiva. 4.7. Estructura de decisin anidada. 4.8. Estructura repetitivas anidadas. 4.9. La instruccin ir_a (goto).
Bibliografa Luis joyanes Aguilar MC Graw Hill Fundamentos de Programacin Algoritmos Y Estructura de Datos -Segunda Edicin Pgs. 714 ( 95- 161_ capitulo 4-)