Vous êtes sur la page 1sur 7

UNIDAD II

DESARROLLO DE LA LOGICA ALGORITMICA


2.1. METODOLOGA PARA LA SOLUCIN DE PROBLEMAS.
Metodologa para la resolucin de problemasDefinicin 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. Anlisis del Problema
Una vez que se ha comprendido lo que se desea de la computadora, es necesario definir:
Los datos de entrada (inicio).
Cual es la informacin que se desea producir (salida)
Los mtodos y frmulas que se necesitan para procesar los datos.
Una recomendacin muy practica 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.

2.2 METODOLOGA PARA EL DISEO DE SOFTWARE: TOP DOWN, BOTTOM UP, MODULAR Y
PROGRAMACIN ESTRUCTURADA.
Qu hay que saber para construir o elegir una metodologa?
La metodologa debe ajustarse a los objetivos
2. La metodologa debe cubrir el ciclo entero de desarrollo de software.
3. La metodologa debe integrar las distintas fases del ciclo de desarrollo
4. La metodologa debe incluir la realizacin de validaciones
5. La metodologa debe soportar la determinacin de la exactitud del sistema a travs del ciclo de
desarrollo.
6. La metodologa debe ser la base de una comunicacin efectiva.
7. La metodologa debe funcionar en un entorno dinmico orientado al usuario
8. La metodologa debe especificar claramente los responsables de resultados
9. La metodologa debe poder emplearse en un entorno amplio de proyectos software
10. La metodologa se debe de poder ensear
11. La metodologa debe estar soportada por herramientas CASE
12. La metodologa debe soportar la eventual evolucin del sistema
13. La metodologa debe contener actividades conducentes a mejorar el proceso de desarrollo de
software.
Programacin modular o top down
Esta metodologa, conocida como modularizacin diseo Top Down, es una de las tcnicas ms
importantes para lograr un buen diseo de programa.
La programacin modular es uno de los mtodos de diseo ms flexibles y potentes para
mejorar la productividad de un programa. La descomposicin de un programa en mdulos
independientes ms simples se conoce tambin como el mtodo de divide y vencers". Se disea
cada mdulo con independencia de los dems y, siguiendo un mtodo descendente, se llega hasta

la descomposicin final del problema en mdulos en forma jerrquica.


En consecuencia, el programa se divide en mdulos (partes independientes), cada uno de los
cuales ejecuta una nica actividad o tarea.
A continuacin se presenta la sintaxis a utilizar para la definicin de mdulos:
proceso nombre del mdulo
comenzar
{ acciones a realizar dentro del mdulo }
fin
El esquema general de un programa que utilice mdulos y variables siguiente:
programa nombre del programa
procesos
{indicar aqu TODOS los procesos a utilizar proceso nombre del proceso
comenzar
{ acciones a realizar dentro del proceso }
fin
variables
{ declarar aqu las variables del programa }
comenzar
{ acciones del programa principal }
fin
Programacin estructurada
La programacin estructurada es una forma de escribir programacin decomputadora de forma
clara, para ello utiliza nicamente tres estructuras: secuencial, selectiva e iterativa; siendo
innecesario y no permitindose el uso de la instruccin o instrucciones de transferencia
incondicional ( GOTO ).
Hoy en da las aplicaciones informticas son mucho ms ambiciosas que las necesidades de
programacin existentes en los aos 60, principalmente debido a las aplicaciones grficas, por lo
que las tcnicas de programacin estructurada no son suficientes lo que ha llevado al desarrollo de
nuevas tcnicas tales como la programacin orientada o objetos y el desarrollo de entornos de
programacin que facilitan la programacin de grandes aplicaciones.
Ventajas de la programacin estructurada
Con la programacin estructurada, elaborar programas de computador sigue siendo una labor que
demanda esfuerzo, creatividad, habilidad y cuidado. Sin embargo, con este estilo podemos obtener
las siguientes ventajas:
1. Los programas son ms fciles de entender, ya que pueden ser ledo de forma secuencial, sin
necesidad de hacer seguimiento a saltos de lnea (GOTO) dentro de los bloques de cdigo para
entender la lgica.
2. La estructura del programa es clara puesto que las instrucciones estn ms ligadas o relacionadas
entre s.
3. Reduccin del esfuerzo en las pruebas. El seguimiento de los fallos o errores del programa
("debugging") se facilita debido a la estructura ms visible, por lo que los errores se pueden detectar
y corregir ms fcilmente.

4. Reduccin de los costos de mantenimiento de los programas.


5. Programas ms sencillos y ms rpidos (ya que es ms fcil su optimizacin).
6. Los bloques de cdigo son auto explicativos, lo que facilita a la documentacin.
7. Los GOTO se reservan para construir las instrucciones bsicas (seleccin e iteracin)
Inconvenientes de la programacin estructurada

El principal inconveniente de este mtodo de programacin, es que se obtiene un nico bloque de


programa, que cuando se hace demasiado grande puede resultar problemtico su manejo, esto se
resuelve empleando la programacin modular, definiendo mdulos interdependientes programados
y compilados por separado. Un mtodo un poco ms sofisticado es la programacin por capas, en la
que los mdulos tienen una estructura jerrquica muy definida y se denominan capas.

2.3. DEFINICIN DE LENGUAJES ALGORTMICOS.


Definicin de Algoritmo.
"Un algoritmo se define como un mtodo que se realiza paso a paso para solucionar un problema
que termina en un nmero finito de pasos".
Las caractersticas fundamentales que debe cumplir todo algoritmo son:
Debe ser preciso. e indicar el orden de realizacin de cada paso.
Debe ser definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.
Debe ser finito. Si se sigue un algoritmo, se debe terminar en algn momento ; o sea debe tener un
nmero finito de pasos.
La definicin de un algoritmo debe describir tres partes : Entrada, Proceso y Salida.
Disear un algoritmo para cambiar una llanta a un coche.
Inicio.
Traer gato.
Levantar el coche con el gato.
Aflojar tornillos de las llantas.
Sacar los tornillos de las llantas.
Quitar la llanta.
Poner la llanta de repuesto.
Poner los tornillos.
Apretar los tornillos.
Bajar el gato.
Fin.

Definicin de Lenguajes Algortmicos.


Los algoritmos pueden describirse utilizando diversos lenguajes. Cada uno de estos lenguajes
permiten describir los pasos con mayor o menor detalle.

La clasificacin de los lenguajes para algoritmos puede enunciarse de la siguiente manera:


Lenguaje Natural.
Lenguaje de Diagrama de Flujo.
Lenguaje Natural de Programacin.
Lenguaje de Programacin de Algoritmos.
Lenguaje Natural.
Es aqul que describe en espaol, para nuestro caso, los pasos a seguir utilizando un vocabulario
cotidiano. Se le conoce como lenguaje jerga cuando se utilizan trminos especializados de una
determinada ciencia, profesin o grupo.
Lenguaje de Diagrama de Flujo.
Es aqul que se vale de diversos smbolos para representar las ideas o acciones a desarrollar. Es til
para organizar las acciones o pasos de un algoritmo pero requiere de etapas posteriores para
implementarse en un sistema de cmputo.

Lenguaje Natural de Programacin.


Son aqullos que estn orientados a la solucin de problemas que se definen de una manera precisa.
Generalmente son aplicados para la elaboracin de frmulas o mtodos cientficos.
El lenguaje natural tiene las siguientes caractersticas:
Evita la ambigedad (algo confuso que se puede interpretar de varias maneras).
Son precisos y bien definidos.
Utilizan trminos familiares al sentido comn.
Elimina instrucciones innecesarias.
Diagrama de flujo
Un diagrama de flujo es la forma ms tradicional de especificar los detalles algortmicos de un
proceso. Se utiliza principalmente en programacin, economa y procesos industriales; estos
diagramas utilizan una serie de smbolos con significados especiales. Son la representacin grfica
de los pasos de un proceso, que se realiza para entenderlo mejor. Son modelos tecnolgicos
utilizados para comprender los rudimentos de la programacin lineal.
Flecha. Indica el sentido y trayectoria del proceso de informacin o tarea.
Rectngulo. Se usa para representar un evento o proceso determinado. ste es controlado dentro
del diagrama de flujo en que se encuentra. Es el smbolo ms comnmente utilizado. Se usa para
representar un evento que ocurre de forma automtica y del cual generalmente se sigue una
secuencia determinada.
Rombo. Se utiliza para representar una condicin. Normalmente el flujo de informacin entra por
arriba y sale por un lado si la condicin se cumple o sale por el lado opuesto si la condicin no se

cumple.el rombo adems especifica que hay una bifurcacin


Crculo. Representa un punto de conexin entre procesos. Se utiliza cuando es necesario dividir un
diagrama de flujo en varias partes, por ejemplo por razones de espacio o simplicidad. Una referencia
debe darse dentro para distinguirlo de otros. La mayora de las veces se utilizan nmeros en los
mismos.

Pseudocdigo.
Es un lenguaje de especificacin de algoritmos y no puede ser ejecutado por una computadora, la
ventaja del pseudocdigo es que el programador se puede concentrar en la lgica y en las
estructuras de control y no preocuparse de las reglas de un lenguaje especfico. Es fcil de modificar
y puede ser rpidamente traducido a un lenguaje de programacin.Representa acciones sucesivas en
un lenguaje similar al humano.
Para ejemplificar los problemas a resolver o para clarificar los conceptos, se usarn herramientas
comunes y familiares para los programadores, estas herramientas son: pseudocdigo y diagramas
de flujo. En esta seccin se detallarn las reglas del pseudocdigo que se utiliza en las diferentes
unidades de este material.
Especificar el nombre del algoritmo
ALGORITMO Ejemplo
Es un elemento meramente informativo para otra persona que no sea el creador del pseudocdigo
Para definir las variables a utilizar
VARIABLES. Se deben especificar las variables a utilizar as como su tipo (entero, alfanumrico,
etctera). Esto sirve para familiarizarse con la creacin de variables e ir creando una estandarizacin
propia de cada programador.
Ejemplo:
VARIABLES Num, Suma de tipo entero
En los casos anteriores se usan maysculas para identificar el nombre del algoritmo y el o los
nombres de las variables a utilizar.
Especificar donde comienza el cuerpo del algoritmo con la palabra Inicio
Es muy importante definir donde comienzan las instrucciones del algoritmo, para que el
programador sepa donde debe empezar a idear la forma en que trabajar el programa.
Especificar donde termina el cuerpo del algoritmo con la palabra Fin
Indicar donde termina el cuerpo del algoritmo facilita la lectura del mismo.
Ejemplo
ALGORITMO Suma
VARIABLES Num, Suma, Cont de tipo entero
INICIO
Cuerpo del algoritmo
FIN

Representacin de Ciclos
Para representar un ciclo, hemos usado la palabra Inicio para indicar el inicio del ciclo y Fin para
representar el fin del ciclo. Tambin se representaron ciclos con las palabras Desde y Hasta
ALGORITMO Suma
VARIABLES Num, Suma de tipo entero
INICIO
Desde Cont = 1 Hasta Cont = 10
Incrementar Cont en uno
FIN
Representacin de Decisiones
Para representar decisiones se usaron las palabras Si, Si No
ALGORITMO Suma
VARIABLES Num, Suma de tipo entero
INICIO
Si Cont < 10 Entonces
Incrementar Cont en uno
ALGORITMO Suma
VARIABLES Num, Suma de tipo entero
INICIO
Desde Cont = 1 Hasta Cont = 10
Incrementar Cont en uno
Salir
FIN
Notas:
1.-Es muy importante tomar en cuenta la indentacin, esto har ms claro nuestro pseudocdigo.
2.-Cada programador fija sus reglas y estndares para la creacin de pseudocdigo, los creadores de
este material trataron de igualarlo lo ms posible al lenguaje natural para que las personas que
estn empezando a familiarizarse con estas herramientas lograran una mejor comprensin del
mismo.
3.-Un buen programador hace uso de estas herramientas como apoyo en la creacin,
mantenimiento y documentacin de sus programas.

2.3.2 IMPLEMENTACION DE ALGORITMOS SECUENCIALES (UTLIZANDO NOTACION


ALGEBRAICA)
Seguramente muchas veces has escuchado la palabra algoritmo, pero nunca has sabido cual es su
definicin. Pues bien un algoritmo es un conjunto finito de instrucciones o pasos que sirven para
ejecutar una tarea o resolver un problema. De un modo ms formal, un algoritmo es una secuencia
finita de operaciones realizables, no ambiguas, cuya ejecucin da una solucin de un problema.
Los algoritmos no se implementan slo como programas, algunas veces en una red neuronal
biolgica (por ejemplo, el cerebro humano implementa la aritmtica bsica o, incluso, una rata sigue
un algoritmo para conseguir comida), tambin en circuitos elctricos, en instalaciones industriales o
maquinaria pesada. Se puede decir en pocas palabras que nuestra vida es un ejemplo de algoritmo,
pues al desarrollar nuestros quehacer diarios desarrollamos una serie de pasos ordenados, as
podremos quedar satisfechos con los resultados.

El ingreso de la notacin algebraica en el desarrollo de algoritmos logr un gran avance para los
programadores ya que fue una forma mas tangible de desarrollar sus programas, por medio de la
lgica. Pues este se basa en un mtodo que simplifica las relaciones entre los casos, el la logaritmia
se usan ciertos tipos de cuadros para identificar su comportamiento.
2.4 PRUEBA Y DEPURACION
Prueba y Depuracin
La Prueba se realiza tras la compilacin.Si tras la compilacin se presentan errores (errores de
compilacin) en el programa fuente, es preciso volver a editar el programa, corregir los errores y
compilar de nuevo, este proceso se repite hasta que no se producen errores.
De esta manera se obtiene el programa objeto, que todava no es ejecutable directamente, pero si no
contiene errores se debe instruir al sistema para que realice la fase de montaje o enlace del
programa objeto con las libreras del programa del compilador; este proceso de montaje produce un
programa ejecutable.
La Depuracin es el proceso de encontrar los errores del programa y corregir o eliminar dichos
errores.Cuando se ejecuta un programa, se pueden producir tres tipos de errores:
1.- Errores de compilacin. Se producen normalmente por un uso incorrecto de las reglas del
lenguaje de programacin y suelen ser errores de sintaxis, por lo tanto la computadora no puede
comprender la instruccin, y obviamente no se obtendr el programa objeto, y el compilador
imprimir una lista de todos los errores encontrados durante la compilacin.
2.- Errores de ejecucin. Estos errores se producen por instrucciones que las computadoras pueden
comprender, pero no ejecutar. Ejemplos de stos son: una divisin por cero, y races cuadradas de
nmeros negativos; por lo que en este caso se detiene la ejecucin del programa y se imprime un
mensaje de error.
3.- Errores lgicos. Se producen en la lgica del programa y la fuente del error suele ser el diseo del
algoritmo. Estos errores son los ms difciles de detectar, ya que el programa puede funcionar y no
producir errores de compilacin ni ejecucin, y solo puede detectarse cuando se advierte un error
por la obtencin de resultados incorrectos.
En este caso se debe volver a la fase del diseo del algoritmo, modificarlo, cambiar el programa
fuente, compilar y ejecutar una vez ms

Vous aimerez peut-être aussi