miércoles, 2 de abril de 2008

RESUMEN DE CLASES.

UNIDAD 2

ALGORITMOS Y METODOLOGÍA DE LA PROGRAMACIÓN.

Concepto de Algoritmo
Un Algoritmo es un conjunto de pasos, procedimientos o acciones que nos permiten alcanzar un resultado o resolver un problema.

Etapas para la solución de un problema
Partiendo del hecho que el fin de un Algoritmo es “resolver un problema”, es conveniente seguir algunas etapas o fases para la solución de problemas:
Esquema 2.1. Etapas para la solución de un problema

Características de los Algoritmos
Precisión: Los pasos a seguir en el algoritmo deben ser representados claramente.
Determinismo: El algoritmo, dado un conjunto de datos idénticos de entrada, siempre debe arrojar los mismos resultados.

Secciones o módulos de un Algoritmo
Módulo 1: representa la operación o acción que permite el ingreso de los datos del problema.
Módulo 2: representa la operación o conjunto de operaciones secuenciales, cuyo objetivo es obtener la
solución al problema.

Fases para la resolución de problemas mediante estructuras algorítmicas
Las fases para la resolución de problemas mediante estructuras algorítmicas son los pasos sucesivos a seguir para la resolución de problemas con ayuda de la computadora. En términos generales un problema puede ser resuelto siguiendo tres fases:

Análisis del Problema
Esta fase requiere una clara definición donde se contemple exactamente lo que debe hacer el programa y el resultado o solución deseada. En la fase de
diseño se determina como hace el programa la tarea solicitada.
Cada programa bien diseñado consta de un programa principal (el módulo de nivel más alto) que llama a subprogramas (módulos) de nivel mas bajo, que a su vez pueden llamar a otros subprogramas.
Este proceso implica la ejecución de estos pasos hasta que el programa se ha terminado:
• Programar un módulo
• Comprobar el módulo
• Si es necesario, depurar el módulo
• Combinar el módulo, con el resto de los otros módulos

El diseño del algoritmo es independiente del lenguaje de programación en el que se vaya a codificar posteriormente.

Implementación del Algoritmo
Para implementar un algoritmo en la computadora, se debe ejecutar los siguientes pasos:
• Codificación
• Compilación y ejecución
• Verificación
• Depuración
• Documentación
Codificación: Es la escritura en un lenguaje de programación de la representación de un algoritmo. Dado que el diseño del algoritmo es independiente del lenguaje de programación utilizado en su implementación, el código puede ser escrito con igual facilidad en un lenguaje o en otro.
Esta operación se realiza con un editor de texto, posteriormente el programa fuente se convierte en un archivo de programa que se guarda en un disco.
El programa fuente debe ser traducido a lenguaje máquina. Si al compilar el programa fuente se presentan errores (errores de compilación), es necesario volver a editar el programa, corregir los errores y compilar de nuevo. Al ya no existir errores en el programa fuente se debe instruir al sistema operativo para que efectúe la fase de montaje o enlace, del programa fuente con las librerías del programa del compilador. Este proceso de montaje produce un programa ejecutable.
Suponiendo que no existen errores durante la ejecución (errores en tiempo de ejecución), se obtendrá la salida de resultados corre ctos del programa.
Verificación y depuración: Es el proceso de ejecución del programa con una amplia variedad de datos de entrada, llamados datos de test o prueba como son: valores normales de entrada, valores extremos de entrada que comprueben los límites del programa y valores de entrada que comprueben aspectos especiales del programa. Estos determinarán si el programa contiene errores o no.

Al ejecutar un programa se pueden producir tres tipos de errores:

Errores de Compilación: Se producen normalmente por un uso incorrecto de las reglas del lenguaje de programación, suelen ser errores de sintaxis.

Errores Lógicos: Se producen en la lógica del programa y la fuente del error suele ser el diseño del algoritmo, son más difíciles de detectar puesto que el programa puede funcionar y no producir errores de compilación ni de ejecución pero regresará resultados incorrectos. En este caso se debe regresar a la fase de diseño, modificar el algoritmo, cambiar el programa fuente y compilar y depurar una vez más.
La documentación puede ser interna y externa. La documentación externa incluye análisis, diagramas de flujo y/o pseudocódigos, manuales de usuarios con instrucciones para ejecutar el programa y para interpretar los resultados.
La documentación es vital cuando se desea corregir posibles errores futuros o bien cambiar el programa.
Estos cambios se denominan mantenimiento del programa.

Herramientas de Programación
Las herramientas de programación más utilizadas comúnmente para diseñar algoritmos son:
• Pseudocódigos
• Diagramas de flujo

Pseudocódigo
Es una herramienta utilizada para el diseño de programas que permite al programador expresar sus pensamientos de una forma clara, utilizando su lenguaje natural y mostrando el orden de ejecución de las sentencias del programa sin ninguna ambigüedad. El Pseudocódigo no está diseñado como lenguaje compilable. Pasar del programa escrito en Pseudocódigo al programa escrito en un lenguaje cualquiera de programación resulta muy sencillo.

Numéricos Encontramos los enteros y los reales Enteros: 7, 128, -15, 36, -74
Reales: 7.5, -12.6, 48.1, -365.9

Alfanuméricos
Son datos cuyo contenido pueden ser letras del abecedario (a, b, c, ...Pueden ser de tipo carácter (simples) y cadena de caracteres (estructurado).
- Los demás caracteres pueden ser letras (a, b, c, ...Constantes: son datos que no cambian durante la ejecución de un programa. Variables: son objetos que pueden cambiar su valor durante la ejecución de un programa.
- Estructuras de control
Por lo regular en un programa los enunciados son ejecutados uno después del otro, en el orden en que aparecen escritos. Todos los programas pueden ser escritos en términos de solo tres estructuras de control (estructuras algorítmicas),
a saber, la estructura de secuencia, la estructura de selección y la estructura de repetición (bucle o iteración).

Estructura de secuencia Independiente
La estructura de secuencia independiente se da cuando las acciones
pueden intercambiar su orden de ejecución sin alterar el resultado final.

Estructura de secuencia Dependiente
Se da cuando las acciones no pueden intercambiar su orden de ejecución
sin alterar el resultado final.

Estructuras de selección simples
Las estructuras de selección simples se conocen como “Si entonces” (IF
THEN).

Estructuras de selección dobles
Las estructuras de selección dobles se conocen como “Si
entonces / sino” (IF THEN / ELSE). 2.3.3. Estructura de repetición (bucle o iteración)
Las estructuras algorítmicas repetitivas están definidas por ciclos (conjunto de instrucciones que se
ejecutan repetidamente). Las estructuras de repetición se clasifican de la siguiente manera:

CLASIFICACION DE LAS ESTRUCTURAS ALGORITMICAS REPETITIVAS ESTRUCTURA REPETITIVA NOMBRE DESCRIPCIÓN
Repetir (para) FOR Es la estructura algorítmica adecuada para utilizar en un ciclo que se ejecutará un número definido de veces.
Hacer, Mientras DO WHILE Es considerado un bucle de prueba posterior, conocido como bucle controlado a la salida.
La sentencia para requiere que conozcamos por anticipado el número de veces que se ejecutan las sentencias del interior del bucle.
El pseudocódigo es el siguiente:
Desde cont <-- valor inicial hasta valor final hacer sentencias fin_desde
Al ejecutarse la sentencia para (o desde) la primera vez, el valor inicial se asigna a cont, que se denomina variable de control, y a continuación se ejecuta la sentencia del interior del bucle. Al llegar al final del bucle se verifica si el valor final es mayor que el valor inicial; en caso negativo se incrementa el
valor de la variable de control en uno y se vuelven a ejecutar todas las sentencias del interior del bucle,hasta que la variable de control sea mayor que el valor final, en cuyo momento se termina el bucle.

Los valores inicial y final pueden ser tanto expresiones como constantes.
• Es ilegal intentar modificar el valor de la variable de control, valor inicial y el valor final dentro del bucle.

Sentencia Mientras..Por esta razón a estos bucles se les denomina bucles condicionales.
Si se evalúa a falso, ninguna acción se realiza y el programa prosigue en la siguiente sentencia después del bucle. Este proceso se repite mientras que la expresión lógica sea verdadera.
La sentencia do while es considerada un bucle de prueba posterior, conocida como bucle controlado a la salida.
La sintaxis de la instrucción do while es:
Do
Instrucción;
while(expresión);

No hay comentarios: