Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Jose Jesus Garca Rueda. Adaptado de El algoritmo, una iniciacin a la programacin (http://www.desarrolloweb.com/manuales/67/) http://www.desarrolloweb.com/manuales/67/) y de Diseo estructurado de algoritmos (http://www.itver.edu.mx/comunidad/material/algoritmos/)
Introduccin
La principal razn para aprender a programar es utilizar la computadora para resolver problemas. Algoritmo: se deriva de la traduccin al latn de la palabra rabe alkhowarizmi, nombre del matemtico rabe que enunci reglas paso a paso para sumar, restar, multiplicar y dividir nmeros decimales. Un algoritmo es una serie de pasos organizados que describe el proceso a seguir para solucionar un problema especfico. Dos tipos de algoritmos:
Cualitativos: Emplean palabras. Ej: Ej: Receta de cocina, cambiar una rueda, usar la gua telefnica. Cuantitativos: Utilizan clculos numricos. Ej: Ej: Resolver una ecuacin de 2 grado.
Un algoritmo cotidiano
Algoritmo para leer las pginas de un libro:
1. 2. 3. 4.
Inicio. Abrir el libro en la 1 pgina. Leer la pgina. Es la ltima que deseo leer?
S: Ve al paso 7. No: Ve al paso 5
5. 6. 7. 8.
Lenguajes algortmicos
Un lenguaje algortmico es un conjunto de smbolos y reglas que permiten describir de manera explcita un proceso. Es independiente de cualquier lenguaje de programacin. Debe permitir una traduccin clara del algoritmo al programa. Dos tipos de lenguajes algortmicos:
Grficos: Por ejemplo, los diagramas de flujo. No grficos: Por ejemplo, el pseudocdigo. pseudocdigo.
INICIO Edad: Entero ESCRIBE cul es tu edad? Lee Edad SI Edad >= 18 entonces ESCRIBE Eres mayor de edad FINSI Escribe fin del algoritmo FIN
Creacin de algoritmos
Proceso de programacin tpico:
Dado un determinado problema el programador idea una solucin y la expresa mediante un algoritmo. Codificacin del algoritmo. Ejecucin del programa.
Definicin del problema: clara y precisa. Es casi la mitad del trabajo Anlisis del problema: Colocarse en el lugar del ordenador y analizar qu requeriramos para realizar la tarea.
Datos de entrada. Informacin a producir (salida) Mtodos y frmulas para procesar los datos
3.
Tcnicas de diseo
Top Down: Down: Se descompone sucesivamente el problema inicial en subproblemas. subproblemas.
Con cada descomposicin, se simplifican los subproblemas. subproblemas. Las diferentes partes del problema pueden ser programadas de forma independiente. El programa final queda estructurado en forma de bloques o mdulos.
Difcil llegar a una integracin tal que el desempeo global sea fluido. Proclive a la duplicacin de esfuerzos. Pueden no satisfacerse los requisitos globales de la aplicacin.
Diagramas de flujo
Es una forma de representar grficamente un algoritmo. Cada paso se escribe dentro de un smbolo. Los pasos se conectan unos con otros mediante lneas de flujo. Son fciles de disear, pero difciles de actualizar. Los smbolos que utiliza estn normalizados:
Inicio/Final Entrada/ Salida Proceso Salida por impresora Conector dentro pgina Conector fuera pgina Salida por pantalla
Mientras
Repite hasta
Lneas de flujo
Pseudocdigo
Mezcla de lenguaje de programacin y de lenguaje natural. Representacin narrativa de los pasos que debe seguir un algoritmo. Utiliza palabras, no grficos. Ventajas:
Ocupa menos espacio. Permite representar fcilmente operaciones repetitivas complejas. Es muy fcil pasar del pseudocdigo al lenguaje de programacin. Quedan claros los niveles que tiene cada operacin.
Ejemplo de pseudocdigo
Algoritmo que lee 3 nmeros, los suma e imprime su resultado.
PSEUDOCDIGO sumatorio VARIABLES eN1, eN1, eN2, eN2, 3N3, eSuma: eSuma: Entero INICIO ESCRIBE Dame tres nmeros: LEE eN1, eN1, eN2, eN2, eN3 eSuma = eN1 + eN2 + eN3 ESCRIBE El resultado de la suma es: , eSuma FIN
EJEMPLO
Disear un algoritmo que, dada una operacin aritmtica expresada en el formato habitual (y String), vaya leyndola carcter a carcter, para as calcular su resultado. Respetar las reglas tpicas de precedencia entre operaciones aritmticas (+ y - < * y /)
Paso 1: Anlisis
Datos de entrada: una cadena de caracteres representando una operacin aritmtica. Datos de salida: Un nmero, resultado de realizar la operacin aritmtica. Forma de operar: Emplearemos dos pilas, una de operadores y otra de operandos. operandos.
En la primera guardaremos los operadores que vayamos leyendo, siempre que su precedencia sea mayor que los operadores ya en la pila. De no ser as, se extraen los operadores de precedencia mayor y se operan. En la segunda iremos guardando los operandos que vayamos leyendo, as como los resultados de las operaciones parciales.
10