Вы находитесь на странице: 1из 15

2.1 Metodologa para la solucin de problemas por medio de computadora. 1.

- Definicin del Problema


Esta fase est dada por el enunciado del problema, el cual requiere una definicin clara y precisa. Es importante que se conozca lo que se desea que realice la computadora; mientras esto no se conozca del todo no tiene mucho caso continuar con la siguiente etapa.

2.- Anlisis del Problema


Una vez que se ha comprendido lo que se desea de la computadora, es necesario definir: Los datos de entrada. Cul es la informacin que se desea producir (salida) Los mtodos y frmulas que se necesitan para procesar los datos. Una recomendacin muy prctica es el que nos pongamos en el lugar de la computadora y analicemos que es lo que necesitamos que nos ordenen y en que secuencia para producir los resultados esperados.

3.- Diseo del Algoritmo


Las caractersticas de un buen algoritmo son: Debe tener un punto particular de inicio. Debe ser definido, no debe permitir dobles interpretaciones. Debe ser general, es decir, soportar la mayora de las variantes que se puedan presentar en la definicin del problema. Debe ser finito en tamao y tiempo de ejecucin.

4.- Codificacin
La codificacin es la operacin de escribir la solucin del problema (de acuerdo a la lgica del diagrama de flujo o pseudocdigo), en una serie de instrucciones detalladas, en un cdigo reconocible por la computadora, la serie de instrucciones detalladas se le conoce como cdigo fuente, el cual se escribe en un lenguaje de programacin o lenguaje de alto nivel.

6.- Prueba y Depuracin


Los errores humanos dentro de la programacin de computadoras son muchos y aumentan considerablemente con la complejidad del problema. El proceso de identificar y eliminar errores, para dar paso a una solucin sin errores se le llama depuracin. La depuracin o prueba resulta una tarea tan creativa como el mismo desarrollo de la solucin, por ello se debe considerar con el mismo inters y entusiasmo. Resulta conveniente observar los siguientes principios al realizar una depuracin, ya que de este trabajo depende el xito de nuestra solucin.

7.- Documentacin
Es la gua o comunicacin escrita es sus variadas formas, ya sea en enunciados, procedimientos, dibujos o diagramas. A menudo un programa escrito por una persona, es usado por otra. Por ello la documentacin sirve para ayudar a comprender o usar un programa o para facilitar futuras modificaciones (mantenimiento).

La documentacin se divide en tres partes: Documentacin Interna: Son los comentarios o mensaje que se aaden al cdigo fuente para hacer ms claro el entendimiento de un proceso. Documentacin Externa: Se define en un documento escrito los siguientes puntos: Descripcin del Problema Nombre del Autor Algoritmo (diagrama de flujo o pseudocdigo) Diccionario de Datos Cdigo Fuente (programa) Manual del Usuario: Describe paso a paso la manera cmo funciona el programa, con el fin de que el usuario obtenga el resultado deseado.

8.- Mantenimiento
Se lleva acabo despus de terminado el programa, cuando se detecta que es necesario hacer algn cambio, ajuste o complementacin al programa para que siga trabajando de manera correcta. Para poder realizar este trabajo se requiere que el programa este correctamente documentado.

2.2 Metodologa para el diseo de software. Top Down


Tambin conocida como de arriba-abajo y consiste en establecer una serie de niveles de mayor a menor complejidad (arriba-abajo) que den solucin al problema. Consiste en efectuar una relacin entre las etapas de la estructuracin de forma que una etapa jerrquica y su inmediato inferior se relacionen mediante entradas y salidas de informacin. Este diseo consiste en una serie de descomposiciones sucesivas del problema inicial, que recibe el refinamiento progresivo del repertorio de instrucciones que van a formar parte del programa. La utilizacin de la tcnica de diseo Top-Down tiene los siguientes objetivos bsicos: - Simplificacin del problema y de los subprogramas de cada descomposicin. - Las diferentes partes del problema pueden ser programadas de modo independiente e incluso por diferentes personas. - El programa final queda estructurado en forma de bloque o mdulos lo que hace ms sencilla su lectura y mantenimiento.

Bottom Up
El diseo ascendente se refiere a la identificacin de aquellos procesos que necesitan computarizarse con forme vayan apareciendo, su anlisis como sistema y su codificacin, o bien, la adquisicin de paquetes de software para satisfacer el problema inmediato. Cuando la programacin se realiza internamente y haciendo un enfoque ascendente, es difcil llegar a integrar los subsistemas al grado tal de que el desempeo global, sea fluido. Los problemas de integracin entre los subsistemas son sumamente costosos y muchos de ellos no se solucionan hasta que la programacin alcanza la fecha lmite para la integracin total del sistema. En esta fecha, ya se cuenta con muy poco tiempo, presupuesto o paciencia de los usuarios, como para corregir aquellas delicadas interfaces, que en un principio, se ignoran.

Aunque cada subsistema parece ofrecer lo que se requiere, cuando se contempla al sistema como una entidad global, adolece de ciertas limitaciones por haber tomado un enfoque ascendente. Uno de ellos es la duplicacin de esfuerzos para accesar el software y ms an al introducir los datos. Otro es, que se introducen al sistema muchos datos carentes de valor. Un tercero y tal vez el ms serio inconveniente del enfoque ascendente, es que los objetivos globales de la organizacin no fueron considerados y en consecuencia no se satisfacen.

2.3 Definicin de lenguajes algortmicos. 2.3.1 Elementos y reglas de la representacin grfica y manuscrita de los algoritmos.
PSEUDOCDIGO. El pseudocdigo o pseudolenguaje, son una serie de instrucciones en nuestro lenguaje natural (espaol, ingles, etc.) y expresiones que representan cada uno de los pasos que resuelven un problema especifico (algoritmo). Es la representacin narrativa de los pasos que debe seguir un algoritmo para dar solucin a un problema determinado. El pseudocdigo utiliza palabras que indican el proceso a realizar, por todo lo anterior es una tcnica NO GRFICA. Se considera un primer borrador, dado que el pseudocdigo tiene que traducirse posteriormente a un lenguaje de programacin. Cabe sealar que el pseudocdigo no puede ser ejecutado por una computadora. La forma en que se escribe un pseudocdigo es la siguiente: 1. Se escribe la palabra pseudocdigo seguida de dos puntos y a continuacin un nombre que describa de manera general el problema a resolver. 2. En caso de haber estructuras se describen en la seccin con este nombre, si no hay se pueden omitir. 3. En caso de haber funciones o mdulos se describen en la seccin con este nombre, si no hay se pueden omitir. 4. En caso de haber constantes se describen en la seccin con este nombre, si no hay se pueden omitir. 5. En caso de haber variables se describen en la seccin con este nombre, si no hay se pueden omitir. 6. Se colocan en orden las instrucciones y expresiones a ejecutar, las cuales deben de estar enumeradas, donde se debe respetar lo siguiente:

La primera instruccin es la palabra inicio. La ltima instruccin es la palabra fin. En caso de estar dentro de una sentencia de seleccin o dentro de una estructura cclica, utilizar una subnumeracin y una sangra. Indicar siempre el final de la estructura de seleccin o estructura cclica antes de continuar con la numeracin normal. A continuacin tenemos el ejemplo de un pseudocdigo, el cual no realiza nada especfico, pero se muestra la estructura que debe de tener.

Pseudocdigo: EJEMPLO
Funciones: F1 recibe en var1 un entero Estructuras: E1 con los campos Campo1 : entero Campo2 : entero

ROTULO O ENCABEZADO

DEFINICIN DE FUNCIONES

DEFINICIN DE ESTRUCTURAS

Constantes:
Const1= 50 Variables: Var3 : entero 1. Inicio 2. Escribir dame un nmero 3. Leer var3
DEFINICIN DE VARIABLES DEFINICIN DE CONSTANTES

4. si var3 == 10 entonces
Escribir hola si no Escribir adios fin si 5. escribir gracias 6. fin
SERIE DE PASOS Y EXPRESIONES A REALIZAR POR EL PROGRAMA, COMENZADO CON LA INSTRUCCIN INICIO Y TERMINANDO CON LA INSTRUCCIN FIN, TODAS ENUMERADAS Y SUBNUMERACIN DENTRO DE UNA ESTRUCTURA DE SELECCIN

En la seccin en la que se colocan los pasos y expresiones a realizar para resolver un problema especfico utilizamos para definir una tarea o proceso determinado las siguientes palabras:

Inicio, Fin. Indica el comienzo y trmino del algoritmo. Escribir. Muestra mensajes e informacin en el monitor. Imprimir. Datos y mensaje que son enviados a la impresora. Leer. Almacena un dato que es capturado desde el teclado en una variable. Guardar en... Indica el(los) dato(s) a guardar en una ubicacin especfica de un dispositivo de
almacenamiento secundario (disquete, disco duro, CD, etc.).

Recuperar desde... Indica la ubicacin especfica de un dispositivo de almacenamiento secundario


(disquete, disco duro, CD, etc.) desde el cual se va a leer informacin y en donde se almacenar temporalmente esta.

Llamar a... Indica que se debe de ejecutar a la funcin o mdulo que se est invocando. Si... entonces. Es una pregunta para una estructura de seleccin, donde si la respuesta es verdad se
realizan unas tareas especficas y cuando es falso se pueden realizar otras.

Si no. Indica el comienzo de las instrucciones a realizar cuando la respuesta a la pregunta


si...entonces es falsa.

Fin si. Indica el trmino de la estructura condicional si...entonces. Casos para... / Fin casos. Indica las acciones a realizar cuando una variable puede tener uno de
varios posibles valores.

Hacer mientras... / fin mientras. Estructura cclica la cual indica un conjunto de instrucciones que
se deben de repetir mientras que la respuesta a la pregunta hacer mientras... sea verdadera.

Repetir / hasta... Estructura cclica la cual indica un conjunto de instrucciones que se deben de
repetir mientras que la respuesta a la pregunta hasta... sea falsa.

Hacer para... hasta ... / fin para. Estructura cclica la cual indica el nmero exacto de veces que un
conjunto de instrucciones que se deben de repetir.

//... Indica que es comentario, el cual solo sirve para documentar nuestra solucin puesto que no se
ejecuta ninguna instruccin.

Ventajas de utilizar un Pseudocdigo

Ocupa muy poco espacio en una hoja de papel Permite representar en forma fcil operaciones repetitivas complejas Es muy fcil pasar de pseudocdigo a un programa en algn lenguaje de programacin ya que solo basta con aprender cmo se maneja cierta instruccin en ese lenguaje.

Si se siguen las reglas se puede observar claramente los niveles que tiene cada operacin debido a la numeracin, subnumeracin y sangras. DIAGRAMA DE FLUJO. Un diagrama de flujo es la representacin grfica de un algoritmo. Tambin se puede decir que es la representacin detallada en Forma Grfica de cmo deben realizarse los pasos en la computadora para producir resultados. Esta representacin grfica se da cuando varios smbolos (que indican diferentes procesos en la computadora), se relacionan entre s mediante lneas que indican el orden en que se deben ejecutar los procesos. Nota. Estos procesos son casi los mismos que se detallaron en la tcnica no grfica (pseudocdigo), pero representados con smbolos. Los smbolos utilizados han sido normalizados por el instituto

norteamericano de normalizacin (ANSI). SMBOLO NOMBRE Terminador DESCRIPCIN Indica el comienzo o termino de nuestro algoritmo, para eso se debe de identificar con la palabra inicio fin. Dentro de el se coloca una expresin para que se ejecute. Dentro de este smbolo se declaran las funciones, mdulos, estructuras, constantes y variables a utilizar durante el algoritmo. DESCRIPCIN

Proceso

Datos

SMBOLO

NOMBRE

Indica que se recibe un dato desde el teclado y dentro de Entrada manual este se coloca la variable en donde se almacenar. Dentro de el se coloca el mensaje y datos que queremos aparezcan en el monitor. Dentro de el se coloca el mensaje y datos que queremos mandar a la impresora.

Pantalla

Impresora o documento

Indica el(los) dato(s) a guardar en una ubicacin especfica de Almacenamiento un dispositivo de almacenamiento secundario (disquete, disco duro, CD, etc.). Indica la ubicacin especfica de un dispositivo de almacenamiento secundario (disquete, disco duro, CD, etc.) desde el cual se va a leer informacin y en donde se almacenar temporalmente esta. Indica que se debe de ejecutar a la funcin o mdulo que esta escrita dentro de l.

Datos almacenados

Llamada a funcin o mdulo

Se utiliza para continuar la secuencia del algoritmo en otra Conector en la parte de la hoja. El conector misma pgina debe de estar en ambos lados y con el mismo nmero. Se utiliza para continuar la secuencia del algoritmo en otra pgina. El conector debe de estar en ambos lados y con el mismo nmero. DESCRIPCIN Se utiliza para plantear una pregunta y con la respuesta se optar por avanzar por solo uno de los caminos posibles.

Conector con otra pgina

SMBOLO

NOMBRE

Decisin

Flechas

Se usan para indicar el flujo o camino a seguir por el programa.

Tabla de los Conjunto de smbolos para disear diagramas de flujo.

Reglas para disear un buen diagrama de Flujo

Al no haber un smbolo para colocar el encabezado del diagrama, se


recomienda colocarlo en la parte superior como un comentario.

Se debe comenzar el algoritmo con el smbolo inicio, al igual que


indicar el trmino con el smbolo fin.

Despus
datos.

del

smbolo

inicio,

se

colocan

todas

las

funciones,

mdulos, estructuras, variables y constantes a usar en el smbolo

Todas las lneas que conectan a dos smbolos deben de tener una
punta de flecha. Una flecha con doble sentido es incorrecta.

Se deben se usar solamente lneas de flujo horizontal y/o vertical. Se debe evitar el cruce de lneas utilizando los conectores. Se deben usar conectores solo cuando sea necesario. No deben quedar lneas de flujo sin conectar. Se deben trazar los smbolos de manera que se puedan leer de arriba
hacia abajo y de izquierda a derecha.

Todo

texto

escrito

dentro

de

un

smbolo

deber

ser

escrito

claramente, evitando el uso de muchas palabras.

Al tomar una decisin, se debe indicar el valor de los caminos


posibles, generalmente son falso y verdadero.

// Diagrama de flujo que evalua la edad inicio edad : entera cuanto aos tienes:

edad

F Eres Viejo

Edad < 50

V Eres Joven

Fin Ilustracin 1 Ejemplo de cmo debe estar diseado un diagrama de flujo

DIAGRAMA ESTRUCTURADO N-S (NASSI-SCHNEIDERMAN). El diagrama estructurado Nassi-Scheneiderman es una mezcla de un diagrama de flujo con el pseudocdigo. Este diagrama se denomina as en honor a sus inventores. Se parece al diagrama de flujo ya que de manera visual podemos identificar el camino que se sigue para resolver un algoritmo, pero sin utilizar flechas, ya que todas las acciones se colocan en cajas contiguas. Se parece al pseudocdigo debido a que cada accin a realizar se escribe de igual manera pero dentro de las ya mencionadas cajas sin utilizar una numeracin la cual en ocasiones es difcil de realizar. Un buen diagrama N-S debe de cumplir con lo siguiente:

En la primera caja de accin se coloca el encabezado o titulo del


algoritmo.

En la segunda la palabra inicio y en la ltima la instruccin fin.

En la tercera las variables, funciones (solo la declaracin),


estructuras y constantes.

En caso de las estructuras de seleccin y cclicas, indicar el


valor del camino posible para evitar confusiones.

Debe quedar diseado completamente en una sola pgina; nunca se


debe continuar un diagrama en otra hoja (salvo un mdulo o funcin), ya que este es considerado como una sola accin. Sin embargo, presenta los siguientes inconvenientes:

Difciles de entender cuando el problema se vuelve muy complejo Difciles de actualizar y cuando se tienen que modificar, la labor
se vuelve tediosa pues hay que redibujar las cajas que los componen.

Generalmente no caben en el ancho de una hoja. se necesitan hojas grandes para disearlos y aun as es muy
probable que no sea el espacio suficiente. Aunque cada una de las acciones a realizar se coloca dentro de una caja, las estructuras de seleccin y cclicas tienen una pequea variacin.

SMBOLO
Condicin

NOMBRE

Condicin
F V

DESCRIPCIN Es una pregunta, donde si la respuesta es verdad se realizan unas tareas especificas y cuando es falso se pueden realizar otras. Indica el conjunto de acciones que se deben de repetir hasta que la respuesta a la condicin sea verdadera.

acciones Condicin Condicin acciones

Repetir hasta

Indica el conjunto de acciones que se deben de realizar Hacer mientras mientras que la respuesta a la condicin sea verdadera.

Condicin acciones

Hacer Para

Indica el nmero exacto de veces que un conjunto de instrucciones se deben de repetir.

Tabla de los Smbolos para estructuras de Seleccin y Cclicas

continuacin

tenemos

un

ejemplo

de

cmo

se

debe

disear

un

diagrama N-S:

Diagrama N-S: Gordo o Flaco

INICIO
Variables Peso: Real Escribir cuanto pesas? Leer Peso Peso > 80 Falso Escribir ESTAS FLACO Verdadero Escribir ESTAS GORDO

FIN

IMPLEMENTACIN DE ALGORITMOS SECUENCIALES (UTILIZANDO NOTACIN ALGEBRAICA).

Los algoritmos ms sencillos de realizar son los que no toman decisiones, tan solo se dedican a realizar o ejecutar instruccin tras instruccin en el orden determinado. Estos secunciales, algoritmos en las que estn una representados accin por las sigue estructuras a otra en

(instruccin)

secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y as sucesivamente hasta el fin del proceso. De manera general un algoritmo con una estructura secuencial se representa de la siguiente forma en las tres diferentes tcnicas

algortmicas (el siguiente ejemplo no realiza nada en especfico, solo es de carcter ilustrativo):

// EJEMPLO. Inicio Pseudocdigo: EJEMPLO. 1. 2. 3. 4. 5. Inicio Accin 1 Accin 2 Accin 3 Fin Variables: // EJEMPLO. Inicio Variables: Accin 1 Accin 2 Accin 3 Fin Accin 1 Accin 2 Accin 3 Fin

Ilustracin 2 Ejemplo de cmo se disea un algoritmo secuencial.

En leer la

las

estructuras

secunciales,

se

encuentran

las

acciones

instrucciones de inicio y fin, escribir en monitor, imprimir en impresora, desde el teclado, ejecucin de guardar en una ubicacin especfica, para obtener un recuperar resultado desde una ubicacin especfica, llamar y ejecutar a una funcin o mdulo y expresiones aritmticas guardndolo en una variable. A continuacin vamos a realizar disear un algoritmo:
Realizar un algoritmo que calcule la edad de una persona a la cual solo se le solicitar el ao en que naci. Paso I. Analizar el problema. Cada uno de estos datos se debe de expresar en variables y no en frases largas. Salidas Entrada Constantes Procesos Ao_nac Edad Edad = Ao_act Ao_nac Ao_act Paso II. Disear El algoritmo PSEU DOC DI GO

ejemplo, resolvindolos en las

tres tcnicas algortmicas, para lo cual debemos de recordar que para

Ejemplo 1.

Pseudocdigo: Edad personal Variables: Edad: entera // almacenar la edad del usuario Ao_nac: entera // guardar el ao en que naci

Ao_act: entera // Contendr el ao en que estamos 1. 2. 3. 4. 5. 6. Inicio Escribir En que ao naciste? // muestra el mensaje que esta entre comillas Leer Ao_nac // guarda el dato que es tecleado por el usuario en la variable Escribir En que ao estamos? Leer Ao_act Edad = Ao_act Ao_nac // realiza una operacin y almacena el resultado en // la variable de la izquierda de la expresin. 7. Escribir Tu edad actual es:, Edad // Cuando deseamos mostrar el contenido // de una variable, esta no debe de // estar entre comillas 8. Fin . DIAG RAM A D E F LU JO // Diagrama de Flujo: Edad personal Inicio // Declaracin de variables Edad : entera Ao_act : entera Ao_nac : entera en que ao naciste? // Guarda el dato que es tecleado por el usuario // en la variable Ao_nac en que ao estamos? Ao_act Edad = Ao_act Ao_nac // realiza una operacin y almacena el resultado // en la variable de la izquierda de la expresin. // Cuando deseamos mostrar el // contenido de una variable, esta no // debe de estar entre comillas Tu edad actual es:, Edad fin Diagrama N-S // diagrama N-S : Edad Personal Inicio Variables: Edad: entera // almacenar la edad del usuario Ao_nac: entera // guardar el ao en que naci Ao_act: entera // Contendr el ao en que estamos Escribir En que ao naciste? // muestra el mensaje que esta entre comillas Leer Ao_nac // guarda el dato que es tecleado por el usuario en la variable Escribir En que ao estamos? Leer Ao_act Edad = Ao_act Ao_nac // realiza una operacin y almacena el resultado en la variable de la // izquierda de la expresin. Escribir Tu edad actual es:, Edad // Cuando deseamos mostrar el contenido de una variable, esta no // debe de estar entre comillas Fin // Muestra el mensaje que esta entre comillas

Paso III. Prueba Del Algoritmo. Valores a entradas Procesos Ao_nac = 1977 Edad = Ao_act Ao_nac Ao_act = 2004 Edad = 2004 - 1977

Resultados

Edad = 27

Ejemplo

Supongamos que en una tortillera se necesita un sistema que calcule y le muestre el total a pagar por cada cliente, si sabemos que cada kilo de tortilla cuesta $4.50.
Constantes P_kilo = 4.5 PSEU DOC DI GO Procesos Total = kilos * P_kilos

Paso I. Analizar el problema. Salidas Entrada Total Kilos

Paso II. Disear El algoritmo Pseudocdigo: total a pagar Constantes: P_kilo: real = 4.5 Variables: 1. 2. 3. 4. 5. 6. Total : real Kilos : real Inicio Escribir Cuantos Kilos quieres? Leer kilos Total = Kilos * P_kilos Escribir el total a pagar es:, Total Fin DIAG RAM A D E F LU JO

// Diagrama de Flujo: Total a pagar Inicio CONSTANTES: P_Kilo : real = 4.5 VARIABLES: Total : real Kilos : real Cuantos kilos quieres? Kilos

Total = Kilos * P_kilos El total a pagar es:, total fin

Diagrama N-S // diagrama N-S : total a pagar Inicio Constantes: P_kilo: real = 4.5 Variables: Total : real Kilos : real Escribir Cuantos Kilos quieres? Leer kilos Total = Kilos * P_kilos Escribir el total a pagar es:, Total Fin Paso III. Prueba Del Algoritmo. Valores a entradas Kilos = 3.5

Procesos

Resultados

Total = Kilos * P_kilos Total = 3.5 * 4.5

Total = 15.75

Вам также может понравиться