Está en la página 1de 18

Informtica II

Algoritmos
Introduccin:

La historia ubica la invencin de los algoritmos en el siglo IX, por obra y gracia del
matemtico y astrnomo Mohamed ibn Musa-al Jwarizmi, de all su nombre. Desarroll frmulas
para posibilitar que con un nmero limitado de pasos e indicaciones claras de ejecucin se
pudieran resolver ecuaciones de primer y segundo grado. Desde la simplicidad de preparar una
ensalada, a la posibilidad de resolver un problema complejo que nos preocupa los algoritmos son
de inestimable ayuda.
Un algoritmo es un mtodo para resolver un problema, debe presentarse como una
secuencia ordenada de instrucciones que siempre se ejecutan en un tiempo finito y con una
cantidad de esfuerzo tambin finito. En un algoritmo siempre debe haber un punto de inicio y un
punto de terminacin, estos deben ser nicos y deben ser fcilmente identificables.
Cabe aclarar que no slo son aplicables en problemas intelectuales o matemticos, si no que
son aplicables en todo tipo de problemas relacionados con actividades cotidianas, inclusive t
mismo tienes y ejecutas tus propios algoritmos para realizar algunas de tus actividades diarias.
Los algoritmos pueden clasificarse en dos tipos:
Cualitativos. Son aquellos en los que no se realizan clculos matemticos, como: la
bsqueda de un nmero telefnico en un directorio, escribir una receta de cocina o encender una
computadora.
Cuantitativos. Son aquellos en los que si intervienen los clculos numricos, por ejemplo: el
clculo de la nmina de una empresa, el clculo de un volumen de un slido o conocer la edad de
una persona a travs de su fecha de nacimiento.

Caractersticas de los algoritmos


Un algoritmo adems de ser una secuencia de acciones lgicas que hay que realizar para
completar un proceso tambin requiere cumplir con cinco condiciones importantes:
Finito: Un algoritmo debe terminar en un nmero finito de pasos.
Definido: Cada paso del algoritmo debe definirse de modo preciso, las acciones a realizar
deben estar especificadas rigurosamente y sin ambigedad para cada paso.
Entrada: Un algoritmo tiene cero o ms entradas. Esto es, las cantidades que de inicio se
generan en el mismo algoritmo o se conocen previamente.
Salida: Tiene una o ms salidas. Es decir, hay datos o cantidades al trmino del algoritmo
que tienen una relacin especfica con los datos o cantidades de entrada.
Efectivo: El algoritmo debe ser efectivo. Esto significa que todas las operaciones deben ser
lo suficientemente sencillas para poder ser realizadas de modo exacto y en un tiempo finito.

Informtica II

Representacin de los algoritmos


Pseudocdigo
La idea principal del pseudocdigo es dar una descripcin del algoritmo, similar a una
implementacin de un lenguaje de programacin, pero flexibilizndola para incluir descripciones en
lenguaje normal. Consiste en usar un lenguaje no formal, para describir la secuencia de acciones
que se deben ejecutar.
Diagrama de Flujo
Es la representacin grfica de un algoritmo, utilizando smbolos para indicar diversos tipos
de actividades, con etiquetas descriptivas para cada uno de esos smbolos.
Los elementos grficos principales son:
Nombre
Descripcin
Elemento grfico
Inicio y fin
Indica donde inicia y donde
termina el algoritmo
Significa que el usuario ingresa
un dato
Se utiliza para evaluar una
condicin y dependiendo del
resultado, tomar una decisin.
Se usa para indicar una
operacin o proceso a realizar.
Sirve para conectar diferentes
segmentos de un diagrama.
Expresa salida de datos por
dispositivo de salida.
Lectura de datos
Decisin
Proceso
Conector
Documento
Algunas consideraciones importantes para la elaboracin de diagramas de flujo son:
El diagrama debe dibujarse de arriba hacia abajo.
El diagrama debe tener un inicio y un fin.
Las lneas de conexin deben indicar la direccin en un solo sentido, deben ser rectas, ya
sean verticales u horizontales.
Cada smbolo debe tener una sola lnea de entrada.

Informtica II
Ejemplo

Construir un algoritmo para calcular y desplegar el pago que habra que hacer un cliente
por un pantaln de $1500, con un 20% de descuento en caso de pagarse en efectivo.
Algoritmo
1.Inicio
1. Inicio
Pseudocdigo
Diagrama de flujo
Inicio

2.El pago a realizar es $1500


2.Pago=$1500
Pago = $1500

3.Se pregunta al cliente la 3. Leer Forma_Pago


Leer Forma_Pago

forma de pago
4.Si la forma de pago es 4.Forma_Pago = Efectivo?
efectivo entonces continua Si5 ; No6
y si no debe pagar $1500
Forma_Pago =
Efectivo?
SI
NO

5. Al pago se le resta el 20%.


5.Pago=Pago (Pago * 0.20)
Pago=Pago-(Pago*0.20)

6. Se le cobra al cliente.
6. Escribe Pago
Escribe Pago

7.Fin
7.Fin
Fin

Informtica II
Actividad 2
Algoritmos, Pseudocdigo y Diagrama de flujo
De manera similar realiza un algoritmo con sus 2 representaciones que calcule y despliegue el
pago que debe realizar un cliente por algn pantaln de precio X con Y porciento de descuento en
caso de pagarlo en efectivo. SUGERENCIA: Como no conoces los valores de X y Y debes preguntar (leer) primero
que valor van a tomar dentro del algoritmo y despus realizar las operaciones necesarias.

Algoritmo
Pseudocdigo
Diagrama de flujo

Informtica II
Actividad 3
Algoritmos, Pseudocdigo y Diagrama de flujo

Ordena los siguientes pseudocdigos para que cumplan con la funcin para la que fueron
diseados y construye su diagrama de flujo.
1. Algoritmo para calcular la suma de dos nmeros cualesquiera y desplegar el resultado.
Pseudocdigo Ordenado
Diagrama de flujo

*Inicio.
*Leer A.
*Establecer la variable
Suma en 0 (Suma = 0).
*Desplegar Suma.
*Leer B.
*Suma = A + B.
*Fin.

2. Algoritmo para determinar si un nmero cualquiera N > 0 es par o impar utilizando la funcin
mod y desplegar el resultado.
Pseudocdigo Ordenado
Diagrama de flujo

*Inicio.
*Si N mod 2 = 0, entonces,
desplegar El nmero es
par, Ir al paso 6.
*Si N <= 0, entonces, volver
al paso 2.
*Desplegar El nmero es
impar.
*Leer N.
*Fin.

Informtica II
3. Algoritmo para calcular y desplegar la comisin de un vendedor tomando en cuenta que, si
la venta es menor a $5,000.00 la comisin ser de un 5% sobre la venta, de lo contrario, la
comisin ser de un 7% sobre la venta.
Pseudocdigo Ordenado
Diagrama de flujo

*Inicio.
*Com = Venta * .07.
*Leer Venta.
*Si Venta < 5000, entonces,
Com = Venta * .05, Ir al
paso 5.
*Desplegar Com.
*Fin.

4. Algoritmo para calcular el producto de dos nmeros cualesquiera y desplegar el resultado.


Pseudocdigo Ordenado
Diagrama de flujo

*Inicio.
*Leer A.
*Establecer la variable
Producto en 0.
*Desplegar Producto.
*Leer B.
*Producto = A * B.
*Fin.

Informtica II
Actividad 4
Algoritmos, Pseudocdigo y Diagrama de flujo

Lee con atencin los siguientes planteamientos y anota en el crculo una V si es verdadero
y una F si es falso.
1. Un algoritmo siempre debe tener un objetivo.
2. Los algoritmos deben ser infinitos.
3. Al seguir ms de una vez un algoritmo podemos obtener un resultado
diferente.
4. Cuando el algoritmo tiene un orden, con instrucciones claras, es preciso
5. Las instrucciones de los algoritmos pueden ser ambiguas
6. Es recomendable enumerar cada paso para facilitar su comprensin.
7. En la redaccin de algoritmos no importa si las instrucciones son frases
largas y poco concretas.
8. Los problemas complejos pueden dividirse en mdulos o subalgoritmos.
9. Los valores constantes son aquellos que pueden variar en el algoritmo.
10. Los valores variables cambian durante el desarrollo del algoritmo.
11. Un diagrama de flujo es la representacin grfica de un algoritmo.
12. El smbolo para representar una operacin es el crculo.
13. El pseudocdigo es mucho ms cercano al lenguaje de mquina.
14. Las lneas de flujo pueden ir en 2 direcciones a la vez.
19

Informtica II
Actividad 5
Algoritmos

Lee los siguientes algoritmos y verifica si cumplan con las caractersticas de los
algoritmos, justifica tu observacin.
Algoritmo para lavar una pecera.
1. Inicio
2. Desconectar los equipos de la pecera
3. Quitar la tapa de la pecera
4. Sacar el agua
5. Sacar a los peces
6. Lavar la pecera
7. Introducir a los peces
8. Llenar de agua
9. Poner la tapa
10. Conectar los equipos
11. Fin
Algoritmo para plantar un rbol.
1. Inicio
2. Elegir el lugar apropiado para plantarlo
3. Cavar un agujero
4. Introducir un poco de abono en el agujero
5. Quitar el exceso de tierra de las races
6. Desenredar las races
7. Introducir el rbol en el agujero
8. Quitar la bolsa de plstico de las races del rbol
9. Rellenar el agujero con tierra
10. Compactar la tierra
11. Regar el rbol
12. Fin
En caso de que algn algoritmo sea incorrecto reformula de manera correcto.
Actividad 6
Algoritmos y Diagrama de flujo

En equipo de 4 integrantes, elaboren 2 algoritmos con su respectivo diagrama de flujo,


acerca de algn problema de la vida cotidiana y entrega en una hoja con los nombres de
los integrantes.
20

Informtica II

Metodologa de solucin de problemas

Para la solucin de problemas, es muy importante la creatividad, la imaginacin y la


lgica de cada persona, pero si adems nos apoyamos en una metodologa en la que se
involucran diferentes etapas, como la identificacin del problema, el planteamiento de
alternativas de solucin, la eleccin de una alternativa, el desarrollo de la solucin y por
ltimo la evaluacin de la solucin, veremos que resulta de gran utilidad.
Identificacin del problema: Posiblemente sta sea una de las etapas ms
importantes para resolver un problema, ya que implica analizar bien el problema para
entender claramente que se desea resolver, e identificar los datos disponibles, ya que
estos sern las entradas, y los resultados que deseamos obtener, sern las salidas.
Se deben plantear una serie de preguntas relacionadas con el problema y lgicamente
obtener las respectivas respuestas.
Cules son los datos de entrada?
Los nmeros pares comprendidos entre 1 y 100
Cules son los datos de salida?
La suma de los nmeros pares
Cmo podemos determinar los nmeros pares comprendidos entre el 1 y 100?
Una forma seria empezar con el nmero 2, que es el primer nmero par entre 1 y 100,
y despus avanzar de dos en dos, es decir, 2, 4, 6, , 100.
Planteamiento de alternativas: Una vez que se ha identificado el problema, el
siguiente paso consiste en plantear las posibles alternativas que tenemos para
solucionarlo. En esta etapa es recomendable dividir la solucin en mdulos, es decir en
tareas independientes.
Eleccin de una alternativa: Cuando todas las posibles alternativas de solucin de un
problema han sido planteadas, entonces debemos elegir una de ellas, analizando las
diferentes propuestas de cmo abordar la solucin se determina el tipo de mtodo a usar.
No existe un mtodo determinado exclusivo para la solucin de algoritmo, pero si una
gama variada. Algunos mtodos son:
Divide y vencers: descomponer un problema en subproblemas, resolver cada uno
de estos para luego combinar sus soluciones y obtener la solucin del problema
original.
Heursticas: Consiste en un mejor resultado a partir de un conjunto de opciones
candidatas. Se procede paso a paso realizndose la mejor eleccin de entre las
posibles.
Mtodo voraz: se basa en un conocimiento intuitivo del analista acerca de un
determinado problema.
Desarrollo de la solucin: Una vez que ya hemos analizado tanto las propuestas
como los mtodos se elijara la alternativa para solucionar el problema, lo que nos resta es
disear su respectivo algoritmo, donde escribiremos cada uno de los pasos de una
manera breve y ordenada.
Evaluacin de la solucin: Cuando se disean algoritmos, se puede probar el
funcionamiento haciendo una prueba de escritorio, la cual consiste en anotar los valores
de las variables en una hoja seguir cada una de las sentencias del algoritmo y anotar
21

Informtica II
todos los cambios de valores que sufren las variables, de tal manera que al finalizar se
sabe si el algoritmo realmente resuelve el problema planteado.
Ejemplo:
Problema: Calcular la suma de los nmeros pares comprendidos entre 1 y 100 y al final
desplegar su resultado.
Identificacin del problema:
Cules son los datos de entrada? los nmeros pares comprendidos entre 1 y 100
Cules son los datos de salida? la suma de los nmeros pares comprendidos entre 1 y 100?
Cmo podemos determinar los nmeros pares?, Una forma seria empezar con el nmero 2,
que es el primer nmero par entre 1 y 100, y despus avanzar de dos en dos, es decir 2, 4,
6,,100.
Otra forma seria utilizar la operacin aritmtica mod (proporciona el residuo de una divisin).
As, inicializaramos con el numero 1 y nos iramos de una en una analizando el residuo con
la operacin mod al dividir cada numero entre 2, y si nos da cero, quiere decir que el
nmero es par.
Planteamiento de alternativas: de la alternativa uno, se iran sumando los nmeros pares ya
establecidos, pudiendo decir 2, 4, 6, , 100 o a partir del dos se sumaria dos para obtener
el nmero par y se van sumando.
2 como base y se van sumando 2, de tal manera que a 2 le sumo 2 y nos dan 4, se suma 2+4,
luego a 4 le suman 2, nos dan 6, y as sucesivamente.
Eleccin de una alternativa: Se elige la ms fcil.
Desarrollo de la solucin: Se disea el algoritmo y queda as.
1.
2.
3.
4.
5.
6.
Inicio
Establecer la variable suma en 0 (Suma =0)
Establecer la variable Numero en 2 (Numero =2)
Sumar Numero a Suma (Suma = Suma + Numero).
Incrementar Numero en 2 (numero = Numero *2)
Si el Numero es <= 100, entonces
Volver al paso 4
En caso contrario
Desplegar el valor de la suma
7. Fin
Evaluacin de la solucin: Se hace una corrida de escritorio.

Informtica II
Actividad 7
Metodologa de solucin de problemas

Resuelve los siguientes planteamientos aplicando las fases de la metodologa de


solucin de problemas.
1. Planteamiento: Calcula el rea de un triangulo.
Identificacin del problema:
Planteamiento de alternativas:
Eleccin de una alternativa:
Desarrollo de la solucin:
Evaluacin de la solucin:

Informtica II
2. Planteamiento: Encontrar los nmeros menores de 30, divisibles entre 3.
Identificacin del problema:
Planteamiento de alternativas:
Eleccin de una alternativa:
Desarrollo de la solucin:
Evaluacin de la solucin:

Informtica II
Actividad 8
Algoritmos y Diagramas de Flujo

Instrucciones: De los siguientes algoritmos complementa el diagrama.


1- Pagar la cuenta de un restaurante por partes iguales incluida la propina Cunto debe
pagar cada comensal de un grupo en un restaurante considerando el monto del
consumo y la propina? Para cualquier nmero de personas y la propina puede ser de
10 o 15%.
Algoritmo
1. Inicio
2. Leer Total
3. Leer NPersonas
4. Leer Propina
5. Pago = (Total * (1 + Propina /100)) / NPersonas
6. Desplegar Pago
7. Fin
2. Nmeros consecutivos
Suma de tres nmeros consecutivos.
Cmo obtengo la suma de tres nmeros consecutivos?
Algoritmo
1. Inicio
2. Suma = 0
3. Leer Num
4. Suma = Num + (Num+1) + (Num+2)
5. Desplegar Suma
6. Fin

Informtica II
3. Unidades de medida
Algoritmo

1. INICIO
2. LEER NUM
3. DESPLEGAR PARA PULGADAS
A CM PRESIONE P, PARA LIBRAS A
KG PRESIONE L, PARA GALONES
A LT PRESIONE G
4. LEER RESP
5. SI RESP = P, ENTONCES
CONV = NUM * 2.54
IR AL PASO 10
6. SI RESP = L, ENTONCES
CONV = NUM * .453
IR AL PASO 10
7. SI RESP = G, ENTONCES
CONV = NUM * 3.785
IR AL PASO 10
8. DESPLEGAR ERROR EN LA
RESPUESTA
9. IR AL PASO 4
10. DESPLEGAR NUM
11. FIN
*
Si
No
*
Si
No
No
Si
*
+
*
*

Informtica II
Actividad 9
Algoritmos y Diagramas de Flujo

El ejemplo muestra el diagrama de flujo para determinar Cul de los 3 nmeros dados es
mayor? Escribe su algoritmo a un lado.
Ahora analzalo y salo como base para generar el diagrama de flujo para determinar
Cul de los 4 nmeros dados es menor?

Informtica II
Actividad 10
Algoritmos y Diagramas de Flujo
El ejemplo muestra Cmo calcular la edad que cumplir una persona en este ao, conociendo su
ao de nacimiento? Escribe a un lado su algoritmo.
Inicio
Leer Ao_Nac
Edad = 2012 Ao_Nac
Edad
Fin

Ahora elabora un diagrama para determinar la edad que tendra al da de hoy utilizando la fecha de
nacimiento completa. Toma en cuenta que pudo haber cumplido aos o no.
28

Informtica II
Actividad 11
Algoritmos y Diagramas de Flujo
Completa el siguiente diagrama de flujo y escribe su algoritmo.
29

Informtica II
Actividad 12
Algoritmos y Diagramas de Flujo
Elige una figura geomtrica: ________________________________________
Realiza un algoritmo y su diagrama de flujo para calcular su rea y su permetro.