Sabemos que para un ordenador pueda llevar adelante una tarea cualquiera, se tiene
contar con un algoritmo que le indique, a travs de un programa que es lo que debe
hacer con la mayor precisin posible. Quizs esta afirmacin debera ser revisada
desde la ptica de la Inteligencia Artificial, pero por el momento mantendremos como
vlida dentro de carcter introductorio de este curso. Consecuencia de lo anterior es la
importancia del estudio de los algoritmos dentro de las ciencias de la computacin.
Recordemos que un algoritmo es una sucesin finita de pasos no ambiguos que se
pueden ejecutar en un tiempo finito cuya razn de ser es la de resolver problemas
,por tanto problema para nosotros , sern aquellas cuestiones, conceptuales o
prcticas, cuya solucin es expresable mediante un algoritmo.Afortunadamente,son
muchos los problemas cuya solucin puede describirse por medio de un algoritmo y
esta es una de las razones subyacentes a la necesidad de que aprendamos a
programar y a manejar un ordenador.
Resolucin de un problema
Anlisis del
problema
Programacin del
algoritmo
El objetivo del anlisis del problema, es ayudar al programador a llegar a una cierta
comprensin de la naturaleza del mismo .Este anlisis supone, en particular, la
superacin de una serie de pasos:
que
debe
proporcionarse
al
resolverse
Definicin
problema
del
Especificaciones de
entrada
Especificaciones de
salida
EJEMPLO 1:
Elaborar el anlisis para obtener el rea y la longitud de una circunferencia.
EJEMPLO 2:
Averiguar si un nmero es primo o no, suponiendo que razonamos de la siguiente
forma Del anlisis del hecho de que un nmero N es primo si solo puede dividirse por
s mismo y por la unidad, mtodo que nos puede dar la solucin sera dividir
sucesivamente el numero por 2, 3,4etc. y, segn el resultado, podramos resolver el
problema. Un diseo del mismo seria:
Inicio
Poner X igual a 2 (X=2, X ,variable que representa a los posibles divisores de N)
Dividir N por X (N/X)
Si el resultado es entero, entonces N no es primo, y saltar al punto 9 ( en caso
contrario continuar el proceso en el siguiente punto,5)
Incrementar X en una unidad
Si X es menor que N saltar al punto 3 (en caso contrario continuar el proceso en
el siguiente punto,7)
Declarar N es primo
Saltar al Fin (punto 10)
Declarar N no es primo
Fin
Como parte del diseo de algoritmo esta la seleccin de uno que sea razonablemente
aceptable, entre todos los muchos posibles que resuelven el mismo problema,(el
ejemplo que acabamos de dar es claramente mejorable, pues si N no era divisible por
2 no tiene mucho sentido volverse a preguntar si lo es por 4.