Los actuales sistemas de información están basados en el uso de computadoras.
Estas, son maquinas digitales (sincrónicas de múltiples propósitos) que ejecutan
conjuntos o secuencias de operaciones matemáticas y lógicas, utilizando el
sistema binario de numeración.
Son herramientas poderosas para la automatización de la resolución de problemas,
pero ello depende de la capacidad de su programa. Generalmente a los sistemas de
procesamiento automatizado de información, los llamamos sistemas de
información.
Así, los sistemas de información son un conjunto de elementos relacionados que
actúan como un todo, cuyo objetivo es la obtención de información y está
compuesto por elementos de hardware y software.
El hardware es el conjunto de componentes físicos que componen al sistema. El software es un conjunto de componentes lógicos que controlan el
funcionamiento del hardware y otorgan a las computadoras la capacidad de ser
maquinas con múltiples propósitos.
Esto significa que para dotar a la maquina la
capacidad de resolver múltiples problemas, es necesario escribir un programa
(software) que los solucione de forma específica. Para ello existen pasos
previos como ser:
PASOS PARA PLANTEAR LA SOLUCIÓN A UN PROBLEMA:
-
Definición
del problema: Definir el problema significa
comprenderlo, circunscribirlo, acotarlo (es imposible que hallemos una solución
sino sabemos cuál es el problema). El
proceso de analizar el mundo real para interpretar los aspectos esenciales de un
problema y expresarlo en términos precisos se llama abstracción.
-
Análisis del
problema:
Una vez que se definió el
problema hay que analizarlo. Se busca determinar claramente el
contexto (entorno) del problema y describir el estado futuro deseado
una vez que se soluciono el problema.
Se debe determinar qué datos son necesarios para solucionar el
problema y que información debe proporcionar la solución.
-
Solución
del problema: La solución de todo problema lo
constituye un algoritmo. Un algoritmo es un conjunto ordenado de pasos que
conducen a la solución de un problema.
-
Identificar las entradas, procesos y salidas
del problema, declaración de variables.
-
Diseño del Algoritmo:
Describe la secuencia ordenada de los pasos, sin ambigüedad, es
decir, siendo preciso y veraz en la búsqueda de la solución al
problema.
-
Solución
informática: El algoritmo es la solución general sin
tener en cuenta un lenguaje de programación ni una maquina en especial. Cuando
un algoritmo se define en términos de un lenguaje de programación específico
para una maquina específica, estamos en presencia de un programa.
Este
constituye la solución informática de un problema. diferencia entre
algoritmo y programa radica en el hecho de que los algoritmos se
especifican en términos “ideales”; mientras que los programas se
especifican bajo las limitaciones impuestas por lenguajes de
programación y maquinas particulares.
-
Codificación del
Algoritmo: Es la expresión en un lenguaje
de programación de los pasos
definidos en el algoritmo. en este paso se debe elegir un lenguaje
de programacion y respetar su sintaxis y paradigma.
-
Ejecución y validación del programa por
el computador.
Ejemplos de Algoritmos:
Podemos idear un algoritmo para un determinado proceso, así como
también hacerlo en diferentes formas.
Por ejemplo: Cómo podríamos encontrar el promedio de un conjunto de
números?.
Una posible solución sería:
1.-
Sumar los números dados.
2.- Contar dichos números.
3.- Dividir el resultado obtenido en el punto 1 entre el resultado
obtenido en el punto 2.
Otra clase de
ejemplo de Algoritmos, sería el de una llamada telefónica, o el
proceso para efectuar un viaje en el Metro de Caracas, o la
obtención de la licencia para conducir o el cambio de
un caucho que
esté bajo de aire,
etc; en fin, hay muchas formas de aplicar los algoritmos en
cuestiones cotidianas descomponiendo la acción en
pasos lógicos, como es el caso de una llamada desde una cabina de
un teléfono público:
1.- Inicio
2.- Descolgar el teléfono
3.- Esperar la señal digital.
4.- Preguntamos si está dañado. Si lo está: Vamos al paso 5.
Si no lo está: Vamos al paso 8.
5.- Vociferar una palabra de mal gusto y fruncir el ceño.
6.- Colgar.
7.- Fin.
8.- Digitar los números.
9.- Verificamos si suena ocupado. Si suena ocupado: Vamos al paso
11.
Si no lo está: Vamos al paso 13.
10.-Insistir digitando los números.
11.- Ir al paso 8.
12.- Verificamos si contestan. Si contestan: Vamos al paso 14
Si no contestan: Vamos al paso 21.
13.- Preguntamos si se encuentra la persona.
Si se encuentra: Vamos al paso 14.
Si no se encuentra: Vamos al paso 17.
14.- Hablar lo deseado.
15.- Colgar.
16.- Fin.
17.- Pensar algo malo.
18.- Tomar un café y
tranquilizarse.
19.- Ir al paso 15.
A continuación, presentamos un ejemplo de algoritmo para el proceso
de cambiar un caucho que está bajo de aire.
1.- Levantar el carro con el gato hidraúlico.
2.- Quitar los tornillos del rin.
3.- Quitar el caucho dañado.
4.- Poner el caucho de repuesto.
5.- Apretar los tornillos.
6.- Bajar el carro con el gato.
A los anteriores pasos, podríamos agregar muchos más detalles como
por ejemplo, abrir la maleta, aflojar tornillos antes de levantar el
carro, etc. Presentamos a continuación, dos versiones mas amplias
del algoritmo anterior:
Versión Nº 1
1.- Sacar el caucho de repuesto y herramientas de
la maletera.
2.- Verificamos si está dañado el caucho de repuesto.
Si lo está vamos al punto 3.
Si no lo está vamos al punto 4.
3.- Vociferamos ruidosamente algo.
Nos vamos caminando a buscar ayuda ó telefoneamos alguien para que
ayude.
Vamos al punto 14.
4.- Verificamos si el caucho bajo de aire es el caucho delantero.
Si lo es:
4.1.- Quitamos la tapa del centro de la rueda delantera.
4.2.- Aflojamos los tornillos.
4.3.- Levantamos el carro por delante, junto al caucho dañado.
4.4.- Vamos al punto 5.
Si no lo es:
4.1.- Quitamos la tapa del centro de la rueda trasera.
4.2.- Aflojamos los tornillos.
4.3.- Levantamos el carro por detrás, junto al caucho dañado.
5.- Quitamos los tornillos.
6.- Quitamos el caucho dañado.
7.- Ponemos el caucho de repuesto.
8.- Colocamos los tornillos y las tapas.
9.- Bajamos el carro con el gato hidráulico.
10.- Guardamos el caucho dañado, el gato y las herramientas en la
maletera.
11.- Nos limpiamos con estopa las manos.
12.- Encendemos el vehículo.
13.- Continuamos manejando.
14.- Fin.
Versión Nº 2
1.- Observamos si el caucho de repuesto está vacío.
Si lo está vamos al punto 2.
Si no lo está vamos al punto 3.
2.- Llamamos a un taller.
Vamos al punto 12.
3.- Levantamos el carro con el gato hidráulico.
4.- Quitamos un tornillo.
5.- Observamos si hemos quitado todos los tornillos.
Si lo hemos quitado vamos al punto 6.
Si no lo hemos quitado vamos al punto 4.
6.- Quitamos el caucho dañado.
7.- Ponemos el caucho de repuesto.
8.- Apretamos un tornillo.
9.- Verificamos si se han apretado todos los tornillos.
10.- Si lo hemos apretado, vamos al punto 11.
Si no lo hemos apretado vamos al punto 8.
11.- Bajamos el carro con el gato hidráulico.
12.- Fin.
Algoritmo
La solución de un problema exige el diseño del algoritmo. Un algoritmo es la
especificación de la secuencia ordenada de pasos a realizar para solucionar un
problema en un tiempo finito.
Está vinculado a una maquina abstracta. Por lo tanto, los algoritmos son
independientes de los lenguajes de programación y de las maquinas en las que se
lo ejecutara.
Está constituido por un conjunto de acciones. Una acción es un hecho o
acontecimiento que sucede en un periodo de tiempo finito, es llevado a cabo por
un ejecutante y tiene un objetivo. La unión de varias acciones organizadas que
se ejecutan en un tiempo finito se denomina proceso. Tanto los procesos como las
acciones son componentes de los algoritmos.
a) Características de los algoritmos. Todo algoritmo debe cumplir con tres características:
1. Debe ser preciso. No debe existir
acción alguna que presente ambigüedades en cuanto a su estado previo y su estado
posterior.
2. Debe estar definido. Si todas sus
acciones son precisas y se sigue dos veces el mismo algoritmo con los mismos
datos, se debe obtener el mismo resultado cada vez.
3. Debe ser finito. Los resultados de la ejecución de un algoritmo se
deben obtener en un tiempo finito. Todo algoritmo debe tener un inicio y un
fin.
b) Diseño de algoritmos:
En primer término, es necesario definir y analizar el
problema a resolver. Una buena comprensión del problema, mas la descripción detallada de entradas (datos
necesarios) y salidas requerida (datos requeridos del proceso) son los
requisitos más importantes para hallar una solución del problema. Los datos
proporcionados al algoritmo constituyen su entrada y los datos producidos por el
su salida.
Una buena estrategia para resolver problemas complejos es descomponer al
problema en varios problemas menores más fáciles de solucionar. La
descomposición del problema en otros más simples y así sucesivamente hasta
hallar una solución a ellos, esto se denomina diseño descendente (top-down
design).
Las principales ventajas del diseño descendente
son:
1. El problema se comprende
más fácilmente al dividirse en partes mas simples denominadas módulos
2. Las modificaciones en
módulos son mas fáciles
3.
La comprobación del problema se puede verificar fácilmente.
c) Representación e algoritmos. La
elección depende del uso futuro, del objetivo y la experiencia de
quien lo escriba. Entre las alternativas se pueden encontrar:
-
Diagrama de flujo;
-
Diagrama N-S (Nassi-Scheiderman);
-
Lenguaje natural humano;
-
Pseudocódigo
-
Formulas;
-
Lenguajes de programación.
Si bien los diagramas son mas cómodos para los
inexpertos, es verdaderamente mas difícil codificarlo luego a un lenguaje de
programación, ya que los diagramas no tienen en cuenta las limitaciones de los
lenguajes de programación.
d) Diagrama de flujo. Un
diagrama de flujo es un diagrama basado en un conjunto de símbolos
gráficos que muestran la secuencia de pasos del algoritmo a través de flechas denominadas
líneas de flujo. Algunos de los principales símbolos son:

e) Diagrama Naassi-Scheiderman. Estos
diagramas omiten el uso de flechas de unión y los símbolos se
utilizan en forma continua. Las acciones sucesivas se simbolizan en
cajas contiguas. la dificultad en el uso de estos diagramas está en
que ocupan mucho lugar en forma horizontal cuando varias estructuras
se anidan una dentro de otra.
f) Lenguaje natural. Puede
ser muy útil para una escritura inicial. Posee muchas limitaciones
para la escritura de algoritmos que luego serán programados, ya que
las estructuras de los lenguajes humanos son muy distintas a las de
los lenguajes de programación.
g) Pseudocódigo. Es una alternativa intermedia entre los lenguajes naturales y los lenguajes de
programación. Involucra un conjunto limitado de palabras, las reglas de
utilización y unas pocas limitaciones similares a las de los lenguajes de
programación, sin llegar a la escritura de programas. Con el pseudocódigo, el
programador centra su atención en la lógica y la secuencia de las acciones sin
la preocupación por las reglas propias de un lenguaje de programación
particular.
h) Formulas. Una
formula es una combinación de valores y símbolos, como por ejemplo
una ecuación aritmética. Para ciertos tipos de problemas, las
formulas suelen ser la alternativa más valida.
i) Lenguaje de programación. Una
alternativa valida es escribir directamente la solución utilizando
un lenguaje de programación. tiene la limitación de no poder
utilizar el total del potencial de un algoritmo, ya que los lenguajes de
programación tiene reglas que limitan la creatividad de la solución.
|