CENTRO DE ESTUDIOS EMSSANAR CETEM Resolución 0136 de 2007, 26 enero de 2007 Secretara de Educación Municipal FORMACION PARA EL TRABAJO Y DESARROLLO HUMANO
GUIA DE AULA No. 6
INSTRUCCIONES DE REPETICIÓN Y INSTRUCCIÓN PARA
PROGRAMA: Sistemas y computación MATERIA:
Lógica Matemática y Algoritmos
SEMESTRE:
I
I.H.S 4 T.H
64
RESPONSABLE: Juan Alexander Agreda Delgado RECUPERACION DE SABERES Y EXPERIENCIAS PREVIAS
En un almacén de camisas se tiene la siguiente promoción: si se compran 10 camisas o mas se aplica un descuento del 20% sobre el total de la compra, si son menos de 10 y al menos 5 camisas un descuento del 10% y en cantidades menores a 5 no hay descuento. Definición del problema Calcular el descuento y el valor a pagar por una compra. Análisis del problema Para solucionar este problema, lo mas importante es determinar que porcentaje se aplicara para calcular el valor del descuento, este puede ser: Porcentaje descuento = 0% para cantidad < 5 Porcentaje descuento = 10% para 5 <= cantidad < 10 Porcentaje descuento = 20% para cantidad >=10 Datos de entrada: valor unitario, cantidad Datos de salida: valor total, valor descuento, valor a pagar Proceso: Valor total=valor unitario * cantidad Valor descuento=valor total * porcentaje descuento/100 Valor a pagar= valor total – valor descuento Pseudocódigo 1
CENTRO DE ESTUDIOS EMSSANAR CETEM Resolución 0136 de 2007, 26 enero de 2007 Secretara de Educación Municipal FORMACION PARA EL TRABAJO Y DESARROLLO HUMANO
INICIO Entero: can Real: valUnit, valtot, pordes, valdes, valpag Escribir(“Ingrese la cantidad:”) Leer(can) Escribir(“ingrese valor unitario:”) Leer(valUnit) Si (can < 5) entonces pordes=0 Sino Si (can<10) entonces pordes=10 Sino pordes=20 fin si fin si valtot = can * valUnit valdes=valtot * pordes/100 valpag=valtot-valdes escribir(“Valor total:”,valtot) escribir(“Descuento:”,valdes) escribir(“valor a pagar:”,valpag) FIN
2
CENTRO DE ESTUDIOS EMSSANAR CETEM Resolución 0136 de 2007, 26 enero de 2007 Secretara de Educación Municipal FORMACION PARA EL TRABAJO Y DESARROLLO HUMANO
INCORPORACIÓN DE NUEVA INFORMACIÓN
INSTRUCCIONES DE REPETICIÓN En la solución de algunos problemas es necesario ejecutar repetidas veces una instrucción o un conjunto de instrucciones. En algunos casos, el número de repeticiones se conoce con anterioridad, mientras que en otras depende de cálculos o estados de variables que se dan dentro de la solución del problema. Para solucionar este tipo de problemas se utiliza un tipo de estructuras a las que se conocen como estructuras de repetición, bucles o ciclos. Un ciclo consiste en un grupo de acciones que se ejecutan repetidas veces dependiendo del cumplimiento de una condición. 1.1
CICLO PARA Este ciclo al igual que los demás, permite ejecutar repetidas veces una instrucción o un grupo de ellas, pero a diferencia de otras instrucciones de repetición, esta maneja el valor inicial, el valor de incremento o decremento y el valor final de la variable de control como parte de la instrucción. Cuando al ejecutar un algoritmo se encuentra una instrucción para la variable de control (contador) toma el valor inicial, se verifica que el valor inicial no sobrepase al valor final y luego se ejecutan las instrucciones del ciclo. Al encontrar la instrucción fin para, se produce el incremento y se vuelve a verificar que la variable de control no haya superado el limite admitido, y se vuelven a ejecutar las instrucciones que están dentro del ciclo, y así sucesivamente tantas veces como sea necesario hasta que supere el valor final establecido. El ciclo para termina en el momento en que la variable de control (Contador) sobrepasa el valor final; es decir, que la igualdad esta permitida y las instrucciones se ejecutan cuando el contador es igual al valor final. Este ciclo puede presentarse de tres maneras: la primera es la mas común cuando se produce un incremento de 1 en cada iteración, en cuyo caso no es necesario escribir explícitamente. En Pseudocódigo Para variable= valor_inicial hasta valor_final hacer Bloque de instrucciones Fin para 3
CENTRO DE ESTUDIOS EMSSANAR CETEM Resolución 0136 de 2007, 26 enero de 2007 Secretara de Educación Municipal FORMACION PARA EL TRABAJO Y DESARROLLO HUMANO
Ejemplos Imprimir los números del 1 al 10 Definición del problema Imprimir números del 1 al 10 Análisis del problema Datos de entrada: ninguno Datos de salida: números (1…. 10) Proceso: ninguno Diseño de la solución En pseudocódigo: INICIO Entero: con Para con=1 hasta 10 hacer Escribir con Fin para FIN
4
CENTRO DE ESTUDIOS EMSSANAR CETEM Resolución 0136 de 2007, 26 enero de 2007 Secretara de Educación Municipal FORMACION PARA EL TRABAJO Y DESARROLLO HUMANO
En DFD:
Imprimir los números del 5 al 50 con intervalos de 5. Definición del problema Imprimir números de cinco en cinco Análisis del problema Datos de entrada: ninguno Datos de salida: números (5… 50 ) Proceso: ninguno Diseño de la solución Pseudocódigo 5
CENTRO DE ESTUDIOS EMSSANAR CETEM Resolución 0136 de 2007, 26 enero de 2007 Secretara de Educación Municipal FORMACION PARA EL TRABAJO Y DESARROLLO HUMANO
INICIO Entero: num para(num=5; num<=50; num=num+5) escribir(num) fin para FIN En DFD
Dado un numero cualquiera determinar si es numero primo Definición del problema Determinar si un número es primo Análisis del problema
6
CENTRO DE ESTUDIOS EMSSANAR CETEM Resolución 0136 de 2007, 26 enero de 2007 Secretara de Educación Municipal FORMACION PARA EL TRABAJO Y DESARROLLO HUMANO
Se dice que un número es primo si solo es divisible enteramente para la unida (1) y para si mismo. Con base en este criterio, se trata de demostrar que el número en cuestión no es divisible para ningún número menor a este y mayor a 1, en caso de encontrarse un caso de división exacta, la posibilidad de que sea numero primo queda descartada. Datos de entrada: numero Datos de salida: mensaje “numero primo” o “numero no primo” Proceso: r=numero mod i (i: 2…. -1) INICIO Entero: num, i, r Logico: sw=1 Escribir(“Ingrese numero”) Leer(num) Para(i=2; i<=num-1 ; i++) r= num mod i Si r=0 entonces Sw= 0 Fin si Fin para Si (sw=1) entonces Escribir(“El numero es primo:”) Si no Escribir(“El numero no es primo”) Fin si FIN
7
CENTRO DE ESTUDIOS EMSSANAR CETEM Resolución 0136 de 2007, 26 enero de 2007 Secretara de Educación Municipal FORMACION PARA EL TRABAJO Y DESARROLLO HUMANO
EJERCICIOS Realizar los siguientes problemas, mediante pseudocódigo o DFD. Para entregarlos en clase.
1. Dado un grupo de 20 estudiantes que cursaron la materia Algoritmos, se desea saber cual es el promedio del grupo, cual fue la nota mas alta y cual la mas baja. 2. Un algoritmo que lea un número entero y sume los números comprendidos entre 1 y el número leído inclusive. 3. Visitar la siguiente pagina y explorar los ejemplos que se presentan en esta: http://ayura.udea.edu.co/~jlsanche/repeticion/para/para.htm
8