You are on page 1of 8

DESARROLLO DE LA LOGICA ALGORITMICA

2.1. METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS.


• Metodología para la resolución de problemas Definición del Problema.

Esta fase está dada por el enunciado del problema, el cual requiere una definición 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. Análisis 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 información que se desea producir (salida)

• Los métodos y fórmulas que se necesitan para procesar los datos.

• Una recomendación muy práctica 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 METODOLOGÍA PARA EL DISEÑO DE SOFTWARE: TOP DOWN, BOTTOM UP, MODULAR
Y PROGRAMACIÓN ESTRUCTURADA.
¿Qué hay que saber para construir o elegir una metodología?

La metodología debe ajustarse a los objetivos

2. La metodología debe cubrir el ciclo entero de desarrollo de software.

3. La metodología debe integrar las distintas fases del ciclo de desarrollo

4. La metodología debe incluir la realización de validaciones

5. La metodología debe soportar la determinación de la exactitud del sistema a través del ciclo de
desarrollo.

6. La metodología debe ser la base de una comunicación efectiva.

7. La metodología debe funcionar en un entorno dinámico orientado al usuario

8. La metodología debe especificar claramente los responsables de resultados

9. La metodología debe poder emplearse en un entorno amplio de proyectos software

10. La metodología se debe de poder enseñar

11. La metodología debe estar soportada por herramientas CASE

12. La metodología debe soportar la eventual evolución del sistema

13. La metodología debe contener actividades conducentes a mejorar el proceso de desarrollo de


software.
Programación modular o top down
Esta metodología, conocida como modularización ó diseño Top Down, es una de las técnicas más
importantes para lograr un buen diseño de programa.

La programación modular es uno de los métodos de diseño más flexibles y potentes para mejorar
la productividad de un programa. La descomposición de un programa en módulos independientes
más simples se conoce también como el método de “divide y vencerás". Se diseña cada módulo con
independencia de los demás y, siguiendo un método descendente, se llega hasta la descomposición
final del problema en módulos en forma jerárquica.

En consecuencia, el programa se divide en módulos (partes independientes), cada uno de los cuales
ejecuta una única actividad o tarea.

A continuación se presenta la sintaxis a utilizar para la definición de módulos:

• Proceso nombre del módulo

• comenzar

• {Acciones a realizar dentro del módulo}

• Fin

• El esquema general de un programa que utilice módulos y variables siguientes:

• 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

Programación estructurada
La programación estructurada es una forma de escribir programación de computadora de forma
clara, para ello utiliza únicamente tres estructuras: secuencial, selectiva e iterativa; siendo
innecesario y no permitiéndose el uso de la instrucción o instrucciones de transferencia
incondicional (GOTO).
Hoy en día las aplicaciones informáticas son mucho más ambiciosas que las necesidades de
programación existentes en los años 60, principalmente debido a las aplicaciones gráficas, por lo
que las técnicas de programación estructurada no son suficientes lo que ha llevado al desarrollo de
nuevas técnicas tales como la programación orientada u objetos y el desarrollo de entornos de
programación que facilitan la programación de grandes aplicaciones.

Ventajas de la programación estructurada


Con la programación 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 más fáciles de entender, ya que pueden ser leído de forma secuencial, sin
necesidad de hacer seguimiento a saltos de línea (GOTO) dentro de los bloques de código para
entender la lógica.

2. La estructura del programa es clara puesto que las instrucciones están más ligadas o relacionadas
entre sí.

3. Reducción del esfuerzo en las pruebas. El seguimiento de los fallos o errores del programa
("debugging") se facilita debido a la estructura más visible, por lo que los errores se pueden detectar
y corregir más fácilmente.

4. Reducción de los costos de mantenimiento de los programas.

5. Programas más sencillos y más rápidos (ya que es más fácil su optimización).

6. Los bloques de código son auto explicativos, lo que facilita a la documentación.

7. Los GOTO se reservan para construir las instrucciones básicas (selección e iteración)

Inconvenientes de la programación estructurada


El principal inconveniente de este método de programación, es que se obtiene un único bloque de
programa, que cuando se hace demasiado grande puede resultar problemático su manejo, esto se
resuelve empleando la programación modular, definiendo módulos interdependientes
programados y compilados por separado. Un método un poco más sofisticado es la programación
por capas, en la que los módulos tienen una estructura jerárquica muy definida y se denominan
capas.

2.3. DEFINICIÓN DE LENGUAJES ALGORÍTMICOS.


Definición de Algoritmo.
"Un algoritmo se define como un método que se realiza paso a paso para solucionar un problema
que termina en un número finito de pasos".

Las características fundamentales que debe cumplir todo algoritmo son:

• Debe ser preciso. E indicar el orden de realización 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 algún momento; o sea debe tener
un número finito de pasos.

• La definición de un algoritmo debe describir tres partes: Entrada, Proceso y Salida.

Diseñar 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.

Definición de Lenguajes Algorítmicos.


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

La clasificación de los lenguajes para algoritmos puede enunciarse de la siguiente manera:

• Lenguaje Natural.

• Lenguaje de Diagrama de Flujo.

• Lenguaje Natural de Programación.

• Lenguaje de Programación de Algoritmos.

Lenguaje Natural.
Es aquél que describe en español, para nuestro caso, los pasos a seguir utilizando un vocabulario
cotidiano. Se le conoce como lenguaje jerga cuando se utilizan términos especializados de una
determinada ciencia, profesión o grupo.

Lenguaje de Diagrama de Flujo.


Es aquél que se vale de diversos símbolos 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 cómputo.

Lenguaje Natural de Programación.


Son aquéllos que están orientados a la solución de problemas que se definen de una manera precisa.
Generalmente son aplicados para la elaboración de fórmulas o métodos científicos.

El lenguaje natural tiene las siguientes características:

• Evita la ambigüedad (algo confuso que se puede interpretar de varias maneras).

• Son precisos y bien definidos.

• Utilizan términos familiares al sentido común.

• Elimina instrucciones innecesarias.

Diagrama de flujo
Un diagrama de flujo es la forma más tradicional de especificar los detalles algorítmicos de un
proceso. Se utiliza principalmente en programación, economía y procesos industriales; estos
diagramas utilizan una serie de símbolos con significados especiales. Son la representación gráfica
de los pasos de un proceso, que se realiza para entenderlo mejor. Son modelos tecnológicos
utilizados para comprender los rudimentos de la programación lineal.

Flecha. Indica el sentido y trayectoria del proceso de información o tarea.

Rectángulo. Se usa para representar un evento o proceso determinado. Éste es controlado dentro
del diagrama de flujo en que se encuentra. Es el símbolo más comúnmente utilizado. Se usa para
representar un evento que ocurre de forma automática y del cual generalmente se sigue una
secuencia determinada.

Rombo. Se utiliza para representar una condición. Normalmente el flujo de información entra por
arriba y sale por un lado si la condición se cumple o sale por el lado opuesto si la condición no se
cumple. El rombo además especifica que hay una bifurcación

Círculo. Representa un punto de conexión 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 mayoría de las veces se utilizan números en los
mismos.

Pseudocódigo.
Es un lenguaje de especificación de algoritmos y no puede ser ejecutado por una computadora, la
ventaja del pseudocódigo es que el programador se puede concentrar en la lógica y en las
estructuras de control y no preocuparse de las reglas de un lenguaje específico. Es fácil de modificar
y puede ser rápidamente traducido a un lenguaje de programación. Representa acciones sucesivas
en un lenguaje similar al humano.
Para ejemplificar los problemas a resolver o para clarificar los conceptos, se usarán herramientas
comunes y familiares para los programadores, estas herramientas son: pseudocódigo y diagramas
de flujo. En esta sección se detallarán las reglas del pseudocódigo 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 pseudocódigo

Para definir las variables a utilizar

• VARIABLES. Se deben especificar las variables a utilizar así como su tipo (entero, alfanumérico,
etcétera). Esto sirve para familiarizarse con la creación de variables e ir creando una estandarización
propia de cada programador.

Ejemplo:

VARIABLES Núm., Suma de tipo entero

En los casos anteriores se usan mayúsculas 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 dónde debe empezar a idear la forma en que trabajará el programa.

Especificar donde termina el cuerpo del algoritmo con la palabra Fin

Indicar dónde termina el cuerpo del algoritmo facilita la lectura del mismo.

• Ejemplo

ALGORITMO Suma

VARIABLES Núm., Suma, Cont. de tipo entero

• INICIO

Cuerpo del algoritmo

• FIN

Representación 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. También se representaron ciclos con las palabras Desde y Hasta

ALGORITMO Suma

VARIABLES Núm., Suma de tipo entero

INICIO
Desde Cont. = 1 Hasta Cont. = 10

Incrementar Cont. en uno

FIN

Representación de Decisiones

Para representar decisiones se usaron las palabras Si, Sí No

ALGORITMO Suma

VARIABLES Núm., Suma de tipo entero

INICIO

Si Cont. < 10 Entonces

Incrementar Cont. en uno

ALGORITMO Suma

VARIABLES Núm., 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 indentación, esto hará más claro nuestro pseudocódigo.

2.-Cada programador fija sus reglas y estándares para la creación de pseudocódigo, los creadores
de este material trataron de igualarlo lo más posible al lenguaje natural para que las personas que
están empezando a familiarizarse con estas herramientas lograran una mejor comprensión del
mismo.

3.-Un buen programador hace uso de estas herramientas como apoyo en la creación,
mantenimiento y documentación 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 cuál es su
definición. 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 más formal, un algoritmo es una secuencia
finita de operaciones realizables, no ambiguas, cuya ejecución da una solución de un problema.
Los algoritmos no se implementan sólo como programas, algunas veces en una red neuronal
biológica (por ejemplo, el cerebro humano implementa la aritmética básica o, incluso, una rata sigue
un algoritmo para conseguir comida), también en circuitos eléctricos, 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 notación algebraica en el desarrollo de algoritmos logró un gran avance para los
programadores ya que fue una forma más tangible de desarrollar sus programas, por medio de la
lógica. Pues este se basa en un método que simplifica las relaciones entre los casos, el la logarítmica
se usan ciertos tipos de cuadros para identificar su comportamiento.

2.4 PRUEBA Y DEPURACION


Prueba y Depuración

La Prueba se realiza tras la compilación. Si tras la compilación se presentan errores (errores de


compilación) 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 todavía 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 librerías del programa del compilador; este proceso de montaje produce
un programa ejecutable.

La Depuración 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 compilación. Se producen normalmente por un uso incorrecto de las reglas del
lenguaje de programación y suelen ser errores de sintaxis, por lo tanto la computadora no puede
comprender la instrucción, y obviamente no se obtendrá el programa objeto, y el compilador
imprimirá una lista de todos los errores encontrados durante la compilación.

2.- Errores de ejecución. Estos errores se producen por instrucciones que las computadoras pueden
comprender, pero no ejecutar. Ejemplos de éstos son: una división por cero, y raíces cuadradas de
números negativos; por lo que en este caso se detiene la ejecución del programa y se imprime un
mensaje de error.

3.- Errores lógicos. Se producen en la lógica del programa y la fuente del error suele ser el diseño
del algoritmo. Estos errores son los más difíciles de detectar, ya que el programa puede funcionar y
no producir errores de compilación ni ejecución, y solo puede detectarse cuando se advierte un
error por la obtención de resultados incorrectos.

En este caso se debe volver a la fase del diseño del algoritmo, modificarlo, cambiar el programa
fuente, compilar y ejecutar una vez más.

You might also like