Professional Documents
Culture Documents
ALGORITMOS Y PROGRAMACIN
QU ES UN ALGORITMO?
Dato Curioso
La palabra Algoritmo tiene su origen en el nombre del matemticoPersa "Mohamed ibn Musa al
Khwarizmi" (825 d.C.). Su apellido fuetraducido al latn como Algorismus y posteriormente paso al
espaolcomo Algoritmo. Khwarizmi fue bibliotecario en la corte del califa al-Mamun y astrnomo en el
observatorio de Bagdad. Sus trabajos delgebra, aritmtica y tablas astronmicas adelantaron
enormementeel pensamiento matemtico y fue el primero en utilizar la expresinal-yabr (de la que
procede la palabra lgebra). Su trabajo con losalgoritmos introdujo el mtodo de clculo utilizando la
numeracinarbiga y la notacin decimal.
En el mbito de la computacin, los Algoritmos son unaherramienta que permite describir claramente
unconjunto finito de instrucciones, ordenadassecuencialmente y libres de ambigedad, que debellevar a
cabo un computador para lograr un resultadoprevisible. Vale la pena recordar que un programa
decomputador consiste de una serie de instrucciones muyprecisas y escritas en un lenguaje de
programacin queel computador entiende (Logo, Java, Pascal, etc).
En resumen, un Algoritmo es una secuencia ordenada de instrucciones, pasos o procesos que llevan a
lasolucin de un determinado problema. Los hay tansencillos y cotidianos como seguir la receta del
mdico,abrir una puerta, lavarse las manos, etc; hasta los queconducen a la solucin de problemas muy
complejos.
EJEMPLO
Un procedimiento que realizamos varias veces al daconsiste en lavarnos los dientes. Veamos la forma
deexpresar este procedimiento como un Algoritmo:
1. Tomar la crema dental
2. Destapar la crema dental
Pensamiento Algortmico
Cuando se habla de algoritmos, con frecuenciaaparecen tres tipos de pensamiento, que generalmentese
relacionan con ellos y que se utilizanindiscriminadamente como sinnimos: PensamientoComputacional,
Pensamiento Algortmico y PensamientoProcedimental. Por lo tanto es importante puntualizar aqu se
refiere cada uno de estos pensamientos.
Segn Moursund (2006), el pensamiento computacionalhace referencia a la representacin y solucin
deproblemas utilizando inteligencia humana, de mquinaso de otras formas que ayuden a resolver el
problema. Elpensamiento algortmico se refiere al desarrollo y uso dealgoritmos que puedan ayudar a
resolver un tipoespecfico de problema o a realizar un tipo especfico detarea. Por su parte, el
pensamiento procedimental seocupa del desarrollo y utilizacin de procedimientosdiseados para
Inicio/Final
Se utiliza para indicar el inicio y el final de un diagrama; del Inicio slo
puede salir una lnea de flujo y al Final slo debe llegar una lnea.
Decisin
Indica la comparacin de dos datos y dependiendo del resultado lgico
(falso o verdadero) se toma la decisin de seguir un camino del
diagrama u otro.
Entrada General
Entrada/Salida de datos en General (en esta gua, solo la usaremos
para la Entrada).
Iteracin
Indica que una instruccin o grupo de instrucciones deben ejecutarse
varias veces.
Salida Impresa
Indica la presentacin de uno o varios resultados en forma impresa.
Llamada a subrutina
Indica la llamada a una subrutina o procedimiento determinado.
Salida en Pantalla
Instruccin de presentacin de mensajes o resultados en pantalla.
Accin/Proceso General
Indica una accin o instruccin general que debe realizar el
computador (cambios de valores de variables, asignaciones,
operaciones aritmticas, etc).
Flujo
Indica el seguimiento lgico del diagrama. Tambin indica el sentido
de ejecucin de las operaciones.
Conector
Indica el enlace de dos partes de un diagrama en pginas diferentes.
Poner un encabezado que incluya un ttulo queidentifique la funcin del algoritmo; el nombre
delautor; y la fecha de elaboracin.
Slo se pueden utilizar smbolos estndar (ISO5807).
Los diagramas se deben dibujar de arriba haciaabajo y de izquierda a derecha.
La ejecucin del programa siempre empieza en laparte superior del diagrama.
Los smbolos de Inicio y Final deben aparecersolo una vez.
La direccin del flujo se debe representar por mediode flechas (lneas de flujo).
Todas las lneas de flujo deben llegar a un smbolo oa otra lnea.
Una lnea de flujo recta nunca debe cruzar a otra.Cuando dos lneas de flujo se crucen, una de
ellasdebe incluir una lnea arqueada en el sitio dondecruza a la otra.
Se deben inicializar las variables que se utilicen opermitir la asignacin de valores mediante
consulta alusuario.
Las bifurcaciones y ciclos se deben dibujarprocurando una cierta simetra.
Cada rombo de decisin debe tener al menos doslneas de salida (una para SI y otra para NO).
Las acciones y decisiones se deben describirutilizando el menor nmero de palabras posible,
sinque resulten confusas o poco claras.
Si el Diagrama se vuelve complejo y confuso, esmejor utilizar smbolos conectores para reducir
laslneas de flujo.
Todo el Diagrama debe ser claro, ordenado y fcil derecorrer.
El Diagrama se debe probar recorrindolo con datosiniciales simples (prueba de escritorio).
Dato Curioso
En el ao 1986, se introdujo en el supercomputador CRAY-2 la cifra2^220+1, o nmero de Fermat 20
(que debe su nombre almatemtico Pierre Fermat, 1601-1665), para averiguar si se tratabade un
nmero primo. Al cabo de 10 das, el resultado fue "NO". Estees el clculo realizado por un computador
en el que se ha tardadoms en dar una respuesta de "s" o "no". (Libro Gunness de losRecords 2002).
Para avanzar en el tema de los Algoritmos resultaindispensable que los estudiantes comprendan
algunosconceptos bsicos (variables, constantes,identificadores, funciones, operadores, etc), los
cualessern indispensables tanto para disear algoritmoscomo para traducirlos a un lenguaje de
programacin,cualquiera que este sea (C, Java, Visual Basic, etc).
Constantes
Las Constantes se crean en de la misma formaque las variables y consisten en datos que, luego de
serasignados, no cambian en ninguna instruccin delAlgoritmo. Pueden contener constantes
matemticas (pi)o generadas para guardar valores fijos (3.8, "Jorge",etc).
EJEMPLO
Las variables y constantes adems de tener un Nombre(identificador) para poder referirnos a ellas en
los procedimientos,guardan un Valor en su interior.
Nombre (identificador)
apellido
saldo
tamao
esTringulo
Valor
Lpez
20000
8.5
SI
Acumuladores
Estructura muy utilizada en programacin (A = A + B)y que consiste en almacenar en una variable (A)
elvalor de ella misma (A) ms otro valor variable (B). Esmuy til para calcular sumatorias.
Identificadores
Los identificadores son nombres que se dan a loselementos utilizados para resolver un problema y
poderdiferenciar unos de otros. Al asignar nombres(identificadores) a variables, constantes
yprocedimientos se deben tener en cuenta algunasreglas:
Los nombres pueden estar formados por unacombinacin de letras y nmeros (saldoMes,
salario,fecha2, baseTringulo, etc).
El primer carcter de un nombre debe ser una letra.
La mayora de los lenguajes de programacindiferencian las maysculas de las minsculas.
Los nombres deben ser nemotcnicos, con sololeerlos se puede entender lo que contienen.
Debenser muy descriptivos, no utilizar abreviaturas, amenos que se justifique plenamente.
Es conveniente utilizar una sola palabra paranombrar pginas, controles, variables, etc.
No utilizar caracteres reservados (%, +, /, >, etc).
Se debe tener en cuenta que algunos lenguajes deprogramacin no admiten las tildes.
No utilizar palabras reservadas por los lenguajes deprogramacin.
Para cumplir con convenciones ampliamenteutilizadas (Jimnez, 2002), los nombres
deprocedimientos, variables y constantes debenempezar con minscula. Ejemplo, fecha, suma,
etc.
Si es un nombre compuesto por varias palabras,cada una de las palabras (con excepcin de
laprimera) deben empezar con mayscula. Ejemplo:fechaInicial, baseTringulo, etc.
OPERADORES
Son smbolos que sirven para manipular datos. Los operadores y lasoperaciones que se pueden realizar
con ellos seclasifican en:
Aritmticos: Posibilitan las operaciones entre datosde tipo numrico y dan como resultado otro
valor detipo numrico. Ejemplo: producto (*); divisin (/); suma (+); resta (-);asignacin (=).
Alfanumricos: Permiten operar con datos de tipocarcter o cadenas. La mayora de los
lenguajes deprogramacin admiten el operador + para realizar laconcatenacin (unin) de
caracteres o cadenas.
Relacinales: Permiten la comparacin entre datosdel mismo tipo y dan como resultado dos
valoresposibles: Verdadero o Falso. Ejemplo: igual a (=);menor que (<); mayor que (>).
Lgicos: Posibilitan la evaluacin lgica de dosexpresiones de tipo lgico. Dan como resultado
unode dos valores posibles: Verdadero o Falso.Ejemplo: negacin (no); conjuncin (y);
disyuncin(o).
EXPRESIONES
Una Expresin est compuesta por valores, funciones,primitivas, constantes y/o variables, o por
unacombinacin de los anteriores mediante operadores.
Las Expresiones pueden ser:
Aritmticas: Dan como resultado un valornumrico. Contienen nicamente operadoresaritmticos y
datos numricos (pi * 20 - X)
Alfanumricas: Dan como resultado una serie ocadena de caracteres.
Lgicas: Dan como resultado un valor "Verdadero"o "Falso". Contienen variables y/o
constantesenlazadas con operadores lgicos (A>0 y B<=5).
De Asignacin: Estas Expresiones asignan elresultado de una Expresin a una Variable o a
unaConstante. La Expresin de Asignacin: area =(base * altura) / 2asigna el valor resultante dela
Expresin Aritmtica (base * altura) / 2a lavariable area.
LAS ESTRUCTURAS