Algoritmos y Pseudocódigo
Algoritmos
Un algoritmo es un procedimiento a seguir, para resolver un problema en términos de:
1. Las acciones por ejecutar y el
2. El orden en que dichas acciones deben ejecutarse
Un algoritmo nace en respuesta a la aparición de un
determinado problema. Una algoritmo esta compuesto de una serie
finita de pasos que convergen en la solución de un problema, pero
además estos pasos tienen un orden específico.
Entenderemos como problema a cualquier acción o evento que
necesite cierto grado de análisis, desde la simpleza de cepillarse
los dientes hasta la complejidad del ensamblado de un automóvil. En
general, cualquier problema puede ser solucionado utilizando un
algoritmo, en este sentido podemos utilizar los algoritmos para resolver
problemas de computo.
Un algoritmo para un programador es una herramienta que le
permite resaltar los aspectos más importantes de una situación y
descartar los menos relevantes. Todo problema de cómputo se puede
resolver ejecutando una serie de acciones en un orden específico.
Por ejemplo considere el algoritmo que se elaboraría para el
problema o situación de levantarse todas las mañanas para ir al
trabajo:
- Salir de la cama
- quitarse el pijama
- ducharse
- vestirse
- desayunar
- arrancar el automóvil para ir al trabajo o tomar transporte.
Nótese que en el algoritmo anterior se ha llegado a la
solución del problema en 6 pasos, y no se resaltan aspectos como:
colocarse los zapatos después de salir de la cama, o abrir la llave
de la regadera antes de ducharse. Estos aspectos han sido
descartados, pues no tienen mayor trascendencia, en otras palabras los
estamos suponiendo, en cambio existen aspectos que no podemos
obviarlos o suponerlos, de lo contrario nuestro algoritmo perdería
lógica, un buen programador deberá reconocer esos aspectos
importantes y tratar de simplificar al mínimo su problema.
Es importante recalcar que los pasos de un algoritmo no son
conmutativos pues, no daría solución al mismo problema a tratar.
Robustez de un Algoritmo
Quiere decir que un algoritmo debe contemplar todas las
posibles facetas del problema que queremos resolver, al elaborar un
algoritmo no se nos debe escapar ningún detalle que provoque un
funcionamiento malo nuestro algoritmo. Si logramos construir un
algoritmo robusto, cualquier giro inesperado del problema será
controlado por el algoritmo, es decir, debe ser flexible a cambios.
Correctitud de un Algoritmo
Es correcto cuando da una solución al problema a tratar y
cumple con todos lo requerimientos especificados tal que cumplamos
con los objetivos planteados.
Completitud de un Algoritmo
Cuando un algoritmo cuenta con todos los recursos para poder llegar a una solución satisfactoria
Eficiencia y Eficacia de un Algoritmo
Un algoritmo es eficiente cuando logra
llegar a sus objetivos planteados utilizando la menor cantidad de
recursos posibles, es decir, minimizando el uso memoria, de pasos y
de esfuerzo humano.
Un algoritmo es eficaz cuando alcanza el objetivo primordial, el análisis de resolución del problema se lo realiza prioritariamente.
Puede darse el caso de que exista un algoritmo eficaz pero no
eficiente, en lo posible debemos de manejar estos dos conceptos
conjuntamente.
Resolución de Problemas
Para lograr resolver cualquier problema se deben seguir básicamente los siguientes pasos:
Análisis del Problema. en este paso se define el problema, se lo comprende y se lo analiza con todo detalle.
Diseño del Algoritmo. se debe elaborar una algoritmo que refleje paso a paso la resolución del problema.
Resolución del Algoritmo en la computadora. se debe codificar el algoritmo.
Resolución de problemas utilizando algoritmos
Ejemplo 2.1
Una universidad ofrece un curso que prepara a los estudiantes para
el examen de obtención de licencia de corredor de bienes raíces. El
año anterior, varios de los estudiantes que completaron el curso
presentaron el examen para obtener la licencia. Naturalmente la
Universidad desea saber que resultados obtuvieron sus estudiantes en
el examen. Se nos ha pedido escribir un programa que resuma los
resultados recibidos de una lista de 10 estudiantes. Junto a cada nombre
se anoto un 1 si el estudiante aprobó el examen y un 2 si reprobó.
Exhiba un resumen de los resultados de la prueba indicando el número
de estudiantes que aprobaron y el número de estudiantes que
reprobaron . Si más de Ocho estudiantes aprueban el examen la
Universidad será capaz de aumentar la colegiatura.
Exhibir el mensaje "Teclee resultado" en la pantalla cada vez que el programa solicite otro resultado de examen.
Solución
Algoritmo
A grandes rasgos:
Analizar los resultados del examen y decidir si se debe aumentar o no la colegiatura.
Se puede refinar como sigue:
Inicializar variables
Introducir las primeras 10 calificaciones y contar los aprobados y los reprobados.
Imprimir un resumen de los resultados de exámenes y decidir si se debe aumentar o no la colegiatura.
Pseudocódigo
Es un lenguaje artificial e informal que ayuda a
los programadores a desarrollar algoritmos. Tambien es
similar al lenguaje cotidiano; es cómodo y amable con el usuario,
aunque no es realmente in verdadero lenguaje de computadora. No se
ejecutan en las computadoras mas bien sirven para ayudar al programadora
razonar un programa antes de intentar escribirlo en algún lenguaje.
Un programa ejecutado en Pseudocódigo puede ser fácilmente
convertido en un programa en C++, si es que esta bien elaborado. Por
ejemplo supongamos que la nota para aprobar un examen es de 60. El
enunciado en Pseudocódigo sería:
Si calificación >= 60 entonces
Mostrar "Aprobado" FinSi |
El mismo enunciado se puede escribir en C++ como:
if ( calif >= 60 )
cout << "Aprobado"; |
Nótese que la operación de trasladar el Pseudocódigo a código
fuente, se lo realiza con el mínimo esfuerzo, no se necesita de un
mayor análisis.
Llevando el Ejemplo2.1 a Pseudocódigo.
Se puede refinar más aun el algoritmo:
Inicializar variables.
Inicializar los aprobados (aprobados) en 0 Inicializar los reprobados (reprobados) en 0 Inicializar el número de estudiantes (estudiantes) en 0 Introducir las primeras 10 calificaciones y contar los aprobados y los reprobados. Mientras (while) el contador estuantes es menor o igual que 10 entonces |
||||||
Introducir el siguiente resultado de examen Si el estudiante aprobó |
||||||
Sumar 1 a aprobados
|
||||||
Si no
|
||||||
Sumar 1 a reprobados
|
||||||
FinSi
Sumar 1 al contador estudiantes |
||||||
FinMientras
Imprimir un resumen de los resultados de exámenes y decidir si se debe aumentar o no la colegiatura. Imprimir el número de aprobados Imprimir el número de reprobados Si estudiantes es más 8 entonces |
||||||
Imprimir "Aumentar la colegiatura".
|
||||||
FinSi
|
Diagramas de flujo
Un diagrama de flujo es una representación gráfica de
un algoritmo o de una parte del mismo. Los diagramas de flujo ayudan
en la comprensión de la operación de las estructuras de control (Si, Mientras).
La ventaja de utilizar un algoritmo es que se lo puede
construir independiente mente de un lenguaje de programación, pues
al momento de llevarlo a código se lo puede hacer en cualquier
lenguaje.
Dichos diagramas se construyen utilizando ciertos símbolos
de uso especial como son rectángulos, diamantes, óvalos, y pequeños
círculos, estos símbolos están conectados entre sí por flechas,
conocidas como líneas de flujo. A continuación se detallarán estos símbolos.







EJEMPLO 2.1 .

Información recopilada por Antony Loza
Estudiante Ing. Sistemas
Profesor: Jesús García Valdespino.
Unefa - Extensión Ocumare del tuy
ESTADO MIRANDA
VENEZUELA
No hay comentarios:
Publicar un comentario