Asesor: Gonzales Guzmán Oscar Jaime
1
Email:
[email protected]
Estructuras Repetitivas En todos los algoritmos realizados hasta este punto, cada instrucción se ha ejecutado solo una vez ya sea en forma secuencial o en forma selectiva. Sin embargo, con frecuencia, Cierto tipo de problemas requieren de la ejecución reiterada o repetida de un grupo de instrucciones. Para la ejecución repetida de un conjunto de instrucciones los lenguajes de programación ofrecen una variedad de sentencias o códigos, los que se denominan estructuras repetitivas, estructuras iterativas o simplemente bucles.
CONTADORES Y ACUMULADORES Existen dos conceptos asociados a las estructuras repetitivas: Contadores y Acumuladores. Contador: un contador es una variable auxiliar o de proceso, cuyo propósito es llevar la cuenta del numero de veces que se está ejecutando un conjunto de sentencias o un determinado proceso. Estas Variables generalmente se verifican para salir del bucle. Acumulador: El Acumulador es también una variable auxiliar o de proceso, cuyo propósito es suma (acumular) diferentes valores del mismo tipo. Generalmente la implementación de los procesos con un acumulador tiene el siguiente formato: S=S+
En esta expresión, S es el acumulador y < Variable> es el valor que se desea agregar a S. TIPOS DE ESTRUCTURAS REPETITIVAS En forma indistinta se utiliza estructura repetitiva, estructura iterativa o bucle para referirse a la repetición de un proceso un número fijo o variable de veces. En el Desarrollo de los procesos iterativos se distinguen los siguientes tipos de bucles: 1. Bucles variables: i. Estructura Hace Mientras ii. Estructura Mientras
Asesor: Gonzales Guzmán Oscar Jaime
2
Email:
[email protected]
iii. Toda estructura repetitiva tiene las siguientes partes: b. Inicialización.‐en la cual se asigna valores iniciales a las variables que intervienen en el test de salida. c. Acumulación.‐en la que se actualizan las variables que intervienen en el test de salida. d. Instrucciones de procesos.‐parte del bucle en el que se escribe las instrucciones que se deben repetir. e. Test de Salida.‐en la que se controla si el bucle continúa o se sale del bucle. Bucles Variables Son estructura repetitivas en las que no se conoce el número de veces que se ejecutaran las instrucciones que se encuentran dentro del bucle, por ejemplo, si se trata de contar el número de dígitos de un número entero positivo sabemos cuantos dígitos tendrá el numero; consiguientemente n se sabe cuantas veces realizara el proceso de contar, Otro ejemplo si el número de clientes que debe atender un cajero de banco, quién no sabe a priori cuantas personas existen en cola para ser atendidas Bucles Fijos Son estructuras repetitivas en que se conoce al priori el número de veces que se ejecutaran las instrucciones que se encuentran dentro del bucle. Ejemplo si se trata de ingresar 5 notas a priori se sabe que se debe leer repetidamente 5 notas, consiguientemente el proceso de leer se repetirá 5 veces.
Asesor: Gonzales Guzmán Oscar Jaime
3
Email:
[email protected]
EJERCICIOS RESUELTOS 1. Escribir un algoritmo para que muestre la tabla de multiplicar del 8. 8 * 1= 8 8 * 2=16 8 * 3= 24 8 * 4= 32 8 * 5= 40 8 * 6= 48 8 *7= 56 8 * 8= 64 8 * 9= 72 8 * 10= 80 8 * 11= 88 8 * 11= 96 2. Escribir un algoritmo que imprima el número,el cuadrado y el cubo de los n primeros números enteros positivos. 3. se tiene la relación de n alumnos. Para cada alumno se tiene 3 notas. Escribir un algoritmo que calcule el promedio de cada alumno. Asesor: Gonzales Guzmán Oscar Jaime
4
Email:
[email protected]
4. Escribir un algoritmo que calcule la suma de los n primeros números enteros
positivos. 5. Escribir un algoritmo que calcule la suma de la siguiente expresión: 1/100 + 2/99 + 3/98 + 4/97 +… + 99/2 + 100/1 6. Escribir un algoritmo que evalúe la siguiente expresión: 12‐ 22 + 32…+992‐1002 7. Escribir un algoritmo para calcular el promedio aritmético de N números. 8. Escribir un algoritmo que permita calcular el factorial de un nùmero entero positivo. 9. Calcular el maximo común divisor de 2 numeros enteros positivos. 10. Escribir un algoritmo que permita determinar el número de dígitos de un número entero positivo. 11. Escribir un algoritmo que permita calcular el Cociente y el Resto entero de la división de 2 números enteros mediante restas sucesivas. 12. enteros positivos utilizando el algoritmo ruso de la multiplicación 13. Programa que calcula la suma de los 200 primeros numeros pares y los 200 primeros numeros impares simultaneamente. 14. Algoritmo pa que muestre la siguiente figura: 109876543210 9876543210 876543210 76543210 6543210 543210 43210 3210 210 10 15. Programa que escribe la suma una seria de núemros recogidos del teclado.La
entrada de datos finaliza al evaluar la respuesta dada a un jmensaje que diga “¿Continuar (S/N)?” mostrado una vez finalizadas las operaciones del bucle. 16. Hacer un programa para calcular el valor maximo y cuantas veces se aparece dicho valor repetido de una serie de N numeros . a. Introduce un número:1 b. Introduce un número:4 c. Introduce un número:7 d. Introduce un número:99 e. Introduce un número:40
Asesor: Gonzales Guzmán Oscar Jaime
5
Email:
[email protected]
f. Introduce un número:345 g. Introduce un número:23 h. Introduce un número:345 i. Introduce un número:5 El Valor Maximo es 345 con 2 repeticiones 17. Programa que lee cinco valores númericos enteros y calcula su producto mostrando el resultado en el dispositivo estandar de salida (pantalla). 18. Programa que halla la suma de los 10 primeros numeros pares mostrando el resultado en pantalla. El 0 puede ser considerado como par o impar indistintamente. 19. de 3 motrandolos en el dispositivo de estandar de salida (pantalla). 20. El siguiente programa muestra en pantalla las coordenadas de una tabla cuyas dimensiones son 5x5 (filas x columnas). 21. Programa que calcula la suma de los 5 primeros números pares y el producto de los 5 primeros números impares simultáneamente. 22. Programa que calcula la potencia de un número dado el valor de su base y su exponente. 23. Escribir un programa que permita convertir de base 10 a: Base 2, Base 8, Base16. 24. Un numero primo es aquel que es divisible solo por la unidad y por si mismo. Escribir un programa que determine los factores primos de cualquier número entero. 25. Escribir un programa que calcule la suma de los numeros enteros comprendidos entre N y M. 26. Una técnica para calcular la depreciación de una maquinaria es el método de los dígitos de los años. Por ejemplo, supongamos que una maquinaria tiene una vida útil esperada de cinco años. La suma de los dígitos de los años será: 1+2+3+4+5, o sea, 15. Durante el primer año, el valor del activo se depreciará en 5/15, durante el segundo año se depreciará en 4/15, y así sucesivamente hasta que, en el transcurso que lea el quinto año, se depreciará el 1/15 restante. Escribir un programa que lea el Valor de una maquinaria y su vida útil esperada y luego imprima un plan de depreciación. 27. Escribir un programa que muestre los numeros del 1 al 100. 28. Escribir un programa que muestre los numeros del 100 al 1 100 99 98 97 96 95 94 93 … 10 9 8 7 6 5 4 3 2 1
Asesor: Gonzales Guzmán Oscar Jaime
6
Email:
[email protected]
29. Un número entero es perfecto si resulta ser la suma de sus divisors propios. Por ejemplo 6=1 + 2 + 3 28=1 + 2 + 4 + 7+ 14
30. Escriba un programa que determine los factores primos de cualquier numero entero. 31. Escribir un algoritmo que determine cuantos digitos pares y cuantos digitos impares tiene un número de “n” digitos.
32. Escribir un programa que permita tabular la siguiente función: F(X)=3.20*X/(0.45 * X – 0.25) Para X= 0.00,0.05,0.10,0.15,…,2.00 33. Escribir un programa que determine el máximo común divisor de tres números enteros positivos.
34. En el ultimo censo dela ciudad de Abancay, se consigno la siguiente informacion en las fichas respectivas: a. Edad b. Sexo(1=Hombre y 2 = Mujer) c. Estado Civil (s = soltero, c = casado, v= viudo,d=divorciado) Escribir un programa que determine: d. • Número de varones y número de mujeres. e. Número de muchachas solteras entre las edades de 16 y 21 años.
35. Escriba un programa que obtenga la suma, e imprima los terminos de la siguiente serie: 2, 5, 7, 10, 12, 17, ... , 1800.
Asesor: Gonzales Guzmán Oscar Jaime
7
Email:
[email protected]
36. Haga un programa para sumar los pares comprendidos entre 1 y 10 1 2 3 4 5 6 7 8 9 10
37. Haga un programa para obtener la tabla de multiplicación de un número entero k, comenzando desde 1 hasta el 12. K= 5 entoces TABLA DE MULTIPLICAR DEL 5 5* 1 = 5 5* 2 = 10 5* 3 = 15 5* 4 = 20 5* 5 = 25 5* 6 = 30 5* 7 = 35 5* 8 = 40 5* 9 = 45 5* 10 = 50 5* 11 = 55 5* 12 = 60
38. Escriba un programa de flujo que lea un número entero N y calcule el resultado de la siguiente serie: 1 + 1/2 + 1/3 + 1/4 + ... + 1/N
39. Escriba un programa de flujo que lea un número entero N y calcule el resultado de la siguiente serie: 1 ‐ 1/2 + 1/3 ‐ 1/4 + ... + 1/N
40. Dado el sueldo de N trabajadores, considere un aumento del 15% a cada uno de ellos, si su sueldo es inferior a s/. 800. Imprima el sueldo con aumento incorporado (su corresponde). Haga el Programa correspondiente. 41. Calcule el aumento de sueldo para un grupo de empleados de una empresa, teniendo en cuenta el siguiente criterio. Si el sueldo es inferior a S/. 1000 : Aumento 15%
Asesor: Gonzales Guzmán Oscar Jaime
8
Email:
[email protected]
Si el sueldo es mayor o igual a S/. 1000 : Aumento 12% Imprima el sueldo nuevo del trabajador y el total de nomina de la empresa, considernado este nuevo aumento.
42. La siguiente serie se llama la conjetura de ULAM en honor al matematico S. Ulam: a. Comience con cualquier entero positivo. b. Si es par, dividalo entre 2; si es impar, multipliquelo por 3 y agreguele 1. c. Obtenga enteros sucesivamente repitiendo el proceso. Al final, obtenga el número 1, independientemente del entero inicial. Por ejemplo, Cuando el entero inicial es 26, la secuencia será : 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1.
43. En una escuela, donde se tienen registros con las caracter¡sticas físicas de los alumnos, se desea conocer la lista de los alumnos con aptitudes para practicar basquet. Haga un programa que obtenga lo siguiente: a. Lista de alumnas con aptitudes para jugar al basquet. b. Requerimientos: ALTURA>=1.73 y 50<=PESO<=83 c. Porcentaje de alumnas con estas aptitudes de la población estudiantil femenina. d. Lista de alumnos con aptitudes f¡sicas para jugar al basquet. Requerimientos: ALTURA>=1.83 y 73<=PESO<=105 e. Porcentaje de alumnos con estas aptitudes de la población estudiantil masculina. Por cada alumno se ingresa su NOMBRE, SEXO, EDAD, PESO Y ALTURA.
44. En una empresa con N empleados se necesita obtener cierta información. Por cada empleado se ingresan los siguientes datos CLAVE, EDAD, SEXO y SUELDO. Haga un programa para calcular e imprimar lo siguiente: Asesor: Gonzales Guzmán Oscar Jaime
9
Email:
[email protected]
a. b. c. d. e.
Número de hombres. Número de mujeres. Número de mujeres que ganen con mas de s/. 1000. Número de hombres menores de 40 años que ganen menos de s/. 100. Número de empleadosmayores de 50 años.
45. Escriba un programa que imprima todos los pares de m y n que cumplan la siguiente condición (M y N solo pueden ser valores positivos):
m4 + 7* n2 < 540
46. Escriba un programa que imprima todos los valores de X,Y y Z que satisfagan la siguiente expresión: 18* X3 +11* Y5 + 8* Z6 < 6300
47. Una empresa automotriz necesita manejar los montos de ventas de sus N sucursales, a lo largo de los últimos 14 años. Haga un programa que calcule lo siguiente: a. Sucursal que más ha vendido en cada año. b. Promedio de ventas por año. c. Año con mayor promedio de ventas. d. Ventas totales de la empresa (considerando las N sucursales durante 14 años).
48. Escriba un programa que obtenga e imprima todos los números "Primos Gemelos" comprendidos entre A y B (enteros positivos). Los primos gemelos son parejas de números primos con una diferencia entre sì de exactamente dos. Ejemplo: 3 y 5 son primos gemelos.
Asesor: Gonzales Guzmán Oscar Jaime
10
Email:
[email protected]
49. Es posible demostrar que la suma de un número "suficiente" de términos de la serie:
Es un número considerablemente cercano a SEN(X), y que la diferencia entre SEN(X) y la suma antes mencionada se vuelve menor conforme se toman más términos. Escriba un programa para que, dada una X cualquiera, calcule el SEN(X), utilizando la serie anterior, de tal modo que dicha diferencia sea menor o igual a 0.05. Imprima el número de términos requeridos para obtener esta precisión.
50. Escribir un programa que calcule la suma de todos los múltiplos de 5 menores de N. 51. Programa que calcula el cuadrado de los 100 primeros números pares. 52. Programa que calcula la suma de los cubos de los 50 primeros números naturales. 53. Diseñar un programa que calcule el producto de los “N” primeros números pares. 54. Escribir un programa que lea un numero entero “N” y muestre en pantalla los cuadrados y los cubos de los “N” primeros números naturales. 55. Hacer un Programa que lea 30 números y determine cuales y cuantos de ellos son múltiplos de 7. 56. Escribir un programa que realice un bucle con do – while y muestre en pantalla del 1 al 10 57. Escribir un programa que visualice en pantalla los números pares entre 1 y 25. 58. Escribir un programa que visualice en pantalla los números múltiplos de 5 comprendidos entre 1 y 100 59. Escribir un programa que genere la tabla de multiplicar de un número introducido por el teclado.
Asesor: Gonzales Guzmán Oscar Jaime
11
Email:
[email protected]
60. Escribir un programa que realice la pregunta ¿Desea continuar S/N? y que no deje de hacerla hasta que el teclee N. 61. Escribir un programa que calcule cuantos años tarda en duplicarse un capital depositado al 5% de interés anual. 62. Escribir un programa que calcule la suma de los números hasta un número dado (introducido por el ). 63. Escribir un programa que pida un numero y si el que se introduce por teclado es menor de 100 que vuelva a solicitarlo. 64. escribir un programa que calcule la depreciación de un objeto según el método de la línea recta. Calcular el número de años que tarda en hacerse 0. En este método el valor original del objeto se divide por su vida(numero de años).El cociente resultante será la cantidad en la que el objeto se deprecia anualmente. Por ejemplo, si un objeto se deprecia 8000 dólares en diez años, entonces la depreciación anual será 8000/10=800 dólares. Por tanto, el valor del objeto habrá disminuido en 800 dólares cada año. Nótese que la depreciación anual es la misma cada año cuando se utiliza este método. 65. Escribir un programa que calcule la depreciación de un objeto según el método del balance doblemente declinante. En este método, el valor del objeto disminuye cada año enun porcentaje constante. Por tanto, la verdadera cantidad depreciada, en dólares, variara de un año al siguiente. Para obtener el factor de depreciación, dividimos por dos la vida del objeto. Este factor se multiplica por el valor del objeto al comienzo de cada año ( y no el valor del original del objeto) para obtener la depreciación anual. Supongamos, por ejemplo que deseamos depreciar un objeto de 8000 dólares por diez años; el factor de depreciación será 2/10=0.2,por tanto, la depreciación el primer año será 0.2 X 8000=1600 dólares, la depreciación del segundo será 0,2 X 6400=1280 dólares; la depreciación del tercer año será 0,2 X 5120=1024 dólares, y así sucesivamente. 66. Calcule el aumento de sueldo para N empleados de una empresa, bajo el siguiente criterio: Si el sueldo es menor a $ 1000 : Aumento 12% Si el sueldo esta comprendido entre $ 100 y $ 2500 : Aumento 10% Si el sueldo es mayor a $ 2500 : Aumento 8% Imprima lo siguiente:
Asesor: Gonzales Guzmán Oscar Jaime
12
Email:
[email protected]
a) El nuevo sueldo del trabajador. b) El monto total de la nómina. 67. Construya un programa que lea 100 números naturales y cuente cuántos de ellos son positivos, negativos o nulos. 68. Dado N números enteros como datos, haga un programa que: a. Obtenga cuántos números leídos fueron mayores que cero. b. Calcule el promedio de los números positivos. c. Obtenga el promedio de todos los números. 69. Escriba un programa tal, que dado N números enteros como datos, calcule cuál es el mayor y el menor de estos números. 70. Escriba un programa tal, que dado el peso, la altura y el sexo de N personas que pertenecen a un estado de la república; obtenga el promedio del peso y la altura de esta población. 71. Resuelva el problema anterior, pero considere además el promedio de la altura y del peso en función del sexo. Es decir, nos interesa obtener el promedio de la altura y peso de la población femenina y masculina. 72. Un vendedor ha hecho una serie de ventas y desea saber cuántas de estas fueron de $ 200 o menos; cuántas fueron mayores a $ 200 pero inferiores a $ 400; y cuantas de $ 400 o superiores a tal cantidad. 73. Haga un programa que le proporcione al vendedor esta información después de haber le¡do los datos de entrada. 74. 25.‐ Se tienen las calificaciones de un grupo de alumnos que presentaron un examen de computación. Haga un programa que calcule e imprima cuántas calificaciones hay en cada uno de los siguientes rangos: a. 0 ... 3.99 b. 4 ... 5.99 c. 6 ... 7.99 d. 8 … 10.0 75. Una persona invierte en un banco un cierto capital y requiere saber cuánto obtendrá al cabo de cierto tiempo, si el dinero se colocó a una determinada tasa de interés mensual. 76. Haga el programa correspondiente. Escriba un programa que reciba como entrada 24 números reales que representan las temperaturas del exterior en un periodo de 24 horas. Encuentre la temperatura media del día y las temperaturas más alta y más baja del día. 77. Supóngase que en una reciente elección hubo 4 candidatos (con identificadores 1,2,3,4).
Asesor: Gonzales Guzmán Oscar Jaime
13
Email:
[email protected]
Usted habrá de encontrar, mediante un programa, el número de votos correspondientes a cada candidato y el porcentaje que obtuvo respecto al total de los votantes. El teclear los votos de manera desorganizada, tal y como se obtuvieron en la elección, el final de datos esta representado por un cero. Observe, como ejemplo la siguiente lista: 13142214111213140 Donde 1 representa un voto para el candidato 1; 3 un voto para el candidato 3; y asi sucesivamente. 78. Resuelva el problema anterior, pero ahora considere que no existe la operación de potencia. 79. De una empresa con N empleados, necesitamos obtener el número de empleado y sueldo del trabajador con el mayor sueldo de la empresa. Haga el porgrama correspondiente. 80. La compañía de Luz "del Centro" desea imprimir los recibos de cobro de los cuenta habitantes, en el último periodo. Desea obtener también el total de cobros del periodo. Por cada cliente se ingresa su nombre, dirección, registro inicial y registro final. El cobro se efectúa con base en la siguiente tabla. 140 KVH o menos ‐‐‐> s/. 3.20 Los siguientes KVH ‐‐‐> s/. 0.15 por KVH Exceso sobre 310 KVH ‐‐‐> s/. 0.097 por KVH Haga un programa para calcular lo solicitado anteriormente. 81. En una universidad se necesita obtener una lista de alumnos candidatos a la Facultad Menor de Economía, istración, Contabilidad e Ingeniería en Computación. Las condiciones para ser seleccionado como presunto candidato para entrar a la facultad menor, varían de carrera en carrera y se presentan a continuación: Condiciones para Facultad Menor de Economía: Semestre >= 5 y promedio >= 8.5 Condiciones para Facultad Menor de istración: semestre >= 5 y promedio >= 8.8 Condiciones para Facultad Menor de Contabilidad: semestre >= 5 y promedio >= 8.5 Condiciones para Facultad Menor de Computación: semestre >= 5 y promedio >= 8.8 82. En una clase de una universidad se tienen 35 alumnos. Haga un programa que calcule e imprima la matricula y el promedio de calificaciones de cada alumno. Cabe aclarar que cada alumno de la clase tiene 5 calificaciones. 83. Resuelva el ejercicio anterior, pero considere que las cinco calificaciones del alumno se leerán dentro de un ciclo. 84. Resuelva el problema anterior con las consideraciones planteadas en el mismo, pero sólo imprima matricula y promedio del mejor y del peor alumno.
Asesor: Gonzales Guzmán Oscar Jaime
14
Email:
[email protected]