2.2 Representacin de algoritmos: grfica y pseudocdigo. 2.3 Diseo de algoritmos aplicados a problemas. 2.4 Diseo algortmico de funciones.
2.1 Anlisis de problemas
Definicin del problema: Esta fase est dada por el enunciado del problema, el cual requiere una definicin clara y precisa. Es importante que se conozca lo que se desea que realice la computadora; mientras esto no se conozca del todo no tiene mucho caso continuar con la siguiente etapa.
Anlisis del problema: Una vez que se ha comprendido lo que se desea de la computadora, es necesario definir: Los datos de entrada. Cul es la informacin que se desea producir (salida) Los mtodos y frmulas que se necesitan para procesar los datos.
Una recomendacin muy practica es el que nos pongamos en el lugar de la computadora y analicemos que es lo que necesitamos que nos ordenen y en que secuencia para producir los resultados esperados.
2.2 Representacin de algoritmos: grfica y pseudocdigo.
Lenguajes Algortmicos
Es una serie de smbolos y reglas que se utilizan para describir de manera explcita un proceso. Tipos de Lenguajes Algortmicos Grficos: Es la representacin grfica de las operaciones que realiza un algoritmo (diagrama de flujo). No Grficos: Representa en forma descriptiva las operaciones que debe realizar un algoritmo (pseudocodigo).
Las caractersticas de un buen algoritmo son: Debe tener un punto particular de inicio. Debe ser definido, no debe permitir dobles interpretaciones. Debe ser general, es decir, soportar la mayora de las variantes que se puedan presentar en la definicin del problema. Debe ser finito en tamao y tiempo de ejecucin.
Las dos herramientas utilizadas comnmente para disear algoritmos son: Diagrama de Flujo Pseuducodigo
Diagrama de Flujo
Un diagrama de flujo es la representacin grfica de un algoritmo. Tambin se puede decir que es la representacin detallada en forma grfica de cmo deben realizarse los pasos en la computadora para producir resultados. Esta representacin grfica se da cuando varios smbolos (que indican diferentes procesos en la computadora), se relacionan entre s mediante lneas que indican el orden en que se deben ejecutar los procesos. Los smbolos utilizados han sido normalizados por el instituto norteamericano de normalizacin (ANSI).
SMBOLO DESCRIPCIN
Indica el inicio y el final de nuestro Diagrama de flujo.
Indica la entrada y salida de datos.
Smbolo de proceso y nos indica la Asignacin de un valor en la memoria y/o la ejecucin de una operacin aritmtica.
Smbolo de decisin indica la realizacin de una comparacin de valores.
Se utiliza para representar los Subprogramas.
Conector dentro de pgina. Representa la continuidad del diagrama dentro de la Misma pgina.
Conector fuera de pgina. Representa la continuidad del diagrama en otra pgina.
Indica la salida de informacin por impresora.
Indica la salida de informacin en la pantalla o monitor.
Lneas de flujo o direccin. Indican la secuencia en que se realizan las operaciones.
Recomendaciones para el diseo de Diagramas de Flujo Se deben se usar solamente lneas de flujo horizontales y/o verticales. Se debe evitar el cruce de lneas utilizando los conectores. Se deben usar conectores solo cuando sea necesario. No deben quedar lneas de flujo son conectar. Se deben trazar los smbolos de manera que se puedan leer de arriba hacia abajo y de izquierda a derecha. Todo texto escrito dentro de un smbolo deber ser escrito claramente, evitando el uso de muchas palabras.
Pseudocodigo
Mezcla de lenguaje de programacin y espaol (o ingls o cualquier otro idioma) que se emplea, dentro de la programacin estructurada, para realizar el diseo de un programa. En esencial, el pseudocodigo se puede definir como un lenguaje de especificaciones de algoritmos. Es la representacin narrativa de los pasos que debe seguir un algoritmo para dar solucin a un problema determinado. El pseudocdigo utiliza palabras que indican el proceso a realizar.
Ventajas de utilizar un Pseudocdigo a un Diagrama de Flujo Ocupa menos espacio en una hoja de papel Permite representar en forma fcil operaciones repetitivas complejas Es muy fcil pasar de pseudocdigo a un programa en algn lenguaje de programacin. Si se siguen las reglas se puede observar claramente los niveles que tiene cada operacin.
2.3 Diseo de algoritmos aplicados a problemas.
Problemas Secuenciales
1) Suponga que un individuo desea invertir su capital en un banco y desea saber cunto dinero ganara despus de un mes si el banco paga a razn de 2% mensual. Inicio Leer cap_inv gan = cap_inv * 0.02 Imprimir gan Fin
2) Un vendedor recibe un sueldo base ms un 10% extra por comisin de sus ventas, el vendedor desea saber cunto dinero obtendr por concepto de comisiones por las tres ventas que realiza en el mes y el total que recibir en el mes tomando en cuenta su sueldo base y comisiones. Inicio Leer sb, v1, v2, v3 tot_vta = v1 + v2 + v3 com = tot_vta * 0.10 tpag = sb + com Imprimir tpag, com Fin
3) Una tienda ofrece un descuento del 15% sobre el total de la compra y un cliente desea saber cuanto deber pagar finalmente por su compra. Inicio Leer tc d = tc * 0.15 tp = tc - d Imprimir tp Fin 4) Un alumno desea saber cul ser su calificacin final en la materia de Algoritmos. Dicha calificacin se compone de los siguientes porcentajes: 55% del promedio de sus tres calificaciones parciales. 30% de la calificacin del examen final. 15% de la calificacin de un trabajo final. Inicio Leer c1, c2, c3, ef, tf prom = (c1 + c2 + c3)/3 ppar = prom * 0.55 pef = ef * 0.30 ptf = tf * 0.15 cf = ppar + pef + ptf Imprimir cf Fin
5) Un maestro desea saber qu porcentaje de hombres y que porcentaje de mujeres hay en un grupo de estudiantes. Inicio Leer nh, nm ta = nh + nm ph = nh * 100 / ta pm = nm * 100 / ta Imprimir ph, pm Fin
6) Realizar un algoritmo que calcule la edad de una persona. Inicio Leer fnac, fact edad = fact - fnac Imprimir edad Fin.
Problemas Propuestos 1) Dada una cantidad en pesos, obtener la equivalencia en dlares, asumiendo que la unidad cambiara es un dato desconocido.
2) Leer un numero y escribir el valor absoluto del mismo.
3) La presin, el volumen y la temperatura de una masa de aire se relacionan por la formula: Masa = (presin * volumen)/(0.37 * (temperatura + 460))
4) Calcular el nmero de pulsaciones que una persona debe tener por cada 10 segundos de ejercicio, si la formula es: num. pulsaciones = (220 - edad)/10
5) Calcular el nuevo salario de un obrero si obtuvo un incremento del 25% sobre su salario anterior.
6) En un hospital existen tres reas: Ginecologa, Pediatra, Traumatologa. El presupuesto anual del hospital se reparte conforme a la sig. tabla:
rea Porcentaje del presupuesto Ginecologa 40% Traumatologa 30% Pediatra 30% Obtener la cantidad de dinero que recibir cada rea, para cualquier monto presupuestal.
7) El dueo de una tienda compra un artculo a un precio determinado. Obtener el precio en que lo debe vender para tener una ganancia del 30%.
8) Todos los lunes, mircoles y viernes, una persona corre la misma ruta y cronometra los tiempos obtenidos. Determinar el tiempo promedio que la persona tarda en recorrer la ruta en una semana cualquiera.
9) Tres personas deciden invertir su dinero para fundar una empresa. Cada una de ellas invierte una cantidad distinta. Obtener el porcentaje que cada quien invierte con respecto a la cantidad total invertida.
10) Un alumno desea saber cul ser su promedio general en las tres materias ms difciles que cursa y cul ser el promedio que obtendr en cada una de ellas. Estas materias se evalan como se muestra a continuacin:
ALGORITMOS SECUENCIALES
La calificacin de Matemticas se obtiene de la sig. manera: Examen 90% Promedio de tareas 10% En esta materia se pidi un total de tres tareas.
La calificacin de Fsica se obtiene de la sig. manera: Examen 80% Promedio de tareas 20% En esta materia se pidi un total de dos tareas.
La calificacin de Qumica se obtiene de la sig. manera: Examen 85% Promedio de tareas 15% En esta materia se pidi un promedio de tres tareas.
11) Hacer un programa que muestre el promedio de 3 notas.
12) Hacer un programa que lea dos nmeros y sume sus elementos.
13) Elabore un programa que lea 2 nmeros enteros positivos y que muestre la suma y la multiplicacin de estos.
14) Una persona recibe un prstamo de $100.00 de un banco y desea saber cunto pagar de inters, si el banco le cobra una tasa del 2% mensual.
15) Calcula el precio de un boleto de viaje, tomando en cuenta el nmero de kilmetros que se van a recorrer, siendo el precio S/.10.00 por Km.
16) Calcular el monto a pagar en una cabina de Internet si el costo por hora es de S/.1.00 y por cada 5 horas te dan una hora de promocin gratis.
17) Calcular el cambio de monedas en dlares y euros al ingresar cierta cantidad en soles. (tipo de cambio soles: 3.20, Euros: 4.10).
18) Calcular el descuento y el monto a pagar por un medicamento cualquiera en una farmacia si todos los medicamentos tienen un descuento del 35%.
19) Calcular el nuevo salario de un empleado si obtuvo un incremento del 8% sobre su salario actual.
20) En un hospital existen 3 reas: Urgencias, Pediatra y Traumatologa. El presupuesto anual del hospital se reparte de la siguiente manera:
rea Presupuesto Urgencias 37% Pediatra 42% Traumatologa 21%
Obtener la cantidad de dinero que recibir cada rea para cualquier monto presupuestal.
21) Escriba un algoritmo que dada la cantidad de monedas de 1, 5, 10 soles, diga la cantidad de dinero que se tiene en total.
22) Escriba un algoritmo que dado el nmero de horas trabajadas por un empleado y el sueldo por hora, calcule el sueldo total de ese empleado. Tenga en cuenta que las horas extras se pagan el doble.
23) Un constructor sabe que necesita 0,5 metros cbicos de arena por metro cuadrado de revoque a realizar. Hacer un programa donde ingrese las medidas de una pared (largo y alto) expresada en metros y obtenga la cantidad de arena necesaria para revocarla.
24) Escriba un programa donde se ingrese el tiempo necesario para un cierto proceso en horas, minutos y segundos. Se calcule el costo total del proceso sabiendo que el costo por segundo es $0,25.
25) Calcular el nuevo salario de un empleado si se le descuenta el 20% de su salario actual.
26) Leer dos nmeros y encontrar: La suma del doble del primero mas el cuadrado del segundo. El promedio de sus cubos
27) Leer tres nmeros enteros de un Digito y almacenarlos en una sola variable que contenga a esos tres dgitos Por ejemplo si A=5 y B=6 y C=2 entonces X=562.
28) Obtener la edad de una persona en meses, si se ingresa su edad en aos y meses. Ejemplo: Ingresado 3 aos 4 meses debe mostrar 40 meses.
29) Suponga que un individuo desea invertir su capital en un banco y desea saber cunto dinero ganar despus de un ao si el banco paga a razn de 5% mensual.
30) Un vendedor recibe un sueldo base ms un 10% extra por comisin de sus ventas, el vendedor desea saber cunto dinero obtendr por concepto de comisiones por las tres ventas que realiza en el mes y el total que recibir en el mes tomando en cuenta su sueldo base y comisiones.
31) Una tienda ofrece un descuento del 15% sobre el total de la compra y un cliente desea saber cunto deber pagar finalmente por su compra.
32) Un alumno desea saber cul ser su calificacin final en la materia de Algoritmos. Dicha calificacin se compone de tres exmenes parciales.
33) Un maestro desea saber qu porcentaje de hombres y que porcentaje de mujeres hay en un grupo de estudiantes.
34) Calcular el nuevo salario de un obrero si obtuvo un incremento del 25% sobre su salario anterior.
35) Convertir una distancia en metros a pies y pulgadas.
36) Elevar al cubo un nmero.
37) Desplegar el peso dado en kilos de una persona en gramos, libras y toneladas.
38) Elabore un programa que lea 2 nmeros enteros positivos y que muestre la suma y la multiplicacin de estos.
39) Elabore un programa que lea 3 nmeros enteros positivos y que muestre la suma, la resta y la multiplicacin de todos. El resultado debe ser siempre positivo.
40) Elabore un programa que calcule la edad exacta de una persona.
41) Elabore un programa que permita ingresar le precio y la cantidad de un articulo a comprar. Calcular el total a pagar. (Considerar el IGV 9%).
42) Calcular el promedio de 3 notas, si el promedio mayor que 10.5 mostrar aprobado, caso contrario desaprobado. Pero si la nota es mayor que 16 redondear su promedio final a 20.
43) Hacer un programa me permita calcular el salario de un trabajador, teniendo en cuenta lo siguiente. AFP(S/.50), seguro social(S/.60).
44) Hacer un programa que me muestre la raz cuadrada de cualquier nmero ingresado.
45) Hacer un programa que halle el rea de un crculo.
2.4 Diseo algortmico de funciones
Un problema complejo se puede dividir en pequeos subproblemas ms sencillos. Estos subproblemas se conocen como Mdulos y su implementacin en un lenguaje se llama subprograma (procedimientos y funciones).
Un subprograma realiza las mismas acciones que un programa, sin embargo, un subprograma lo utiliza solamente un programa para un propsito especifico.
Un subprograma recibe datos de un programa y le devuelve resultados (el programa llama o invoca al subprograma, este ejecuta una tarea especfica y devuelve el control al programa que lo llamo).
Funciones Tipos de Mdulos Procedimientos
Funcin: Una funcin en matemticas, es una operacin que toma un o mas valores (argumentos) y devuelve un resultado (valor de la funcin para los argumentos dados). Por ejemplo:
F(X) = X / (1+X 2 )
Donde: F .. Nombre de la funcin X . Es el argumento (tambin conocido como parmetro formal)
Definicin de funciones: Una definicin de funcin se presenta de la siguiente manera:
Funcin nombre_funcion (p1, p2, , pn) Inicio Bloque de instrucciones Fin
Donde: Funcin Es la palabra clave que nos indica una definicin de funcin. Nombre_funcion .. Es el identificador con el cual se reconoce a la funcin en el cuerpo del algoritmo principal. P1,p2,,pn ... Es el grupo de parmetros que define a la funcin. Llamado a una funcin Cuando definimos una funcin solo le indicamos al algoritmo que esta funcin existe, pero una definicin de funcin no implica la realizacin de las instrucciones que la constituyen. Para hacer uso de una funcin, el algoritmo principal la debe llamar. Por ejemplo:
Funcin F(X) Inicio F = X /(1 + X^2) Fin Inicio Imprimir Este es el algoritmo principal Leer X R = F(X) llamado de la funcin Imprimir El resultado de la funcin es:,R Fin
Un constructor sabe que necesita 0,5 metros cbicos de arena por metro cuadrado de revoque a realizar. Hacer un programa donde ingrese las medidas de una pared (largo y alto) expresada en metros y obtenga la cantidad de arena necesaria para revocarla.
Funcin revoque(largo, alto) Inicio Arena=largo*alto Retorna Arena Fin
Funcion Imp_arena(Arena) Inicio Imprimir Arena fin
Inicio Leer largo, alto Arena=revoque(largo, alto) Imp_arena(Arena) fin