Algoritmos2009 1 Mod2
Algoritmos2009 1 Mod2
Algoritmos2009 1 Mod2
semana
DIAGRAMAS DE FLUJOS
QUE ES UN ALGORITMO?
Podramos definirlo como un:
CONJUNTO ORDENADO Y FINITO DE INSTRUCCIONES QUE PERMITEN ENCONTRAR LA SOLUCION DE UN DETERMINADO PROBLEMA
CARACTERISTICAS DE UN ALGORITMO
PRECISO
Es decir, cada instruccin debe indicar claramente lo que se tiene que hacer.
FINITO
Es decir, debe tener un nmero limitado de pasos.
DEFINIDO
Es decir, debe producir los mismos resultados para las mismas condiciones de entrada.
Diagramas de Flujo
Es una representacin grafica de la solucin de un problema y por ende de un algoritmo Es una tcnica que describe grficamente los pasos que tienen los algoritmos. Algunos elementos esenciales del mismo son: El comienzo del algoritmo. Las operaciones. La secuencia en que se realiza. El final del algoritmo.
fin
TEXTO
Los algoritmos se pueden representar mediante FRASES que representan los PROCEDIMIENTOS que dan la SOLUCIN al PROBLEMA.
inicio
Proceso1
Proceso2
Proceso3
fin
Smbolos
LINEAS DE FLUJO O FLECHAS Muestran la direccin del flujo de datos o secuencia de las instrucciones.
Start
End/Stop/Exit
Smbolos
RECTANGULO / PROCESO
Smbolos
DIAMANTE Indica decisin. Tiene dos salidas dependiendo si la decisin es cierta o falsa.
Smbolos
POLIGONO / PREPARACION
Counter A S B
Representa las condiciones de un grupo de procesos que se repiten automticamente utilizando un contador.
A es el valor inicial del contador Counter. S es el incremento del contador. B es el lmite hasta donde debe llegar el contador.
Smbolos
CONECTOR EN LA PAGINA Se utiliza para conectar secciones del diagrama de flujo en una misma pgina. CONECTOR FUERA DE LA PAGINA Conector que une dos partes de diagrama que no caben en una sola pgina. Ambos deben utilizarse lo menos posible.
Si tiene que hacer alguna anotacin o comentario, hgalo al lado del smbolo.
Un diagrama de flujo siempre comienza arriba en la pgina y fluye hacia abajo. Si necesita ms de una pgina dibuje por columnas y utilice conectores. Utilice algn tipo de software para dibujar un DDF. Haga los smbolos lo suficientemente grandes como para que lo que escriba en ellos sea fcil de leer.
EJEMPLO PRACTICO
Freir un Huevo Descripcin: Este diagrama de flujo describe detalladamente como freir un huevo. Inicio
1
Huevo, fsforo cocina, paila, aceite
Abrir huevo Encender Fsforo
fin
Diagramas de flujo
Terminal: Decisin: Representa el inicio o el fin de un algoritmo Entrada manual: Representa el almacenamiento de valores en variables mediante entradas por teclado. Proceso: Representa procesos Impresin documento: Representa la impresin de datos (Normalmente de respuesta) Preparacin: Representa las condiciones de un grupo de procesos que se repiten Conector: Conector que une dos partes de diagrama que no caben en una pgina Conector: Conector que une dos partes de diagrama en una misma pgina Una pregunta con la posibilidad de respuesta de dos o ms opciones. Pantalla:
Diagramas de flujo
Ejemplos
Algoritmo que permite determinar si un nmero dado por el usuario es negativo o positivo
revisarNegativoPositivo Descripcin:
Inicio
int n = 0
n
No n >= 0 S Espositivo Esnegativo
fin
n=n+2
fin
Disear un diagrama de flujo que solicite un nmero y determine si este es par o es non. El diagrama deber de solicitar los datos necesarios y mostrar el resultado.
Tipo de Datos
Problema
Fase de solucin
Paso Difcil
Solucin: Algoritmo
Un problema bien definido es resultado de un anlisis exhaustivo y requiere una descripcin precisa de las especificaciones de entrada y salida para poder conseguir una solucin efectiva y eficaz.
Un algoritmo esta constituido por 3 partes: Entrada: Es la informacin dada al algoritmo. Proceso: Son los clculos necesarios. Salida: Son los resultados dadas por el algoritmo.
1. Tipos Numrico: Los datos numricos pueden representarse como nmeros enteros y nmeros reales. Los enteros corresponden a los nmeros que no tienen componente fraccionario (decimales), pueden ser (-) (+) los sgts. son ejemplos de datos enteros: 13, -6, 8988, 24 Los Reales son nmeros de parte entera y parte decimal q tienen siempre un punto decimal, los sgtes. son ejemplos de nmeros reales: 36.7; -9.54; 0.0; 9.0; 0.1 2. Tipo Carcter: Esta formado por todos los caracteres o smbolos de los q dispone la computadora.
Caracteres alfabticos maysculas A,B,C,D,...Z. Caracteres alfabticos minsculas a,b,c,d,z. Caracteres dgitos 0,1,2,,9. Caracteres especiales $,%,-,+,>,? Un dato tipo carcter es un solo carcter. Los caracteres se organizan en cadenas. Una cadena de caracteres una secuencia de caracteres, por ejemplo: Maria 1957 07-08-2008 3. Tipo Lgico: Los datos de tipo lgico booleano pueden tomar solo dos valores posibles True (verdadero) false (falso).
Constantes y Variables
En todo programa de computadora existen algunos elementos con un determinado valor. Estos elementos pueden ser constantes variables. Constantes: Las const son objetos cuyo valor permanece invariable a lo largo de ejecucin del programa, ejemplos: pi=3.14154 e=2.71828 utilizara un nombre (identificador) cada vez q se necesite usarlo. Variables: Las variables son objetos q pueden cambiar su valor mediante la ejecucin de un programa, utilizaran un nombre para identificarlo.
Tipo de Operaciones
Aritmeticas ^ Potenciacin: 2^3=8 * Multiplicacin: 2*3=6 / Divisin: 7/2 = 7.0/2 = 7/2.0 = 7.0/2.0 =3.5 div Divisin entera: 7 div 2=3 mod Resto de division entera: 7 mod 2=1 Relacionales = Igual != <> Distinto >= Mayor igual que
<= Menor igual que > Mayor < Menor Lgicas: no negacin y conjuncin o disyuncin Asignacin: La operacin asignacin es una manera muy elemental de especificar que una variable debe tener un valor dado. Se denota como para indicar que el valor situado a su derecha se almacena en la variable situada a la izquierda. Por ejemplo: A 3 significa ala variable A se le asigna el valor 3.
El operacin de asignacin es una operacin destructiva porque remplaza el valor de una variable por un nuevo valor cuando se ejecuta el algoritmo (programa). A 16 A -27 A 9 La variable tiene 16 como valor inicial, al ejecutarse las dos instrucciones siguientes la variable A guardara el valor 9.
Otras Operaciones: ABSC(x): arroja el valor absoluto de un entero real. ABSC(15)=15, ABSC(-69)=69 SQR(x): arroja x*x de un entero o real . SQR(5)=25 SQRT(x): arroja la raiz cuadrada de un entero o real >=0. SQRT(81)=9 TRUNC(x): Arroja el mayor entero T, se debe cumplir que T<=x, por ejemplo: TRUNC(3.2)=3 TRUNC(-4.5)=-4 ROUND(x):Arroja el mayor entero T, tal que se cumpla T<=X+0.5 ROUND(3.2)=3
Ejercicios de Algoritmos
Algoritmo que lea un nmero por el teclado e indique si el nmero ledo es mayor que 10 y si el nmero ledo es menor que 20.
Programa CompararNumero; Entero numero; Inicio EscribeIntroduceunnmero:; Lee numero; Si numero > 10 entonces EscribeElnmeroesmayorque;01 Fin si; Si numero < 20 entonces EscribeElnmeroesmenorque;02 Fin si; Fin;
Algoritmo que lea dos nmeros por teclado y muestre un mensaje por pantalla indicando si el cuadrado el primero es mayor que el cubo del segundo.
Programa ComparaConOperaciones; Entero num1, num2; // Ns leidos por teclado Entero cuadrado, cubo; // Vars. Temporales Inicio EscribeIntroduceelprimernmero; Lee num1; EscribeIntroduceelsegundonmero; Lee num2; cuadrado = n1 * n1; cubo = n2 * n2 * n2; Si cuadrado > cubo entonces EscribeElcuadradodel1esmayorqueelcubodel2; Fin si; Fin; Tarea: Haga el diagrama de flujo del algoritmo