u2 1.1 programas en pseudolenguaje

20

Upload: luis-fernando-miranda-segovia

Post on 02-Jul-2015

410 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: U2 1.1 Programas en Pseudolenguaje
Page 2: U2 1.1 Programas en Pseudolenguaje

FFuunnddaammeennttooss ddee PPrrooggrraammaacciióónn UUnniiddaadd 22 PPrrooggrraammaacciióónn eenn PPsseeuuddoolleenngguuaajjee

PPrrooggrraammaacciióónn yy aannáálliissiiss ddee ssiisstteemmaass 22

11.. LLeenngguuaajjee ddee PPrrooggrraammaacciióónn Los lenguajes de programación son un conjunto de reglas, herramientas y condiciones que nos permiten crear programas o aplicaciones dentro de una computadora. Estos programas son los que nos permiten ordenar distintas acciones a la computadora en su “idioma” comprensible por ella. Como su nombre lo indica, un lenguaje tiene su parte sintáctica y su parte semántica. ¿Qué quiere decir esto? Que todo lenguaje de programación posee reglas acerca de cómo se deben escribir las sentencias y de qué forma. A su vez, los lenguajes de programación se dividen en tres grandes grupos: los lenguajes de máquina, los lenguajes de bajo nivel y los de alto nivel. Los que pasaremos a explicar a continuación: Los lenguajes de máquina son los que entiende una computadora sin la necesidad de realizar ninguna conversión. Escribirlos resulta extremadamente difícil para un programador convencional. Hoy en día, nadie programa en éste lenguaje, pero como es necesario para la que la computadora entienda lo que tiene que hacer, existen programas que se encargan de transformar el código comprensible por un programador en código comprensible por una computadora. Las instrucciones en este tipo de lenguaje se componen de la unidad de memoria más pequeña que existe dentro de una computadora, que se llama bit. Cada una de estas unidades puede tener sólo dos valores posibles: 1 o 0. Veamos algunos ejemplos de este tipo de lenguaje: 0101 1001 0000 1101 0000 1111 1010 1011 Para facilitar la tarea del programador, se han diseñado otro tipo de lenguajes, que son más comprensibles que el de máquina. Esto son el de bajo nivel y el de alto nivel. 11..11..11 LLeenngguuaajjee ddee BBaajjoo NNiivveell Los lenguajes de bajo nivel, también llamados ensambladores, son aquellos cuyas sentencias están formadas por códigos nemotécnicos (abreviaturas de palabras inglesas). Son lenguajes que, por más complejos que sean, resultan mucho más comprensibles que los lenguajes de máquina. A continuación vemos un ejemplo de código para este tipo de lenguaje: ... inicio: mov cx,25 ini: mov ah,6 mov dl,13 int 21h mov dl,10 int 21h loop ini mov ah,9 lea dx,nombre push cs pop ds int 21h …

Page 3: U2 1.1 Programas en Pseudolenguaje

FFuunnddaammeennttooss ddee PPrrooggrraammaacciióónn UUnniiddaadd 22 PPrrooggrraammaacciióónn eenn PPsseeuuddoolleenngguuaajjee

PPrrooggrraammaacciióónn yy aannáálliissiiss ddee ssiisstteemmaass

33

Estos lenguajes son, además, dependientes de la arquitectura de cada procesador, ya que cada procesador ofrece un conjunto de instrucciones distinto para trabajar en este nivel de programación. Una vez escrito el programa en este lenguaje, se necesita otro llamado programa ensamblador, para que traduzca las sentencias en instrucciones comprensibles por la máquina. 11..11..22 LLeenngguuaajjee ddee AAllttoo NNiivveell Los lenguajes de alto nivel son aquellos que poseen sentencias formadas por palabras similares a las de los lenguajes humanos. Por lo tanto, resulta mucho más sencillo escribir un programa en un lenguaje de alto nivel para luego traducirlo en código comprensible para una computadora. Algunos ejemplos de este tipo de lenguajes son: Pascal, Delphi, Cobol, Foxpro, JAVA y la mayoría de los lenguajes visuales, como Visual Basic, Visual Foxpro, etc. Además, podemos decir que, dentro de este conjunto de lenguajes de programación, algunos son de más alto nivel que otros, pero, en general, todos entran en esta categoría. En el caso de C, muchos autores opinan que este lenguaje es de nivel medio, o sea, que posee una escritura sencilla y comprensible por los programadores, pero a la vez ofrece una potente y variada gama de posibilidades para realizar miles de tareas con una computadora. Se puede decir que se puede hacer casi lo mismo que con un lenguaje ensamblador. Observe que es posible insertar código assembler dentro del código de C. En conclusión, C pertenece a un nivel intermedio entre un lenguaje de bajo nivel y uno de alto nivel. 11..22.. PPrrooggrraammaa Definición: El conjunto formado por la representación de datos utilizados y el algoritmo en si, se conoce con el nombre de programa. Definición: Un programa es la descripción paso a paso de un proceso en un cierto lenguaje de programación. Definición: Secuencia de acciones entendibles por la computadora y que conduce a realizar una tarea determinada y el correcto tratamiento de los datos. Los programas constan de una serie de sentencias y estas a su vez de instrucciones que son las acciones concretas que debe realizar la máquina. 11..22..11.. CCaarraacctteerrííssttiiccaass ddeell SSooffttwwaarree El software es un elemento lógico en vez de físico del sistema. 1. El software es desarrollado no fabricado en un sentido clásico. Aunque existen algunas similitudes entre el desarrollo del software y la construcción del hardware, las dos actividades fundamentalmente diferentes. En ambas actividades la buena calidad se adquiere mediante un buen diseño, pero la fase de construcción del hardware puede producir problemas de calidad que no existen en el software, es decir, ambas actividades requieren la construcción de un producto pero los métodos son diferentes. 2. El software no se rompe pero se deteriora. Durante su vida el software sufre cambios (mantenimiento). Conforme se hacen los cambios, es probable que se introduzcan nuevos defectos.

Page 4: U2 1.1 Programas en Pseudolenguaje

FFuunnddaammeennttooss ddee PPrrooggrraammaacciióónn UUnniiddaadd 22 PPrrooggrraammaacciióónn eenn PPsseeuuddoolleenngguuaajjee

PPrrooggrraammaacciióónn yy aannáálliissiiss ddee ssiisstteemmaass 44

3. La mayoría de los software se construye a medida en vez de ensamblando componentes existentes. Con unas cuantas excepciones, no existen no existen catálogos para componentes de software. Es posible pedir programas ya hechos pero sólo como una unidad completa común, no como componentes que pueden ensamblarse con nuevos programas. 11..22..22.. AApplliiccaacciioonneess ddeell SSooffttwwaarree El software puede aplicarse en cualquier situación en la que se haya definido previamente un conjunto finito de pasos, es decir, un algoritmo. Las siguientes áreas indican la amplitud de las posibles aplicaciones: 1. Software de Sistemas El software de sistemas es una colección de programas escritos para servir a otros programas, como por ejemplo compiladores, editores, utilidades de gestión de archivos, etc. 2. Software de Tiempo Real El software que mide analiza y controla sucesos del medio real conforme ocurre se llama de tiempo real. Los elementos del software de tiempo real incluye una componente de acumulación de datos que recolecta y formatea la información de un entorno externo, una componente de análisis que transforma la información según requiera la información, una componente de control – salida que responda al entorno externo de una componente de monitorización que coordina a todos los demás componentes de forma que pueda mantenerse la respuesta en tiempo real. 3. Software de Gestión El procesamiento de información comercial constituye la mayor d las áreas de aplicación del software por ejemplo nóminas, cuentas de haberes y deberes, inventarios etc. Las aplicaciones en esta área reestructuran los datos existentes en orden a facilitar las operaciones comerciales y gestionar la toma de decisiones. 4. Software de Ingeniería y Científico Este se ha caracterizado por los algoritmos de manejo de números. Las aplicaciones desde la vulcanología hasta la astronomía, desde el análisis de la presión a la dinámica orbital de los cohetes espaciales y desde la biología molecular hasta la fabricación automática. 5. Software Empotrado Este software reside en memoria de sólo lectura y se utiliza para controlar productos y sistemas de mercados industriales y de consumidores. El software empotrado puede ejecutar funciones muy limitadas, por ejemplo el control de las teclas de un horno microondas, funciones digitales en un auto tales como el control de la gasolina. 6. Software de Computadores Personales El procesamiento de palabras, las hojas de cálculo, los gráficos por computadora, juegos gestión de bases de datos, aplicaciones financieras comerciales y personales, redes externas o acceso a base de datos son unos cuantos de las cientos de aplicaciones.

Page 5: U2 1.1 Programas en Pseudolenguaje

FFuunnddaammeennttooss ddee PPrrooggrraammaacciióónn UUnniiddaadd 22 PPrrooggrraammaacciióónn eenn PPsseeuuddoolleenngguuaajjee

PPrrooggrraammaacciióónn yy aannáálliissiiss ddee ssiisstteemmaass

55

7. Software de Inteligencia Artificial El software de Inteligencia Artificial hace uso de algoritmos no numéricos para resolver problemas complejos que no son adecuados para el cálculo o análisis directo. Actualmente el área más activa de la Inteligencia Artificial es la de los Sistemas Expertos también llamados Sistemas Basados en el Conocimiento. Otras áreas de aplicación par el software de inteligencia artificial es el reconocimiento de patrones (imágenes y voces) prueba de teoremas y juegos.

11..33.. TTiippooss ddee PPrrooggrraammaacciióónn No sólo existen varios tipos de Lenguajes de programación, sino que también podemos encontrar distintas formas de programar una aplicación. Hay diversos paradigmas que nos permiten encontrar una solución más adecuada a nuestros problemas. La idea es que el programador los conozca y sepa seleccionar el adecuado para cada situación particular. Lo que es verdad es que para cada paradigma conviene utilizar ciertos programas de programación, y no cualquiera. Esto se debe a que la mayoría de los lenguajes fueron creados para ser utilizados en determinados ambientes de programación. A continuación veremos las formas de programar más conocidas y utilizadas en la actualidad.

11..33..11.. PPrrooggrraammaacciióónn SSeeccuueenncciiaall Este tipo de programas se basa en la creación de programas a partir de un conjunto de sentencias escritas en forma secuencial y cuya ejecución sigue dicha secuencia. Aquí se utiliza la secuencia como goto o similar para realizar un bifurcación en la ejecución del programa hacia una etiqueta determinada. Una etiqueta es una marca en el código de un programa para que sea referenciado en algún momento de su ejecución. Algunos lenguajes que se utilizan para este tipo de programación son Basic, Assembler, Fortram, y COBOL entre otros.

11..33..22.. PPrrooggrraammaacciióónn EEssttrruuccttuurraaddaa La programación estructurada es una de las más conocidas y antiguas que existen. Sus fundamentos los impulsó Edsgar Dijkstra hace ya mucho tiempo. Hoy en día, más allá de que nuevos tipos de programación están copando el mercado, la programación estructurada perdura en el fondo de los leguajes modernos. Este tipo de programación se basa en la modularidad de los programas. Esto quiere decir que los programas se dividen en módulos más pequeños, y cada uno realiza una tarea específica. Así, la complejidad de un programa determinado también se ve reducida al dividir sus tareas, que, en su conjunto, permiten la resolución de éste.

Page 6: U2 1.1 Programas en Pseudolenguaje

FFuunnddaammeennttooss ddee PPrrooggrraammaacciióónn UUnniiddaadd 22 PPrrooggrraammaacciióónn eenn PPsseeuuddoolleenngguuaajjee

PPrrooggrraammaacciióónn yy aannáálliissiiss ddee ssiisstteemmaass 66

Los programas para éste tipo de programación poseen un procedimiento central, que es el encargado de llamar y controlar el correcto funcionamiento de cada módulo que compone la aplicación. La programación estructurada hace uso de estructuras de control básicas: secuencial, repetición y selección. Además, no permite el uso de sentencias como goto o similares que produzcan bifurcaciones en la ejecución de las sentencias de un programa. Los lenguajes que s utilizan en esta programación son C, Pascal, entre otros. 11..33..33.. PPrrooggrraammaacciióónn OOrriieennttaaddaa aa OObbjjeettooss La Programación Orientada a Objetos (POO) es una forma de estructurar un programa sobre la base de objetos. Cada elemento o componente en un programa que se basa en esta técnica es concebido como un objeto que tiene propiedades y métodos. La ejecución de un programa depende pura y exclusivamente de una interacción de los objetos que lo componen. Las propiedades y los métodos de los objetos se especifican en su clase. Una clase de objeto vendría a ser el molde de cada instancia particular del objeto. Por lo tanto, cuando uno programa una aplicación orientada a objetos, define clases y luego crea las instancias de objetos a través de esas clases para que interaccionen entre sí. Existen otros conceptos importantes sobre objetos, que son l herencia y el polimorfismo. Los lenguajes que se utilizan en este tipo de programación son muchos, pero los más importantes hoy en día son: JAVA, C++, Delphi, Smalltalk y la gran mayoría de los lenguajes de la nueva plataforma de Microsoft .NET, entre los cuales podemos encontrar Visual Basic.NET, C# y ASP.NET

11..33..44.. PPrrooggrraammaacciióónn LLóóggiiccaa La programación lógica es una forma de programar donde lo más importante es definir un conjunto de hechos, que se conocen con anterioridad, y un conjunto de reglas que nos definen las distintas relaciones que existen entre los componentes del programa. Estos hechos y reglas conforman lo que se llama la base del conocimiento. La programación lógica utiliza lenguajes de alto nivel que se asemejan muchos a los lenguajes humanos. Una de las utilidades más importantes de ésta técnica de programación es la inteligencia artificial. Uno de los lenguajes que se utilizan para éste tipo de desarrollos es Prolog, un lenguaje de programación lógica antiguo pero potente.. También se usa C, que provee más velocidad de procesamiento. Por lo general, este tipo de programación hace uso de algoritmos recursivos.

¿Existen más?

Page 7: U2 1.1 Programas en Pseudolenguaje

FFuunnddaammeennttooss ddee PPrrooggrraammaacciióónn UUnniiddaadd 22 PPrrooggrraammaacciióónn eenn PPsseeuuddoolleenngguuaajjee

PPrrooggrraammaacciióónn yy aannáálliissiiss ddee ssiisstteemmaass

77

22.. AAllggoorriittmmoo Definición: Serie de operaciones detalladas y no ambiguas, a ejecutar paso a paso y que conduce a la resolución de un problema. Definición: Conjunto de reglas para resolver una cierta clase de problemas o una forma de describir la solución del mismo, cada una de las acciones de las que consta un algoritmo se llamará sentencia, y estas deben estar escritas en términos de un cierto lenguaje de comprensible para el ejecutor (máquina). 22..11.. CCaarraacctteerrííssttiiccaass ddee llooss AAllggoorriittmmooss 1. Un algoritmo debe ser preciso e indicar el orden de realización de cada paso. 2. Un algoritmo debe ser definido, es decir, si se sigue un algoritmo dos veces se debe obtener el mismo resultado. 3. Un algoritmo debe ser finito, es decir, si se sigue un algoritmo se debe terminar en algún momento. 22..22.. EEttaappaass ppaarraa llaa ssoolluucciióónn ddee pprroobblleemmaass ppoorr ccoommppuuttaaddoorr.. 1. Análisis del problema. 2. Diseño de un algoritmo. 3. Codificación de un algoritmo. 4. Edición, ejecución y prueba del programa. 5. Mantenimiento (Soporte) del programa. 22..33.. EEssttrruuccttuurraa GGeenneerraaddaa ddee uunn PPrrooggrraammaa.. 1. Análisis del problema. Comprende la descripción y la definición del problema. Se debe decir exactamente lo que el programa debe hacer, qué datos debe procesar, y qué información producirá. 2. Diseño de un algoritmo. Comprende el desarrollo de la secuencia lógica de pasos a seguir para la resolución del problema. 2.1. Prueba del Algoritmo Seguir los pasos del algoritmo y ver si resuelve realmente el problema, el algoritmo de resolución suele expresarse en previo a la codificación en el lenguaje de programación, en alguna de las siguientes representaciones: a) Pseudocódigo b) Diagrama de flujo c) Diagrama Estructurado o Diagrama de Chopin

Page 8: U2 1.1 Programas en Pseudolenguaje

FFuunnddaammeennttooss ddee PPrrooggrraammaacciióónn UUnniiddaadd 22 PPrrooggrraammaacciióónn eenn PPsseeuuddoolleenngguuaajjee

PPrrooggrraammaacciióónn yy aannáálliissiiss ddee ssiisstteemmaass 88

3. Codificación de un algoritmo. Conversión del algoritmo en un programa escrito en algún lenguaje de programación. 4. Edición, ejecución y prueba del programa. Introducir el programa en la memoria, ejecutarlo y probar sus resultados corrigiendo los errores hasta su puesta a punto final, es decir:

� Depurar el programa � Verificar el programa � Documentar el programa

5. Uso y Mantenimiento (Soporte) del programa. El programador debe mantener el programa corrigiendo cualquier error o introduciendo las modificaciones necesarias para que el programa continúe funcionando durante todo el tiempo de su vida activa. 22..44.. RReepprreesseennttaacciióónn ddee aallggoorriittmmooss ppoorr mmeeddiioo ddee GGrrááffiiccaass UUttiilliizzaaddaass eenn eell AAnnáálliissiiss ddee llaa PPrrooggrraammaacciióónn.. En la etapa previa a la codificación del algoritmo se realiza una representación gráfica clara y detallada que refleje la secuencia en que deben ser ejecutadas las diferentes operaciones por la máquina. Estas representaciones gráficas son las herramientas utilizadas en el análisis de la programación. Se clasifican en tres grandes grupos:

� Diagramas de Flujo u Organigramas

� Pseudocódigo

� Tablas de Decisión 22..44..11.. DDiiaaggrraammaass ddee FFlluujjoo uu OOrrggaanniiggrraammaass Un diagrama de programación es la representación gráfica de los procedimientos y de la secuencia u orden en que deben ejecutarse. Deben ser independientes del lenguaje de programación que se vaya a utilizar. Se pueden considerar tres tipos fundamentales: a) Diagramas del Sistema o de Configuración. Estos son diagramas destinados a describir el flujo de información entre los distintos soportes físicos de un sistema informático. Reflejan las operaciones normales para el desarrollo del proceso que realizan los componentes utilizados en un programa. b) Diagramas de Macro Procesos o Bloques. Representan la estructura a través de módulos o bloques que se han realizado del problema a resolver. Incluye también el flujo de información entre los diversos módulos, así como e orden de ejecución de los mismos. Estos diagramas están relacionados con el proceso.

Page 9: U2 1.1 Programas en Pseudolenguaje

FFuunnddaammeennttooss ddee PPrrooggrraammaacciióónn UUnniiddaadd 22 PPrrooggrraammaacciióónn eenn PPsseeuuddoolleenngguuaajjee

PPrrooggrraammaacciióónn yy aannáálliissiiss ddee ssiisstteemmaass

99

c) Diagrama de Detalle u Ordinograma. Son las órdenes en secuencia que se deben dar a la máquina para la resolución del problema. Debe mostrar las operaciones que realiza un programa con el detalle necesario para que una vez confeccionados se pueda realizar la etapa de codificación. 22..44..11..11.. DDiiaaggrraammaass ddee FFlluujjoo ddeell SSiisstteemmaa Los símbolos utilizados sirven para representar operaciones manuales y automáticas con los diferentes dispositivos del sistema Informático

Page 10: U2 1.1 Programas en Pseudolenguaje

FFuunnddaammeennttooss ddee PPrrooggrraammaacciióónn UUnniiddaadd 22 PPrrooggrraammaacciióónn eenn PPsseeuuddoolleenngguuaajjee

PPrrooggrraammaacciióónn yy aannáálliissiiss ddee ssiisstteemmaass 1100

22..44..11..11..11.. SSíímmbboollooss UUttiilliizzaaddooss eenn llooss DDiiaaggrraammaass ddee SSiisstteemmaass

Símbolo

Función

Tarjeta perforada.

Cinta perforada (lectora / perforadora).

Lectora de documentos ópticos / impresora de documentos ópticos.

Cinta magnética / lectora / grabadora de cinta magnética.

Disco magnético (lectora o grabadora de un fichero almacenado en disco).

Pantalla / CRT ( Salida de datos a través de pantalla ).

Almacenamiento de datos en línea.

Impresora (Salida de datos en forma impresa).

Terminal o consola (Introducción manual de datos desde el teclado o consola del operador).

Dirección del proceso o flujo de datos.

Page 11: U2 1.1 Programas en Pseudolenguaje

FFuunnddaammeennttooss ddee PPrrooggrraammaacciióónn UUnniiddaadd 22 PPrrooggrraammaacciióónn eenn PPsseeuuddoolleenngguuaajjee

PPrrooggrraammaacciióónn yy aannáálliissiiss ddee ssiisstteemmaass

1111

Ejemplo: Una aplicación consiste en la emisión de facturas a partir de los datos introducidos por teclado y los datos del cliente almacenados en un fichero de disco. La factura se debe presentar en pantalla y una vez dada la conformidad, escribirla en impresora.

Teclado Programa Pantalla

Almacenamiento

Impresora

Impresora

Page 12: U2 1.1 Programas en Pseudolenguaje

FFuunnddaammeennttooss ddee PPrrooggrraammaacciióónn UUnniiddaadd 22 PPrrooggrraammaacciióónn eenn PPsseeuuddoolleenngguuaajjee

PPrrooggrraammaacciióónn yy aannáálliissiiss ddee ssiisstteemmaass 1122

22..44..11..22.. DDiiaaggrraammaass ddee BBllooqquueess

bb)) yy cc)) DDiiaaggrraammaass ddee FFlluujjoo ddee DDeettaalllleess // MMaaccrroo PPrroocceessooss oo BBllooqquuee Los Ordinogramas o Diagramas de Flujo de Detalle y de Macroprocesos o Bloque deben mostrar las operaciones que realiza un programa con el detalle necesario para que una vez confeccionados se pueda realizar la etapa siguiente de la programación ( la codificación). Para lenguajes tales como COBOL es suficiente representar únicamente los grandes bloques de tratamiento de entrada / salida, proceso y decisión sin tener que detallar las operaciones elementales. 22..44..11..22..11.. SSíímmbboollooss UUttiilliizzaaddooss eenn llooss DDiiaaggrraammaass ddee FFlluujjoo ddee DDeettaalllleess // BBllooqquuee PPrriinncciippaalleess SSíímmbboollooss

Terminal ( representa el comienzo “Inicio” y final “Fin”)

Entrada / Salida (Cualquier tipo de introducción de datos en la memoria desde los periféricos, “Entrada” o registro de la información procesada en un periférico )

Proceso ( Cualquier tipo de operación definida que pueda originar cambio de valor, formato o posición de la información almacenados en memoria: operaciones aritméticas, de transferencia de datos, etc.)

Conector ( Sirve par enlazar dos partes cualesquiera de un organigrama a través de un conector de salida y otro de entrada – conexión de la misma página).

Indicador de dirección o línea de flujo (indica el sentido de ejecución de las operaciones).

:

Conector ( distintas páginas)

:

Llamado a subrutina o a un proceso predeterminado.

Comentario.

Page 13: U2 1.1 Programas en Pseudolenguaje

FFuunnddaammeennttooss ddee PPrrooggrraammaacciióónn UUnniiddaadd 22 PPrrooggrraammaacciióónn eenn PPsseeuuddoolleenngguuaajjee

PPrrooggrraammaacciióónn yy aannáálliissiiss ddee ssiisstteemmaass

1133

22..55.. OOppeerraacciioonneess AArriittmmééttiiccaass 22..66.. OOppeerraaddoorreess ddee RReellaacciióónn <, >, < > Ejemplo de utilización de los símbolos Lectura de un fichero de datos de empleados de una empresa ( nombre, edad, nro. Seguro Social, pago) e impresión de los datos personales de cada empleado así como la suma Total de sueldos que paga la empresa.

Movimiento de una posición de memoria a otra.

Cambios en campos de información.

+

Adición

-

Sustracción

*

Multiplicación

/

División

^

Exponenciación

IInniicciioo

NN,, EE,, SS,, PP

SSTT == 00

Ultimo empleado?

SSTT == SSTT ++ PP

IImmpprriimmee ssuueellddooss

ttoottaalleess SSii

NNoo

FFiinn

Page 14: U2 1.1 Programas en Pseudolenguaje

FFuunnddaammeennttooss ddee PPrrooggrraammaacciióónn UUnniiddaadd 22 PPrrooggrraammaacciióónn eenn PPsseeuuddoolleenngguuaajjee

PPrrooggrraammaacciióónn yy aannáálliissiiss ddee ssiisstteemmaass 1144

Ejemplo Diagrama de Bloque / Macroprocesos

PPrroocceessoo MM

SSuubbrruuttiinnaa AA SSuubbrruuttiinnaa BB

??

PPrriinncciippaall

MMóódduulloo AA

110000 220000 330000

111100 112200 113300

114400 115500

Page 15: U2 1.1 Programas en Pseudolenguaje

FFuunnddaammeennttooss ddee PPrrooggrraammaacciióónn UUnniiddaadd 22 PPrrooggrraammaacciióónn eenn PPsseeuuddoolleenngguuaajjee

PPrrooggrraammaacciióónn yy aannáálliissiiss ddee ssiisstteemmaass

1155

Ejercicio Realizar el diagrama de detalle del problema de la emisión de facturas. Problema: Consiste en la emisión de facturas a partir de los datos introducidos por teclado y los datos del cliente almacenados en un fichero de disco. La factura se debe presentar en pantalla y una vez dada la conformidad, imprimirla

Inicio

Datos

Leer Datos Clientes

Datos Clientes

¿Validación? Factura

Validación ¿Otro cliente?

No

AA

AA

Fin

No

Page 16: U2 1.1 Programas en Pseudolenguaje

FFuunnddaammeennttooss ddee PPrrooggrraammaacciióónn UUnniiddaadd 22 PPrrooggrraammaacciióónn eenn PPsseeuuddoolleenngguuaajjee

PPrrooggrraammaacciióónn yy aannáálliissiiss ddee ssiisstteemmaass 1166

22..77.. DDiiaaggrraammaa ddee FFlluujjoo EEssttrruuccttuurraaddoo 1. Inicio 2. Entrada de Datos 3. Proceso 4. Salida de Datos 5. Fin Las estructuras lógicas básicas, necesarias para confeccionar un diagrama de detalle estructurado se reducen a: a) Secuenciales b) Selectivas c) Iterativas a) Secuenciales Constan de sucesivos pasos, uno tras otro.

Inicio

Fin

EEnnttrraaddaa ddee DDaattooss

SSaalliiddaa ddee DDaattooss

PPrroocceessoo

BB

CC

NN

AA

Page 17: U2 1.1 Programas en Pseudolenguaje

FFuunnddaammeennttooss ddee PPrrooggrraammaacciióónn UUnniiddaadd 22 PPrrooggrraammaacciióónn eenn PPsseeuuddoolleenngguuaajjee

PPrrooggrraammaacciióónn yy aannáálliissiiss ddee ssiisstteemmaass

1177

b) Selectivas Requieren prueba o comparación de ciertas condiciones, seguidas de rutas alternativas en el programa. c) Iterativas Estructura Switch (Tarea)

AA BB

¿¿?? iiff eellssee

BB

¿¿?? iiff

BB

¿¿??

BB

¿¿??

wwhhiillee ddoo ddoo wwhhiillee

Sí No Sí

No

No

A

A

A

Page 18: U2 1.1 Programas en Pseudolenguaje

FFuunnddaammeennttooss ddee PPrrooggrraammaacciióónn UUnniiddaadd 22 PPrrooggrraammaacciióónn eenn PPsseeuuddoolleenngguuaajjee

PPrrooggrraammaacciióónn yy aannáálliissiiss ddee ssiisstteemmaass 1188

Ejemplo: Diagrama de flujo estructurado Las estructuras básicas anteriores, pueden componerse reemplazando cada bloque básico por una de dichas estructuras (Secuenciales, selectivas o repetitivas).

EE11

EE22

Diagrama básico

BBllooqquuee qquuee ppuueeddee iinncclluuiirr

ccuuaallqquuiieerr eessttrruuccttuurraa

MM

¿¿??

No

EE11

M es proceso

EE22

AA BB

¿¿?? Sí No

EE22

Page 19: U2 1.1 Programas en Pseudolenguaje

FFuunnddaammeennttooss ddee PPrrooggrraammaacciióónn UUnniiddaadd 22 PPrrooggrraammaacciióónn eenn PPsseeuuddoolleenngguuaajjee

PPrrooggrraammaacciióónn yy aannáálliissiiss ddee ssiisstteemmaass

1199

22..88.. CCoommppoonneenntteess ddee uunn AAllggoorriittmmoo 1. Requerimientos de datos del problema 2. Procesamiento de los datos requeridos 3. Entrega de los datos procesados

22..99.. RReeggllaass ppaarraa llaa CCoonnssttrruucccciióónn ddee DDiiaaggrraammaass ddee FFlluujjoo 1. Todo diagrama de flujo debe tener un principio (inicio) y un fin (termino) a modo (objeto) que pueda ser utilizado como submódulo de otro módulo de nivel superior. 2. Las líneas de conexión o de flujo deben ser siempre rectas y si es posible que sean sólo verticales y horizontales, no cruzarse ni inclinarse, para conseguir lo anterior se recurrir a conectores numerados convenientemente y solamente en caso estrictamente convenientes. 3. Las líneas que enlazan los símbolos entre si deben estar todas conectadas. Cada línea o flecha debe entrar en un bloque, en un símbolo de decisión, y terminar en “fin” o unirse a otra flecha. 4. Se deben dibujar todos los símbolos de modo que se pueda seguir el proceso visualmente desde arriba hacia abajo (Diseño Top-Down) y de izquierda a derecha. 5. Realizar un gráfico claro y equilibrado procurando que el flujo central del diagrama sea la parte central de la hoja. 6. Evitar la utilización de terminología específica de un lenguaje de programación o de máquina. 7. Se debe dejar un bloque o dos de procesos libres al comienzo del programa, para reservar posiciones de memoria para variables, acumuladores, etc. 8. Indicar con comentarios al margen o mediante el símbolo gráfico para comentarios las variables utilizadas y su descripción, procurando no abusar de su uso. Diferenciar las variables propias del proceso de las pseudovariables o variables ficticias. 9. En las operaciones lógicas recurrir preferentemente a la lógica positiva, por ejemplo: Si a = b (positiva) Si not a<>b (negativa) 10. A cada bloque o símbolo se accesa por arriba y por la izquierda y se sale por abajo y/o por la derecha. Las entradas pueden ser variadas pero la salida es única excepto en los casos de símbolos de decisión. 11. Realizar todas las anotaciones o comentarios marginales al diagrama (en su contexto) para que éste no sólo sea comprensible por la persona que lo elaboró sino también por cualquier persona ajena al mismo. 12. Siempre que sea posible, es conveniente que el diagrama no sobre pase una página, sino es posible numerar adecuadamente las hojas del diagrama y utilizar los correspondientes conectores de página que indiquen sin duda la dirección correcta del flujo.

Page 20: U2 1.1 Programas en Pseudolenguaje

FFuunnddaammeennttooss ddee PPrrooggrraammaacciióónn UUnniiddaadd 22 PPrrooggrraammaacciióónn eenn PPsseeuuddoolleenngguuaajjee

PPrrooggrraammaacciióónn yy aannáálliissiiss ddee ssiisstteemmaass 2200

22..1100.. CCoommpprroobbaacciióónn ddee DDiiaaggrraammaass Terminado el diagrama de flujo se deben tomar un conjunto de datos significativos y comenzar la lectura del mismo en el orden de arriba hacia abajo siguiendo paso a paso los símbolos con sus operaciones correspondientes introduciendo los datos tomados y verificando cómo responde al diagrama de flujo. No se debe pasar a la fase de codificación mientras no se haya comprobado el diagrama de flujo.