You are on page 1of 26

EXPRESIONES GRFICAS DE LOS ALGORITMOS

Un algoritmo es un conjunto ordenado y finito de operaciones que permite hallar


la solucin a un problema. No debe confundirse algoritmo con programa, este
ltimo es la codificacin del algoritmo en algn lenguaje de programacin o en
instrucciones de la mquina. La resolucin de problemas mediante computadora
conlleva pasos: hallar un algoritmo y su posterior codificacin.
Para especificar la solucin de un problema, haremos uso de las expresiones
grficas del algoritmo, que son tres:
- Diagrama de Flujo
- Pseudocdigo
- Diagrama estructurado nassi-schneiderman
El presente trabajo est enfocado en las propiedades, componentes y
estandarizacin de cada tipo de expresin, adems cuenta con ejemplos para
poder diferencia una expresin de otra.
1. DIAGRAMA DE FLUJO
El diagrama de flujo o diagrama de actividades es la representacin
grfica del algoritmo o proceso. Se utiliza en disciplinas
como programacin, economa, procesos industriales y psicologa cognitiva.
Estos diagramas utilizan smbolos con significados definidos que representan los
pasos del algoritmo, y representan el flujo de ejecucin mediante flechas que
conectan los puntos de inicio y de fin del proceso.
Son de gran importancia ya que ayudan a designar cualquier representacin
grfica de un procedimiento o parte de este. En la actualidad los diagramas de
flujo son considerados en la mayora de las empresas como uno de los
principales instrumentos en la realizacin de cualquier mtodo o sistema.
Al igual que el pseudocdigo, los diagramas de flujo son tiles para el desarrollo
y la representacin de algoritmos, aunque la mayor parte de los programadores
prefieren el pseudocdigo. Los diagramas de flujo muestran con claridad cmo
operan las estructuras de control utilizadas en la programacin estructurada Un
diagrama de flujo consta de un conjunto de smbolos con diferentes significados
susceptibles de ser conectados entre s.
En todo diagrama de flujo podemos
encontrar los siguientes elementos:
a. Inicio de proceso.
b. Especificacin de la
alimentacin de datos para
efectuar el proceso.
c. Acciones aplicables a los
datos.
d. Obtencin de resultados.
e. Fin del proceso.
Para cada una de estas actividades
existen smbolos especficos que
denotan los elementos o acciones que se tomarn en el proceso.

Nota: Estos han sido normalizados por el Instituto Norteamericano de


Normalizacin (ANSI).
La estandarizacin de los smbolos para la elaboracin de Diagramas de Flujo
tard varios aos. Con el fin de evitar la utilizacin de smbolos diferentes para
representar procesos iguales, la Organizacin Internacional para la
Estandarizacin (ISO, por su sigla en ingls) y el Instituto Nacional Americano
de Estandarizacin (ANSI, por su sigla en ingls).
Los siguientes son los principales smbolos para elaborar Diagramas de Flujo:
A. PROPIEDADES DE LOS DIAGRAMAS DE FLUJO
La simplificacin de una diagrama de bloques mediante reordenamientos y
sustituciones recude de manera considerable la labor necesaria para el anlisis
matemtico subsecuente, Sin embargo, debe sealarse que, conforme se
simplifica el diagrama de flujo, las funciones de transferencua de los bloques
nuevsose vuelven mas complejas, debido a que se generan polos y ceros
nuevos.
Los mtodos ms comunes con el arreglo de bloques en serie, paralelo y
retroalimentacin. A continuacin se muestran los arreglos resultantes para
casda mtodo nombrado
B. SMBOLOS UTILIZADOS EN LOS DF Y SU SEMNTICA
B.1. Smbolos bsicos
El lenguaje grfico de los DF dispone de tres smbolos o iconos bsicos con
significado sematico preciso:
Rectngulo o caja: representa una actividad, operacin o
tarea.
Rombo: Representa una condicin, pregunta o decisin
planteada siempre con solo dos alternativas o respuestas: "
Si" o "No".
Lnea con flecha: Representa el sentido del flujo o secuencia
de las actividades.
Nota: Hay que prestar atencin al hecho de
que el smbolo de las flechas tambin se
utiliza para mostrar las entradas o salidas de
las actividades.
Estos dos usos del mismo smbolo, con
significados semnticos diferente: flujo de
actividades frente a entradas y salidas de las
actividades, hace que sea muy recomendable diferenciar entre estos dos
significados utilizando flechas de formato diferente, por ejemplo, mediante
trazo discontinuo para las entradas y salidas. No es recomendable diferenciar
los diversos significados semnticos mediante colores, dado que muchas
veces los documentos ser n fotocopiados o impresos en blanco y negro.
Est demostrado, desde los aos 603 , que estos tres smbolos bsicos son
suficientes para representar diagramas de flujo de procesos realizados por
un solo recurso monotarea. Sin embargo, en la mayora de los casos que nos
ocupan, son claramente insuficientes para dotar a los diagramas de la
semntica adecuada. Por ello vamos a aadir tres smbolos ms.

B.2. SMBOLOS DE SEMNTICA AMPLIADA:


Como puede apreciarse en la plantilla del inicio, existe una gran variedad de
smbolos, adems de los tres bsicos. Pero, antes de lanzarnos a conocerlos
todos, es necesario considerar que para disear, de forma eficiente, los DF
que nos interesan es recomendable limitar el nmero de smbolos utilizados
en los diagramas al mnimo imprescindible, en aras a la legibilidad y la
comprensibilidad pro parte de los lectores / usuarios.
Los tres smbolos que se recomienda para ampliar la semntica del diagrama
de flujo son los tres siguientes:
- Rectngulo o caja con doble lnea lateral:
Representa un proceso o actividad compleja, cuyo
detalle se desarrolla (se especifica o detalla) en otro documento, por
ejemplo, en otro Diagrama de Flujo donde se hace un zoom sobre esta
actividad compleja o en una instruccin de trabajo especfica.
- PseudoRectngulo o caja con lado inferior con
doble curva: Representa un documento, o una
informaci n, de entrada o de salida, en cualquier
soporte 4 . Puede representar simplemente una
informacin, sin especificacin del soporte.

IMPORTANTE: LAS INFORMACIONES ENTRAN O SALN DE LAS


ACTIVIDADES (CJAS RECTANGULARES), NUCA DEL FLUJO (FLEHCAS)

B.3. SMBOLOS AUXILIARES:


- Pseudorectngulo con los laterales de 1/2 arco de
circunferencia: Representa el "Punto de Inicio" o el
"Punto de Fin" del diagrama, es decir, los lmites del
proceso representado. MUY IMPORTANTE: En un
diagrama solo pueda haber un solo punto de inicio y un solo punto de fin.

- Pentgono apuntando hacia abajo: Conector de


pgina del flujo (salto de pgina del flujo). Se
incluyen en la pgina origen del flujo y en la destino.
IMPORTANTE: En principio, los DF no deberan
ocupar ms de una pgina. Por ello, el uso de este
smbolo est limitado solo a los casos en que nos veamos obligados a no
respetar la regla anterior y que hemos de procurar que sean los mnimos,
y solo en casos justificados.
C. REGLAS DE DISEO:

- Regla sobre el Inicio y el Fin del DF: La regla ms importante a tener en


cuenta en un diagrama de flujo es: Recordemos: Todo Diagrama de Flujo
tiene UN SOLO punto de inicio y UN SOLO punto final. Respetar
escrupulosamente esta regla posibilita la realizaci n del anlisis y diseo
estructurado de los diagramas por niveles de complejidad. Se puede
considerar el punto de inicio y el de fin de un diagrama como " puntos de
anclaje", una especie de mecano de diagramas. Ver el apartado 4.
Anlisis estructurado en los Diagramas de Flujo.

- Regla sobre la Direccin general del DF5 : Ante la realizacin de un DF,


una de las primeras decisiones que deber tomar el autor es la direccin
general del flujo del diagrama " dado que existen dos alternativas: vertical
u horizontal. Para facilitar la lectura, y el diseo, recomendamos, siempre
que sea posible, que la direccin general del flujo sea vertical
descendente. Es aconsejable posicionar la secuencia normal" de
actividades en el centro del diagrama. Se entiende por secuencia
normal", las actividades que se realicen en la mayora de los casos.

- Analicemos la figura de la derecha: la secuencia de actividades que se


muestra en el diagrama de la derecha es:
Ejecutar la "actividad A"
Ejecutar luego la actividad B
A continuacin, evaluar la "condicin"
En funcin del resultado de la evaluacin de
la condicin, pasar a ejecutar la "actividad C"
o repetir la ejecucin de la actividad B. En la
mayora de los casos (en ms del 50%) el
camino (flujo) resultante deber ser la
ejecucin de la actividad C. Solo en los casos
especiales (menos del 50%), la evaluaci n de
la condicin ha de dar como resultado repetir
la ejecucin de la actividad B y luego volver
a evaluar la condicin.

- Regla sobre el flujo entrante y saliente de cada actividad: Las actividades,


simples o complejas, han de tener UN SOLO punto de entrada del flujo y
UN SOLO punto de salida . De hecho el nico icono especial 6 es el rombo
(condicin) que tiene un solo punto de entrada del flujo y dos puntos de
salida.
A) Flujo entrante: A un smbolo determinado solo le puede llegar una
flecha de flujo, es decir, todo smbolo solo tiene un nico punto de
llegada del flujo. El punto de conexin de las flechas del flujo entrante
con los iconos ha de serel centro de la parte superior del smbolo,
especialmente en los rombos (decisin alternativa).
B) Flujo saliente: A un smbolo determinado, con excepcin del rombo
(condicin) solo le puede salir una flecha de flujo, es decir, todo
smbolo, excepto el rombo, solo tiene un nico punto de salida del flujo.
El punto de conexin de las flechas del flujo saliente con los iconos ha
de ser el centro de la parte inferior del smbolo, excepto en los rombos
(decisin), que han se tratan en la regla siguiente.
3.4.

- Regla sobre las etiquetas de los iconos:


Actividad o tarea: Cada rectngulo ha de incluir una etiqueta con el
nombre de la actividad representada. Se recomienda que estas etiquetas est
n redactadas utilizando verbos en infinitivo (idea de actividad).
Decisin: El smbolo del rombo ha de contener el texto de la pregunta.
El propio icono (rombo) significa pregunta, por ello no es imprescindible
incluir los signos de interrogacin en este texto, dado que quedan implcitos.
La pregunta ha de estar formulada de forma que solo admita dos respuestas
posibles: "SI" o "NO" (o alternativamente: CIERTO o FALSO). Las dos
salidas del flujo han de estar etiquetadas las dos o una (la otra ser obvia)
con las etiquetas Si y No. Si es posible, es preferible plantear las preguntas
de forma que la respuesta afirmativa corresponda a la secuencia normal.
Conector de pgina: Cuando se utilicen conectores entre pginas, se
puede especificar dentro del pent gono el nmero de la pgina de destino
(significado hacia) o la pgina de origen (significado desde). Si existe
ms de un conector entre pginas, se aaden letras (A, B, C, ...) para
diferenciar los flujos que representan.
Documento y Base Datos: Dado que, en la mayora de los casos
estamos refirindonos a registros (informacin sobre un soporte), la etiqueta
debe contener su identificacin, por ejemplo, mediante su cdigo y su
nombre.
D. RESUMEN OPERATIVO DE LAS REGLAS DE DISEO:
1. Dibujar un solo inicio en la parte central superior y un solo fin en la
parte central del diagrama.
2. Posicionar las actividades de la secuencia normal (las que se
realizan en la mayora de los casos) sobre la vertical entre el inicios
y fin en el centro del diagrama, La secuencia normal vendr reflejada
por las flechas descendente que unen esas actividades.
3. Situar entre las actividades operativas las condiciones de control de
flujo.
4. Dibujar los flujeo s salto hacia adelante por el lado derecho de la
vertical centrar. Dibujar los flujos de salto de retroceso por el lado
izquierdo de la vertical definida por la secuencia normal de
actividades.
5. Aadir las entradas por el lado izquierdo de la actividad y las salidas
por el lado derecho. Utilizar un formato de las flechas de E/S distinto
de las que se utilice para representar el flujo.

E. ERRORES HABITUALES EN LA CONFECCIN DE DIAGRAMAS DE


FLUJO.

- ERROR: Hacer salir dos o ms flechas de una accin (rectngulo). El


nico smbolo que tiene dos salidas es el rombo (decisi n alternativa).
- ERROR: Representar las decisiones mediante un smbolo distinto al
rombo. Si el texto de la pregunta es muy extenso puede arrollarse este al
pie de la pgina y poner una llamada en el rombo.
- ERROR: Introducir en la lnea del flujo un smbolo que no corresponda a
una accin (simple o compleja) o una decisin. Es errneo, por ejemplo,
introducir en lnea de flujo un documento.
- ERROR: Nmero de salidas de una decisin (rombo) distinto a dos. Las
decisiones (ROMBOS) admiten, como mnimo, y como mximo, dos
salidas correspondientes a las respuestas Si y No.
- ERROR: Diagramas de varias pginas. Si el Diagrama de Flujo es
demasiado largo (ms de 2 pginas) ser prcticamente ilegible. Agrupar
algunas acciones en una accin compleja hasta obtener un Diagrama de
2 pginas como mximo (mejor 1). Desarrollar, si es necesario, los
Diagramas de detalle de las acciones complejas en otro documento.
- ERROR: En diagramas verticales, situar el el f lujo de retorno en el lado
derecho del diagrama: provoca confusin al lector. Representar, siempre
que ello sea posible, el flujo de retorno (errores, reprocesos, vueltas atr
s, etc.) por el lado izquierdo (para diagramas verticales).
- ERROR: No respetar la regla sagrada del Anlisis Estructurado: un solo
Inicio y un solo Fin en cada diagrama. Poner ms de un inicio, o de
un fin, provoca confusin al lector del diagrama. Esta regla asegura el
cumplimiento de la coherencia estructural entre los diagramas de distintos
niveles de detalle...
F. Como hacer un diagrama de flujo
Normalmente para realizar un diagrama de flujo primero se hace lo que se llama
el algoritmo. Un algoritmo es una secuencia de PASOS LGICOS a seguir
para resolver un problema de forma escrita.
Un ejemplo para cocinar un huevo para otra persona sera:
- Pregunto Si quiere el huevo frito
- Si me dice que si, lo frio, si me dice que no, lo hago hervido.
- Una vez cocinado le pregunto si quiere sal en el huevo.
- Si me dice que no, lo sirvo en el Plato, si me dice que si, le hecho sal y
despus lo sirvo en el plato.

Si te fijas los pasos no pueden cambiar su posicin. Sera imposible preguntarle


si lo quiere frito despus de haberlo hervido, por ejemplo. Es muy importante que
los pasos sen una secuencia lgica y ordenada.

Ahora que ya sabemos todos los pasos, mediante el algoritmo, podemos hacer
un esquema con estos pasos a seguir. Este esquema ser el Diagrama de
Flujo.
EJEMPLO N 1
Queremos hacer un programa informtico que nos sume dos nmeros y nos d
el resultado en pantalla.
EJEMPLO N 2: Bueno vamos hacer uno que nos muestre el resultado del rea
de un tringulo en pantalla.

Como ves, en este ni siquiera hemos puesto las operaciones dentro de los
smbolos, ya que, con la forma del smbolo ya se entiende.

No hemos usado mucho el smbolo de tomar un decisin, por eso vamos


hacer uno en el que nos diga si el nmero es par o impar:

La palabra mod significa dividir, por lo tanto mod 2 es dividir entre 2. Como ya
debes saber si divido un nmero entre 2 y el resto es 0 el nmero es par, en caso
contrario sera impar. Bien pues hay esta la decisin.
Al dividirlo entre 2 el resto es 0? Hay 2 posibilidades. Si lo es, se ve en pantalla
"Si es par", si no lo es, se ve en pantalla "No es par". Eso es la toma de
decisiones. Toma una salida en funcin del resultado de la entrada.
EJEMPLO N4: Tenemos que hacer un diagrama de flujo para mostrar la
suma de los 50 primeros nmeros

Inicio

Suma = 0
N=0

N=N+1

Suma = Suma + N
no

A Es N=50?

si

Muestra
Suma

Fin
2. PSEUDOCDIGO:
Como alternativa a los diagramas de flujo y cada vez ms en uso est el
pseudocdigo, que permite una aproximacin del algoritmo al lenguaje natural y
por tanto una redaccin rpida del mismo, con el inconveniente de la prdida
consecuente de precisin. Conocido tambin como falso lenguaje, es una
descripcin de alto nivel compacta e informal del principio operativo de un
programa informtico u otro algoritmo.

Los programas deben ser escritos en un lenguaje que pueda entender el


ordenador, pero no olvidemos que nuestra forma normal de expresar algo es en
lenguaje natural. De la aproximacin entre ambos surge una herramienta para la
descripcin de algoritmos: el pseudocdigo. Las caractersticas de este
pseudolenguaje son:

- Sintaxis sencilla
- Manejo de las estructuras bsicas de control
- Solo 3 tipos de datos bsicos: numrico, carcter/cadenas de
caracteres y lgico (verdadero- falso)
- Estructuras de datos (arreglos): Los arreglos son estructuras de datos
homogneas (todos sus datos son del mismo tipo) que permiten
almacenar un determinado nmero de datos bajo un mismo identificador,
para luego referirse a los mismo utilizando uno o ms subndices. Los
arreglos pueden pensarse como vectores, matrices, etc. Para poder
utilizar un arreglo, primero es obligatorio su dimensionamiento; es decir,
definirlo declarando los rangos de sus subndices, lo cual determina
cuantos elementos se almacenarn y como se acceder a los mismos.

TIPOS DE DATOS SIMPLES:


Existen 3 tipos de datos bsicos

- Numrico: nmeros, tanto enteros como reales. Para separar decimales


se utiliza el punto. Ejemplos: 12 23 0 -2.3 3.14
- Lgico: solo puede tomar dos valores: VERDADERO o FALSO.
- Carcter: caracteres o cadenas de caracteres encerrados entre comillas
(pueden ser dobles o simples). Ejemplos 'hola', "hola mundo" ,'123',
'FALSO', 'etc'

Opcionalmente, se puede declarar una variable numrica como entera con la


instruccin DEFINIR. En este caso, todo valor no entero que se lea o asigne
a la misma ser truncado.
Operadores y funciones
Este pseudolenguaje dispone de un conjunto bsico de operadores y funciones
que pueden ser utilizados para la construccin de expresiones ms o menos
complejas. Las siguientes tablas exhiben la totalidad de los operadores de este
lenguaje reducido:

Las funciones en el pseudocdigo se utilizan de forma similar a otros lenguajes.


Se coloca su nombre seguido de los argumentos para la misma encerrados entre
parntesis (por ejemplo trunc(x)). Se pueden utilizar dentro de cualquier
expresin, y cuando se evale la misma, se reemplazar por el resultado
correspondiente. Actualmente, todas las funciones disponibles son matemticas
(es decir que 9 devolvern un resultado de tipo numrico) y reciben un slo
parmetro de tipo numrico. A continuacin, se listan las funciones integradas
disponibles:
Es por tanto un lenguaje algortmico que permite representar las construcciones
bsicas de los lenguajes de programacin, pero a su vez, mantenindose
prximo al lenguaje natural. A pesar de su flexibilidad el pseudocdigo tiene que
atenerse a una serie de normas para que los algoritmos construido resulten
legibles, claros y fcilmente codificables, con este fin se le imponen algunas
restricciones tales como:
Los identificadores usados han de tener un significado de acuerdo a su
contenido.
El conjunto de sentencias debe ser completo, en el sentido de permitir
especificar cualquier tarea a realizar con suficiente detalle.
Contener un conjunto de palabras reservadas.

A. VENTAJAS Y DESVENTAJAS

1. Ocupan mucho menos espacio en el desarrollo del problema.


2. Permite representar de forma fcil operaciones repetitivas complejas.
3. Es ms sencilla la tarea de pasar de pseudocdigo a un lenguaje de
programacin formal.
4. Si se siguen las reglas de identacin se puede observar claramente los
niveles en la estructura del programa.
5. En los procesos de aprendizaje de los alumnos de programacin, stos
estn ms cerca del paso siguiente (codificacin en un lenguaje
determinado, que los que se inician en esto con la modalidad
Diagramas de Flujo).
6. Mejora la claridad de la solucin de un problema.

El principal inconveniente que presenta el uso del pseudocdigo como


lenguaje de descripcin de algoritmos es la imprecisin.

B. ESTRUCTURAS BSICAS DE CONTROL

B.1. Secuencial. - esta consiste en colocar cada instruccin un tras de la


otra sin tener ningn tipo de saltos
- Lectura (entrada): la instruccin leer permite ingresar desde el ambiente
(teclado) y los asigna a las N variables mencionadas. Pueden incluirse
una o ms variables, por lo tanto el comando leer uno o ms valores.
Leer <vairable1> , <variable2> , , <variableN>;
- Asignacin (proceso): la instruccin de asignacin permite almacenar
un valor en una variable. Al ejecutarse la asignacin, primero se evala la
expresin de la derecha y luego se asigna el resultado a la variable de la
izquierda. El tipo de la variable y el de la expresin deben coincidir.
<variable> <-expresin>;

- Escritura (salida): la instruccin Escribir permite mostrar valores al


ambiente. Esta isntruccin imprime al ambiente (pantalla) los valores
obtenidos de evaluar N expresiones. Dado que puede incluir una o ms
expresiones, mostrar uno o ms valores.
Escribir <exprl> , <expr2> , , <exprn>;

B.2. Condicionales:

- Si- Entonces (if then): la secuencia de instrucciones ejecutadas por la


instruccin si- entonces- sino depende del valor de una condicin lgica.
Ale ejecutarse esta instruccin, se evala la condicin y se ejecuten las
instrucciones que correspondan, las instrucciones que le siguen al
Entonces su la condicin es verdadera, o a las instrucciones que le siguen
al Sino si la condicin es falsa. La condicin debe ser una expresin
lgica, que al ser evaluada retorna al Verdadero o Falso. LA clusula
Entonces debe aparecer siempre, pero la clusula Sino puede no estar.
Si la condicin es falsa, no se ejecuta ninguna instruccin y se continua
con la siguiente
Si <condicin> Entonces
<instrucciones>
Sino
<instrucciones>
Fin Si

- Seleccin mltiple (Select if): la secuancia de instrucciones ejecutada


por una instruccin Segn depende del valor de una variable numrica.
Esta instruccin permite ejecutar opcionalmente varias acciones posibles,
dependiendo del valor almacenado en una variable de tipo numrico. Al
ejecutarse, se evala el contenido de la variable y se ejecuta la secuencia
de instrucciones asociada con dicho valor. Cada opcin est formada por
uno o ms nmeros separados por comas, dos puntos y una secuencia
de instrucciones. Si una opcin incluye varios nmeros, la secuencia de
instrucciones asociada se debe ejecutar cuando el valor de la variable es
uno de esos nmeros. Opcionalmente, se puede agregar una opcin final,
denominada De Otro Modo, cuya secuencia de instrucciones asociada se
ejecutar slo si el valor almacenado en la variable no coincide con
ninguna de las opciones anteriores
Segn <variable> hacer
<nmero1> : <instrucciones>
<nmero2> , <nmero3> : <instrucciones>
<>

B.2. Repetitivas:

- Mientras Hacer (While): ejecuta una secuencia de instrucciones


mientras una condicin sea verdadera. Al ejecutarse esta instruccin, la
condicin es evaluada. Si la condicin resulta verdadera, se ejecuta una
vez la secuencia de instrucciones que forman el cuerpo del ciclo. Al
finalizar la ejecucin del cuerpo del ciclo se vuelve a evaluar la condicin
y, si es verdadera, la ejecucin se repite. Estos pasos se repiten mientras
la condicin sea verdadera. Note que las instrucciones del cuerpo del ciclo
pueden no ejecutarse nunca, si al evaluar por primera vez la condicin
resulta ser falsa. Si la condicin siempre es verdadera, al ejecutar esta
instruccin se produce un ciclo infinito. A fin de evitarlo, las instrucciones
del cuerpo del ciclo deben contener alguna instruccin que modifique la o
las variables involucradas en la condicin, de modo que sta sea
falsificada en algn momento y as finalice la ejecucin del ciclo.
Mientras <condicin> Hacer
<instrucciones>
FinMientras

- Repetir Hasta Que (do-while): ejecuta una secuencia de instrucciones


hasta que la condicin sea verdadera. Al ejecutarse esta instruccin, la
secuencia de instrucciones que forma el cuerpo del ciclo se ejecuta una
vez y luego se evala la condicin. Si la condicin es falsa, el cuerpo del
ciclo se ejecuta nuevamente y se vuelve a evaluar la condicin. Esto se
repite hasta que la condicin sea verdadera. Note que, dado que la
condicin se evala al final, las instrucciones del cuerpo del ciclo sern
ejecutadas al menos una vez. Adems, a fin de evitar ciclos infinitos, el
cuerpo del ciclo debe contener alguna instruccin que modifique la o las
variables involucradas en la condicin de modo que en algn momento la
condicin sea verdadera y se finalice la ejecucin del ciclo.
Repetir
<instrucciones>
Hasta Que <condicin>

- Para (For): ejecuta una secuencia de instrucciones un nmero


determinado de veces. Al ingresar al bloque, la variable <variable> recibe
el valor <inicial> y se ejecuta la secuencia de instrucciones que forma el
cuerpo del ciclo. Luego se incrementa la variable <variable> en <paso>
unidades y se evala si el valor almacenado en <variable> super al valor
<final>. Si esto es falso se repite hasta que <variable> supere a <final>.
Si se omite la clusula Con Paso <paso>, la variable <variable> se
incrementar en 1.
Para <variable> <- <inicial> Hasta <final> (Con Paso <paso> ) Hacer
<instrucciones>
FinPara

Podemos concluir entonces que Comienza con la palabra clave dependiendo del
Proceso, luego le sigue una secuencia de instrucciones y finaliza con la palabra
FinProceso. Una secuencia de instrucciones es una lista de una o ms
instrucciones, cada una terminada en punto y coma. Las acciones incluyen
operaciones de entrada y salida, asignaciones de variables, condicionales si-
entonces o de seleccin mltiple y/o lazos mientras, repetir o para
Al igual que en el caso del diagrama de flujo existen ciertas reglas para que sea
un buen pseudocdigo:

Tenga un nico punto de inicio


Tenga un nmero finito de posibles puntos de trmino
Haya un nmero finito de caminos, entre el punto de inicio y los posibles
puntos de trmino.

C. CMO SE ESCRIBE EN PSEUDOCDIGO?

Como ya dijimos es un lenguaje intermedio entre el lenguaje de


programacin que usemos y el nuestro. No hay unas reglas fijas para escribir
en pseudocdigo, pero la mayora de la gente usa ms o menos el mismo
vocabulario. Por lo que no se rige por ninguna estandarizacin.
Por ejemplo, si queremos escribir algo en pantalla, en pseudocdigo
podramos poner:
Escribir "Hola" , Escribir 20 o Escribir Variable

OJO escribir 20 y escribir "20" son dos cosas diferentes. Lo que sea texto
siempre se pone entre comillas, los nmeros NO. Entonces escribir 20, es
mostrar en pantalla el nmero 20 y escribir "20" es mostrar en pantalla 20.
Puede parecer lo mismo, pero no lo es, en una 20 es un texto y en otro un
nmero.
Realmente el pseudocdigo lo podramos escribir como nosotros quisiramos,
ya que realmente no es el programa en s, solo es una ayuda para
posteriormente realizar el programa mediante el lenguaje de programacin
que utilicemos. Eso s, el pseudocdigo es de gran ayuda. por no decir
imprescindible.

Si sabemos hacer el pseudocdigo del programa, pasarlo a cualquier lenguaje


de programacin es muy sencillo, solo tendremos que aprender los comandos
equivalentes a las instrucciones en pseudocdigo, normalmente muy
parecidas pero en ingls.

EJEMPLO N1: Realizar el pseudocdigo de un programa que permita


calcular el rea de un rectngulo. Se debe introducir la base y la altura para
poder realizar el clculo.
Programa; rea
Entorno: BASE, ALTURA, AREA son nmero enteros
Algoritmo:
escribir Introduzca la base y la altura
leer BASE, ALTURA
calcular AREA = BASE * ALTURA
escribir El rea del rectngulo es AREA
Finprograma

EJEMPLO N2: Realizar el pseudocdigo que permita al usuario introducir


por teclado dos notas, calculando la suma y el producto de las notas.
Programa: SumaProducto
Entorno: NOTA1,NOTA2,SUMA,PRODUCTO son nmeros
enteros
Algoritmo:
escribir Introduzca las notas
leer NOTA1,NOTA2
calcular SUMA = NOTA1 + NOTA2
calcular PRODUCTO = NOTA1 * NOTA2
escribir La suma de las dos notas es: SUMA
escribir El producto de las dos notas es :PRODUCTO
Finprograma
EJEMPLO N3: Realizar el pseudocdigo de un programa que permita
saber si un nmero es mayor, menor o igual a cero.
Programa: ComparaNmeros
Entorno: NUMERO es un nmero entero
Algoritmo:
Escribir Introduzca un nmero
leer NUMERO
SI NUMERO>0 ENTONCES
escribir El nmero introducido es positivo
SI NO
SI NUMERO<0 ENTONCES
escribir El nmero introducido es negativo
SI NO
escribir El nmero es cero
FINSI
FINSI
Finprograma

EJEMPLO N4: Supongamos un algoritmo que lea las coordenadas de


tres puntos y los mueva tres puntos en la coordenada x y escriba el
resultado en algn dispositivo de salida.

ALGORITMO lee_tres_vertices
ENTRADA: las coordenadas (x,y) de tres puntos
SALIDA: las coordenadas (x,y) de los tres puntos movidos 3 puntos hacia
la derecha.
VARIABLES: i:entera
x,y: real
INICIO
PARA i=1 HASTA 3 CON INCREMENTO +1
ESCRIBE "Abscisa del punto nmero ", i
LEER x
ESCRIBE "Ordenada del punto nmero ", i
LEER Y
ESCRIBE "El punto es (" x+3","y")"
FIN_PARA
FIN
3. DIAGRAMA ESTRUCTURADO NASSI-SCHNEIDERMAN
El diagrama N-S de Nassi-Schneiderman (conocido tambin como diagrama de
Chapin) es una representacin grfica de un algoritmo para programacin
estructurada. Reflejan esta descomposicin de una forma clara y simple, usando
cajas anidadas para representar subproblemas.
Estos diagramas son una tcnica para la especificacin de algoritmos que
combina la descripcin textual del pseudocdigo con la representacin grfica
del diagrama de flujo en el que se omiten las flechas de unin.

La representacin en este diagrama se realiza a travs de los siguientes


componentes:
-Declaracin de variables, constantes e inicializacin.
-Asignacin
-Instruccin Leer instruccin Escribir.
-Proceso de valores con el objetivo de obtener resultados en el que se puede
combinar diferentes componentes.
-Salida de resultados obtenidos
Declaracin de variables
Teniendo en cuenta la compatibilidad con la mayora de los lenguajes, se
recomienda que desde el diseo del programa se utilice una forma determinada
para la declaracin de las variables. Esta consiste en escribir el tipo de datos y
la lista de identificadores que se tendrn de dicho tipo, separando cada
identificador por medio de comas (,). Para mejorar la claridad de la declaracin
se puede colocar dos puntos (:) para separar el tipo de datos de la lista de
identificadores.
Ejemplo:
Entero: edad
Real: estatura, peso, sueldo
Cadena: nombre, direccin
Aunque algunos lenguajes de programacin permiten declarar las variables en
el momento en que se las necesita, es aconsejable, en favor de los buenos
hbitos de programacin, siempre declarar las variables antes de utilizarlas y el
sitio ms adecuado es el inicio del programa o de la funcin.
Asignacin
Asignar un valor a una variable equivale a decir que se guarda dicho valor en la
posicin de memoria reservado para la variable en mencin. Por lo tanto,
para poder realizar una asignacin es necesario primero haber declarado una
variable, con lo cual se reserva un espacio de memoria suficiente para guardar
un dato del tipo especificado.
Una expresin de asignacin tiene la forma:
Variable = expresin
Donde la expresin puede estar formada por un valor, por un conjunto de valores
y operadores o por una funcin.
Una asignacin tiene tres partes, una variable, el signo igual y la expresin cuyo
valor se asigna a la variable. La variable siempre va a la izquierda del igual,
mientras que la expresin siempre estar a la derecha.

Instruccin Leer
La instruccin LEER se utiliza para enviar informacin desde un dispositivo de
entrada de datos hacia la memoria. En la memoria los datos son ubicados
mediante el identificador (nombre de variable) utilizado como complemento de la
instruccin LEER.
En diagrama N-S la instruccin de entrada se representa as:
Leer <lista de identificadores de variables>
Ejemplo:
Leer a, b
Donde "a" y "b" son las variables que recibirn los valores y que deben haberse
declarado previamente.

Instruccin Escribir
Esta instruccin permite enviar datos desde la memoria hacia un dispositivo de
salida como la pantalla o la impresora. La informacin que se enva puede ser
constante o tambin el contenido de variables.
Escribir <lista de constantes y variables>
Ejemplo:
Escribir a, b

Cuando se escriben ms de una variable es necesario separarlas con comas (,)


y los mensajes se escriben entre comillas dobles " ". Si una variable es escrita
entre comillas se mostrar el identificador y no el contenido.

Caractersticas de un buen diagrama Nassi-Schneiderman:

En la primera caja debe ir el nombre o ttulo del algoritmo, en el recuadro


siguiente debe ir la palabra Inicio.
La ltima instruccin de un Diagrama NS debe ser el recuadro Fin.
Todas las declaraciones de variables, funciones deben estar especificadas bajo
el recuadro que contiene la palabra Inicio.
Las estructuras de seleccin y cclicas deben estar lo ms clara posible
El diseo debe caer en una hoja, a excepcin de la utilizacin de funciones, las
cuales pueden estar en otra hoja, debido a que se consideran un algoritmo
diferente.
Simbologa utilizada en Tcnica Nassi-Schneiderman
Smbolo Descripcin

Ttulo del Algoritmo

Indica el inicio de un algoritmo.

Indica el Fin de un algoritmo.

Declaracin de Variables.

Indica la entrada de informacin

Indica la salida de informacin

Indica un proceso, una ejecucin de


una lnea de cdigo, que puede ser
una asignacin.

Estructura de Decisin.

Estructura de Decisin Mltiple


Estructura Cclica de Ciclo Desde-
Hasta

Estructura Cclica de Ciclo Hacer -


Mientras

Estructura cclica de Repetir - Hasta

Principales ventajas de los diagramas NS:

Adecuacin a la programacin estructurada.

Favorecen las tcnicas de diseo descendente.


Favorecen la particin de los programas en mdulos pequeos;
resaltando ms las partes generales sobre los detalles concretos, que
quedan ms pequeos cuanto ms especficos son.

Desventajas de los diagramas NS:

En algoritmos extensos su diseo es muy difcil de comprender.


La mantencin modificacin de este tipo de diagramas es
tediosa.
Requiere de hojas muy extensas para ser escrito, debido a que
carece de conectores que permitan su conexin con otras hojas.
EJEMPLO 1:
-Disear un algoritmo para calcular el rea y el permetro de un rectngulo

Definicin del problema


Calcular rea y permetro de un rectngulo

Anlisis del problema


Para desarrollar este problema es necesario conocer las frmulas para obtener tanto el
rea como el permetro de un rectngulo.
Sea b = base y h = altura, las frmulas a utilizar son:
Area = b * h
Permetro = 2 * (b + h)
Datos de entrada: b y h (base y altura)
Datos de salida: rea y permetro
Procesos: rea = b * h
Permetro = 2 * (b + h)

Diseo de la solucin

Inicio

Entero: b, h, a, p
Leer b, h
a=b*h

p = 2 (b + h)
Escribir "rea:", a
Escribir "permetro:", p

Fin
EJEMPLO 2:

-Un maestro desea saber que porcentaje de hombres y que porcentaje de mujeres
hay en un grupo de estudiantes.

Definicin del problema


Calcular porcentaje de hombres y mujeres en un grupo

Anlisis del problema


Datos a tener en cuenta:
Nmero hombres
Nmero mujeres
Total estudiantes
Porcentaje hombres
Porcentaje mujeres
Datos de entrada: nmero hombres, nmero mujeres
Datos salida: porcentaje hombres, porcentaje mujeres
Procesos: tot estudiantes = nm. hombres + nm. Mujeres
Porc.hombres = nm. Hombres / tot estudiantes*100
Porc.hombres = nm. mujeres / tot estudiantes*100

Diseo de la solucin

Inicio
Entero: nm.M, num.H, totest
Real: porcH, porcM
Leer num.M, num.H
totest = num.M + num.H
porcM = num.M / totest * 100
porcH = num.H / totest * 100
Escribir "porcentaje mujeres:", porcM
Escribir "porcentaje hombres:", porcH
Fin

You might also like