Está en la página 1de 42

3. Algoritmos y Diagramas de Flujo (4 hrs.

) OBJETIVO: El alumno comprender los tipos de datos y expresiones mas comunes, el concepto y caractersticas de lo que es un algoritmo, as como las reglas y aspectos bsicos de un diagrama de flujo, adems de adquirir la habilidad de desarrollar un algoritmo secuencial.

CONTENIDO: 3. Algoritmos y Diagramas de Flujo (4 hrs.) 1. Tipos de Datos y Expresiones 2. Conceptos de Algoritmos 3. Diagramas ( reglas y smbolos bsicos) 4. Algoritmos Secuenciales

Algoritmos y diagramas de flujo


Tipos de datos Los datos a procesar por una computadora pueden clasificarse en: Simples Estructurados

Los datos simples se caracterizan porque ocupan slo una casilla de memoria, por lo tanto una variable simple hace referencia a un nico valor a la vez. dentro de este grupo de datos encontramos: Enteros Reales (flotantes) Caracteres Cadena de caracteres Booleanos

Algoritmos y diagramas de flujo


Los datos estructurados se caracterizan por el hecho de que con un nombre se hace referencia a un grupo de casillas de memoria. Es decir, un dato estructurado tiene varios componentes. Cada uno de sus componentes puede ser a su vez un dato simple. Dentro de este grupo de datos se encuentran: Arreglos Cadena de caracteres Registros
Identificador Dato simple Identificador Dato estructurado

Algoritmos y diagramas de flujo


Datos simples Enteros.- son nmeros que no contienen componentes fraccionarias y, por lo tanto, no incluyen el punto decimal, pueden estar precedidos del signo + o --. Por ejemplo: 465 -387 9 99 -1578 125550 Reales (flotantes).- son nmeros que contienen una parte fraccionaria y, por lo tanto, incluyen el punto decimal, pueden esta precedidos del signo + o --. Por ejemplo: 125.87 -124.0 158000.75 -38.5879 Carcter.- contiene un solo carcter y va encerrado entre comillas simples. Por ejemplo: a A $ # 7 + h H

Algoritmos y diagramas de flujo


Cadena de caracteres.- contiene un conjunto de caracteres alfabticos, numricos, y especiales, que sirven para representar y manejar datos como: nombres, descripciones de artculos, direcciones, etc. Van encerrados entre comillas dobles, por ejemplo:
abc Carlos Jimnez 83-15-24-65 $8#2

Booleanos.- toma los valores de verdadero (true) o falso (false), no puede ser ledo o escrito, slo asignado, es til para plantear cierto tipo de condiciones en el manejo de las estructuras lgicas de control.

Algoritmos y diagramas de flujo


Identificadores, constantes y variables
Identificadores.- son nombres que se usamos para referirnos a variables, constantes, funciones o cualquier objeto definido por el usuario.

Un identificador se forma de acuerdo a ciertas reglas bsicas: El primer carcter que forma un identificador debe ser una letra o el smbolo de subrayado ( _ ). Los dems caracteres pueden ser letras, dgitos o smbolo de subrayado. La longitud del identificador depende del lenguaje de programacin a utilizar.

Algoritmos y diagramas de flujo


Constantes
Son datos que no cambian durante la ejecucin de un programa. Existen tipos de constantes como tipos de datos, por lo tanto, puede haber constantes enteras, reales (flotantes), de carcter, de cadenas de caracteres, booleanas, etc. Variables Es un identificador que puede cambiar su valor durante la ejecucin de un programa. Se utiliza para representar un dato tipo entero, real (flotante), o una constante de carcter. Por ejemplo: Variable i es de tipo entero variable prom es de tipo real (flotante) Variable opcin es de tipo carcter

Algoritmos y diagramas de flujo


Operaciones aritmticas
Para poder realizar operaciones operadores aritmticos. aritmticas necesitamos de

Estos operadores nos permiten realizar operaciones aritmticas entre operandos: nmeros, constantes o variables. El resultado de una operacin aritmtica es un nmero.
A continuacin presentamos en una tabla los operadores aritmticos, la operacin que puede realizar y, un ejemplo de su uso y su resultado:

Algoritmos y diagramas de flujo


Operadores Aritmticos
Operador Aritmtico Operacin Ejemplo Resultado

**
* / +

Potencia
Multiplicacin Divisin Suma

3**2
5.25*3 17/4 58+79

9
15.75 4.25 137

Mod div

Resta
Mdulo (residuo) Divisin entera

25.96 -11.25
21 mod 2 19/3

14.71
1 6

Algoritmos y diagramas de flujo


Al evaluar expresiones que contienen operadores aritmticos debemos respetar la jerarqua en el orden de aplicacin. Es decir, si tenemos en una expresin ms de un operador, debemos aplicar primero el operador de mayor jerarqua, resolver esa operacin y as sucesivamente.
Jerarqua de los operadores aritmticos
Operador Jerarqua Operacin Potencia Multiplicacin, divisin, mdulo, divisin entera Suma, resta

**
*, /, mod, div +, -

(Mayor)

(menor)

Algoritmos y diagramas de flujo


Reglas para resolver una expresin aritmtica:
1. Si una expresin contiene subexpresiones entre parntesis, stas se evalan primero, respetando claro la jerarqua de los operadores aritmticos en esta subexpresin. Si las subexpresiones se encuentran anidadas por parntesis, primero se evalan las subexpresiones que se encuentran en el ltimo nivel de anidamiento. 2. Los operadores aritmticos se aplican teniendo en cuenta la jerarqua y de izquierda a derecha.

Algoritmos y diagramas de flujo


Por ejemplo:
Dados los siguientes casos, resolver cada caso aplicando las reglas correspondientes:
1). 7 + 5 6
1

2). 9 +7 * 8 36 / 5
1

3). 7 * 5 ** 3 / 4 div 3
1

12 6
2

9 + 56 36 / 5
2

7 * 125 / 4 div 3
2

=6

9 + 56 7.2
3

875 / 4 div 3
3

65 7.2
4

218.75 div 3
4

= 57.8

= 72

Algoritmos y diagramas de flujo


4). 7 * 8 * (160 mod 3 ** 3) div 5 * 13 28
1

3640 - 28
7

7 * 8 * (160 mod 27) div 5 * 13 28


2

= 3612

7 * 8 * 25 div 5 * 13 28
3

56 * 25 div 5 * 13 28
4

1400 div 5 * 13 28
5

280 * 13 28
6

Algoritmos y diagramas de flujo


Expresiones lgicas Las expresiones lgicas o booleanas, estn constituidas por nmeros, constantes o variables y operadores lgicos o relacionales. El valor que pueden tomar estas expresiones es de verdadero o falso.

Se utilizan con frecuencia en las estructuras selectivas y en las estructuras repetitivas.


Operadores relacionales Son operadores que permiten comparar dos operandos, los operandos pueden ser nmeros, caracteres, constantes o variables. Las constantes o variables, a su vez, pueden ser de tipo entero, real (flotante), carcter o cadena de caracteres.

Algoritmos y diagramas de flujo


El resultado de una expresin con operadores relacionales es verdadero o falso.
Operadores Relacionales
Operador == < > < Operacin
Igual que Diferente a Menor que

Ejemplo
lalo == lola x < > y 14 < 25

Resultado
Falso Verdadero Verdadero

>
< =

Mayor que
Menor o igual que Mayor o igual que

35 > 10
5 <= 6 15 >= 7

Verdadero
Verdadero Verdadero

>=

Algoritmos y diagramas de flujo


Operadores lgicos Son operadores que permiten formular condiciones complejas a partir de condiciones simples. Los operadores lgicos son de: Conjuncin (y).- relaciona dos operandos booleanos. Proporciona un valo verdadero (V), si los dos son verdaderos; en caso contrario da un resultado falso (F). Disyuncin (o).- relaciona dos operandos booleanos. Proporciona un valor verdadero (V), si uno de los dos es verdadero; en caso contrario da un resultado falso (F). Negacin (No).- este operador relaciona slo un operando booleano y da como resultado un valor opuesto al que tenga el operando.

Algoritmos y diagramas de flujo


Operadores Lgicos Operador No (~) Y (^) o Jerarqua Expresin lgica No P P y Q Jerarqua de todos los Operadores

(Mayor)

Operadores
( ) ** *, /, div, mod

Jerarqua
(Mayor)

(Menor)

P o Q

Tabla de verdad de los Operadores Lgicos P V V F F Q V F V F P ^ Q V F F F P o Q V V V F ~ P F F V V ~ Q F V F V

==, < >, <, >, < =, > = No ( ~ ) y ( ^ )

(Menor)

Algoritmos y diagramas de flujo


Por ejemplo:
Dados los siguientes casos, resolver cada caso aplicando las reglas correspondientes:
1). A = 5, B = 16 (A ** 2) > (B * 2)
1

2). X = 6, B = 7.8 (X * 5 + B ** 3 / 4) < = (X ** 3 div B)


1

25 > (B * 2)
2

(X * 5 + 474.552 / 4) < = (X ** 3 div B)


2

25 > 32
3

(30 + 474.552 / 4) < = (X ** 3 div B)


3

(30 + 118.638) < = (X ** 3 div B) Falso


4 Continua

Algoritmos y diagramas de flujo


Continuacin 2) 148.638 < = (X ** 3 div B)
5

148.638 < = (216 div B)


6

148.638 < = 27 Falso

3). ~(15 > = 7 ** 2) o (43 8 * 2 div 4 < > 3 * 2 div 2)


1

~(15 > = 49) o (43 8 * 2 div 4 < > 3 * 2 div 2)


2 3 Continua

Algoritmos y diagramas de flujo


Continua 3). ~ Falso o (43 16 div 4 < > 3 * 2 div 2)
4

Verdadero o Verdadero
10

~ Falso o (43 4 < > 3 * 2 div 2)


5

Verdadero

~ Falso o (43 4 < > 6 div 2)


6

~ Falso o (43 4 < > 3)


7

~ Falso o (39 < > 3)


8

~ Falso o Verdadero
9

Algoritmos y diagramas de flujo


Concepto de algoritmo
Los seres humanos realizamos una serie de pasos, procedimientos o acciones que nos permiten alcanzar un resultado o resolver un problema, esto se repite innumerables veces durante el da. En realidad estamos aplicando un algoritmo para resolver un problema. Definicin de Algoritmo.- secuencia ordenada y cronolgica de pasos que llevan a la solucin de un problema o a la ejecucin de una tarea (o actividad).

Algoritmos y diagramas de flujo


El algoritmo debe tener las siguientes caractersticas: Tener un principio Ser simples, claros, precisos, exactos. Tener un orden lgico. Debe ser finito. Tener un fin. La definicin de un algoritmo debe describir tres partes: Entrada. Proceso. Salida

Algoritmos y diagramas de flujo


La serie de pasos, procedimientos o acciones que nos permiten alcanzar un resultado o resolver un problema a travs de algoritmos, los desarrollamos por medio de pseudocdigo. El pseudocdigo describe un algoritmo utilizando una mezcla de frases en lenguaje comn, instrucciones de programacin y palabras clave que definen las estructuras bsicas. El objetivo del pseudocdigo es permitir que el programador se centre en los aspectos lgicos de la solucin, evitando las reglas de sintaxis de los lenguajes de programacin. No siendo el pseudocdigo un lenguaje formal, los pseudocdigos varan de un programador a otro, es decir, no hay un pseudocdigo estndar.

Algoritmos y diagramas de flujo


Diagramas de flujo
Un diagrama de flujo representa la esquematizacin grfica de un algoritmo. En realidad muestra grficamente los pasos o procesos a seguir para alcanzar la solucin de un problema. Su correcta construccin es sumamente importante porque, a partir del mismo se escribe un programa en algn lenguaje de programacin. Si el diagrama de flujo est completo y correcto, el paso del mismo a un lenguaje de programacin es relativamente simple y directo. A continuacin, presentamos los smbolos que utilizaremos y una explicacin de los mismos. Estos satisfacen las recomendaciones de la ISO y la ANSI.

Algoritmos y diagramas de flujo


Smbolo utilizado para marcar el inicio y el fin del diagrama flujo. Smbolo utilizado para introducir los datos de entrada. Expresa lectura.

Smbolo utilizado para representar un proceso. En su interior se expresan asignaciones, operaciones aritmticas, cambios de valor de celdas en memoria, etc.
Smbolo utilizado para representar una decisin. En su interior se almacena una condicin y dependiendo del resultado de la evaluacin de la misma se sigue por una de las ramas o caminos alternativos: verdadero o falso.

Algoritmos y diagramas de flujo


Smbolo utilizado para representar la impresin de un resultado. Expresa escritura. Smbolo utilizado para expresar conexin dentro de una misma pgina.
Smbolos utilizados para expresar la direccin del flujo del diagrama Smbolo utilizado para expresar conexin entre pginas diferentes.

Algoritmos y diagramas de flujo

Smbolo utilizado para representar una decisin mltiple. En su interior se almacena un selector y dependiendo del valor de dicho selector se sigue por una de las ramas o caminos alternativos.

Algoritmos y diagramas de flujo


Estructura y diseo de un algoritmo
Existe una gran cantidad de problemas que requieren de un anlisis profundo y de un pensamiento flexible y estructurado para la solucin. La idea es ofrecer un conjunto de tcnicas y herramientas metodolgicas que permitan flexibilizar y estructurar el razonamiento utilizado en la solucin de problemas, esto provocar finalmente la construccin de algoritmos eficientes. A continuacin en la figura podemos observar las etapas que debemos seguir para la solucin de un problema

Algoritmos y diagramas de flujo

Problema

Anlisis profundo del problema

Construccin del algoritmo

Verificacin el algoritmo

Nota.- Por verificacin del algoritmo entendemos el seguimiento del mismo con datos que sean representativos del problema que queremos resolver

Algoritmos y diagramas de flujo


La secuenciacin es una estructura de control que permite a la computadora ejecutar una accin, despus otra, luego la que sigue y as sucesivamente hasta la ltima. Dichas acciones pueden consistir en operaciones primitivas elementales como declaraciones de variables, leer datos, imprimir datos o calcular alguna expresin. Es conveniente etiquetar cada accin con nmeros desde el uno en forma ascendente de uno en uno, para denotar el orden secuencial. Por lo tanto los elementos bsicos que integran la estructura de un algoritmo son:

Algoritmos y diagramas de flujo


1. Encabezado.- todo algoritmo debe tener un encabezado como identificacin, el cual debe empezar con la palabra Algoritmo seguida por una descripcin del problema a resolver.
Inicio.- todo algoritmo debe empezar con la etiqueta 1, que marca el inicio del mismo. Declaraciones.- despus de marcar el inicio se debe hacer las declaraciones que se necesiten como: variables, constantes, tipos de datos, etc. Leer, calcular e imprimir.- los siguientes pasos pueden consistir en acciones tales como: leer datos, calcular algunas expresiones aritmticas e imprimir datos tantas veces como se requiera y en el orden apropiado para resolver el problema en cuestin. 2. 3.

4.

Algoritmos y diagramas de flujo


5. Fin del algoritmo.- el ltimo paso del algoritmo consiste en incluir la indicacin fin. Ejemplo No 1 de algoritmos secuenciales Calcular e imprimir el sueldo de un empleado, se pedir la clave del empleado, las horas trabajadas y el pago por hora trabajada. Algoritmo Calcular el sueldo de un empleado 1. Inicio 2. Declaracin de variables: cve, ht: entero pht, sueldo: real (flotante) 3. Leer cve, ht, pht 4. sueldo = ht * pht 5. Imprimir cve, sueldo 6. Fin

Algoritmos y diagramas de flujo


Ejemplo No 2.- desarrollar un algoritmo que permita leer un nmero en radianes e imprima su equivalencia en grados; as mismo, leer un nmero en grados e imprima su equivalencia en radianes. Algoritmo Convierte radianes a grados y grados a radianes 1. Inicio 2. Declaracin de variables: PI = 3.145926536: real (flotante) rad, grad, numrad, numgrad: real (flotante) 3. Leer rad, grad 4. numgrad = rad * (180 / PI) 5. numrad = grad * (PI / 180) 6. Imprimir numgrad, numrad 7. Fin

Algoritmos y diagramas de flujo


Ejemplo No 3.- desarrollar un algoritmo para calcular el promedio de un estudiante, se pedir la matricula del estudiante y cuatro calificaciones de los exmenes. Se imprimir la matricula del estudiante y el promedio. Algoritmo calcular promedio de un estudiante 1. Inicio 2. Declaracin de variables matest: entero cal1, cal2, cal3, cal4, calfin: real (flotante) 3. Leer matest, cal1, cal2, cal3, cal4 4. calfin = (cal1 + cal2 + cal3 + cal4) / 4 5. Imprimir matest, calfin 6. Fin

Algoritmos y diagramas de flujo


Reglas para la construccin de diagramas de flujo
Debemos recordar que un diagrama de flujo debe ilustrar grficamente los pasos o procesos a seguir para alcanzar la solucin de un problema. Los smbolos colocados adecuadamente, permiten crear una estructura grfica flexible que ilustra los pasos a seguir para alcanzar un resultado especfico. El diagrama de flujo facilitar ms tarde la escritura del programa en algn lenguaje de programacin.

Reglas
1. Todo diagrama de flujo debe tener un inicio y un fin.

Algoritmos y diagramas de flujo


2.

3.

4. 5. 6.

Las lneas utilizadas para indicar la direccin del flujo del diagrama deben ser rectas, verticales y horizontales. Todas las lneas utilizadas para indicar la direccin del flujo del diagrama deben estar conectadas. La conexin puede ser a un smbolo que exprese lectura, proceso, decisin, impresin, conexin o fin de diagrama. El diagrama de flujo debe ser construido de arriba hacia abajo (top-down) y de izquierda a derecha (right to left). La notacin utilizada en el diagrama de flujo debe ser independiente del lenguaje de programacin. Es conveniente cuando realizamos una tarea compleja poner comentarios que expresen o ayuden a entender lo que hicimos.

Algoritmos y diagramas de flujo


7.
8.

Si el diagrama de flujo requiere ms de una hoja para su construccin, debemos utilizar los conectores adecuados y enumerar las pginas convenientemente. No puede llegar ms de una lnea a un smbolo.

Algoritmos y diagramas de flujo


Diagrama de flujo del algoritmo, ejemplo 1:
inicio cve, ht pht sueldo = ht * pht cve sueldo fin

Algoritmos y diagramas de flujo


Diagrama de flujo del algoritmo, ejemplo 2:
inicio rad grad

numgrad = rad * (180 / PI)


numgrad numrad

numrad = grad * (PI / 180)

fin

Algoritmos y diagramas de flujo


Diagrama de flujo del algoritmo, ejemplo 3:
inicio matest, cal1 cal2, cal3 cal4 calfin = (cal1 + cal2 + cal3 + cal4) / 4

matest calfin

fin

3. Algoritmos y Diagramas de Flujo Actividades:


El alumno evaluara diferentes expresiones aritmticas simples y compuestas, haciendo nfasis en el uso del estatuto de asignacin
Ejercicios para el diseo y desarrollo de algoritmos y diagramas de flujo secuenciales