Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MDULO 2: ALGORITMOS
A. GUA DE TRABAJO:
Ficha tcnica:
1. Campo de formacin: Formacin tcnica.
2. Nmero de crditos: 2
3. Tipo de curso: Terico aplicado.
4. Autor: Lic. Yeimy Julieth Moreno Jimnez
Revisor: MsC. Javier Duvn Amado Acosta
5. Ao: 2008
6. Destinatarios: estudiantes del ciclo de formacin tcnico laboral.
Competencias de aprendizaje (generales).
Este modulo hace parte de la formacin tcnica especfica, donde el
estudiante desarrollar capacidades para el anlisis de situaciones
desde una perspectiva problmica centrada en la determinacin de
soluciones de tipo sistmico para eventos informticos de la realidad,
tratando de representar tales fenmenos en formas algortmicas, tanto
desde los seudo lenguajes como de otros esquemas de tipo informtico;
para la reformulacin y construccin de procedimientos congruentes con
la realidad problmica estudiada.
B. PROTOCOLO ACADMICO.
Introduccin.
Justificacin.
la programacin,
estrategia
de
formulacin
de
problemas
en
trminos
de
Objetivos.
Proporcionar
resolucin
los
de
conocimientos
problemas
con
terico-aplicados
computadores
para
la
mediante
herramientas de programacin.
Capacidad intelectual
1.
Unidades didcticas
Unidad 1: conceptos iniciales.
1.1.
Algoritmos.
Algoritmos cualitativos.
1.1.2.2.
Datos.
Datos numricos.
1.2.1.2.
Datos lgicos.
1.2.1.3.
1.3.
Constantes y variables.
1.3.1.2.
1.3.2. Identificadores.
1.4.
Asignaciones.
Asignaciones aritmticas.
1.4.1.2.
Asignaciones lgicas.
1.4.1.3.
2.
3.
2.1.
2.2.
2.3.
3.2.
Pseudocdigo.
Diagramas de flujo.
4.1.1. Simbologa.
4.1.2. Ventajas de los diagramas de flujo.
4.1.3. Desventajas de los diagramas de flujo.
4.2.
Metodologa.
Actividades de estudio.
Actividades de anlisis.
Actividades de conceptualizacin
Favorecer
el
desarrollo
de
habilidades
de
comunicacin
Sistema de evaluacin.
Glosario de trminos.
proceso
de
comprobacin
que
el
en:
http://www.cordecol.com/eit/index.php?
option=com_weblinks&task=view&catid=2&id=3 (Consultada el 20 de
diciembre de 2007).
MARTNEZ,
Carlos.
Algoritmos.
Corporacin
Iberoamericana
de
C. GUA DE ACTIVIDADES.
Tipos de algoritmos.
Algoritmos cualitativos: algoritmos en los que los pasos son descritos usando
palabras comunes al sujeto; se definen como todos aquellos algoritmos que no
son realizables a travs de un computador o que al menos no lo son fcilmente.
Proceso:
Encender la estufa
Poner la olleta con agua sobre el fogn encendido
Dejar hervir
Agregar caf al gusto
Hervir durante cinco minutos ms
Apagar la estufa
Servir el caf en la taza
Agregar azcar al gusto
Degustar
Puede notarse que se trata de una descripcin pormenorizada del proceso que al
ser repetido en cualquier circunstancia, obteniendo con siempre el mismo
resultado u cumpliendo con el objetivo propuesto. Cabe anotar que este algoritmo
no es nico, en el sentido que pueden existir otras formas diversas de elaborar
una taza de caf, que muchas veces depende de los insumos para llevar a cabo la
que
los
lenguajes
de
programacin
taren
Construccin de un algoritmo.
La construccin de un algoritmo debe tener tres pasos: entrada, proceso y salida;
igualmente debe contar con un grupo limitado de pasos expresados claramente y
sin ambigedad, acordes con las un grupo de condiciones iniciales que al
ejecutarse, producen unos resultados en un tiempo limitado.
Ejemplo 1.
Buscar en un libro de matemticas, el tema de trinomio cuadrado perfecto.
Solucin:
Insumos: libros de matemticas de diversos autores y editoriales, as como para
diferentes niveles de formacin.
Proceso: partiendo de la seleccin aproximada de un nmero finito de libros, se
necesita desarrollar un conjunto de pasos ordenados que permiten seguir el
camino para encontrarlo.
El primer paso es seleccionar el grado en que dicho tema es trabajado: octavo
grado.
Entre tales libros, escoger uno de ellos de acuerdo con algunos criterios,
impuestos por las necesidades del problema o elecciones del programador;
algunos pueden ser:
El libro ms antiguo.
2.
3.
4.
5.
Fin.
Este es un ejemplo de algoritmo, que marca el inicio del proceso y el final del
mismo, lo cual se constituye en caracterstica imprescindible para el 90% de los
lenguajes de programacin, actualmente vigentes en el mercado.
Ejemplo 2.
Proceso de seguimiento al pedido de un cliente, es decir: un cliente realiza un
pedido a una fbrica; la fbrica examina en su base de datos la ficha del cliente, si
el cliente aparece referenciado como responsable, entonces la empresa acepta el
pedido; en caso contrario, rechazar el pedido.
Redactar un algoritmo para este caso
Solucin:
Inicio.
1. Leer el pedido.
2. Examinar la ficha del cliente.
3. Si el cliente es responsable, aceptar pedido; en caso contrario,
rechazar pedido.
Fin.
Actividad leccin 1
1. Construya los algoritmos que resuelvan los siguientes problemas:
a. Ir al cine (sol@ o acompanad@).
b. Colocar la mesa para comer.
c. Hacer palomitas de maz, con una olla puesta al fuego con aceite, sal y
maz.
d. Hacer una llamada telefnica. Considerar los siguientes pasos:
Con operadora.
Automtico.
e. Deshinchar la llanta de un vehiculo.
f. Hacer el mercado para la casa.
g. Quitarse los zapatos.
h. Silbar.
/
Div
Mod
Nombre
Tipos de operandos
Adicin
Entero o real
Substraccin
Entero o real
Multiplicacin
Entero o real
Exponencial
Entero o real
Divisin
Real
Divisin entera
Entero
Resto
Entero
Tipo de resultado
Entero o real
Entero o real
Entero o real
Entero o real
Real
Entero
Entero
Descripcin
Valor absoluto de x
Arco tangente de x
Coseno de x
Exponencial de x
Logaritmo natural de x
Logaritmo en base 10 de x
Tipo de argumento
Entero o real
Entero o real
Entero o real
Entero o real
Entero o real
Entero o real
Resultado
Igual que argumento
Real
Real
Real
Real
Real
Redondeo de x
Real
Entero
Seno de x
Entero o real
Real
Cuadrado de x
Entero o real
Raz cuadrada de x
Entero o real
Real
Funcin
trunc(x)
Descripcin
Truncamiento de x
Tipo de argumento
real
Resultado
Entero
* radio ^ 2
Tipos de variables.
Dependiendo del lenguaje, hay diferentes tipos de variables, entre las cuales se
destacan: las enteras, reales, de caracter, lgicas y de cadena. Una variable que
es de cierto tipo puede tomar nicamente valores de ese tipo. Por ejemplo un
variables tipo caracter solo puede tomar valores tipo caracter, mientras que una
variable real puede tomar slo valores reales.
Una variable se identifica por, el nombre que se le asigna y el tipo de dato que
describe el uso de la variable. Las variables se clasifican por su contenido y por su
uso:
tienen
exigen
una
consulta
en
el
(letras,
nmeros
caracteres
matemtica
completa,
que
se
usan
que
se
van
leyendo
calculando
progresivamente.
Identificadores.
Los nombres de las variables son conocidos como identificadores, suelen constar
de varios caracteres que sirven para identificar una posicin en la memoria del
computador permitiendo acceder a su contenido. Los identificadores representan
los datos de un programa (constantes, variables y tipos de datos).
Para establecer un identificador se deben tener en cuenta las siguientes
condiciones:
El nombre del identificador debe dar una idea del valor que
contiene, para recordar con mayor facilidad su contenido.
c. N14
d. 3NOMBRE
e. 45
f. ZZZzz
g. Ernesto
3. Escriba 3 ejemplos relacionados con los tipos de variables por su
contenido. Entregue su trabajo al docente tutor.
Leccin 4. Asignaciones.
Para almacenar informacin en la memoria se debe definir una localizacin de
almacenamiento, esta operacin es el modo de darle valores a una variable. Esta
se representa con el smbolo y se conoce como instruccin o sentencia de
asignacin cuando se refiere a un lenguaje de programacin.
La flecha es el operador de asignacin y ser utilizada en la redaccin del
algoritmo para evitar ambigedades; sin embargo este operador se sustituye en
algunos lenguajes de programacin por, := (en pascal o C/C++) o = (BASIC,
FORTRAN), entre otros.
De forma general en el algoritmo, una instruccin de asignacin debe escribirse de
la siguiente manera:
Variable valor
La variable debe estar representada por su identificador. El valor asignado puede
ser una constante, una variable, una expresin aritmtica o una funcin; es decir
un dato.
xx+1
como x + 1 es igual a 5, a x se le cambia el valor de 4 por el 5.
Tipos de asignaciones.
Las acciones de asignacin se clasifican segn sea el tipo de expresiones en,
aritmticas, lgicas y de caracter.
w no4 d
al evaluar las expresiones, las variables d, e y w tomaran los
valores falso, verdadero y verdadero respectivamente.
x toma el valor de 2
x cuadrado (2 + 2)
y 2.0
VALOR x
y y
VALOR 5
x3
VALOR VALOR * x
b. VALOR 20.0
x 3.7
y 2.0
VALOR 3 2 2
VALOR 5
x 13
VALOR VALOR * x
4. Escriba una expresin lgica que sirva para evaluar cada una de las
condiciones que se presentan a continuacin, despus asgneles una
variable y determine su valor.
a. Es falso que el nmero 0 sea igual a la letra O
b. Un nmero x es impar y mltiplo de 5
c. Un cdigo COD es un nmero entero positivo de dos cifras.
d. Un da de la semana (DIA) no es sbado ni domingo.
e. Una persona es mujer soltera y mayor de edad.
5. Encuentre el valor de la variable W.
a. W no (-1 < -1.2)
b. W (3 >= 0) y (3 < -5)
c. W (-2 < -1) o (2 > 1)
d. W No (B > C)
e. W (3 + 5 < 3 * 5) o (2 * 3 = 15 div 5) y (A < a)
RESOLUCIN
DE UN
PROBLEMA
ANLISIS DEL
PROBLEMA
DISEO DEL
ALGORITMO
RESOLUCIN DEL
PROBLEMA CON EL
COMPUTADOR
Si se quiere definir con precisin el problema, los datos de entrada y salida deben
ser descritos con detalle. Una buena definicin del problema, junto con una
descripcin detallada de las especificaciones de entrada y salida, son los
requisitos ms importantes para llegar a una solucin eficaz.
El anlisis del problema exige una lectura previa del problema a fin de obtener una
idea general de lo que se solicita. La segunda lectura deber servir para responder
a las preguntas que se proponen a continuacin y que estn relacionadas con los
tems definidos anteriormente (entrada, proceso y salida).
ANLISIS DEL
PROBLEMA
DEFINICIN
DEL
PROBLEMA
ESPECIFICACIONES
DE ENTRADA
ESPECIFICACIONES
DE PROCESO
ESPECIFICACIONE
S DE SALIDA
Solucin:
Anlisis.
Las entradas de datos en este problema se concretan en el radio del crculo. Dado
que el radio puede tomar cualquier valor dentro del rango de los nmeros reales,
el tipo de datos radio debe ser real.
Las salidas sern dos variables: superficie y circunferencia, que tambin sern de
tipo real.
Entradas: radio del circulo (variable RADIO)
Operaciones de proceso: calcular la superficie del crculo.
Calcular la longitud de la circunferencia.
Salidas: superficie del circulo (variable AREA)
Longitud de la circunferencia (variable LONGITUD)
Variables: RADIO, AREA, LONGITUD (tipo real).
Como se haba mencionado en el modulo 1, es importante que el programador
antes de realizar el diseo del algoritmo haga el respectivo anlisis al problema
para poder orientar su pensamiento en la direccin correcta. Adems debe
requerir de dos condiciones para hacer acertado su anlisis:
Actividad leccin 1.
Refinamiento
Leer radio
AREA = 3.1416 * RADIO 2
LONGITUD = 2 * 3.1416 * RADIO
Escribir RADIO, AREA, LONGITUD
DISEO DEL
ALGORITMO
DISEO
DESCENDENTE
REFINAMIENTO
POR PASOS
HERRAMIENTAS DE
PROGRAMACIN
Ejemplo 2.
Se desea obtener el salario neto de un trabajador conociendo el nmero de horas
trabajadas, el salario hora y la tasa de impuestos que se le debe deducir.
Solucin.
El algoritmo general es:
1. obtener valores de horas trabajadas, salario_hora y tasas.
2. Calcular salario_bruto, total de impuestos y salario_neto.
3. visualizar salario_bruto, total de impuestos y salario_neto.
RESOLUCIN
DEL
PROBLEMA
CODIFICACIN
DEL
PROGRAMA
EJECUCIN DEL
PROGRAMA
COMPROBACIN
DEL PROGRAMA
2.
Buscar el directorio.
3.
4.
5.
6.
7.
Final.
Cuando se ejecuta cualquiera de los ltimos cuatro pasos se puede ubicar la
persona sin necesidad de ms consultas. Por ende, se debe completar el
algoritmo de tal forma que al encontrarse la ubicacin de la persona no se
ejecuten ms pasos.
Es decir,
Inicio
Determinar nombres y apellidos de la persona requerida.
Buscar el directorio.
Ubicar seccin identificada por la primera letra del primer apellido de
la persona.
Ubicar el grupo de personas del mismo primer apellido.
Sino se encontr el nombre de la persona entonces
Ubicar el grupo de personas con el miso primer nombre.
Sino se encuentra el nombre de la persona entonces
Ubicar el grupo de personas con el mismo segundo
nombre.
Sino se encontr el nombre de la persona entonces
Ubicar el grupo de personas con el mismo
segundo apellido.
Sino se encontr el nombre de la persona
entonces
La persona no est.
Fin.
Fin.
Fin.
Fin.
Final.
Ejemplo 2.
Qu hacer para ver la pelcula Harry Potter?
Recuerde que la respuesta es muy sencilla y puede ser descrita en forma de un
algoritmo general as:
Inicio
1. Ir al cine
2. Comprar una entrada (billete o ticket)
3. Ver la pelcula regresar a casa
Fin.
El algoritmo consta de cuatro opciones bsicas, cada una de las cuales puede ser
ejecutada antes de realizar la siguiente. En trminos de computador, cada accin
se codificara en una o varias sentencias que ejecutan una tarea particular.
El algoritmo descrito es muy sencillo; sin embargo, como ya se ha indicado en
prrafos anteriores, el algoritmo general se descompondr en pasos ms simples
en un procedimiento denominado refinamiento sucesivo, ya que cada accin
puede descomponerse a su vez en otras acciones ms simples. As por ejemplo
un primer refinamiento del algoritmo ir al cine se puede describir de la siguiente
forma:
1. Inicio
2. Ver la cartelera de cines en el peridico.
3. si no proyectan Harry Potter entonces
3.1. Decidir otra actividad
3.2. Bifurcar el paso 7
si_no
3.3. Ir al cine
Fin_si
4. Si hay cola entonces
4.1. Ponerse en ella
4.2. Mientras haya personas delante hacer
4.2.1. Avanzar en la cola
Fin_mientras
Fin_si
5. Si hay localidades entonces
5.1. Comprar una entrada pasar a la sala
5.2. pasar a la sala
5.3. Localizar la(s) silla(s)
5.4. Mientras proyectan la pelcula hacer
5.4.1. Ver la pelcula
Fin_mientras
5.5. Abandonar el cine
si_no
5.6. Refunfuar
Fin_si
6. Regresar a casa
7. Fin
Fjese que con estos dos ejemplos hay dos consideraciones. El primero es que el
programador es el que decide como ordena u organiza los pasos del algoritmo de
forma tal que los entienda. La segunda consideracin es, las palabras que estn
en negrilla describen las estructurales de control fundamentales (seleccin o
decisin y repeticin o ciclos). Las de seleccin son expresadas por si-entoncessi_no (if-then-else) y de repeticin expresadas con mientras-hacer o repetir-hasta
e iterar-fin-iterar (while-do y repeat-until); aunque estas estructuras se estudiaran
Cabe anotar que cuando se utiliza un Fin este indica el final del bloque
correspondiente; por ejemplo el Fin_Mientras indica en donde termina el bloque de
instrucciones que se deben operar.
Siguiendo con el ejemplo 2, observe que todava se puede descomponer uno de
los pasos localizar la(s) silla(s) en unos ms simples. Si el nmero de los
asientos estn impresos en la entrada, la accin compuesta se resuelve con el
siguiente algoritmo:
1. inicio// para encontrar la silla del espectador.
2. caminar hasta llegar a la primera fila de sillas
3. repetir
Leccin 2. Pseudocdigo.
El Pseudocdigo se puede definir como un lenguaje de especificaciones
(descripciones) de algoritmos. Es decir, es la representacin narrativa de los pasos
que debe seguir un algoritmo para dar solucin a un problema determinado; a su
separadas por comas puede escribir los nombres de las variables que se
quiere escribir.
5. Cuando usted vaya a leer un dato para que sea almacenado en una
variable determinada utilice la orden Lea. Para no tener que escribir (por
ejemplo) Lea un dato entero y gurdelo en la variable N que tambin es
entera, recuerde solo tiene que escribir Lea N y el computador lo entender
correctamente. Cuando necesite leer ms de un dato para ser almacenado
en diferentes variables todo lo que tiene que hacer es utilizar la orden Lea y
escribir las variables separadas por comas. No necesariamente cuando se
lean dos o mas variables utilizando una sola orden Lea, stas deben ser del
mismo tipo.
6. Cuando necesite tomar una decisin deber utilizar la orden Si, a
continuacin escriba la condicin correspondiente y luego las instrucciones
que se han de realizar en caso de que la condicin sea Verdadera. En caso
de que la condicin sea Falsa y tenga instrucciones a realizarse cuando as
sea entonces deber existir una alternativa Si_no. Al finalizar toda la
decisin deber existir un indicador Fin_Si.
7. Se utilizar como estructura de ciclo bsica la siguiente:
Mientras Haga
Fin_Mientras
En el Cuerpo del Ciclo se colocan las ordenes que se van a repetir (o iterar)
mientras la condicin sea Verdadera.
8. Cada que usted vaya a utilizar un conjunto de instrucciones deber indicar
claramente en donde comienza ese conjunto de instrucciones y en donde
termina utilizando apropiadamente las palabras Inicio y Fin.
Ejemplo 3
Disear un algoritmo que lea cuatro nmeros y calcule e imprima su producto,
suma y media aritmtica.
Anlisis.
Entrada: numero1, numero2, numero3 y numero4.
Salida: producto, suma y media.
Proceso: multiplicar y sumar los cuatro nmeros. El resultado de la suma de los
cuatro nmeros se divide en 4 para obtener la media aritmtica.
Pseudocodigo.
inicio
leer numero1, numero2, numero3, numero4
producto numero1 * numero2 * numero3 * numero4
suma numero1 + numero2 + numero3 + numero4
media (numero1 + numero2 + numero3 + numero4) / 4
escribir producto, suma, media
fin
Ejemplo 4.
Un corredor de maratn ha recorrido la carrera en 2 horas 25 minutos. Hacer un
algoritmo que calcule el tiempo medio en minutos por kilmetros. La distancia es
de 42195 km.
Anlisis.
Entrada: cantidad total de tiempo empleado en la carrera; se establece el nmero
total de kilmetros en 42195.
Salida: nmero medio de minutos por kilmetro, transformando previamente el
tiempo total a minutos.
Actividad leccin 2.
1.
Smbolos
principales
Nombre
Funcin
Indica el inicio y el final de un programa.
Terminal.
Entrada/Salida.
los
perifricos
el
registro
de
la
es
decir
cualquier
tipo
de
valor,
informacin
formato
posicin
almacenada
en
de
la
memoria,
Decisin.
Decisin mltiple.
Conector.
Direccin o lnea
Smbolos
principales
Nombre
Funcin
de flujo.
de las operaciones.
Conector.
Subprograma o
proceso
predeterminado.
mdulo
independiente
principal,
que
recibe
del
una
programa
entrada
Nombre
Pantalla.
Impresora.
Teclado.
Disco
magntico.
Comentarios.
Funcin
Se utiliza en ocasiones reemplazando el smbolo
de Entrada/Salida.
Se utiliza en ocasiones reemplazando el smbolo
de Entrada/Salida.
Se utiliza en ocasiones reemplazando el smbolo
de Entrada/Salida.
Se utiliza en ocasiones reemplazando el smbolo
de Entrada/Salida.
Se usa para aadir comentarios clasificadores a
otros smbolos del diagrama de flujo. Se pueden
dibujar a cualquier lado del smbolo.
Decisin
Entrada/Salid
a
Terminal
no
si
Subprograma
Proceso
Conecto
r
Conector
Inicio.
Numero1, numero2,
numero3, numero 4.
media suma / 4
Fin.
Ejemplo 2.
Un corredor de maratn ha recorrido la carrera en 2 horas 25 minutos. Hacer un
algoritmo que calcule el tiempo medio en minutos por kilmetros. La distancia es
de 42195 km.
Solucin.
En la unidad anterior se vio la solucin a este mismo problema representando por
medio de un pseudocodigo. Ahora vea el diagrama de flujo.
inicio
leer
Tiempo
no
Tiempo
<=0
si
Escribir
mensaje de
error
distancia 42195
minutos 2 * 60 +25
Escribir medio
Fin
Descripcin.
Representa secuencias de
instrucciones se coloca cada
instruccin en una lnea enmarcada.
condicin
si
no
Decisin.
acciones
acciones
2
A
c
c
i
A
c
c
i
Decisin mltiple.
Mientras.
Acciones
Acciones
Repeticin.
si
Escribir numero
= 10
no
Escribir numero
10
Fin
Actividad unidad 4.
Represente cada algoritmo por medio de un pseudocodigo, un diagrama de flujo y
un diagrama N-S para encontrar la solucin de los problemas mencionados en los
tems posteriores. Recuerde que debe utilizar todo lo visto en este modulo
particularmente las tcnicas de resolucin de problemas para encontrar mas
eficazmente su solucin.
1. Ir de la casa al trabajo.
2. Que permita elegir el deporte favorito tome como opcin: ftbol, natacin,
voleibol, baloncesto, ninguno de los anteriores o no le gusta el deporte.
3. Escribir un algoritmo que lea un nombre de una marca de carros seguida
del nombre de u modelo correspondiente e informe del modelo seguido del
nombre.
4. Sumar todos los nmeros pares comprendidos entre 2 y 100.
5. Encontrar el total de nmeros 0 que ingresa el usuario. Por ejemplo si el
usuario ingresa los nmeros: 2 9 5 3 0 0 7 0 5 0 2 0 se debe realizar un
algoritmo que diga que hay cinco 0 ingresados.
6. Dados tres nmeros, determinar si la suma de cualquier pareja de ellos es
igual al tercer nmero. Si se cumple esta condicin el programa debe
escribir que son iguales y en caso contrario escribir que son diferentes.
7. Definir el algoritmo necesario para intercambiar los valores de dos variables
numricas.
8. Calcular el rea de un tringulo dado la base y la altura.
9. Dado una cantidad en metros, convertirlo a pies y a pulgadas (1 metro =
39.37, 1 pie = 12 pulgadas)
10. Calcular el permetro de una figura poligonal dados los lados del polgono.