You are on page 1of 19

Algoritmos

Un algoritmo es un procedimiento a seguir,


para resolver un problema en trminos de:

1. Las acciones por ejecutar y el


2. El orden en que dichas acciones deben ejecutarse
Un algoritmo nace en respuesta a la aparicin de un determinado problema.
Una algoritmo esta compuesto de una serie finita de pasos que convergen en la
solucin de un problema, pero adems estos pasos tienen un orden especfico.
Entenderemos como problema a cualquier accin o evento que necesite cierto grado
de anlisis, desde la simpleza de cepillarse los dientes hasta la complejidad del
ensamblado de un automvil.
Un algoritmo para un programador es una herramienta que le permite resaltar los
aspectos ms importantes de una situacin y descartar los menos relevantes. Todo
problema de cmputo se puede resolver ejecutando una serie de acciones en un
orden especfico.

ALGORITMOS - PSEUDOCODIGO Y PROGRAMAS C++


DEFINICION DE ALGORITMO
Conjunto de pasos o acciones que se realizan de manera ordenada para
llegar a la solucin de un problema.
Conjunto de sentencias/instrucciones en lenguaje nativo, las cuales
expresan la lgica para la resolucin de un problema.
Conclusin : Es un mtodo para resolver un problema. La resolucin de un
problema exige el diseo de un algoritmo que resuelva el problema.
ETAPAS EN LA RESOLUCIN DE UN PROBLEMA USANDO UNA
COMPUTADORA
Problema Algoritmo Programa en computadora
Diseo del algoritmo .- Describe los pasos a seguir para la resolucin de
un problema dado (anlisis y desarrollo del algoritmo)
Programa en computadora .- El algoritmo se expresa mediante un
lenguaje de programacin en un programa.

TIPOS DE ALGORITMOS:
Algoritmo Cualitativo. Son los algoritmos descritos mediante palabras. Ejm:

La elaboracin de una receta de cocina


Bsqueda de un numero telefnico.
El cambio de una llanta
El cambio de un foco quemado.

Algoritmo Cuantitativo.Son los algoritmos que se basan en clculos numricos. Ejm:


Pasos a seguir para resolver una ecuacin de segundo grado.
Pasos a seguir para calcular los sueldos de los empleados de una
empresa.

CARACTERSTICAS DE UN ALGORITMO . Los algoritmos deben tener estas caractersticas:


Indicar un orden a seguir en cada uno de sus pasos.
Ser definido (confiable), si se ejecuta dos veces debe
lograrse el mismo resultado.
Ser finito, es decir terminar en un nmero finito de
pasos.

PARTES DE UN ALGORITMO
En un algoritmo se definen tres partes: Entrada, Proceso
y Salida.
Fig. 1 Partes de un algoritmo o programa.

Por ejemplo considere el algoritmo que se elaborara para el


problema o situacin de levantarse todas las maanas para ir al
trabajo:
1.
2.
3.
4.
5.
6.

Salir de la cama
quitarse el pijama
ducharse
vestirse
desayunar
arrancar el automvil para ir al trabajo o tomar transporte.

Ntese que en el algoritmo anterior se ha llegado a la solucin del


problema en 6 pasos, y no se resaltan aspectos como: colocarse los
zapatos despus 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 perdera lgica,

un buen programador deber reconocer esos aspectos


importantes y tratar de simplificar al mnimo su problema.

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 ningn
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 solucin 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 solucin 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 anlisis de resolucin 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.

Resolucin de Problemas
Para lograr resolver cualquier problema se
deben seguir bsicamente los siguientes pasos:
Anlisis del Problema.
en este paso se define el problema, se lo
comprende y se lo analiza con todo detalle.
Diseo del Algoritmo.
se debe elaborar una algoritmo que refleje paso
a paso la resolucin del problema.

Resolucin del Algoritmo en la


computadora.
se debe codificar el algoritmo.

RESOLUCIN DE PROBLEMAS UTILIZANDO ALGORITMOS


Ejemplo 2.1

Una universidad ofrece un curso que prepara a los estudiantes para


el examen de obtencin de licencia de corredor de bienes races.
El ao 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 desaprob.
Exhiba un resumen de los resultados de la prueba indicando el
nmero de estudiantes que aprobaron y el nmero de estudiantes
que reprobaron .
Si ms 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.

Solucin

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 exmenes y
decidir si se debe aumentar o no la colegiatura.

Pseudocdigo
Pseudocdigo Es un lenguaje artificial e informal que
ayuda a los programadores a desarrollar algoritmos.
El Pseudocdigo es similar al lenguaje cotidiano; es
cmodo 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 algn lenguaje.
Un programa ejecutado en Pseudocdigo puede ser
fcilmente 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 Pseudocdigo sera:
Si calificacin >= 60 entonces
Mostrar "Aprobado"
FinSiEl mismo enunciado se puede escribir en C++
como:
if ( calif >= 60 )
cout << "Aprobado";Ntese que la operacin de
trasladar el Pseudocdigo a cdigo fuente, se lo realiza
con el mnimo esfuerzo, no se necesita de un mayor
anlisis.

Llevando el Ejemlo2.1 a Pseudocdigo.

Se puede refinar ms aun el algoritmo:


Inicializar variables.
Inicializar los aprobados (aprobados) en 0
Inicializar los reprobados (reprobados) en 0
Inicializar el nmero 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 estudiantesFinMientras


Imprimir un resumen de los resultados de exmenes y decidir si se debe
aumentar o no la colegiatura.
Imprimir el nmero de aprobados
Imprimir el nmero de reprobados

Si estudiantes es ms 8 entonces
FinSi

Imprimir "Aumentar la colegiatura".

Simplificando el problema queda escrito en Pseudocdigo de la siguiente forma:

Diagramas de flujo
Un diagrama de flujo es una representacin grfica de un
algoritmo o de una parte del mismo. Los diagramas de
flujo ayudan en la comprensin de la operacin 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
programacin, pues al momento de llevarlo a cdigo se
lo puede hacer en cualquier lenguaje.
Dichos diagramas se construyen utilizando ciertos
smbolos de uso especial como son rectngulos,
diamantes, valos, y pequeos crculos, estos smbolos
estn conectados entre s por flechas, conocidas como
lneas de flujo. A continuacin se detallarn estos
smbolos.

Smbolos del Diagramas de flujo

Terminal. Representa el inicio y fin de un programa.

Proceso. Son acciones que el programa tiene que realizar

Decisin. Indica operaciones lgicas o de comparacin,


as como expresiones

Entrada / Salida. Nos permite ingresar datos, de un


perifrico, as como mostrarlos

Salida. Es usado para mostrar datos o resultados

Conector. Se coloca al principio y fin de un pedazo de


programa, enlaza dos partes cualquiera de un programa

Lnea de flujo o indicador de direccin.

Ejemplo

You might also like