TEMA 0: Nociones de Algoritmos
0.1 Visión Histórica.
Un algoritmo es el conjunto de operaciones y procedimientos
que deben seguirse para resolver un problema. La palabra "algoritmo"
deriva del nombre latinizado del gran matemático árabe Mohamed Ibn
Moussa Al Kow Rizmi, el cual escribió sobre entre los años 800 y 825
su obra Quitab Al Jabr Al Mugabala, donde se recogía el sistema de
numeración hindú y el concepto del cero. Fue Fibonacci, el que
tradujo su obra al latín y la inició con las palabras: Algoritmi
dicit.
0.2 Diferencia entre el lenguaje algorítmico y el informático.
El lenguaje algorítmico es aquel por medio del cual se
realiza un análisis previo del problema a resolver y encontrar un
método que permita resolverlo. El conjunto de todas las operaciones
a realizar, y el orden en el que deben efectuarse, se le denomina
algoritmo.
El lenguaje informático es aquel por medio del cual dicho
algoritmo se codifica a un sistema comprensible por el ordenador o
computadora. Este tipo de lenguaje es más cercano a la máquina que
al ser humano y podemos distinguir distintos tipos dependiendo de la
proximidad a la maquina. Se denomina lenguaje de alto nivel aquel
que es más cercano a la comprensión humana y lenguaje de bajo nivel
a aquellos que son más comprensibles por la máquina. En concreto,
nosotros vamos a estudiar un lenguaje en la frontera de uno de bajo
nivel. Es por ello que el 'C' es tan potente y rápido, pues las
funciones principales representan las funciones más básicas del
ordenador.
0.3 Planteamientos de Problemas.
Lo que pretende un algoritmo es sintetizar de alguna forma
una tarea, cálculo o mecanismo antes de ser transcrito al ordenador.
Los pasos que hay que seguir son los siguientes:
- Análisis previo del problema.
- Primera visión del método de resolución.
- Descomposición en módulos.
- (Programación estructurada).
- Búsqueda de soluciones parciales.
- Ensamblaje de soluciones finales.
Ejemplo: Calcular las posibles raíces para una ecuación de segundo
grado: ax^2+bx+c=0
+-Algoritmo raíces
|
| Variables reales a,b,c,x,y
|
| Escribir "Introduzca los coeficientes de mayor a menor grado."
| Leer a,b,c
|
| +-Si sqr(b)>= 4*a*c entonces
| | x=(-b+sqrt(b^2-4*a*c))/2a
| +-Sino
| | Escribir "No existen raíces reales."
| +-Finsi
|
+-Final
0.4 Organigramas.
Un organigrama o diagrama de flujos es una representación
semigráfica del algoritmo en cuestión. Esto nos facilita la visión
descriptiva de la ejecución del programa, así como la generación de
la traza del algoritmo. Se denomina traza de un algoritmo a la
ejecución manual de un programa obteniendo para cada paso un
resultado.
Símbolos generales:
* Inicio y fin de un programa.
* Operaciones de I/O , aritméticas y lógico-aritméticas.
* Decisiones lógicas.
* Flujo de la ejecución.
0.5 Traza de un Algoritmo.
La traza de un Algoritmo se puede definir como la ejecución
manual de forma secuencial de las sentencias que lo componen. Así,
la traza del siguiente algoritmo es el valor que van adoptando las
variables a medida que se va ejecutando un programa.
+-Algoritmo Suma
|
| Variable entera a,b
|
| Escribir "Indique el primer sumando"
| Leer a
| Escribir "Indique el segundo sumando"
| Leer b
| c=a+b
| Escribir "El resultado es: ";c
|
+-Final
+----------------------------+
| T R A Z A |
+------------+---------------+
| Comentario | Valores |
+------------+---------------+
| Leemos a: | a <- 4 |
| Leemos b: | b <- 5 |
| Calcula c: | c <- a+b <- 9 |
| Escribe c: | c <- 9 |
+------------+---------------+
La función principal que posee realizar la traza de un
algoritmo es la de comprobar que éste funciona correctamente o para
realizar la etapa de depuración en la que se intenta corregir
errores, simplificar el algoritmo al máximo e incrementar su
eficacia y velocidad.