Diseño de algoritmos



Documentos relacionados
Algoritmos y Diagramas de Flujo 2

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

COMO CREAR UN DIAGRAMA DE FLUJO

Estructuras de Control - Diagrama de Flujo

Distinguir las diferentes estructuras de repetición utilizadas en problemas con ciclos: mientras, haga-mientras, repita-hasta, para.

Estructuras de Control - Diagrama de Flujo

Tecnologías en la Educación Matemática. Expresiones. Datos. Expresiones Aritméticas. Expresiones Aritméticas 19/08/2014

construcción de programas Prof. Eliana Guzmán U.

Curso PHP Módulo 1 R-Luis

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

Módulo 9 Sistema matemático y operaciones binarias

Metodología de la programación y desarrollo de software. Marta Zorrilla Universidad de Cantabria

Área Académica: Ingeniería en Computación. Materia: Fundamentos de programación. Tema: Diagramas de flujo y pseudocódigo

UNIDAD DE APRENDIZAJE IV

Decisión: Indican puntos en que se toman decisiones: sí o no, o se verifica una actividad del flujo grama.

Ejemplos de conversión de reales a enteros

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.

En la actualidad ASCII es un código de 8 bits, también conocido como ASCII extendido, que aumenta su capacidad con 128 caracteres adicionales

Estructura de Datos y de la Información. Pilas y expresiones aritméticas

Introducción a la Computación

Notas de Teórico. Sistemas de Numeración

Preliminares. Tipos de variables y Expresiones

ANEXO 2: REPRESENTACION DE LA INFORMACION EN LOS COMPUTADORES

Programación en lenguaje C++

TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA

x

1 La Resolución de Problemas utilizando la Computadora

GUÍA DE TRABAJO Tecnología en Sistemas de Información

ENTORNO DE TRABAJO DE WORD 2007

Matemáticas Básicas para Computación

guía para LOS PADRES APOYANDO A SU HIJO EN QUINTO GRADO MATEMÁTICAS

AUTOR CARLOS EDUARDO BUENO VERGARA JORGE ARMANDO BUENO VERGARA USO DE LOS OBJETOS DEL PROGRAMA. Dfd INFORMÁTICA II PROFESOR. JOSÉ FRANCISCO AMADOR

CONTENIDOS. 2. Entidades primitivas para el desarrollo de algoritmos.

Resolución de problemas en paralelo

TEMA 2: Representación de la Información en las computadoras

UNIDAD 6. POLINOMIOS CON COEFICIENTES ENTEROS

Ecuaciones de primer grado con dos incógnitas

ICM Fundamentos de Computación

Estadística con Excel Informática 4º ESO ESTADÍSTICA CON EXCEL

Fortran tiene dos tipos diferentes de subprogramas, las funciones y las subrutinas.

CAPÍTULO 3. HERRAMIENTA DE SOFTWARE DE PLANEACIÓN DE

Unidad 1 Sistemas de numeración Binario, Decimal, Hexadecimal

Tema 2. Diseño de algoritmos y programas 1. Tema 2. Diseño de algoritmos y programas

DESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO

Informática Bioingeniería

UNIDADES DE ALMACENAMIENTO DE DATOS

DIAGRAMAS DE GANTT DIAGRAMAS DE FLUJO Y PSEUDOCODIGOS COMO HERRAMIENTAS PARA LA PROGRAMACION DE JUEGOS PEDAGOGICOS ERIKA VANNESSA MARTINEZ SUAZA

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso v1.0 (05.03.

Introducción a la Computación

Intérprete entre el Operador y el Ordenador.

Matemática de redes Representación binaria de datos Bits y bytes

SISTEMAS DE ECUACIONES LINEALES

Capítulo 4 Procesos con estructuras de repetición

recomendable para la fluidez de la lectura y entendimiento que se definan o conceptualicen dentro de las bases teóricas. 2. La redacción en tercera

SUMA Y RESTA DE FRACCIONES

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática

Llamamos potencia a todo producto de factores iguales. Por ejemplo: 3 4 =

Materia: Informática. Nota de Clases Sistemas de Numeración

CAPITULO V. Cuando hablamos de los lenguajes de programación nos referimos a diferentes formas en las que se puede escribir el programa del usuario.

Tema 2 : Códigos Binarios

Capítulo VI DESIGUALDADES E INECUACIONES

Resolución de Problemas

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

Proceso de desarrollo del software modelo en cascada

Comenzando con MATLAB

Sistemas de Numeración

SIMPLESFONDOS. Contenido

Introducción a la Programación 11 O. Humberto Cervantes Maceda

Tema: CREACIÓN DE CONSULTAS E INFORMES EN UNA BASE DE DATOS CON MICROSOFT ACCESS 2013.

Metodología centrada en la Experiencia del Usuario

Informática. Algoritmos. Baños García Yesenia, Lic. Comp. Hernández Nájera Aracely, Lic. Comp. Enero 2012.

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

ARREGLOS DEFINICION GENERAL DE ARREGLO

Sistemas de numeración

Profr. Efraín Soto Apolinar. La función lineal. y = a 0 + a 1 x. y = m x + b

DOMINIO Y RANGO DE UNA FUNCIÓN I N D I C E. martilloatomico@gmail.com. Página. Titulo:

Manual Básico. Writer Impress Calc Base

Tema 2. La Información y su representación

Sintaxis y Convenciones de Java. M. en C. Erika Vilches

CLASE 12.-INSERTAR COLUMNAS

Sistema binario. Representación

INSTITUTO UNIVERSITARIO DE TECNOLOGÍA JOSE LEONARDO CHIRINO PUNTO FIJO EDO-FALCON CATEDRA: ARQUITECTURA DEL COMPUTADOR PROFESOR: ING.

Clases de apoyo de matemáticas Fracciones y decimales Escuela 765 Lago Puelo Provincia de Chubut

Multiplicar con rectas

SUMADOR BINARIO. Instituto Internacional de Investigación de Tecnología Educativa

MANUAL DE NAVEGACIÓN DEL SIIA-WEB versión PRONAD

NÚMEROS NATURALES Y NÚMEROS ENTEROS

Sistemas Numéricos. M. en C. Erika Vilches

EL PROCESO DE DISEÑO DEL SOFTWARE

Guía para el Examen de Computación Temario

Una variable de clase escalar tiene un nivel de indirección igual a 1. Por ejemplo, las variables i, b y x definidas como se muestra a continuación.

1. SISTEMAS DIGITALES

METODOLOGIA DE LA PROGRAMACION

TECHNOLOGY EXPERTISE, ACCESS & LEARNING FOR ALL TEXANS

Módulo I - Word. Iniciar Word Finalizar Word Definición de elementos de pantalla Escribir texto en un documento El cursor...

Algoritmos. Autor: José Ángel Acosta Rodríguez

Capítulo 9. Archivos de sintaxis

Matemáticas Básicas para Computación

promedio = nint((notas(1) + notas(2) + notas(3) + & notas(4) + notas(5) + notas(6)) / 6.0) print *, 'Su promedio es', promedio

Transcripción:

Diseño de algoritmos Jose Jesus García Rueda. Adaptado de El algoritmo, una iniciación a la programación (http://www.desarrolloweb.com/manuales/67/ http://www.desarrolloweb.com/manuales/67/) ) y de Diseño estructurado de algoritmos (http://www.itver.edu.mx/comunidad/material/algoritmos/) Introducción La principal razón para aprender a programar es utilizar la computadora para resolver problemas. Algoritmo : se deriva de la traducción al latín de la palabra árabe alkhowarizmi, nombre del matemático árabe que enunció reglas paso a paso para sumar, restar, multiplicar y dividir números decimales. Un algoritmo es una serie de pasos organizados que describe el proceso a seguir para solucionar un problema específico. Dos tipos de algoritmos: Cualitativos: Emplean palabras. Ej: : Receta de cocina, cambiar una rueda, usar la guía telefónica. Cuantitativos: Utilizan cálculos numéricos. Ej: : Resolver una ecuación de 2º grado. 1

Un algoritmo cotidiano Algoritmo para leer las páginas de un libro: 1. Inicio. 2. Abrir el libro en la 1ª página. 3. Leer la página. 4. Es la última que deseo leer? Sí: Ve al paso 7. No: Ve al paso 5 5. Pasar a la siguiente página. 6. Ve al paso 3. 7. Cerrar el libro. 8. Fin. Lenguajes algorítmicos Un lenguaje algorítmico es un conjunto de símbolos y reglas que permiten describir de manera explícita un proceso. Es independiente de cualquier lenguaje de programación. Debe permitir una traducción clara del algoritmo al programa. Dos tipos de lenguajes algorítmicos: Gráficos: : Por ejemplo, los diagramas de flujo. No gráficos: : Por ejemplo, el pseudocódigo. INICIO Edad: Entero ESCRIBE cuál es tu edad? Lee Edad SI Edad >= 18 entonces ESCRIBE Eres mayor de edad FINSI Escribe fin del algoritmo FIN 2

Creación de algoritmos Proceso de programación típico: Dado un determinado problema el programador idea una solución y la expresa mediante un algoritmo. Codificación del algoritmo. Ejecución del programa. Metodología para la solución de problemas por medio de un ordenador: 1. Definición del problema: clara y precisa. Es casi la mitad del trabajo 2. Análisis del problema: Colocarse en el lugar del ordenador y analizar qué requeriríamos para realizar la tarea. Datos de entrada. Información a producir (salida) Métodos y fórmulas para procesar los datos 3. Diseño del algoritmo. Características de un buen algoritmo Debe tener un punto particular de inicio. No debe ser ambiguo. Debe ser general. Debe ser finito en tamaño y en tiempo de ejecución. Prueba de escritorio: se toman datos específicos como entrada y se sigue el algoritmo hasta obtener un resultado. 3

Técnicas de diseño Top Down: : Se descompone sucesivamente el problema inicial en subproblemas. Con cada descomposición, se simplifican los subproblemas. Las diferentes partes del problema pueden ser programadas de forma independiente. El programa final queda estructurado en forma de bloques o módulos. Bottom Up: : Se programa cada proceso según vaya apareciendo. Difícil llegar a una integración tal que el desempeño global sea fluido. Proclive a la duplicación de esfuerzos. Pueden no satisfacerse los requisitos globales de la aplicación. La creación de algoritmos se basa en la técnica descendente. Diagramas de flujo Es una forma de representar gráficamente un algoritmo. Cada paso se escribe dentro de un símbolo. Los pasos se conectan unos con otros mediante líneas de flujo. Son fáciles de diseñar, pero difíciles de actualizar. Los símbolos que utiliza están normalizados: Inicio/Final Entrada/ Salida Proceso Salida por impresora Conector dentro página Conector fuera página Salida por pantalla 4

Diagramas de flujo (II) Decisión Selección múltiple Mientras Diagramas de flujo (III) Para Repite hasta Líneas de flujo 5

Ejemplo de diagrama de flujo Diseñe un algoritmo que lea 3 números, los sume e imprima el resultado por impresora. Recomendaciones para los diagramas de flujo Emplear solamente líneas de flujo horizontales y/o verticales. Evitar el cruce de líneas (usando los conectores) Usar los conectores sólo cuando sea necesario. No dejar líneas de flujo sin conectar. Se deberá poder leer de arriba abajo y de izquierda a derecha. Ser escuetos y claros con lo que se escriba dentro de los símbolos. 6

Pseudocódigo Mezcla de lenguaje de programación y de lenguaje natural. Representación narrativa de los pasos que debe seguir un algoritmo. Utiliza palabras, no gráficos. Ventajas: Ocupa menos espacio. Permite representar fácilmente operaciones repetitivas complejas. Es muy fácil pasar del pseudocódigo al lenguaje de programación. Quedan claros los niveles que tiene cada operación. Principales características de los pseudocódigos Utilizan operadores aritméticos y lógicos. Se pueden incluir comentarios. Se debe respetar una indentación en los bloques de instrucciones. Usan ciertas palabras clave: PSEUDOCÓDIGO, VARIABLES, INICIO, FIN, LEE, ESCRIBE, IMPRIME, IF_THEN_ELSE,, CASE OF, FOR DO, WHILE DO, REPEAT UNTIL, ARRAY Comienzan con el nombre del pseudocódigo, seguido de la declaración de variables, y luego el cuerpo del pseudocódigo. 7

Ejemplo de pseudocódigo Algoritmo que lee 3 números, los suma e imprime su resultado. PSEUDOCÓDIGO sumatorio VARIABLES en1, en2,, 3N3, esuma: : Entero INICIO ESCRIBE Dame tres números: LEE en1, en2, en3 esuma = en1 + en2 + en3 ESCRIBE El resultado de la suma es:, esuma FIN Diagramas estructurados (Nassi( Nassi- Schneiderman) Como un diagrama de flujo en el que se omiten las flechas de unión, y las cajas son contiguas. Son fáciles de diseñar y difíciles de actualizar. Las acciones sucesiva se escriben en cajas sucesivas. 8

EJEMPLO Diseñar un algoritmo que, dada una operación aritmética expresada en el formato habitual (y String), vaya leyéndola carácter a carácter, para así calcular su resultado. Respetar las reglas típicas de precedencia entre operaciones aritméticas (+ y - < * y /) Paso 1: Análisis Datos de entrada: una cadena de caracteres representando una operación aritmética. Datos de salida: Un número, resultado de realizar la operación aritmética. Forma de operar: Emplearemos dos pilas, una de operadores y otra de 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. 9

Paso 2: Diseño del algoritmo Desarrollo del algoritmo en pseudocódigo: Paso 3: Prueba de escritorio Qué tal funciona el algoritmo para 1*2*3+4*5*6+1*3*4? 10