Está en la página 1de 30

Introducci on

Diagramas de flujo

Ejercicios FreeDFD

Pseudoc odigo

Referencias

Introducci on a los Computadores (CNM-130) Algoritmos computacionales


Alejandro Piedrahita H. Instituto de Matem aticas Facultad de Ciencias Exactas y Naturales Universidad de Antioquia
Copyleft 2013. Reproducci on permitida bajo los t erminos de la licencia de documentaci on libre GNU.

Introducci on

Diagramas de flujo

Ejercicios FreeDFD

Pseudoc odigo

Referencias

Contenido

Introducci on

Diagramas de ujo

Ejercicios en ujo en FreeDFD

Pseudoc odigo

Referencias

Introducci on

Diagramas de flujo

Ejercicios FreeDFD

Pseudoc odigo

Referencias

Etapas en la resoluci on de un problema


Denici on del problema: el enunciado completo del problema, qu e es lo que se pretende obtener? An alisis del problema:
un conjunto de datos de entrada (la informaci on dada) un conjunto de datos de salida (lo que se desea obtener) Relaciones que vinculen los datos de entrada y salida

Dise no de la soluci on: se debe proponer o aplicar un modelo para lograr sistematizar la b usqueda de la soluci on. Codicaci on: en esta etapa se describen los pasos que se deben ejecutar para resolver el problema (algoritmo ). Prueba: se verica el funcionamiento de la soluci on propuesta y se detectan los errores que se presenten con la posterior correcci on de los mismos (depuraci on ).

Introducci on

Diagramas de flujo

Ejercicios FreeDFD

Pseudoc odigo

Referencias

Ejemplo
Algoritmo para preparar fr joles con chicharr on para 8 raciones. Los datos de entrada (ingredientes) son:
2 libras de fr joles. 1 cucharada de aceite vegetal o de girasol. 1/4 de libra de tocino cortado en trocitos.
Algoritmo
1

2 zanahorias peladas. 2 cubos de caldo de carne. 1 cucharada de sal. 16 tazas de agua.

Se lavan bien los fr joles y se dejan remojando en el agua desde la noche anterior. Al d a siguiente, se ponen en la olla a presi on con el agua en que se remojaron, el aceite, el tocino y la zanahoria. Se cocinan sin sal hasta que est en blandos, aproximadamente por 1 hora. Se lic ua una peque~ na cantidad de los fr joles con la zanahoria, los cubos de caldo y la sal, y se agrega a los fr joles. Se cocinan media hora m as con la olla destapada hasta que espesen.

Introducci on

Diagramas de flujo

Ejercicios FreeDFD

Pseudoc odigo

Referencias

Otros ejemplos
Muchos algoritmos no requieren de un computador para su ejecuci on:
Cambiar la llanta de un carro Ir al banco a pagar una cuenta Ir a un restaurante a comer Determinar la cantidad de dinero que nos deben devolver al pagar el bus Comprar una libra de azucar

En la pr actica, un algoritmo es s olo una parte de las etapas requeridas para resolver un problema:
Dise no del algoritmo. Implementaci on del algoritmo en un lenguaje de programaci on adecuado (codicaci on). Ejecuci on y validaci on del programa por el computador.

Introducci on

Diagramas de flujo

Ejercicios FreeDFD

Pseudoc odigo

Referencias

Algoritmos
Denici on 1.1 (Algoritmo) Un algoritmo es una secuencia nita de instrucciones, reglas o pasos que describen de modo preciso las operaciones que un computador debe realizar para ejecutar una tarea determinada en un tiempo nito. Cinco propiedades ampliamente aceptadas como requisitos para un algoritmo (Knuth):
Finitud: Un algoritmo siempre debe terminar despu es de un n umero nito de pasos. Precisi on: cada paso de un algoritmo debe estar precisamente denido y sin ambiguedades. Entrada: un algoritmo tiene cero o m as entradas que le son dadas antes de que el algoritmo comience, o din amicamente mientras corre. Salida: un algoritmo tiene una o m as salidas. Ecacia: las operaciones a realizar en un algoritmo deben ser sucientemente b asicas como para que en principio puedan ser realizadas de manera exacta y en un tiempo nito por un hombre usando papel y l apiz.

Introducci on

Diagramas de flujo

Ejercicios FreeDFD

Pseudoc odigo

Referencias

Dise no de algoritmos
Herramientas utilizadas para dise nar algoritmos
Diagramas de ujo: representaci on esquem atica de un algoritmo que muestra gr acamente los pasos a seguir para alcanzar la soluci on de un problema. Pseudoc odigos: forma gen erica de escribir un algoritmo, por medio de un lenguaje simple sin necesidad de conocer la sint axis de un lenguaje de programaci on.

El diagrama de ujo se compone de guras que ilustran los pasos o procesos a seguir para alcanzar la soluci on del problema. Los s mbolos presentados permiten crear una estructura gr aca exible que ilustra los pasos a seguir. Un diagrama de ujo permite con facilidad la posterior escritura de un programa en alg un lenguaje de programaci on.

Introducci on

Diagramas de flujo

Ejercicios FreeDFD

Pseudoc odigo

Referencias

Diagramas de ujo
S mbolo utilizado para marcar el inicio y el n del diagrama de ujo. S mbolo utilizado para ingresar los datos de entrada (expresa lectura). S mbolo utilizado para representar un proceso. En su interior se expresan asignaciones, operaciones aritm eticas, cambios de valor de celdas en memoria, etc. S mbolos utilizados para indicar la direcci on del ujo del diagrama. S mbolo utilizado para representar la estructura selectiva si entonces; en su interior se almacena una condici on que determina el ujo del diagrama. S mbolo utilizado para representar la estructura selectiva si entonces/sino; en su interior se almacena una condici on que determina el ujo del diagrama.

Introducci on

Diagramas de flujo

Ejercicios FreeDFD

Pseudoc odigo

Referencias

Diagramas de ujo
S mbolo utilizado para representar una decisi on m ultiple. En su inetrior se almacena un selector y dependiendo de su valor, se sigue por una de las ramas. S mbolo utilizado para representar la impresi on de un resultado (expresa escritura). S mbolo utilizado para expresar conexi on dentro de una misma p agina.

S mbolo utilizado para expresar conexi on entre p aginas diferentes.

S mbolo utilizado para expresar un m odulo de un problema: para continuar con el ujo normal del diagrama es necesario primero resolver el subproblema enunciado en su interior.

Introducci on

Diagramas de flujo

Ejercicios FreeDFD

Pseudoc odigo

Referencias

Diagramas de ujo

Esquema general de un diagrama de ujo

Introducci on

Diagramas de flujo

Ejercicios FreeDFD

Pseudoc odigo

Referencias

Reglas para la construcci on de diagramas de ujo


Todo diagrama de ujo debe tener un inicio y un n.

Las lineas utilizadas para indicar la direcci on del ujo del diagrama deben ser rectas verticales y horizontales y no se deben cruzar.

Introducci on

Diagramas de flujo

Ejercicios FreeDFD

Pseudoc odigo

Referencias

Reglas para la construcci on de diagramas de ujo


Todas las lineas utilizadas para indicar la direcci on del ujo del diagrama deben estar conectadas. El diagrama de ujo debe ser constuido de arriba hacia abajo (top-down) y de izquierda a derecha (left-right). La notaci on empleada en el diagrama de ujo debe ser independiente del lenguaje de programaci on. Si el diagrama de ujo requiere m as de una hoja para su construcci on, se debe utilizar conectores adecuados y enumerar las p aginas convenientemente. A un s mbolo del diagrama (excepto l neas) no puede llegar m as de una l nea.

Introducci on

Diagramas de flujo

Ejercicios FreeDFD

Pseudoc odigo

Referencias

Diagramas de ujo en FreeDFD

Editor e int erprete de diagramas de ujo Permite editar, ejecutar y depurar algoritmos representados como diagramas de ujo Es software libre distribuido bajo la licencia p ublica GNU (GPL) Lo puede descargar y ejecutar en Linux por medio de Wine mientras sale una versi on para GNU/Linux Fue desarrollado por estudiantes de la Universidad de Magdalena

Introducci on

Diagramas de flujo

Ejercicios FreeDFD

Pseudoc odigo

Referencias

Interfaz de FreeDFD
Barra de men us

Permite crear y guardar diagramas de ujos (archivos .dfd) Barra de herramientas

Objetos: permiten crear un diagrama de ujo Ejecuci on: permite ejecutar, detener y pausar un diagrama de ujo

Area de trabajo

Introducci on

Diagramas de flujo

Ejercicios FreeDFD

Pseudoc odigo

Referencias

Objetos en FreeDFD

(a) Inicio

(b) Lectura

(c) Asignaci on

(d) Condicional

(e) Ciclo para

(f) Ciclo mientras

(g) Salida

(h) Llamada

(i) n

Introducci on

Diagramas de flujo

Ejercicios FreeDFD

Pseudoc odigo

Referencias

Ejercicios en FreeDFD
Ejercicio 3.1 Realice un diagrama de ujo tal que dado los datos A, B, C y D que representan n umeros, escriba los mismos en orden inverso.

Ejercicio 3.2 Modique el diagrama de ujo del ejercicio anterior (3.1) para que los datos de salida:
1 2

se impriman separados por espacios se impriman separados por comas

Introducci on

Diagramas de flujo

Ejercicios FreeDFD

Pseudoc odigo

Referencias

Ejercicios en FreeDFD
Ejercicio 3.3 Realice un diagrama de ujo que reciba como datos de entradas dos n umeros m y n y escriba el resultado de la suma y el producto de los mismos.

Ejercicio 3.4 Modique el diagrama de ujo del ejercicio anterior (3.3) para que en lugar de imprimirse el valor de la suma y el producto, se impriman los mensajes:
1 2

La suma de y El producto de y

es

y es el valor de n, el valor de la suma y

donde representa el valor de m, el valor del producto.

Introducci on

Diagramas de flujo

Ejercicios FreeDFD

Pseudoc odigo

Referencias

Ejercicios en FreeDFD
Ejercicio 3.5 A un estudiante obtiene 5 calicaciones a lo largo del semestre. Realice un diagrama de ujo que reciba como datos de entrada las calicaciones del estudiante e imprima el promedio de sus calicaciones. Se debe imprimir un mensaje que diga El promedio de las calicaciones es . . .

Ejercicio 3.6 Desarrolle un diagrama de ujo tal que dado como datos la base y la altura de un rect angulo, calcule su per metro y a rea.

Introducci on

Diagramas de flujo

Ejercicios FreeDFD

Pseudoc odigo

Referencias

Ejercicios en FreeDFD
Ejercicio 3.7 Implemente un diagrama de ujo tal que dado el costo de un art culo vendido y la cantidad de dinero entregada por el cliente, calcule e imprima el cambio que se debe entreg arsele.

Ejercicio 3.8 Realice un diagrama de ujo que reciba como datos el nombre de un dinosaurio, su peso (en toneladas) y su altura (en pies), y que escriba el nombre del dinosaurio, su peso en kilogramos y su altura en metros.

Introducci on

Diagramas de flujo

Ejercicios FreeDFD

Pseudoc odigo

Referencias

Ejercicios en FreeDFD
Ejercicio 3.9 En una gasolinera las m aquinas registran el combustible surtido en galones pero el precio de la gasolina est a jado en litros. Realice un diagrama de ujo que calcule e imprima el valor que hay que cobrarle al cliente.

Ejercicio 3.10 Implemente un diagrama de ujo que reciba como datos el radio y la altura de un cilindro y calcule e imprima su a rea y volumen.

Introducci on

Diagramas de flujo

Ejercicios FreeDFD

Pseudoc odigo

Referencias

Ejercicios en FreeDFD
Ejercicio 3.11 Desarrolle un diagrama de ujo que calcule e imprima el n umero de segundos que hay en un determinado n umero de d as.

Ejercicio 3.12 Se desea conocer cu antos meses han transcurrido entre enero de 1949 y enero de 2002. Realice un diagrama de ujo que resuelva dicho problema.

Ejercicio 3.13 Se desea determinar los meses transcurridos entre los inicios de dos a nos cualesquiera. Realice un diagrama de ujo que resuelva dicho problema.

Introducci on

Diagramas de flujo

Ejercicios FreeDFD

Pseudoc odigo

Referencias

Terminolog a b asica
Programa: conjunto de instrucciones que ejecuta un computador para alcanzar un resultado espec co (Von Neumann, 1946). Un programa se escribe en un lenguaje de programaci on a partir de un diagrama de ujo dise nado con anterioridad. Los lenguajes de programaci on est an constituidos por un conjunto de
Reglas sint acticas: especican la formaci on (sintaxis) de instrucciones v alidas. Reglas sem anticas: especican el signicado de las instrucciones v alidas.

Pasos en la resoluci on de un problema:


1 2 3

Desarrollo de un algoritmo (soluci on general). Construcci on de un diagrama de ujo. Construcci on de un programa en un lenguaje de programaci on.

Previo al paso (3), utilizaremos un lenguaje llamado pseudoc odigo:


Es independiente de cualquier lenguaje de programaci on. Carece del rigor expresados en las reglas sint actias y sem anticas.

Introducci on

Diagramas de flujo

Ejercicios FreeDFD

Pseudoc odigo

Referencias

Instrucciones en pseudoc odigo

Lectura de datos:
Leer A, VEL, C

Proceso:
Hacer TEMP = TEMP + 1

Escritura:
Escribir A, VEL

Introducci on

Diagramas de flujo

Ejercicios FreeDFD

Pseudoc odigo

Referencias

Ejemplos
Programa en pseudoc odigo para el diagrama de ujo del ejercicio (3.1)

INVERTIR DATOS { Dado un conjunto de datos de entrada el programa invierte el orden de los mismos y los imprime } { A, B, C y D son variables de tipo entero }
1 2

Leer A, B, C, D Escribir D, C, B, A

Observaciones
Todo programa tiene un nombre (en este ejemplo INVERTIR DATOS) que lo dene y que se elige teniendo en cuenta las reglas para la construcci on de identicadores. Entre llaves { } van comentarios que indican la funci on del programa. Escribir un programa es sencillo cuando se conoce las instrucciones del pseudoc odigo. La tarea intelectual consiste en la construcci on del diagrama de ujo.

Introducci on

Diagramas de flujo

Ejercicios FreeDFD

Pseudoc odigo

Referencias

Ejemplos
Programa en pseudoc odigo para el diagrama de ujo del ejercicio (3.3)

CALCULA { Dado dos enteros m y n, el programa calcula el resultado de la suma y el producto de los mismos } { m y n son variables de tipo real, al igual que las variables sum y prod }
1 2 3 4

Leer m, n Hacer sum = m + n Hacer prod = mn Escribir sum, prod

Introducci on

Diagramas de flujo

Ejercicios FreeDFD

Pseudoc odigo

Referencias

Ejemplos
Programa en pseudoc odigo para el diagrama de ujo del ejercicio (3.10)

CALCULA { Dado el radio r y la altura h de un cilindro, el programa calcula el a rea y el volumen del cilindro } { r y h son variables de tipo real, al igual que las variables area y vol }
1 2 3 4 5

Leer r, h Hacer pi = 3.1416 Hacer area = 2 pi r2 + 2 pi r h Hacer vol = pi r2 h Escribir area, vol

Introducci on

Diagramas de flujo

Ejercicios FreeDFD

Pseudoc odigo

Referencias

Bibliograf a I

J.W. Brown, D.J. Murdoch A First Course in Statistical Programming With R Cambridge University Press, 1th edition , 2008 D. Burton Elementary Number Theory McGraw Hill Higher Education, 5th edition, 2002 O. Cair o Metodolog a de la programaci on Segunda edici on. Alfaomega Grupo Editor, S.A., 2005 M.A. Criado Programaci on en lenguajes estructurados Alfaomega Grupo Editor, S.A. de C.V. Primera Edici on, 2006 H.P. Langtangen A Primer on Scientic Programming with Python Springer, 2011

Introducci on

Diagramas de flujo

Ejercicios FreeDFD

Pseudoc odigo

Referencias

Bibliograf a II
O. Jones, R. Maillardet, A. Robinson Introduction to Scientic Programming and Simulation Using R Chapman and Hall/CRC; 1 edition, 2009 D.E. Knuth The Art of Computer Programming Volume 1, Fundamental Algorithms Addison Wesley Longman, 1997 S. Lipschutz Schaums Outline of Essential Computer Mathematics McGraw-Hill, 1th edition, 1982 Ch.F. Van Loan Introduction to Scientic Computing Prentice-Hall, Inc., 1997 C.B. Moler Numerical Computing with Matlab SIAM, 2004

Introducci on

Diagramas de flujo

Ejercicios FreeDFD

Pseudoc odigo

Referencias

Bibliograf a III
H.M. Mora Escobar Introducci on a C y a m etodos num ericos Universidad Nacional de Colombia (Sede Bogot a), 2004 A. Quarteroni, F. Salieri C alculo cient co con MATLAB y Octave Springer-Verlag Italia, 2006 S.M. Ross Simulation Elsevier Inc., 2006 R. S eroul Programming for Mathematicians Springer, 2000 E. Scheinerman C ++ for Mathematicians: An Introduction for Students and Professionals Taylor & Francis Group, LLC, 2006

Introducci on

Diagramas de flujo

Ejercicios FreeDFD

Pseudoc odigo

Referencias

Bibliograf a IV

A. Shen Algorithms and Programming Springer Undergraduate Texts in Mathematics and Technology, 2010 P. Tymann Schaums Outline of Principles of Computer Science McGraw-Hill, 1th edition, 2008

También podría gustarte