You are on page 1of 23

Diseo de algoritmos

mediante diagramas
de Nassi-Schneiderman

Contenido
PRESENTACION................................................................................................. 3
ALGORITMO...................................................................................................... 3
Caractersticas de un algoritmo.................................................................4
DIAGRAMAS DE NASSI-SCHNEIDERMAN.......................................................5
Palabras reservadas.................................................................................... 5
Smbolos utilizados en el diagrama de Chapin........................................5
Definicin................................................................................................... 6
Declaracin de variables..........................................................................6
Asignacin.................................................................................................. 6
Instruccin Leer......................................................................................... 7
Instruccin Escribir................................................................................... 7
Ejemplos:.................................................................................................... 7

PRESENTACION
Los algoritmos, como procedimiento para solucionar problemas, han
existido desde muchos siglos atrs, sin embargo, se han convertido en
tema de inters de estudiante y profesionales por cuanto son el
fundamento de la programacin de computadores.
Desarrollar un programa de computador significa: indicarle al
computador, en un lenguaje que l pueda entender, todos y cada uno de
los pasos que debe ejecutar para lograr el objetivo propuesto, pero
antes de pensar en decirle al computador cmo hacer algo, es necesario
que el programador sepa cmo hacerlo. Es all donde entra a jugar un
papel preponderante el desarrollo de algoritmos, pues antes de escribir
un programa es necesario disear el algoritmo para solucionar el
problema en cuestin.
Existen varias tcnicas para representar algoritmos, las ms conocidas
son: pseudocdigo, diagrama de flujo y diagrama N-S. En este
documento se desarrolla la metodologa de diagramas N-S o tambin
conocida como diagramas de Chapin.

ALGORITMO
Se sabe que la palabra algoritmo se dio en honor del matemtico persa
del siglo IX, Khowrizm. Con ste trmino se hace referencia a un
conjunto de reglas, ordenadas de forma lgica, para desarrollar un
clculo o para solucionar un problema, ya sea de forma manual o
utilizando una mquina. Actualmente es frecuente hablar de algoritmo
como paso previo al desarrollo de un programa de computador.
Los algoritmos estn, con mayor o menor complejidad, en todas las
actividades desarrolladas por el hombre y han sido utilizados por todos,
infinidad de veces, sin embargo, cuando se aborda el tema como parte
de la educacin formal se mitifica y se difunde el prejuicio sobre que es
un tema complicado.
Desde los primeros aos de escolaridad se trabaja con algoritmos, en
especial en el campo de las matemticas. Los mtodos utilizados para
sumar, restar, multiplicar y dividir son algoritmos que cumplen
perfectamente las caractersticas de precisin, finitud, definicin y
eficiencia.
Para que la solucin de un problema sea llevada hasta un lenguaje de
programacin, los pasos expresados en el algoritmo deben ser lo ms
detallados posible, de manera que cada uno de ellos implique una

operacin trivial; es decir, que los pasos no impliquen procesos que


requieran de una solucin algortmica. En caso de presentarse esta
situacin, el algoritmo debe ser refinado, lo que equivale a desarrollar
nuevamente el algoritmo para la tarea concreta a la que se hace
mencin.
Si el problema que se desea solucionar es muy grande o complejo, es
recomendable dividirlo en tareas que se puedan abordar
independientemente y que resulten ms sencillas de solucionar. A esto
se le llama diseo modular.

Caractersticas de un algoritmo
Un algoritmo debe tener al menos las siguientes caractersticas:

Ser preciso: esto significa que las operaciones o pasos del


algoritmo deben desarrollarse en un orden estricto, ya que el desarrollo
de cada paso debe obedecer a un orden lgico.
Ser definido. Ya que en el rea de programacin, el algoritmo se
desarrolla como paso fundamental para desarrollar un programa, es
necesario tener en cuenta que el computador solo desarrollar las tareas
programadas y con los datos suministrados; es decir, no puede
improvisar y tampoco se inventar o adivinar el dato que necesite para
realizar un proceso. Por eso, el algoritmo debe estar plenamente
definido; esto es, que cuantas veces se ejecute, el resultado depende
estrictamente de los datos suministrados. Si se ejecuta con un mismo
conjunto de datos de entrada, el resultado ser siempre el mismo.
Ser finito: esta caracterstica implica que el nmero de pasos de
un algoritmo, por grande y complicado que sea el problema que
soluciona, debe ser limitado. Todo algoritmo, sin importar el nmero de
pasos que incluya, debe llegar a un final. Para hacer evidente esta
caracterstica, en la representacin de un algoritmo siempre se incluyen
los pasos inicio y fin.
Presentacin formal: para que el algoritmo sea entendido por
cualquier persona interesada es necesario que se exprese en alguna de
las formas comnmente aceptadas; pues, si se describe de cualquier
forma puede no ser muy til ya que solo lo entender quien lo dise.
Las formas de presentacin de algoritmos son: el pseudocdigo,
diagrama de flujo y diagramas de Nassi/Schneiderman, entre otras.
Correccin: el algoritmo debe ser correcto, es decir debe
satisfacer la necesidad o solucionar el problema para el cual fue
diseado. Para garantizar que el algoritmo logre el objetivo, es necesario
ponerlo a prueba; a esto se le llama verificacin o prueba de escritorio.
Eficiencia: hablar de eficiencia o complejidad de un algoritmo es
evaluar los recursos de cmputo que requiere para almacenar datos y

para ejecutar operaciones frente al beneficio que ofrece. En cuanto


menos recursos requiere ser ms eficiente el algoritmo.

La vida cotidiana est llena de soluciones algortmicas, algunas de ellas


son tan comunes que no se requiere pensar en los pasos que incluye la
solucin. La mayora de las actividades que se realizan diariamente
estn compuestas por tareas ms simples que se ejecutan en un orden
determinado, lo cual genera un algoritmo. Por ejemplo, son tareas
comunes, realizar una llamada telefnica, buscar un nmero en el
directorio telefnico, buscar un anuncio en las pginas amarillas del
directorio, preparar caf, regar las plantas, poner en funcionamiento un
automvil, cambiar una llanta, entre muchas otras.
Muchos de los procedimientos utilizados para desarrollar tareas
cotidianas son algortmicos, sin embargo, esto no significa que todo lo
que se hace est determinado por un algoritmo. El cumplimiento de las
caractersticas mencionadas anteriormente permitir determinar si un
procedimiento es o no es algortmico.
Una receta de cocina para preparar un plato cualquiera puede ser un
algoritmo, pero tambin puede no serlo, dependiendo de las
especificaciones. Si una de las instrucciones a desarrollar dice "aplicar
sal al gusto" ya puede afirmarse que no es un algoritmo, porque
contiene un elemento subjetivo, no definido. Esta misma accin podra
aparecer de la forma "aplicar 20 gramos de sal", en cuyo caso no se
requiere del gusto (subjetivo) de quien lo aplica y por tanto no
contradice el principio de la algoritmia.
El primer paso en el diseo de un algoritmo es conocer la temtica a
tratar, el segundo ser pensar en las actividades a realizar y el orden en
que deben ejecutarse para lograr el objetivo, el tercero y no menos
importante es la presentacin formal.

DIAGRAMAS DE NASSI-SCHNEIDERMAN
El diagrama N-S o tambin conocido como diagrama de Chapin es una
tcnica de especificacin de algoritmos que combina la descripcin
textual, propia del pseudocdigo, con la representacin grfica del
diagrama de flujo.

Palabras reservadas
El diagrama N-S cuenta con un conjunto limitado de smbolos para
representar los pasos del algoritmo, por ello se apoya en expresiones del
lenguaje natural; sin embargo, dado que el lenguaje natural es muy
extenso y se presta para la ambigedad, solo se utiliza un conjunto de

palabras, a las que se denomina palabras reservadas. Las palabras


reservadas ms utilizadas son:
Inicio Fin Leer Escribir
Mientras Repita Hasta Para
Incrementar Decrementar Hacer Funcin
Entero Real Caracter Cadena
Lgico Retornar

Smbolos utilizados en el diagrama de Chapin


Los smbolos utilizados en el diagrama de Chapin son corresponden a
cada tipo de estructura. Dado que se tienen tres tipos de estructuras, se
utilizan tres smbolos. Esto hace que los procesos del algoritmo sean
ms fciles de representar y de interpretar.
Definicin.
Son aquellas que se ejecutan una despus de otra. Se tienen tres tipos
de instrucciones secuenciales: la declaracin de variables, asignacin,
instruccin Leer e instruccin Escribir.
La mayora de algoritmos actan sobre un conjunto de datos
suministrados por el usuario y se espera que a partir de dichos valores y
desarrollando los procesos programados se genere informacin de salida
o resultados.
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.
Ejemplos:
Edad = 10
Estatura = 1.80
Resultado = 2*3
Donde edad y resultado son variables de tipo entero y estatura de tipo
real que se supone declaradas previamente.
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.
Ejemplos:
Entero: X, Y
X = 10
Y=X*2+8
En este ejemplo, la variable Y contendr el valor 28.
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 escribe 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.
Ejemplos
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 algoritmo
2. Un maestro desea saber qu 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: numm, numh, totest
Real: porch, porcm
Leer numm, numh
totest = numm + numh
porcm = numm / totest * 100
porch = numh / totest * 100
Escribir "porcentaje mujeres:", porcm
Escribir "porcentaje hombres:", porch
Fin algoritmo
3. Un profesor prepara tres cuestionarios para una evaluacin final: A, B
y C. Se sabe que se tarda 5 minutos en revisar el cuestionario A, 8 en
revisar el cuestionario B y 6 en el C. La cantidad de exmenes de cada
tipo se entran por teclado. Cuntas horas y cuntos minutos se tardar
en revisar todas las evaluaciones?

Definicin del problema


Calcular el tiempo, en horas y minutos, requerido para calificar
exmenes.
Anlisis del problema
Se tienen tres tipos de examen A, B, C y el tiempo en minutos requerido
para cada tipo son:
A=5
B=8
C=6
El tiempo en minutos debe ser convertido a horas,
1 hora = 60 minutos
Para pasar de minutos a horas se realiza operacin divisin entera, para
conocer los minutos excedentes se utiliza la operacin mdulo.
Datos de entrada: nmero exmenes tipo A, B y C
Datos de salida: horas y minutos requeridos
Procesos:
Total A = nmero tipo A * 5
Total B = nmero tipo B * 8
Total C = nmero tipo C * 6
Tiempo total = total A + total B + total C
Horas = tiempo total / 60
Minutos = tiempo total Mod 60
Diseo de la solucin
Inicio
Entero: numa, numb, num, tota,totb, totc, totmin, horas, minutos
Leer numa, numb, numc
tota = numa * 5
totb = numb * 8
totc = numc * 6
totmin = tota + totb + totc
horas = totmin / 60
minutos = totmin Mod 60
Escribir "tardar:",horas, "horas y", minutos, "minutos"

Fin algoritmo
1.
2.

Estructuras secuenciales
Las estructuras de decisin o tambin llamadas de seleccin permiten
que el algoritmo tome decisiones y ejecute u omita algunos procesos
dependiendo del cumplimiento de una condicin.
Se pueden manejar tres tipos de decisiones: simple, doble y mltiple.
Decisin simple y doble
Una decisin es simple, cuando solo se tiene determinado los pasos a
seguir si el resultado de la condicin es verdadero, mientras que si es
falso, la ejecucin del algoritmo contina despus de la estructura
condicional.
Una decisin cuando se tiene un curso de accin para el caso que el
resultado de la comparacin sea verdadero y otro para cuando sea falso.
En diagrama de Chapin el smbolo para representar una decisin es el
siguiente:
Para ver el grfico seleccione la opcin "Descargar" del men superior
Obsrvese que en la parte inferior se tienen los cuadros que indican dos
posibilidades de accin, el conjunto de instrucciones 1 o el conjunto de
instrucciones 2, solo uno de los dos. Si se tratase de una decisin
simple, solo se tendr instrucciones en las cajas que se ubican debajo de
la clusula Si, mientras que las que estn bajo No estarn vacas.
Ejemplos:
1. Se desea un algoritmo para obtener el valor absoluto de un nmero
Definicin del problema
Encontrar el valor absoluto de un nmero
Anlisis del problema
Para encontrar el valor absoluto del nmero es necesario recordar que
para los enteros positivos el valor es el mismo, mientras que para los
enteros negativos es necesario cambiarlos de signo.
Datos de entrada: nmero
Datos de salida: valor absoluto
Proceso: nmero = nmero * (-1)
Diseo de la solucin

2. Dados dos nmeros cul es mayor? y cul es menor?


Definicin del problema
Identificar el mayor y menor de dos nmeros
Anlisis del problema
Datos de entrada: num1, num2
Datos salida: mayor, menor
Proceso: comparacin
Diseo de la solucin

3. Una empresa desea calcular los nuevos salarios de sus empleados de


la siguiente forma: quienes ganan hasta $ 500.000 tendrn un
incremento del 10%, quienes devengan ms de $ 500.000 y hasta
800.000 recibirn un aumento del 8% y los dems del 5%. Cul ser el
valor del aumento? Cul ser el valor del nuevo sueldo?
Definicin del problema
Calcular el valor a incrementar y el valor del nuevo sueldo de los
empleados.
Anlisis del problema
El porcentaje de incremento en el sueldo depende del valor del sueldo
actual, los sueldos ms bajos tienen un mayor incremento:
10% para sueldo <= $ 500.000
8% para $ 500.000 < sueldo <= $ 800.000
5% para sueldo > 800.000
Datos de entrada: sueldo

Datos de salida: aumento, nuevo sueldo


Proceso:
aumento = sueldo * porcentaje donde porcentaje = 5, 8 o 10%
nuevo sueldo = sueldo + aumento
Diseo de la solucin

Decisin mltiple
Muchas decisiones deben tomarse, no solo entre dos alternativas, sino
de un conjunto mayor. Estos casos bien pueden solucionarse utilizando
condicionales dobles anidados; sin embargo, en favor de la claridad del
algoritmo y la facilidad para el programador, es mejor utilizar una
estructura de decisin mltiple, la cual es fcil de llevar a un lenguaje de
programacin, ya que stos incluyen alguna instruccin con este fin.
La decisin mltiple determina el valor de una variable y dependiendo
de ste sigue un curso de accin. Es importante tener en cuenta que
solo se verifica la condicin de igualdad entre la variable y la constante.
En diagrama N-S la estructura de seleccin mltiple tiene la forma:

Ejemplo:
una distribuidora de motocicletas tiene una promocin de fin de ao que
consiste en los siguiente. Las motos marca HONDA tienen un descuento
del 5%, las de marca Yamaha del 8% y las Suzuki el 10%, las de otras
marcas el 2%
Definicin del problema
Calcular el valor del descuento y el valor a pagar por la motocicleta.
Anlisis del problema
Porcentaje descuento = 5% para motos Honda

Porcentaje descuento = 8% para motos Yamaha


Porcentaje descuento = 10% para motos Suzuki
Porcentaje descuento = 2% para motos otras marcas
Datos de entrada: marca, valor
Datos de salida: descuento, valor a pagar
Proceso:
descuento = valor * porcentaje
Valor neto = valor - descuento
Diseo de la solucin

3.
4.

Estructuras de decisin
Estructuras de repeticin
En la solucin de algunos problemas es necesario ejecutar repetidas
veces una instruccin o un conjunto de instrucciones. En algunos casos,
el nmero de repeticiones se conoce con anterioridad, mientras que en
otras depende de clculos o estados de variables que se dan dentro de
la solucin del problema.
Para solucionar este tipo de problemas se utiliza un tipo de estructuras a
las que se conocen como estructuras de repeticin, bucles o ciclos.
Un ciclo consiste en un grupo de acciones que se ejecutan repetidas
veces dependiendo del cumplimiento de una condicin.
Ciclo Mientras
Este ciclo consiste en un conjunto de instrucciones que se repiten
mientras se cumpla una condicin. De igual manera que en los
condicionales, la condicin es evaluada y retorna un valor lgico, que
puede ser verdadero o falso. En el caso del ciclo mientras las
instrucciones contenidas en la estructura de repeticin se ejecutarn
solamente si al evaluar la condicin se genera un valor verdadero; es

decir, si la condicin se cumple; en caso contrario, se ejecutar la


instruccin que aparece despus de Fin mientras.
A diferencia de otros ciclos, el ciclo mientras comienza evaluando la
expresin condicional, si el resultado es verdadero se ejecutarn las
instrucciones que estn entre el mientras y el fin mientras, al
encontrarse la lnea fin mientras se volver a evaluar la condicin, si se
cumple se ejecutarn nuevamente las instrucciones y as sucesivamente
hasta que la condicin deje de cumplirse, en cuyo caso, el control del
programa pasa a la lnea que aparece despus de fin mientras.
Si en la primera pasada por el ciclo mientras la condicin no se cumple
las instrucciones que estn dentro del ciclo no se ejecutarn ni una sola
vez.
En diagrama de Chapin (N-S), esta estructura tiene la presentacin:

Ejemplos:
1. Un algoritmo para mostrar los nmeros del 1 al 10.
Definicin del problema
Mostrar listado de nmeros de 1 a 10.
Anlisis del problema
Datos de entrada: ninguno
Datos de salida: nmero
Proceso: ninguno
Diseo de la solucin

Este es un algoritmo muy trivial pero permite revisar la aplicacin de la


estructura de repeticin Mientras.
Lo primero a tener en cuenta es la declaracin e inicializacin de la
variable: num = 1. En este caso no solo se est declarando una variable

de tipo entero, sino tambin se est asignando un valor inicial, que ser
el primer nmero mostrado.
La condicin o expresin relacional con la cual se implementa el ciclo es
num <= 10, dado que num inicia en 1, la primera vez que se encuentra
la instruccin mientras, la expresin es verdadera, por tanto se ejecutan
las instrucciones que aparecen al interior del ciclo.
Despus de haber mostrado el contenido de la variable num, ste
cambia, se incrementa en 1.
2. Leer n nmeros y encontrar el valor promedio, el mayor y el menor
Definicin del problema
Encontrar el promedio, el mayor y el menor de varios nmeros
Anlisis del problema
Para solucionar este problema, lo primero que hay que plantear es cmo
se sabr cuando terminar la lectura de datos, ya que no se especifica la
cantidad de nmeros que sern ingresados y en el planteamiento del
problema no se da ninguna condicin que permita saber cuando
terminar el ciclo. Este tipo de problemas es muy comn.
Hay dos formas de abordar este ejercicio, la primera consiste en
preguntar al usuario con cuantos nmeros desea trabajar y guardar
dicho valor en una variable que se utilizar para establecer el ciclo. La
segunda consiste en preguntar despus de leer cada dato, si se desea
ingresar otro. En este ejercicio se utilizar la primera estrategia.
Datos de entrada: cantidad de nmeros, nmero
Datos de salida: promedio, mayor y menor
Procesos:
suma = suma + nmero
promedio = suma / cantidad de nmeros
Diseo de la solucin

3. La serie Fibonacci comienza con los nmeros: 0, 1, 1, 2, 3, 5, 8, 13,


21, ... Se requiere un algoritmo para generar los primeros 10 nmeros.
Definicin del problema
Generar los 10 primeros nmeros de la serie fibonacci
Anlisis del problema
La serie fibonacci se genera a partir de dos valores iniciales que son el 0
y el 1, que al sumarse dan como resultado 1. El siguiente nmero se
obtiene sumando el ltimo nmero obtenido con el anterior, en este
caso 1 + 1 = 2, luego ser 2 + 1 = 3 y as sucesivamente.
Datos de entrada: ninguno
Datos de salida: serie fibonacci
Procesos:
a=0
b=1
f=a+b
Diseo de la solucin

Ciclo Para
Este ciclo, al igual que los dems, permite ejecutar repetidas veces una
instruccin o un grupo de ellas, pero a diferencia de otras instrucciones
de repeticin, sta maneja el valor inicial, el valor de incremento o
decremento y el valor final de la variable de control como parte de la
instruccin.
Cuando al ejecutarse un algoritmo se encuentra una instruccin para la
variable de control (contador) toma el valor inicial, se verifica que el
valor inicial no sobrepase el valor final y luego se ejecutan las
instrucciones del ciclo. Al encontrar la instruccin fin para, se produce
el incremento y se vuelve a verificar que la variable de control no haya
superado el lmite admitido, y se vuelven a ejecutar las instrucciones
que estn dentro del ciclo, y as sucesivamente tantas veces como sea
necesario hasta que se supere el valor final establecido.
El ciclo para termina en el momento en que la variable de control
(contador) sobrepasa el valor final; es decir, que la igualdad est
permitida y las instrucciones se ejecutan cuando el contador es igual al
valor final.
Este ciclo puede presentarse de tres maneras: la primera es la ms
comn, cuando se produce un incremento de 1 en cada iteracin, en
cuyo caso no es necesario escribir explcitamente.
En diagrama N-S:

El segundo caso de utilizacin del ciclo Para es cuando el incremento es


diferente de 1, en cuyo caso se escribir la palabra incrementar
seguida del valor a sumar en cada iteracin.

En tercer lugar, el ciclo para no siempre se incrementa desde un valor


inicial hasta un valor mayor, puede suceder que se requiera que se
disminuya desde un valor inicial alto, hasta un valor menor. En este caso
ser suficiente con escribir decrementar en vez de incrementar.
Ejemplos:
1. Imprimir los nmeros del 1 al 10
Definicin del problema
Imprimir nmeros del 1 al 10
Anlisis del problema
Datos de entrada: ninguno
Datos de salida: nmeros (1 ... 10)
Proceso: ninguno
Diseo de la solucin

2. Imprimir los nmeros del 5 al 50 con intervalos de 5.


Definicin del problema
Imprimir nmeros de cinco en cinco
Anlisis del problema
Datos de entrada: ninguno
Datos de salida: nmeros
Proceso: ninguno
Diseo de la solucin

3. Dado un nmero n mostrar los nmeros menores o igual a ste, en


orden descendente
Definicin del problema
Imprimir nmeros en orden descendente
Anlisis del problema
Datos de entrada: nmero
Datos de salida: nmeros
Proceso: ninguno
Diseo de la solucin

4. un algoritmo que lee 10 nmeros y muestra la sumatoria, el


promedio, el nmero mayor y el nmero menor.
Definicin del problema
Leer 10 nmeros y sumarlos, determinar el promedio, el nmero menor
y el nmero mayor.
Anlisis del problema
Datos de entrada: nmero
Datos de salida: sumatoria, promedio, nmero menor y nmero mayor
Proceso:
suma = suma + nmero
promedio = suma / 10
Diseo de la solucin

La utilizacin adecuada e ingeniosa de las estructuras presentadas


permite el diseo de algoritmos de aceptable nivel de complejidad,
como se ha mostrado en los ejemplos. Obsrvese que cada estructura
permite incluir las anteriores, en el ltimo ejemplo se ha utilizado todos
los conceptos presentados en este documento.
Los diagramas N-S permiten representar de forma sencilla los pasos que
conforman un algoritmo y por su combinacin de texto e imagen son
muy fciles de interpretar; no obstante, es recomendable que quien se
inicia en el diseo de algoritmos conozca otras tcnicas como el
pseudocdigo y el diagrama de flujo.
Finalmente, es menester anotar que el diseo de algoritmos no solo
requiere conocer metodologas de representacin, sino tambin
desarrollar el pensamiento lgico para generar soluciones y esto se
consigue mediante el desarrollo de ejercicios.
Mas informacin
Para mayor informacin comunicarse con el autor o consultar su libro, el
mismo que aparece en la bibliografa.
BIBLIOGRAFIA CONSULTADA
ALLEN WEIS, Mark. Estructuras de datos y algoritmos. Wilmington E.U.A:
Addison Wesley Iberoamericana, 1995. 486 p.
BECERRA SANTAMARA, Cesar. Algoritmos conceptos bsicos. Bogot:
Kimpres, 1993. 391 p.

BRASSARD Y BRATLEY. Fundamento de algoritmia. Espaa: Prentice-All,


1997. 579 p.
CAIRO BATTISTUTTI, Osvaldo. Metodologa de la programacin. Mxico:
Alfaomega, 1995. 1009 p.
CHAVES TORRES, Anvar. Algoritmos: pseudocdigo, diagama de flujo y
diagrama N-S. Pasto Colombia: Multigrfico impresores, 2004. 297p.
CORREA URIBE, Guillermo. Desarrollo de algoritmos 3ra ed. Bogot:
McGraw-Hill, 1998. 248 p.
GALVE, Javier et al. Algoritmia. Wilmington E.U.A: Addison Wesley
Iberoamericana, 1993. 502 p.
JOYANES AGUILAR, Luis. Programacin en C++ algoritmos, estructuras
de datos y objetos. Espaa: McGraw-Hill. 2000. 710 p.
--------------------. Metodologa de la programacin. Mxico: McGraw-Hill,
1992. 248 p.
Anvar Chaves Torres
Ing. de Sistemas
Leer ms:
http://www.monografias.com/trabajos19/algoritmos/algoritmos.shtml#ixz
z39f4RBkwl

You might also like