- Algoritmo
- Diagramas de Nassi –
Schneiderman - Estructuras
secuencias - Estructuras de
decisión - Estructuras de
repetición - Bibliografía
Consultada
- PRESENTACION
Los algoritmos, como procedimiento
para solucionar problemas,
han existido desde muchos siglos atrás, sin embargo,
se han convertido en tema de interés de estudiante y profesionales
por cuanto son el fundamento de la programación 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
cómo hacer algo, es necesario que el programador sepa
cómo hacerlo. Es allí donde entra a jugar un
papel preponderante el desarrollo
de algoritmos, pues antes de escribir un programa es
necesario diseñar el algoritmo
para solucionar el problema en cuestión.Existen varias técnicas para representar algoritmos,
las más conocidas son: pseudocódigo, diagrama de
flujo y diagrama
N-S. En este documento se desarrolla la metodología de diagramas N-S o
también conocida como diagramas de Chapin.- ALGORITMO
Se sabe que la palabra algoritmo se dio en honor del
matemático persa del siglo IX,
Khowârizmî. Con éste término se
hace referencia a un conjunto de reglas, ordenadas de forma
lógica,
para desarrollar un cálculo o
para solucionar un problema, ya sea de forma manual o
utilizando una máquina. Actualmente es frecuente hablar de
algoritmo como paso previo al desarrollo de un programa de
computador.
Los algoritmos están, 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 educación formal
se mitifica y se difunde el prejuicio
sobre que es un tema complicado.
Desde los primeros años de escolaridad se trabaja con
algoritmos, en especial en el campo de las matemáticas. Los métodos
utilizados para sumar, restar, multiplicar y dividir son
algoritmos que cumplen perfectamente las características
de precisión, finitud, definición y eficiencia.
Para que la solución de un problema sea llevada hasta
un lenguaje de
programación, los pasos expresados en el algoritmo
deben ser lo más detallados posible, de manera que cada
uno de ellos implique una operación trivial; es decir, que
los pasos no impliquen procesos que
requieran de una solución algorítmica. En caso de
presentarse esta situación, el algoritmo debe ser
refinado, lo que equivale a desarrollar nuevamente el algoritmo
para la tarea concreta a la que se hace mención.
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 más
sencillas de solucionar. A esto se le llama diseño
modular.
Características
de un algoritmo
Un algoritmo debe tener al menos las siguientes
características:
- 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
lógico. - Ser definido. Ya que en el área de
programación, 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 característica implica que
el número de pasos de un algoritmo, por grande y
complicado que sea el problema que soluciona, debe ser
limitado. Todo algoritmo, sin importar el número de
pasos que incluya, debe llegar a un final. Para hacer evidente
esta característica, en la representación de un
algoritmo siempre se incluyen los pasos inicio y fin. - Presentación formal: para que el algoritmo
sea entendido por cualquier persona
interesada es necesario que se exprese en alguna de las formas
comúnmente aceptadas; pues, si se describe de cualquier
forma puede no ser muy útil ya que solo lo
entenderá quien lo diseñó. Las formas de
presentación de algoritmos son: el pseudocódigo,
diagrama de flujo y diagramas de Nassi/Schneiderman, entre
otras. - Corrección: el algoritmo debe ser correcto,
es decir debe satisfacer la necesidad o solucionar el problema
para el cual fue diseñado. Para garantizar que el
algoritmo logre el objetivo, es necesario ponerlo a prueba; a
esto se le llama verificación o prueba de
escritorio. - Eficiencia: hablar de eficiencia o complejidad de un
algoritmo es evaluar los recursos de
cómputo que requiere para almacenar datos y para
ejecutar operaciones frente al beneficio que ofrece. En cuanto
menos recursos requiere será más eficiente el
algoritmo.
La vida cotidiana está llena de soluciones
algorítmicas, algunas de ellas son tan comunes que no se
requiere pensar en los pasos que incluye la solución. La
mayoría de las actividades que se realizan diariamente
están compuestas por tareas más simples que se
ejecutan en un orden determinado, lo cual genera un algoritmo.
Por ejemplo, son tareas comunes, realizar
una llamada telefónica, buscar un número en el
directorio telefónico, buscar un anuncio en las
páginas amarillas del directorio, preparar café,
regar las plantas, poner en
funcionamiento un automóvil, cambiar una llanta, entre
muchas otras.
Muchos de los procedimientos
utilizados para desarrollar tareas cotidianas son
algorítmicos, sin embargo, esto no significa que todo lo
que se hace está determinado por un algoritmo. El
cumplimiento de las características mencionadas
anteriormente permitirá determinar si un procedimiento es
o no es algorítmico.
Una receta de cocina para preparar un plato cualquiera puede
ser un algoritmo, pero también 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 acción
podría 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 diseño de un algoritmo es conocer
la temática 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
presentación formal.
El diagrama N-S o también conocido como
diagrama de Chapin es una técnica de
especificación de algoritmos que combina la descripción textual, propia del
pseudocódigo, con la representación
gráfica del diagrama de flujo.El diagrama N-S cuenta con un conjunto limitado de
símbolos 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
ambigüedad, solo se utiliza un conjunto de palabras, a
las que se denomina palabras reservadas. Las palabras
reservadas más utilizadas son:Inicio Fin Leer Escribir
Mientras Repita Hasta Para
Incrementar Decrementar Hacer Función
Entero Real Caracter Cadena
Lógico Retornar
Los símbolos utilizados en el diagrama de
Chapin son corresponden a cada tipo de estructura. Dado que se tienen tres tipos de
estructuras, se utilizan tres
símbolos. Esto hace que los procesos del algoritmo
sean más fáciles de representar y de
interpretar.- Definición.
Son aquellas que se ejecutan una después de
otra. Se tienen tres tipos de instrucciones secuenciales:
la declaración de variables, asignación,
instrucción Leer e instrucción
Escribir.La mayoría de algoritmos actúan
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 información de salida o
resultados.Declaración de variables
Teniendo en cuenta la compatibilidad con la
mayoría de los lenguajes, se recomienda que desde el
diseño del programa se utilice una forma determinada
para la declaración de las variables. Esta consiste
en escribir el tipo de datos y la lista de identificadores
que se tendrán de dicho tipo, separando cada
identificador por medio de comas (,). Para mejorar la
claridad de la declaración 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, dirección
Aunque algunos lenguajes de
programación permiten declarar las variables en
el momento en que se las necesita, es aconsejable, en favor
de los buenos hábitos de programación,
siempre declarar las variables antes de utilizarlas y el
sitio más adecuado es el inicio del programa o de la
función.Asignar un valor a
una variable equivale a decir que se guarda dicho valor en
la posición de memoria
reservado para la variable en mención. Por lo tanto,
para poder
realizar una asignación 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 expresión de asignación tiene la
forma:Variable = expresión
Ejemplos:
Edad = 10
Estatura = 1.80
Resultado = 2*3
Ejemplos:
Entero: X, Y
X = 10
Y = X * 2 + 8
En este ejemplo, la variable Y contendrá el
valor 28.La instrucción LEER se utiliza para enviar
información 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 instrucción LEER.En diagrama N-S la instrucción de entrada
se representa así:Leer <lista de
identificadores de variables>Ejemplo:
Leer a, b
Donde "a" y "b" son las variables que
recibirán los
valores y que deben haberse declarado
previamente.Esta instrucción permite enviar datos desde
la memoria hacia un dispositivo de salida como la pantalla
o la impresora. La información que se
envía puede ser constante o también el
contenido de variables.Escribir <lista de constantes
y variables>Ejemplo:
Escribir a, b
Cuando se escriben más 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. Diseñar un algoritmo para calcular el
área y el perímetro de un
rectánguloDefinición del problema
Calcular área y perímetro de un
rectánguloAnálisis del problema
Para desarrollar este problema es necesario
conocer las fórmulas para obtener tanto el
área como el perímetro de un
rectángulo.Sea b = base y h = altura, las
fórmulas a utilizar son:Area = b * h
Perímetro = 2 * (b + h)
Datos de entrada: b y h (base y altura)
Datos de salida: área y
perímetroProcesos: área = b * h
Perímetro = 2 * (b + h)
Diseño de la
soluciónInicio
Entero: b, h, a, p
Leer b, h
a = b * h
p = 2 (b + h)
Escribir "área:", a
Escribir "perímetro:", p
Fin algoritmo
2. Un maestro desea saber que porcentaje de
hombres y que porcentaje de mujeres hay en un grupo de
estudiantes.Definición del problema
Calcular porcentaje de hombres y mujeres en un
grupoAnálisis del problema
Datos a tener en cuenta:
Número hombres
Número mujeres
Total estudiantes
Porcentaje hombres
Porcentaje mujeres
Datos de entrada: número hombres,
número mujeresDatos salida: porcentaje hombres, porcentaje
mujeresProcesos: tot estudiantes = núm. hombres +
núm. MujeresPorc.hombres = núm. Hombres / tot
estudiantes*100Porc.hombres = núm. mujeres / tot
estudiantes*100Diseño de la
soluciónInicio
Entero: numm, numh, totest
Real: porch, porcm
Leer numm, numh
totest = numm + numh
porcm = numm / totest * 100
porch = numh / totest * 100
Escribir "porcentaje mujeres:",
porcmEscribir "porcentaje hombres:",
porchFin algoritmo
3. Un profesor
prepara tres cuestionarios para una evaluación 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 exámenes de cada tipo
se entran por teclado.
¿Cuántas horas y cuántos minutos se
tardará en revisar todas las
evaluaciones?Definición del problema
Calcular el tiempo,
en horas y minutos, requerido para calificar
exámenes.Análisis 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
operación división entera, para conocer los
minutos excedentes se utiliza la operación
módulo.Datos de entrada: número exámenes
tipo A, B y CDatos de salida: horas y minutos
requeridosProcesos:
Total A = número tipo A * 5
Total B = número tipo B * 8
Total C = número tipo C * 6
Tiempo total = total A + total B + total
CHoras = tiempo total / 60
Minutos = tiempo total Mod
60Diseño de la
soluciónInicio
Entero: numa, numb, num, tota,totb, totc,
totmin, horas, minutosLeer 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
- Estructuras
secuencialesLas estructuras de decisión o
también llamadas de selección permiten que el algoritmo
tome decisiones y ejecute u omita algunos procesos
dependiendo del cumplimiento de una
condición.Se pueden manejar tres tipos de decisiones:
simple, doble y múltiple.Decisión simple y doble
Una decisión es simple, cuando solo se
tiene determinado los pasos a seguir si el resultado de la
condición es verdadero, mientras que
si es falso, la ejecución del
algoritmo continúa después de la estructura
condicional.Una decisión cuando se tiene un curso de
acción para el caso que el resultado de la
comparación sea verdadero y otro para cuando sea
falso.En diagrama de Chapin el símbolo para
representar una decisión es el siguiente:Para ver el
gráfico seleccione la opción "Descargar" del
menú superiorObsérvese que en la parte inferior se
tienen los cuadros que indican dos posibilidades de
acción, el conjunto de instrucciones 1 o el conjunto
de instrucciones 2, solo uno de los dos. Si se tratase de
una decisión simple, solo se tendrá
instrucciones en las cajas que se ubican debajo de la
cláusula Si, mientras que las que
están bajo No estarán
vacías.Ejemplos:
1. Se desea un algoritmo para obtener el valor
absoluto de un númeroDefinición del problema
Encontrar el valor absoluto de un
númeroAnálisis del problema
Para encontrar el valor absoluto del número
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: número
Datos de salida: valor absoluto
Proceso: número = número *
(-1)Diseño de la
solución2. Dados dos números ¿cuál es
mayor? y ¿cuál es menor?Definición del problema
Identificar el mayor y menor de dos
númerosAnálisis del problema
Datos de entrada: num1, num2
Datos salida: mayor, menor
Proceso: comparación
Diseño de la
solución3. Una
empresa desea calcular los nuevos salarios
de sus empleados de la siguiente forma: quienes ganan hasta
$ 500.000 tendrán un incremento del 10%, quienes
devengan más de $ 500.000 y hasta 800.000
recibirán un aumento del 8% y los demás del
5%. ¿Cuál será el valor del aumento?
¿Cuál será el valor del nuevo
sueldo?Definición del problema
Calcular el valor a incrementar y el valor del
nuevo sueldo de los empleados.Análisis del problema
El porcentaje de incremento en el sueldo depende
del valor del sueldo actual, los sueldos más bajos
tienen un mayor incremento:10% para sueldo <= $ 500.000
8% para $ 500.000 < sueldo <= $
800.0005% 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
Diseño de la
soluciónDecisión
múltipleMuchas 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 decisión múltiple,
la cual es fácil de llevar a un lenguaje de
programación, ya que éstos incluyen alguna
instrucción con este fin.La decisión múltiple determina el
valor de una variable y dependiendo de éste sigue un
curso de acción. Es importante tener en cuenta que
solo se verifica la condición de igualdad
entre la variable y la constante.En diagrama N-S la estructura de selección
múltiple tiene la forma:Ejemplo:
una distribuidora de motocicletas tiene una
promoción de fin de año 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%Definición del problema
Calcular el valor del descuento y el valor a pagar
por la motocicleta.Análisis del problema
Porcentaje descuento = 5% para motos
HondaPorcentaje descuento = 8% para motos
YamahaPorcentaje descuento = 10% para motos
SuzukiPorcentaje descuento = 2% para motos otras
marcasDatos de entrada: marca, valor
Datos de salida: descuento, valor a
pagarProceso:
descuento = valor * porcentaje
Valor neto = valor – descuento
Diseño de la
solución - Estructuras de
decisión - Estructuras de
repetición
En la
solución de algunos problemas es necesario ejecutar
repetidas veces una instrucción o un conjunto de
instrucciones. En algunos casos, el número de repeticiones
se conoce con anterioridad, mientras que en otras depende de
cálculos o estados de variables que se dan dentro de la
solución del problema.
Para solucionar este
tipo de problemas se utiliza un tipo de estructuras a las que se
conocen como estructuras de repetición, bucles o
ciclos.
Un ciclo
consiste en un grupo de acciones que
se ejecutan repetidas veces dependiendo del cumplimiento de una
condición.
Este ciclo consiste en un conjunto de instrucciones que
se repiten mientras se cumpla una condición. De igual
manera que en los condicionales, la condición es evaluada
y retorna un valor lógico, que puede ser verdadero o
falso. En el caso del ciclo mientras las instrucciones
contenidas en la estructura de repetición se
ejecutarán solamente si al evaluar la condición se
genera un valor verdadero; es decir, si la condición se
cumple; en caso contrario, se ejecutará la
instrucción que aparece después de Fin
mientras.
A diferencia de otros ciclos,
el ciclo mientras comienza evaluando la expresión
condicional, si el resultado es verdadero se ejecutarán
las instrucciones que estén entre el mientras y el
fin mientras, al encontrarse la línea fin mientras
se volverá a evaluar la condición, si se cumple se
ejecutarán nuevamente las instrucciones y así
sucesivamente hasta que la condición deje de cumplirse, en
cuyo caso, el control del
programa pasa a la línea que aparece después de
fin mientras.
En diagrama de Chapin (N-S), esta estructura tiene la
presentación:
Ejemplos:
1. Un algoritmo para mostrar los números del 1 al
10.
Definición del problema
Mostrar listado de números de 1 a 10.
Análisis del problema
Datos de entrada: ninguno
Datos de salida: número
Proceso: ninguno
Diseño de la solución
Este es un algoritmo muy trivial pero permite revisar la
aplicación de la estructura de repetición
Mientras.
Después de haber mostrado
el contenido de la variable num, éste cambia, se
incrementa en 1.
2. Leer n números y encontrar el valor promedio,
el mayor y el menor
Definición del problema
Encontrar el promedio, el mayor y el menor de varios
números
Análisis del problema
Para solucionar este problema, lo primero que hay que
plantear es cómo se sabrá cuando terminar la lectura de
datos, ya que no se especifica la cantidad de números que
serán ingresados y en el planteamiento del
problema no se da ninguna condición que permita saber
cuando terminar el ciclo. Este tipo de problemas es muy
común.
Hay dos formas de abordar este ejercicio, la primera
consiste en preguntar al usuario con cuantos números desea
trabajar y guardar dicho valor en una variable que se
utilizará para establecer el ciclo. La segunda consiste en
preguntar después de leer cada dato, si se desea ingresar
otro. En este ejercicio se utilizará la primera estrategia.
Datos de entrada: cantidad de números,
número
Datos de salida: promedio, mayor y menor
Procesos:
suma = suma + número
promedio = suma / cantidad de
números
Diseño de la solución
3. La serie Fibonacci comienza con los números:
0, 1, 1, 2, 3, 5, 8, 13, 21, … Se requiere un algoritmo para
generar los primeros 10 números.
Definición del problema
Generar los 10 primeros números de la serie
fibonacci
Análisis 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 número se obtiene sumando el último
número 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
Diseño de la solución
Este ciclo, al igual que los demás, permite
ejecutar repetidas veces una instrucción o un grupo de
ellas, pero a diferencia de otras instrucciones de
repetición, ésta maneja el valor inicial, el valor
de incremento o decremento y el valor final de la variable de
control como parte de la instrucción.
Cuando al ejecutarse un algoritmo se encuentra una
instrucción 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 instrucción fin para, se
produce el incremento y se vuelve a verificar que la variable de
control no haya superado el límite admitido, y se vuelven
a ejecutar las instrucciones que están 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 más común, cuando se produce un incremento de
1 en cada iteración, en cuyo caso no es necesario escribir
explícitamente.
En diagrama N-S:
El segundo caso de utilización 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 iteración.
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 números del 1 al 10
Definición del problema
Imprimir números del 1 al 10
Análisis del problema
Datos de entrada: ninguno
Datos de salida: números (1 … 10)
Proceso: ninguno
Diseño de la solución
2. Imprimir los números del 5 al 50 con
intervalos de 5.
Definición del problema
Imprimir números de cinco en cinco
Análisis del problema
Datos de entrada: ninguno
Datos de salida: números
Proceso: ninguno
Diseño de la solución
3. Dado un número n mostrar los
números menores o igual a éste, en orden
descendente
Definición del problema
Imprimir números en orden descendente
Análisis del problema
Datos de entrada: número
Datos de salida: números
Proceso: ninguno
Diseño de la solución
4. un algoritmo que lee 10 números y muestra la
sumatoria, el promedio, el número mayor y el número
menor.
Definición del problema
Leer 10 números y sumarlos, determinar el
promedio, el número menor y el número
mayor.
Análisis del problema
Datos de entrada: número
Datos de salida: sumatoria, promedio, número
menor y número mayor
Proceso:
suma = suma + número
promedio = suma / 10
Diseño de la solución
La utilización adecuada e ingeniosa de las
estructuras presentadas permite el diseño de algoritmos de
aceptable nivel de complejidad, como se ha mostrado en los
ejemplos. Obsérvese 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 combinación
de texto e
imagen son muy
fáciles de interpretar; no obstante, es recomendable que
quien se inicia en el diseño de algoritmos conozca otras
técnicas como el pseudocódigo y el diagrama de
flujo.
Finalmente, es menester anotar que el diseño de
algoritmos no solo requiere conocer metodologías de
representación, sino también desarrollar el
pensamiento
lógico para generar soluciones y esto se consigue mediante
el desarrollo de ejercicios.
Mas información
Para mayor información comunicarse con el autor o
consultar su libro, el
mismo que aparece en la bibliografía.
ALLEN WEIS, Mark. Estructuras de datos y algoritmos.
Wilmington E.U.A: Addison – Wesley Iberoamericana, 1995.
486 p.
BECERRA SANTAMARÍA, Cesar. Algoritmos conceptos
básicos. Bogotá: Kimpres, 1993. 391 p.
BRASSARD Y BRATLEY. Fundamento de algoritmia. España:
Prentice-All, 1997. 579 p.
CAIRO BATTISTUTTI, Osvaldo. Metodología de la
programación. México:
Alfaomega, 1995. 1009 p.
CHAVES TORRES, Anívar. Algoritmos:
pseudocódigo, diagama de flujo y diagrama N-S. Pasto
– Colombia:
Multigráfico 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. Programación
en C++ algoritmos, estructuras de datos y objetos.
España: McGraw-Hill. 2000. 710 p.
——————–. Metodología de la
programación. México: McGraw-Hill, 1992. 248
p.
Anívar Chaves Torres
Ing. de Sistemas