Home
Recomendaciones sobre documentación y pseudocódigo
Contents
1. permite cierta flexibilidad a la hora de expresarse Esto es as en tanto en cuanto que el interprete del c digo no es una m quina si no un humano Otra ventaja del pseudoc digo es que permite independizar la descripci n del programa de los lenguajes de programaci n Un mismo pseudoc digo deber a poder ser implementado mediante varios lenguajes La flexibilidad que aporta el pseudoc digo permite al programador realizar una descripci n bastante ajustada del dise o del programa sin tener que ocuparse de los detalles de implementaci n De echo un mismo algoritmo se puede describir empleando distintos niveles de detalle As se hace especialmente conveniente como herramienta de dise o descendente Un posible pseudoc digo Existen m ltiples propuestas de pseudoc digo Cualquiera que consiga expresar un programa de manera precisa nos valdr a Hemos elegido una propuesta en concreta basada en el libro de Cormen et al que nos sirva de modelo para las explicaciones tanto en teor a como en pr cticas Ahora bien cuando teng is que emplear una descripci n en pseudoc digo no es obligatorio seguir esta propuesta sino que pod is si os sent is m s c modos elegir otra que fuera igual de v lida En el siguiente apartado se indican una serie de convenciones m nimas que definen la propuesta de pseudoc digo Es posible que en determinados programas sea necesario expandir la propuesta para poder expresarse correctamente En e
2. sino lee accion si accion PAUSAR estado lt PAUSADA sino mueveUsuario accion tablero si esTresenraya tablero USUARIO estado FIN_PARTIDA imprimeVictoria USUARIO si estado JUGANDO si sonTablas tablero estado lt FIN_PARTIDA imprimeTablas sino cambia tablero turno mientras estado lt gt FIN_PARTIDA y estado lt gt PAUSADA A METODOLOG A Y TECNOLOG A DE LA a Pp PROGRAMACI N I Escuela Ingenier a Inform tica Polit cnica Curso Primero 2008 09 Superior Procedimiento mueveOrdenador Este procedimiento se ha elegido como ejemplo de procedimiento que se emplea en la funci n juega Faltar a describir alguna otra de las funciones relevantes del procedimiento juego esTresenraya sonTablas para completar el dise o Entrada tablero con la configuraci n de las fichas actual y con al menos una casilla vac a Salida mismo tablero con una nueva ficha colocada haz i aleatorio 1 N j aleatorio 1 N mientras tablero casillas i j lt gt VACIA tablero casillas i j ORDENADOR tablero ocupadas lt tablero ocupadas 1 10
3. seguida de el ndice del elemento entre par ntesis cuadrados Ej A i indica acceder al i simo elemento de la tabla A Con la notaci n se puede especificar un rango de valores dentro de una tabla Ejemplo para indicar la subtabla formada por j elementos A 1 A 2 A 3 A j se emplear a A 1 j 6 Los campos de los registros estructuras se acceden mediante el car cter punto 7 Los par metros de una funci n se pasan por valor la funci n llamada recibe su propia copia de los par metros y si se realiza una modificaci n en el valor del par metro ste no afecta a en la funci n que ha realizado la llamada Cuando se pasa un registro estructura se copia el puntero a los datos pero no los campos De esta manera si x es un par metro de la funci n llamada la asignaci n x y dentro de la funci n llamada no repercute en la funci n que ha realizado la llamada En cambio la asignaci n A x 3 si que es visible 8 Los operadores booleanos se eval an en cortocircuito Esto es cuando se eval a la expresi n a y b primero se eval a a Si a se eval a como FALSO entonces es imposible que la expresi n entera se eval e como VERDADERO as que no es necesario evaluar b En cambio si a se eval a como VERDADERO se debe evaluar b para determinar el valor de la expresi n De esta forma se puede especificar una expresi n como a NIL y f a b sin tener que preocuparnos por Ala b cuando x es NIL A
4. A METODOLOG A Y TECNOLOG A DE LA a Pp PROGRAMACI N I Escuela Ingenier a Inform tica Polit cnica Curso Primero 2008 09 Superior Documentaci n Introducci n La creaci n de nuevo sistema inform tico conlleva diversas fases que van m s all de la codificaci n del mismo Un modelo tradicional de dise o establece cinco fases an lisis dise o codificaci n pruebas y mantenimiento En la primera se realiza un estudio de los requisitos del sistema y la viabilidad del mismo La fase de dise o identifica y define los elementos que precisa el proyecto y la interconexi n entre los mismos Del resultado de estas dos fases se obtiene un plan que se utilizar como gu a para la codificaci n del sistema El producto resultante de la codificaci n se ver sometido a una bater a de pruebas que aseguren la fiabilidad del mismo Finalmente el ciclo de vida de un sistema inform tico no termina en las pruebas si no que se extiende mientras que est en uso As es necesario realizar y preveer un mantenimiento del mismos Todas las fases deber an estar debidamente documentadas permitiendo que en futuro se puedan acometer cambios y mejoras en el sistema de manera sencilla En este modelo cl sico se contempla adem s que se pueden pasar por las distintas fases m s de una vez permitiendo retroceder a una fase anterior si se descubre una deficiencia que impida continuar De esta manera el producto final se obtiene mediante una serie de
5. METODOLOG A Y TECNOLOG A DE LA a y PROGRAMACI N I Escuela Ingenier a Inform tica Polit cnica Curso Primero 2008 09 Superior Ejemplo 1 Ordenaci n por inserci n En este ejemplo se plantea como describir el algoritmo de ordenaci n por inserci n Se han dado dos posibles soluciones al mismo algoritmo cada una con un grado de detalle diferente Finalmente se muestran tres implementaciones distintas para los pseudoc digos planteados una en Pascal y dos en C Ambas propuestas comparten las siguientes entradas y tienen la siguiente salida esperada Entrada A 1 N secuencia de elementos a1 az az an Salida Permutaci n a 4 a2 a 3 an de la entrada tal que a 1 lt a 2 lt a3 lt an donde lt es una relaci n de orden entre los elementos Ejemplo 1 1 Pseudoc digo descripci n muy general desde i 2 hasta longitud A insertar A i en A 1 i manteni ndola ordenada Ejemplo 1 3 Pseudoc digo descripci n detallada Entorno i j n meros enteros x elemento auxiliar desde i 2 hasta longitud A x Ali ji mientras j gt 0 y x lt A lj 1 Al A 1 decrementa j All lt x Ejemplo 1 4 Implementaci n en Pascal del pseudoc digo propuesto for i 2 to N do begin x A il J S i while j gt 0 and x lt A 3 1 do begin A j Jem end A j x end A j 11 3 1 A METODOLOG A Y TECNOLOG A DE LA lt Pp PROGRAMACI N I lt Escue
6. a parte del programa con un nivel de detalle diferente desde lo m s gen rico a los m s concreto La composici n de estas tres partes junto con otras que no sean incluido dan lugar al dise o completo del programa Programa principal El programa principal consta de un bucle que muestra el men principal y recoge la acci n a realizar por el usuario Entorno tablero Tablero accion Accion imprimeMenu INICIO_PARTIDA mientras lee accion lt gt TERMINAR segun accion INICIAR estado juega INICIO_PARTIDA tablero CONTINUAR estado lt juega JUGANDO tablero SALVAR guarda tablero CARGAR abre tablero imprimeMenu estado Destacar que el procedimiento imprimeMenu saca por pantalla un men que var a seg n el estado en que se encuentre la partida A METODOLOG A Y TECNOLOG A DE LA a y PROGRAMACI N I Escuela Ingenier a Inform tica Polit cnica Curso Primero 2008 09 Superior Funci n juega Parte que resuelve la secuenciaci n de movimientos Esta funci n es llamada desde el programa principal cuando el usuario quiere iniciar una partida Entrada estado de la partida tablero con la configuraci n de las fichas actual Salida estado de la partida FIN_PARTIDA o PAUSADA si estado INICIO_PARTIDA inicializar tablero estado JUGANDO haz sijuegaOrdenador tablero turno mueveOrdenador tablero si esTresenraya tablero ORDENADOR estado lt FIN_PARTIDA imprimeVictoria ORDENADOR
7. iza cuando o bien alg n jugador consigue alinear tres de sus fichas en cualquiera de las direcciones posibles vertical horizontal o diagonal o bien cuando no queda ninguna casilla vac a d nde colocar ficha A continuaci n se van a describir las posible estructuras de datos necesarias para un programa que implementara dicho juego Primero se realiza una breve presentaci n y a continuaci n una descripci n detallada de las mismas Para representar el tablero se ha definido el tipo tablero que consiste en un registro que contiene una matriz de NxM de casillas el n mero de casillas ocupadas y cu l de los jugadores posee el turno Cada casilla puede estar vac a ocupada por una ficha del usuario o por una ficha del ordenador Por ltimo el tipo de datos acci n recoge las posibles acciones del usuario 1 METODOLOG A Y TECNOLOG A DE LA PROGRAMACI N I UA p Escuela Ingenier a Inform tica Polit cnica Curso Primero 2008 09 Superior Constantes Nombre Descripci n Valor por defecto N N mero de filas que tiene el tablero 3 M N mero de columnas que tiene el tablero 3 Tipos Nombre Tipo Descripci n Definici n Estado enumerado Posibles estados en los que se puede INICIO_PARTIDA encontrar la partida JUGANDO PAUSADA FIN_PARTIDA Accion enumerado Diferentes acciones que puede JUGAR realizar el usuario SALVAR CARGAR TERMINAR CONTINUAR PAUSAR Casilla enu
8. l siguiente apartado se incluyen diversos ejemplos en los que se muestra el modo de empleo y la potencialidad del mismo Convenciones del pseudoc digo 1 La indentaci n o sangrado se emplea para se alar el comienzo y fin de un bloque v anse ejemplos Esta regla tambi n se aplica a la sentencia condicional si si no 2 T H Cormen C L Leiserson R L Rivest C Stein Introduction to Algorithms Second Edition The MIT Press 2003 pp 19 20 A METODOLOG A Y TECNOLOG A DE LA lt Pp PROGRAMACI N I lt Escuela Ingenier a Inform tica Polit cnica Curso Primero 2008 09 Superior 2 Las sentencias de repetici n desde hasta mientras y haz mientras y las estructura condicionales si si no y segun tienen una interpretaci n similar a la que se da en C a las estructuras for while do while if then else case v anse ejemplos 3 La asignaci n de un valor a una variable se realiza mediante el s mbolo lt Ej i lt 30 Se puede asignar un mismo valor a varias variables en una nica l nea concatenando sucesivas asignaciones Ej i lt j lt 30 Asigna 30 tanto a i como aj 4 Las variables que se empleen siempre se entiende locales al algoritmo que se est describiendo Las variables globales deben ser declaradas expl citamente global edad aunque no se recomienda su uso a no ser que sea estrictamente necesario 5 Los elementos de una tabla array se acceden especificando el nombre de la tabla
9. la Ingenier a Inform tica Polit cnica Curso Primero 2008 09 Superior Ejemplo 1 5 Dos implementaciones en C del pseudoc digo propuesto for i 1 i lt n i for i l i lt n 1 x A il x A il for j i j gt 0 amp amp A j 1 gt x j j i ADI A j 11 while j gt 0 amp amp A j 1 gt x A Jl x A 3 A j 11 A J T A j x Ejemplo 2 Comprobar si un n mero es primo Pseudoc digo de una funci n que determina si un n mero es o no primo Este ejemplo permite mostrar como se realizan if anidados Entrada n n mero natural gt 0 Salida verdadero si es primo falso en caso contrario Entorno i n mero entero esPrimo booleano sin lt 3 esPrimo verdadero sino sinespar esPrimo falso sino 3 mientras i lt n 2 y ino es divisor den i i 2 si i es divisorden esPrimo falso sino esPrimo lt verdadero devuelve esPrimo A METODOLOG A Y TECNOLOG A DE LA a y PROGRAMACI N I Escuela Ingenier a Inform tica Polit cnica Curso Primero 2008 09 Superior Ejemplo 3 Dise o descendente Programa Tres en Raya Este ejemplo muestra como emplear el pseudoc digo para describir un programa mediante un dise o descendente Primeramente se definen las estructuras y tipos de datos necesarios que se van a emplear La parte algor tmica se ha dividido en tres programa principal funci n juega y procedimiento mueveOrdenador Cada una describe un
10. merado Posibles valores que puede almacenar VACIA una casilla del tablero USUARIO VACIA si la casilla est libre ORDENADOR USUARIO si la casilla contiene una ficha del usuario ORDENADOR ficha del ordenador Matriz array Tabla que contiene las casillas del 1 N 1 MM de tablero Casilla Tablero estructura Estructura que define el tablero y el casillas Matriz estado del mismo ocupadas Entero casillas Tablero de NxM casillas turno Booleano ocupadas N mero de casillas ocupadas en cada momento es decir casilla lt gt VACIA turno VERDADERO si juega el ordenador y FALSO si juega el usuario t Todos los nuevos tipos de datos definidos se nombran empezando por may scula Las constantes se escriben con todas las letras en may sculas A METODOLOG A Y TECNOLOG A DE LA lt Pp PROGRAMACI N I lt Escuela Ingenier a Inform tica Polit cnica Curso Primero 2008 09 Superior Pseudoc digo Entendemos por pseudoc digo un lenguaje semiformal que facilita la descripci n algor tmica de un programa El pseudoc digo se entiende como lenguaje t cnico as que se espera que el lector posea conocimientos de programaci n ej analistas desarrolladores En este sentido obedece a unas reglas m nimas conocidas por la comunidad Ahora bien no es necesaria emplear una validaci n formal como puede ser el caso de un lenguaje de programaci n de alto nivel ej C Pascal si no que se
11. refinamientos sucesivos Al finalizar cada una de las fases se cumple un hito del proyecto el cual suele venir acompa ado de un entregable Este puede ser por ejemplo un nuevo documento o un listado de c digo o una nueva versi n de un entregable anterior En el presente documento nos centramos en explicar como se describir an las estructuras de datos y la algoritmia de un proyecto Ambas podr an incluirse en entregables por ejemplo tanto en la fase de dise o como en la de documentaci n Ahora bien suponemos que se ha escogido un dise o estructurado para acometer el proyecto y en este sentido ir n las indicaciones Existen otros paradigmas de programaci n tales como orientaci n a objetos que requieren un enfoque distinto en la elaboraci n de los documentos Dentro del dise o estructurado la herramientas que vamos a plantear permiten una descripci n detallada del proyecto Existen otros modelos ej DFD DEC que permiten realizar una descripci n de m s alto nivel pero que quedan fuera de este documento Estructuras de datos Nicolas Wirth acu o el famoso lema de la programaci n estructurada Algoritmos Estructuras de Datos Programas En este apartado nos centraremos en describir las estructuras de datos mientras que en el segundo lo dedicaremos a la parte algor tmica ya que es ese en el orden en el que deber an aparecer explicadas en la documentaci n Aunque durante la fase de dise o la elecci n de las estruc
12. turas de datos y algoritmos de nuevo consiste en un A METODOLOG A Y TECNOLOG A DE LA a Pp PROGRAMACI N I Escuela Ingenier a Inform tica Polit cnica Curso Primero 2008 09 Superior proceso de refinamiento a la hora presentar el resultado final se plantean primeramente las estructuras de datos y a continuaci n los algoritmos que se desprenden La definici n de las estructuras parte de conjunto de tipos de datos b sicos y de mecanismos que nos permitan generar nuevos tipos de datos Uno de nuestros objetivos es conseguir una descripci n del proyecto independiente del lenguaje de programaci n escogido Para ello se proponen emplear una serie de tipos de datos gen ricos que son comunes a la mayor parte de lenguajes estructurados Tipos b sicos entero real booleano car cter enumerado Tipos compuesto array matriz estructura cadena La declaraci n de las estructuras de datos constar de dos partes En la primera se definir n las constantes disponibles En la segunda los tipos de datos que se van a emplear Cada constante tipo o campo de un nuevo tipo ir acompa ado de un comentario que explique la necesidad del mismo Ejemplo 1 Tres en raya Las tres en rayas es juego de dos jugadores Se juega sobre un tablero de NxM y con dos tipos de fichas tradicionalmente un X O Cada jugador coloca en turnos sucesivos una ficha sobre alguna de las casillas vac as del tablero El juego final
Download Pdf Manuals
Related Search
Related Contents
MODE D`EMPLOI - Compagnie Events Navigon 42 Easy Europe TAA Products TAASP10 loudspeaker E-BIKEBOARD Benutzerhandbuch Xilinx Command Line Tools User Guide (UG628) Speco DMS-3TS Billetterie_Theatre_Terre-Sainte_files/MODE D`EMPLOI CG-FPU-R01 取扱説明書 - 三洋電機 Copyright © All rights reserved.
Failed to retrieve file