FLUJO.
ALGORITMOS
En matemticas, ciencias de la computacin, y disciplinas relacionadas, un algoritmo (del latn, dixit algorithmus
y ste a su vez del matemtico persa al-Jwarizmi) es una lista bien definida, ordenada y finita de operaciones que
permite hallar la solucin a un problema. Dado un estado inicial y una entrada, a travs de pasos sucesivos y bien
definidos se llega a un estado final, obteniendo una solucin.
En la vida cotidiana se emplean algoritmos en multitud de ocasiones para resolver diversos problemas. Algunos
ejemplos se encuentran en los instructivos (manuales de usuario), los cuales muestran algoritmos para usar el
aparato en cuestin o inclusive en las instrucciones que recibe un trabajador por parte de su patrn. Tambin
existen ejemplos de ndole matemtico, como el algoritmo de la divisin para calcular el cociente de dos nmeros,
el algoritmo de Euclides para calcular el mximo comn divisor de dos enteros positivos, o el mtodo de Gauss
para resolver un Sistema lineal de ecuaciones.
Cuando escribimos un programa de computadora, generalmente estamos llevando a cabo un mtodo que se ha
inventado para resolver algn problema previamente. Este mtodo es a menudo independiente de la computadora
y es probable que sea igualmente apropiado para muchas tipas de computadora y muchos lenguajes de
computadora. Es el mtodo, en el programa de computacin, el que nosotros debemos estudiar para aprender
cmo se est tratando de resolver el problema. El trmino algoritmo se usa en la informtica para describir un
mtodo problema-solucin conveniente para la aplicacin en un programa de computadora.
El cientfico de computacin Donald Knuth ofreci una lista de cinco propiedades, que son ampliamente aceptadas
como requisitos para un algoritmo:
1. Carcter finito. "Un algoritmo siempre debe terminar despus de un nmero finito de pasos".
2. Precisin. "Cada paso de un algoritmo debe estar precisamente definido; las operaciones a llevar a cabo
deben ser especificadas de manera rigurosa y no ambigua para cada caso".
3. Entrada. "Un algoritmo tiene cero o ms entradas: cantidades que le son dadas antes de que el algoritmo
comience, o dinmicamente mientras el algoritmo corre. Estas entradas son tomadas de conjuntos
especficos de objetos."
4. Salida. "Un algoritmo tiene una o ms salidas: cantidades que tienen una relacin especfica con las
entradas".
5. Eficacia. "Tambin se espera que un algoritmo sea eficaz, en el sentido de que todas las operaciones a
realizar en un algoritmo deben ser suficientemente bsicas como para que en principio puedan ser hechas
de manera exacta y en un tiempo finito por un hombre usando lpiz y papel".
A partir del carcter finito y de la salida se deduce que ante una misma situacin inicial (o valores de entrada) un
algoritmo debe proporcionar siempre el mismo resultado (o salida), con excepcin de los algoritmos probabilistas.
Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocdigo,
diagramas de flujo y lenguajes de programacin entre otros. Las descripciones en lenguaje natural tienden a ser
ambiguas y extensas. El usar pseudocdigo y diagramas de flujo evita muchas ambigedades del lenguaje
natural. Dichas expresiones son formas ms estructuradas para representar algoritmos; no obstante, se
mantienen independientes de un lenguaje de programacin especfico.
Pseudocdigo
Pseudocdigo es la descripcin de un algoritmo que asemeja a un lenguaje de programacin, pero con algunas
convenciones del lenguaje natural. Pseudo o seudo, significa falso, imitacin y Cdigo se refiere a las
instrucciones escritas en el lenguaje de programacin; Pseudocdigo no es realmente un cdigo sino una
imitacin y una versin abreviada de instrucciones reales para la computadora.
DO (hacer), IF THEN ELSE (si entonces sino) ENDIF (fin de s), DO UNTIL (hacer hasta) etc.
Diagrama de flujo
Los diagramas de flujo son descripciones grficas de algoritmos; usan smbolos conectados con flechas para
indicar la secuencia de instrucciones y estn regidos por ISO (International Standard Organization) y ANSI
(American National Standards Institute)
Los diagramas de flujo son usados para representar algoritmos pequeos, ya que abarcan mucho espacio y su
construccin es laboriosa. Por su facilidad de lectura son usados como introduccin a los algoritmos, descripcin
de un lenguaje y descripcin de procesos a personas ajenas a la computacin. Un diagrama de flujo debe ilustrar
grficamente los pasos o procesos a seguir para alcanzar la solucin de un problema.
Ejemplo.
Disear un algoritmo correspondiente que dado como dato la calificacin de un alumno en un examen escriba
Aprobado si su calificacin es mayor que 8 y Reprobado en caso contrario.
Solucin:
Dato: CAL donde CAL es una variable de tipo real que expresa la calificacin del alumno.
1. Leer CAL
2. Si CAL > 8
3. FIN SI
ESTRUCTURAS DE CONTROL.
Las estructuras lgicas bsicas necesarias para confeccionar un programa se reduce en tres: SECUENCIALES,
SELECTIVAS Y REPETITIVAS
Estructuras secuenciales
DO
accin A
accin B
accin C
END
Estructuras selectivas.
Las estructuras algortmicas selectivas que se utilizan para la toma de decisiones lgicas las podemos clasificar
de la siguiente manera:
SI condicin (verdadera)
entonces
Hacer operacin 1
sino
Hacer operacin 2
Fin de la condicional
DOWHILE condicin
accin1
accin2
.........
END DO
El seudocdigo significa: "Mientras la condicin sea verdadera hacer la o las acciones; cuando sea falsa, terminar
el bucle". Puede ocurrir que el bucle no se ejecute ni una sola vez en el caso de que la condicin no se cumpla
inicialmente.
DOUNTIL condicin
accin1
accin2
........
END DO
El seudocdigo significa: "Repetir la condicin y hacer la o las acciones hasta que la condicin sea verdadera y
terminar el bucle".
Tanto en DOWHILE como en DOUNTIL se necesita que el bucle contenga al menos una instruccin que cambie
la condicin que controla el bucle. Si no hubiera el bucle continuara indefinidamente. Estas estructuras se usan
cuando No sabemos el nmero de veces que se repetir el ciclo.
La estructura REPETIR.
VI es el valor inicial
VF es el valor final
INC es el incremento
El formato es:
DO accin
END FOR