Вы находитесь на странице: 1из 9

4 Algoritmos, diagramas de flujo y programas

Figura 1.2 Mdulos o 5ecclones de un Algoritmo

1.2 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 solu
cin 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 en la tabla 1.1 presentamos los smbolos que utilizaremos, y
una explicacin de los mismos. Estos satisfacen las recomendaciones de la Jn-
ternational Organization for Standardizatior' (ISO) y la American National
Standards Institute (ANSI).
A continuacin en la figura 1.3 presentamos las etapas que debemos seguir
en la construccin de un diagrama de flujo.

1.2.1 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 pre
sentados, colocados adecuadamente, permiten crear una estructura grfica flexi
ble 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.
1.2 Diagramas de flujo 5

Tabla 1.1 Sm bolos utilizados en los Diagram as de Plujo


R epresen tacin
E xplicacin del Sm bolo
del Sm bolo

O Smbolo utilizado para marcar el inicio y el fin del diagrama de flujo.

LZJ 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 me
moria, etc

Smbolo utilizado para representar una decisin En su interior se almacena


MO una condicin, y dependiendo del resultado de la evaluacin de la misma se
sigue por una de las ramas o caminos alternativos Este smbolo se utiliza en
51 la estructura selectiva 5/ entonces que estudiaremos en el siguiente captulo,
y en las estructuras repetitivas repetir y mientras que analizaremos en el cap
tulo 3

Smbolo utilizado para representar la estructura selectiva doble si ento n


MO
O ces/sino. En su interior se almacena una condicin. 51 el resultado es verdade
ro se contina por el camino de la Izquerda, y si es falso por el camino de la de
recha.

Smbolo utilizado para representar una decisin mltiple. En su Interior se al


macena un selector, y dependiendo del valor de dicho selector se sigue por
una de las ramas o caminos alternativos. Este smbolo se utiliza en la estruc
tura selectiva si mltiple, que analizaremos en el siguiente captulo.

5mbolo utilizado para representar la Impresin de un resultado. Expresa es


critura.

Smbolos utilizados para expresar la direccin del flujo del diagrama

Smbolo utilizado para expresar conexin dentro de una misma pgina

a 5mbolo utilizado para expresar conexin entre pginas diferentes

Smbolo utilizado para expresar un mdulo de un problema. En realidad expre


sa que para continuar con el flujo normal del diagrama debemos primero re
solver el subproblema que enuncia en su Interior
6 Algoritmos, diagramas de flujo y programas

Figura 1.3 Etapas en la Construccin de un Diagrama de Flujo

A continuacin presentamos un conjunto de reglas que permiten la construc


cin de diagramas de flujo.

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

2. Las lneas utilizadas para indicar la direccin del flujo del diagrama deben ser
rectas, verticales y horizontales.

1-
no deben ser inclinadas

A Tampoco debemos cruzarlas


1.2 Diagramas de flujo 7

3. Todas las lneas utilizadas para indicar la direccin del flujo del diagrama de
ben estar conectadas. La conexin puede ser a un smbolo que exprese lectu
ra, proceso, decisin, impresin, conexin o fin de diagrama.

11 ir

_ 7 < > O

4. El diagrama de flujo debe ser construido de arriba hacia abajo (top-down) y


de izquierda a derecha (right to left).
5. La notacin utilizada en el diagrama de flujo debe ser independiente del len
guaje de programacin. La solucin presentada en el diagrama puede escri
birse posteriormente y fcilmente en diferentes lenguajes de programacin.
6. Es conveniente cuando realizamos una tarea compleja poner comentarios
que expresen o ayuden a entender lo que hicimos.
7. Si el diagrama de flujo requiriera ms de una hoja para su construccin, debe
mos utilizar los conectores adecuados y enumerar las pginas conveniente
mente.
8. No puede llegar ms de una lnea a un smbolo.

t
Mo vlido Vlido
8 Algoritmos, diagramas de flujo y programas

A continuacin nos gustara mostrar algunos ejemplos con el objeto de que el


lector se familiarice con la simbologa presentada. Sin embargo, pensamos que
antes es conveniente exponer algunos conceptos muy importantes que sern fun
damentales para la construccin de los diagramas de flujo. Dejaremos los ejem
plos para la seccin 1.4.

1.3 Conceptos fundam entales


En esta seccin trataremos algunos conceptos que son fundamentales para la
construccin de algoritmos, diagramas de flujo y programas. Primero analizare
mos los tipos de datos, luego estudiaremos los conceptos de identificador, cons
tantes y variables, ms adelante analizaremos las operaciones aritmticas y
expresiones lgicas. Por ltimo estudiaremos los bloques de asignacin.

1.3.1 Tipos de datos


Los datos a procesar por una computadora pueden clasificarse en:

Simples
Estructurados

La principal caracterstica de los datos simples es que ocupan slo una casilla
de memoria (Fig 1.4a), por lo tanto, una variable simple hace referencia a un ni
co valor a la vez. Dentro de este grupo de datos se encuentran: enteros, reales, ca
racteres. booleanos, enumerados y subrangos (los dos ltimos no existen en
algunos lenguajes de programacin).
Los datos estructurados se caracterizan por el hecho de que con un nombre
(identificador de variable estructurada) se hace referencia a un grupo de casillas
de memoria (Fig. 1.4b). Es decir, un dato estructurado tiene varios componentes.
Cada uno de los componentes puede ser a su vez un dato simple o estructurado.
Sin embargo, los componentes bsicos (los del nivel ms bajo) de cualquier tipo
estructurado son datos simples. Dentro de este grupo de datos se encuentran:
arreglos, cadena de caracteres, registros y conjuntos.

identificador idenflcador

a) b)

Figura 1.4 Datos simples y estructurados a) Dato simple b) Dato estructurado.

A continuacin trataremos los datos simples: enteros, reales, caracteres y


booleanos; y el dato estructurado: cadena de caracteres. Posteriormente en los
captulos 4 y 5, estudiaremos los datos estructurados arreglos y registros.
1 3 Conceptos fundamentales 9

Datos num ricos


Dentro de los tipos de datos numricos encontramos los enteros y los reales. Los
enteros son nmeros que pueden estar precedidos del signo + o y que no tie
nen parte decimal. Por ejemplo:

128 1528 -714 8530 16235 -14780

Los reales son nmeros que pueden estar precedidos del signo + o y que
tienen una parte decimal. Por ejemplo:

7.5 128.0 -37.865 129.7 16000.50 -15.0

Datos alfanum ricos


Dentro de este tipo de datos encontramos los de tipo caracter (simple) y cadena
de caracteres (estructurado). Son datos cuyo contenido pueden ser letras del abe
cedario (a,b,c,...,z), dgitos (0, 1, 2 ..... 9) o smbolos especiales (#, $, * ,* , %, /,
..., etc.). Debemos remarcar que aunque este tipo de datos pueden conte
ner nmeros, no pueden ser utilizados para realizar operaciones aritmticas.
Un dato tipo caracter contiene un solo caracter, y se escribe entre apostrofes.
Por ejemplo:

a B' $ 9' *# T

Un dato tipo cadena de caracteres contiene un conjunto de caracteres, y se es


cribe entre comillas. La longitud de una cadena depende de los lenguajes de pro
gramacin, aunque normalmente se acepta una longitud mxima de 255.

abcde $9#7 Carlos Gmez Rosario 754-27-22


Datos lgicos
Dentro de este tipo de datos encontramos los booleanos. Son datos que slo pue
den tomar dos valores: verdadero (true) o falso (false).

1.3.2 Identiflcadores, constantes y variables

Identificadores
Los datos a procesar por una computadora, ya sean simples o estructurados, de
ben almacenarse en casillas o celdas de memoria para su posterior utilizacin.
Estas casillas o celdas de memoria (constantes o variables) tienen un nombre que
permite su identificacin.
Llamaremos dentificador al nombre que se les da a las casillas de memoria.
Un dentificador se forma de acuerdo a ciertas reglas (las mismas pueden tener al
guna variante dependiendo del lenguaje de programacin utilizado):
10 Algoritmos, diagramas de flujo y programas

El primer caracter que forma un identificador debe ser una letra (a, b, c,
z).
Los dems caracteres pueden ser letras (a,b,c,...,z), dgitos (0,1,2,...,9) o el
siguiente smbolo especial: _ .
La longitud del identificador es igual a 7 en la mayora de los lenguajes de
programacin.

A continuacin, en la figura 1.5, podemos observar ejemplos de identifica-


dores.

MEMORIA

5UMA ACUM

AUX nuM_i

X7

Figura 1.5 Casillas de Memoria con los hombres de Identificadores

Constantes
Las constantes son datos que no cambian durante la ejecucin de un programa.
Para nombrar las constantes utilizamos los identificadores que mencionamos an
teriormente. Existen tipos de constantes como tipos de datos, por lo tanto, puede
haber constantes de tipo entero, real, caracter, cadena de caracteres, etc.
Observe que en la figura 1.6, la constante NUM es de tipo entero, NREAL y
NUMREA son de tipo real, y RESU de tipo cadena de caracteres. Estas constantes
no cambiarn su valor durante la ejecucin del programa. Es muy importante
que los nombres de las constantes sean representativas de la funcin que tienen
las mismas en el programa.
Variables
Las variables son objetos que pueden cambiar su valor durante la ejecucin de
un programa. Para nombrar las variables utilizaremos los identificadores que he
mos explicado con anterioridad. Al igual que las constantes, pueden existir tipos
de variables como tipos de datos.
1.3 Conceptos fundamentales 11
MEMORIA

iu m RE5U
5 "resultado"

flREAL MUMREA
7 25 8 69

Figura 1.6 Constantes representadas en la Memoria.

En la figura 1.7, la variable 1es de tipo entero, tiene un valor inicial de cero y
cambiar su valor durante la ejecucin del programa. Las variables SUEL y
SUMA son de tipo real, estn inicializadas con el valor de cero, y al igual que la
variable I, seguramente cambiarn su valor durante la ejecucin del programa.

MEMORIA

Figura 1.7 Vanables representadas en la Memoria

Debemos remarcar que los nombres de las variables deben ser representati
vos de la funcin que cumplen en el programa.
12 Algoritmos, diagramas de flujo y programas

1.3.3 Operaciones aritmticas


Para poder realizar operaciones aritmticas necesitamos de operadores aritmti
cos. Estos operadores nos permitirn realizar operaciones aritmticas entre ope-
randos: nmeros, constantes o variables. El resultado de una operacin
aritmtica ser un nmero.
A continuacin en la tabla 1.2 presentamos los operadores aritmticos, la
operacin que pueden realizar, un ejemplo de su uso y el resultado de dicho
ejemplo.

Tabla 1.2 O pe ra dore s A ritm ticos

O p e ra d or A ritm tico
Operacin Ejem plo R esultado
Potencia 4"3 64
Multiplicacin 8.25*7 57 75
/ Divisin 15/4 3 75
+ Suma 125.78 + 62 50 188.28
Resta 65 3 0 -5 2 .3 3 32 97
mod Mdulo (residuo) 15 mod 2 1
dlv Divisin entera 17 dlv 3 5

Al evaluar expresiones que contienen operadores aritmticos debemos respe


tar 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. Es importante sealar que el opera
dor () es un operador asociativo que tiene la prioridad ms alta en cualquier len
guaje de programacin. En la tabla 1.3 se presenta la jerarqua de los operadores.

Tabla 1.3 Jerarqua de los O p e ra d ore s A ritm ticos


O perador Jerarqua O peracin
Ptenda
(mayor)
Multiplicacin, divisin, mdulo, divisin
,/,mod,dlv
I
(menor)
entera
5uma, resta

Las reglas para resolver una expresin aritmtica son las siguientes:

1. Si una expresin contiene subexpresiones entre parntesis, stas se evalan


primero; respetando claro est la jerarqua de los operadores aritmticos en
esta subexpresin. Si las subexpresiones se encuentran anidadas por parnte
sis, primero se evalan las subexpresiones que se encuentran en el ltimo ni
vel de anidamiento.