Está en la página 1de 16

Universidad Nacional Autónoma de Honduras

Facultad de Ciencias
Guías de ejercicios
Programación I MM314/IC200
Escuela de matemáticas y ciencias de la computación
Departamento de matemática aplicada

8 Guía primer foro


Esta guía comprende un conjunto de ejercicios donde se solicita el pseudocódigo de los mismos.

1. Dadas tres cantidades reales positivas que representan las longitudes de tres segmentos, verificar si
se puede formar un triángulo con esos segmentos; si se puede, diga qué tipo de triángulo: escaleno,
isósceles propio o equilátero. Imprima en cada caso el mensaje correspondiente.

2. Elabore un algoritmo que reciba como entrada dos números enteros y finalmente determine si uno
es divisor del otro.

3. Escriba un algoritmo que use bloques de repetición para resolver el siguiente problema:
Suponga que se desean encontrar las parejas de enteros (x, y) tales que xy = x + y. Asuma para este
ejercicio que |x| + |y| < 20. Determine cuales son las posibles parejas de valores que cumplen con
esta condición.

4. Escriba un algortimo para calcular el valor de la presión en libras por pulgada cuadrada (psi) de una
onda descrita como sigue:

• Para el tiempo t, menor o igual a 35 segundos, la presión es 0.46t psi, y para un tiempo mayor
a 35 segundos, 0.19t + 9.45 psi.
• El programa deberá pedir el tiempo como entrada y la presión como salida.

5. Construya un algoritmo que reciba como datos de entrada tres números enteros, y regrese como dato
de salida un mensaje que diga si esos tres números enteros pueden ser las medidas de los lados de
un triángulo rectángulo.

6. Diseñe un algoritmo en el que dada una cantidad de minutos, calcule su equivalente en días, horas
y minutos de manera compacta.

7. Escriba un algortimo que pida al usuario dos números. Si el primer número es mayor que el segundo,
el programa deberá imprimir el mensaje "el primer número es mayor"; de lo contrario deberá imprimir
"el primer número es menor". Pruebe su algoritmo con los números 5 y 8, luego con 11 y 2. ¿Qué
piensa que desplegará su algoritmo si los dos números son iguales? Pruebe este caso.

8. La tolerancia de componentes críticos en un sistema se determina por la aplicación de acuerdo con


la siguiente tabla:

1
Especificación Tolerancia
Exploración espacial Menor que 0.1%
Grado militar Mayor o igual a 0.1% y menor que 1%
Grado comercial Mayor o igual a 1% y menor que 10%
Grado de jueguete Mayor o igual que 10%

Usando esta información escriba un algoritmo que acepte la lectura de tolerancia de un componente
y determine la especificación que debería asignarse al componente.
9. Escriba un algoritmo que acepte un número y luego una letra. Si la letra que sigue al número es F, el
programa tratará al número introducido como una temperatura en grados Fahrenheit, convertirá el
número a los grados Celsius equivalentes y desplegará un mensaje adecuado. Si la letra que sigue al
número es C, el programa tratará al número introducido como una temperatura en grados Celsius,
convertirá el número a los grados Fahrenheit equivalentes y desplegará un mensaje adecuado. Si la
letra no es F ní C entonces en el algoritmo se imprimirá un mensaje de error.
10. Escriba un algoritmo que pida al usuario tres números enteros y emita un mensaje que indique si los
números fueron ingresados en orden numérico.
11. Escriba un algoritmo que use bloques de repetición para resolver el siguiente problema:
Suponga que se desean encontrar las parejas de enteros (x, y) tales que x2 − y 2 = 105. Asuma para
este ejercicio que |x| + |y| ≤ 105. Determine cuales son las posibles parejas de valores que cumplen
con esta condición.
a
12. Sea el cociente de dos números enteros, donde b 6= 0. Redondee el resultado de dicha expresión al
b
entero más cercano. Si tal división entera cae en la mitad, redondéela al mayor entero.
13. Dados dos puntos en un plano, calcule la distancia entre ambos. Maneje apropiadamente los casos
que se presentan. Si los puntos:
• Pertenece a una recta oblicua.
• Son iguales.
• Pertenece a una recta horizontal.
• Pertenece a una recta vertical.
14. Un rectángulo puede ser representado en un plano a partir de cuatro puntos; determine, si dadas las
coordenadas de cuatro puntos del plano, éstos pueden ser los vértices de un rectángulo.
15. Escriba un algortimo que clasifique un entero n leído del teclado de acuerdo a los siguientes puntos:
(a) Si n ≥ 30 o n < 0.
(b) Si n es primo o potencia de 2.
(c) Si es cero o 1.
16. Escriba un algortimo que reciba como entrada las coordenadas de dos vértices opuestos de un rec-
tángulo, imprima las coordenadas de los otros dos vértices. el usuario ingresará las dos coordenadas
(x1 , y1 ) y (x2 , y2 ) en el orden x1 , y1 , x2 , y2 .
17. Se sabe que el primer día de un mes es domingo. Haga un algoritmo que reciba como entrada un
número entero n (1 ≤ n ≤ 31) correspondiente a un día de ese mes e imprima en qué día de la
semana cae ese día n.
18. El costo de inscripción en un concurso de algoritmia es de 100,000 pesos por inscripción de la
universidad más 5000 pesos por cada alumno participante. Si la universidad se inscribe con al menos
250 participantes, no se cobran los 100,000 pesos de inscripción del colegio. Haga un algoritmo que
reciba como entrada el número de estudiantes que un colegio va a escribir en un evento de olimpiadas
y que calcule el monto de pago de la inscripción.

2
19. Haga un algoritmo que reciba como entrada tres números y diga si hay alguno que sea múltiplo de
los otros dos; en caso afirmativo debe decir cual es.

20. Haga un algoritmo que reciba como entrada cuatro números y diga si la diferencia de dos de ellos es
igual a la diferencia de los dos restantes.

21. Haga un algoritmo que reciba tres vértices adyacentes de un pentágono regular e imprima el área de
este pentágono.

22. Dado un número entero n entre 1 y 26, muestre en pantalla un triángulo alfabético como el mostrado
en el ejemplo. Ejemplo, suponga que n = 3, entonces la salida sería:

a
bb
ccc

23. Suponga que se pide al usuario dos fechas en el formato día, mes, y año, correpondiente a la fecha de
nacimiento y la fecha actual, respectivamente. Escriba un programa que calcule y visualice la edad
del individuo con precisión hasta los meses.

24. Se leen las coordenadas (a, b), (c, d), (p, q) y (r, s) correspondientes a cuatro puntos diferentes del
Plano Cartesiano; por los dos primeros puntos pasa la recta L1 y por los dos últimos la recta L2 .
Determine si las rectas son perpendiculares, paralelas o no cumplen con ninguna de estas relaciones.

25. Dados tres números reales que representan las medidas de los ángulos, verifique si corresponden a la
existencia de un triángulo; si así fuese, escriba el tipo de triángulo que es, según la medida de sus
ángulos.

26. Suponga que se piden al usuario los valores a, b y c asociados al polinomio p(x) = ax2 + bx + c.
Escriba un programa que proporciones el intervalo real donde p(x) es mayor que cero. Las salidas
podrían ser: el conjunto vacío, todos los reales, un intervalo abierto, dos rayos o un rayo. En este
ejercicio b y c son diferentes de cero, pero a si puede ser cero.

27. Considere la siguiente función:


 3
 2x − 5 si x < −1
f (x) = 2x − 5 si −1 ≤ x ≤ 1
4 − x2 si x≥1

Elabore un algoritmo que pida al usuario dos extremos del intevalo [a, b] con a < b y
−21 ≤ a, b ≤ 0. El algoritmo deberá imprimir el intervalo máximo [c, d] tal que para cualquier
x ∈ [c, d] se siga que f (x) ∈ [a, b].

28. Una compañía de teléfonos cobra por un número telefónico una cantidad determinada por pulsos
realizados y L.85.00 más por derecho de línea por lo que obtiene un bono de 15 pulsos. Para
incentivar el uso del teléfono, se cobra menos por un mayor número de pulsos registrados de acuerdo
a la siguiente tabla:

Categoría No. de pulsos Precio por pulso


Baja 0 a 200 40 cts.
Media 201 a 800 30 cts.
Alta 801 en adelante 20 cts.

Haga un algoritmo para varios abonados que lea la cantidad de pulsos consumidos y escriba la factura
correspondiente (La factura debe incluir el impuesto sobre ventas).

3
29. Escriba un algoritmo que calcule y visualice el más grande, el más pequeño y la media de N números.
El valor de N se solicitará al inicio del algoritmo y los números serán ingresados por el usuario.
30. Modifique el algoritmo anterior, de tal forma que muestre el absoluto mayor y el absoluto menor.
Se entiende por mayor absoluto de un conjunto de números, al mayor elemento de estos, con la
condición adicional de que este no se repite. Similarmente se define absoluto menor. Ejemplo:
Entrada: 1 2 3 3 5 5
Salida: Media: 2.66, Menor absoluto: 1, No hay mayor absoluto.
31. Calcule el factorial de un número leído por el algoritmo, usando la sentencia MIENTRAS.
32. Cuente el número de enteros positivos que finalizan con el número 11, ingresados por el usuario. El
algoritmo debe terminar la lectura ingresando el valor de cero. Ejemplo:
Entrada: 4 311 345 2311 345 45011 56711 1 2 0
Salida: 4
33. Se leen varios números entre 1 y 9, ambos inclusive, que no tienen que estar en orden y que pueden
o no estar repetidos. Calcule e imprima:
• la cantidad de números menores que o iguales a 7;
• la cantidad de números mayores que 7.
Al final se lee el número –1 para indicar que no hay más números por leer. 36.
34. Haga un algoritmo para hallar de un conjunto de N números qué porcentaje son cero, qué porcentaje
son positivos y el porcentaje de negativos. Ejemplo:
Entrada:-1 2 -3 8 9 9 -4 0 5 5 6 0
Salida: Positivos: 58.3%, Ceros: 16.6%, Negativos: 25%.
35. Haga un algortimo para hallar cuántos números se deberion haber leído de un conjunto dado para
que la suma de los negativos dé, en valor absoluto, mayor que 1200. Ejemplo:
Entrada: -16 2 -300 8 9 9 -4000
salida: 7
36. Diseñe un algoritmo que reciba como dato un número entero y a partir de este, genere el número de
un dígito (entre 0 y 9) más grande, sumando los dígitos de derecha a izquierda tantas veces como
sea posible. Ejemplo:
Entrada: 3265
Salida: 7
En este ejemplo se empezó con 5, luego se le sumó 6, como 5+6=11, el 6 se descarta y se sigue con
el 2, luego se tendría 5+2=7. Se continua sumando 3, pero 3+7=10 y entonces el 3 se descarta y
por lo tanto el algoritmo termina y devuelve 7.
37. Escriba los primeros n números triangulares, donde n es un número natural mayor que 0. Además, y
en particular, haga que el penúltimo número se acompañe del mensaje “Este es el penúltimo número
triangular“.
38. Se leen diez números, cada uno entre 1 y 30. Para cada número leído, el programa deberá imprimir
una línea conteniendo dicho número en asteriscos adyacentes.
39. En una escuela de 600 estudiantes se realizará la elección del Presidente del Gobierno Escolar, para
lo cual los estudiantes votarán de la siguiente forma: 1 o M por María, 2 o L por Luis, 3 o T por
Tania y 4 o J por de Juan. Escriba un programa determine el nombre del ganador y el número de
votos nulos.
40. En una sección de MM-314 se aplicarán 4 exámenes, de los cuales se eliminará el más bajo de los 3
primeros y se promediará con los dos exámenes más altos de los tres primeros y el cuarto examen.
Escriba un programa que calcule el promedio para cada alumno de la sección.

4
41. En una tienda de ciertos productos, por cada venta realizada de cada uno de tres dependientes, se
registra en el ordenador el código del dependiente A, B o C que hizo la venta; a su vez se registra el
valor total de la factura de la venta efectuada por cada dependiente. Al final de todos los datos se
leerá una factura ficticia con código de dependiente F y el valor total de cero como marca de fin de
datos. Calcule el promedio de venta de cada dependiente.

42. En una farmacia se aplica el descuento del 25% por la compra de medicamentos para las personas
de la tercera edad que presentan receta médica, el 15% para los clientes con receta, el 30% para los
empleados de la farmacia que compran con receta, y sin descuentos para personas que no caen en
ninguna de las categorías anteriores. Escriba un programa tal que lea la venta total de medicina por
cliente y el código del tipo de cliente; al final del día se desea calcular el promedio de ventas diarias
por tipo de clientes. La farmacia utiliza un código para distinguir el tipo de cliente:1 para empleados
de la farmacia con receta, 2 para clientes con receta médica, y para los clientes de la tercera edad
con receta el número 3, y cualquier otro número entero para los demás clientes.

43. Una fábrica de autos tiene varios empleados trabajando en dos turnos: por la mañana 0 y por la
tarde 1. De acuerdo al número de horas diarias trabajadas, se desea calcular el sueldo semanal
devengado por cada empleado si se sabe que todos trabajan 5 días a la semana y bajo las siguientes
tarifas:

• L.70.00 por hora, si el turno es matutino y


• L.90.00 por hora, si trabaja en la jornada vespertina.

Además, si se pasan de las 40 horas semanales, las horas se consideran extras y se pagan a razón de:

• 2 veces la hora ordinaria para el turno matutino y


• 3 veces la hora ordinaria para el turno vespertino.

Observación: Haga uso de un centinela para indicar el fin de los datos.

44. Los números cuadrados perfectos son: {1, 4, 9, 16, 25, · · · } ; es decir, cada número natural elevado al
cuadrado, a excepción del cero. Escriba un programa que lea n (n: cantidad de cuadrados perfectos
a tratar) y que imprima los cuadrados perfectos pares.

45. Haga un programa para encontrar y desplegar en la pantalla el número natural N más pequeño tal
que la suma 1 + 2 + ... + N exceda un valor entero positivo introducido por el teclado. Por ejemplo,
si el entero positivo introducido por el teclado es 38, entonces N =9 pues:

1 + · · · + 9 = 45 > 38

1 + · · · + 8 = 36 < 38

46. Haga un algoritmo que escriba el mínimo común múltiplo de dos números enteros dados por el
usuario.

47. Haga un algoritmo que escriba el máximo común divisor de dos números enteros dados por el usuario.

48. Haga un algoritmo que escriba la factorización desarrollada de un número entero dado por el usuario.
Ejemplo:
Entrada: −1050
Salida: −1050 = −1 × 2 × 3 × 5 × 5 × 7.

49. Haga un algoritmo que escriba la factorización condensada de un número entero dado por el usuario.
Ejemplo:
Entrada: −1050
Salida: −1050 = −1 × 2 × 3 × 5 ∧ 2 × 7.

5
50. Haga un algoritmo que lea cuatro dígitos y escriba el número menor y mayor que se forman con ellos.
Ejemplo:
Entrada: 3 8 2 9.
Salida: Menor: 2389, Mayor: 9832.

51. Haga un algoritmo que simplifique una fracción, el usuario ingresa el numerador y el denominador,
si la fracción que ingresa es irreductible escribir el mensaje correspondiente.

52. Haga un algoritmo que escriba una fracción impropia en fracción mixta, el usuario ingresa el numer-
ador y el denominador., si la fracción no es impropia escribir el mensaje correspondiente.

53. Haga un algoritmo que lea un numero natural n con 1 < n < 20 y escriba su equivalente en sistema
binario.

54. Haga un algoritmo que lea un numero Hexadecimal y escriba su equivalente en es sistema decimal.

55. Escriba un algoritmo que determine la hora local del arribo de un vuelo que partió de una ciudad
A con destino a una ciudad B. Para resolver este problema el algoritmo debe solicitar al usuario las
zonas horarias de las dos ciudades, la hora local de salida de la ciudad A y la duración del vuelo.

56. Escriba un algoritmo que imprima y cuente los distintos divisores de un número natural n dado por
el usuario.

57. Resuelva el siguiente problema a través del desarrollo de un algoritmo.


Una institución financiera asigna cierto tipo de números a sus tarjetas de crédito. Un número de
tarjeta de crédito es válido para esta compañía sí, al sumar los dígitos impares de este número, se
obtiene como resultado un número divisible por 7. Si los números de tarjetas de crédito se componen
de 6 dígitos y la empresa puede llegar a tener una demanda de ciento cuarenta mil tarjetas, entonces
¿Existen suficientes números válidos que puedan cubrir la demanda?.
Como ejemplo, el número 321032 es un número válido puesto que al sumar los dígitos impares
(3+1+3=7) se obtiene 7 y este es un número divisible por 7, otros ejemplos son 873132,773132 y
571127.

58. Cuatro números w, x, y y z se dicen sociables si se cumple que:

• La suma de los divisores propios de w es igual a x.


• La suma de los divisores propios de x es igual a y.
• La suma de los divisores propios de y es igual a z.
• La suma de los divisores propios de z es igual a w.

Desarrolle un algoritmo que determine si cuatro números naturales son sociables. Pruebe su algoritmo
con el grupo de números {1264460, 1547860, 1727636, 1305184}.

59. Desarrolle un algoritmo que determine si dos números ingresados por el usuario son primos consec-
utivos.

60. Los números de fibonacci se definen de la siguiente forma, el primero es 1, el segundo 1, el tercero es
la suma de los dos anteriores, es decir 2, el cuarto nuevamente es la suma de los dos anteriores, es
decir 3 y así sucesivamente, en concreto el conjunto de los primeros números de fibonacci se ve de la
siguiente forma:
{1, 1, 2, 3, 5, 8, 13, 21, 34, · · · }.
Escriba un algoritmo que dado un número natural n, calcule la suma alternada de los primero n
números de fibonacci. Ejemplo:
Entrada: 8
Salida: 1-1+2-3+5-8+13-21=-12

6
8 Guía del segundo foro
Esta guía comprende un conjunto de ejercicios donde se debe hacer el uso de la combinanción de los
bloques estructurados.
Para los ejercicios del 1 al 8 cree un algoritmo que despliegue en pantalla la figura que se muestra
en función de un número entero n y un carácter c ingresado por el usuario. n representa el número
de filas y c es el carácter con el que se formarán las figuras.
1. Entrada: n = 4, c = ” ∗ ”. Salida:
*
* *
* * *
* * * *

2. Entrada: n = 5, c = ” ∗ ”. Salida:
* * * * * * * * *
* * * * * * *
* * * * *
* * *
*

3. Entrada: n = 7, c = ”x”. Salida:


* * * * * * *
* * * * * *
* * * * *
* * * *
* * *
* *
*

4. Entrada: n = 4 , c = ” ∗ ” :
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
En los ejercicios del 5 al 8, se pide la variable m que representa el número de carácteres en cada
línea.
5. Entrada: n = 3, c = ” ∗ ” y m = 4. Salida:
* * * *
* * * *
* * * *

6. Entrada: n = 7 (n debe ser impar), c = ” ∗ ” y m = 5. Salida:

* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *

7
7. Entrada: n = 7 (n debe ser impar), c = ” ∗ ” y m = 5. Salida:
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
8. Entrada: n = 4, m = 5, c = ” ∗ ”. Salida:
* * * * *
*
* * * * *
*
* * * * *
*
* * * * *
9. Escribir un algoritmo que presente un menú para desplegar en pantalla una de las siguientes series
de números, el usuario indica la serie que desea y la cantidad de términos:
(a) 0,1,1,2,3,5,8,13,...
(b) 1/2, 1/4, 1/8, 1/16,...
(c) 1/3,-1/6,1/9,-1/12,1/15,...
10. Escriba un algoritmo que tenga como entrada un número natural n. A continuación el algoritmo
deberá imprimir todos los divisores primos de n y finalmente imprimirá el número de estos.
11. Escriba una algoritmo que pida al usuario dos enteros positivos n y m con n < m. A continuación
el algorimto contará todos lo números perf ectos entre n y m incluidos ellos mismos.
12. Calcule la suma de los términos de la serie:
n
X 1
i=1
i!2i
El usuario debe ingresar el valor de n.
13. Realice un algoritmo en el que dado n números naturales, determine y escriba qué porcentaje son
pares y que porcentaje son primos. Ejemplo:
Entrada: 4 5 6 2 1 -5 9 8
Salida: Pares: 50%, Primos: 25%.
14. Realice un algoritmo en el que dado un número, diga si es o no un número de Armstrong.
Un número de n dígitos es un número de Armstrong si la suma de las potencias n-ésimas de los
dígitos que lo componen es igual al mismo número.
Entrada: 1634
Salida: Sí es un número de Amstrong. La explicación de porque es un número de Amstrong es que
14 + 64 + 34 + 44 = 1634.
15. Diseñe un algoritmo que encuentre el menor número primo ingresado por el usuario; tenga en cuenta
que la lectura de números terminará con el número que el usuario ingresa. Se deben realizar verifi-
caciones respectivas para conocer si el número es o no primo.
16. Realice un algoritmo que calcule la función que corresponda para un x ingresado por el usuario y el
número de términos m de la serie que él desee evaluar. En el caso de las funciones trigonométricas,
el x se encuentra en radianes.

8
m m
X xn X (−1)n x2n+1
(a) ex ≈ . (f) arctan(x) ≈ . |x| < 1.
n=0
n! n=0
2n + 1
m
X (−1)n+1 xn
(b) ln(x + 1) ≈ . |x| < 1. m
x2n
n
X
n=0 (g) cosh(x) ≈ .
m (2n)!
X (−1)n x2n+1 n=0
(c) sin(x) ≈ .
(2n + 1)! m
n=0 X x2n+1
m n 2n
(−1) x (h) sinh(x) ≈ .
(2n + 1)!
X
(d) cos(x) ≈ . n=0
n=0
(2n)!
m m
X (2n)!x2n+1 X (−1)n (2n)!x2n+1
(e) arcsin(x) ≈ . |x| < 1. (i) sinh (x) ≈
−1
. |x| < 1.
n=0
4n (n!)2 (2n + 1) n=0
4n (n!)2 (2n + 1)

17. Los lenguajes ensambladores para algunos microprocesadores no tienen una operación de multipli-
cación. Aunque hay algoritmos sofisticados para llevar a cabo la multiplicación en estos casos, un
método simple multiplica por adición repetida. En este caso la eficiencia del algoritmo puede incre-
mentarse usando ciclos anidados. Por ejemplo, para multiplicar un número por 12, primero se suma
el número 3 veces y luego suma el resultado cuatro veces. Estos solo requiere 7 adiciones en lugar
de 12. Usando esta información escriba un algoritmo que multiplique 33, 47 y 83 por 1001 usando
tres ciclos y luego despliegue el resultado. (Sugerencia: 1001 = 7 × 11 × 13).

18. Escriba un algoritmo que utilice bloques de repetición para resolver el siguiente problema:
Suponga que se desean encontrar las parejas de enteros (x, y) tales que 2x2 + 5xy − 12y 2 = 28.
Asuma para este ejercicio que |x| + |y| < 20. Determine cuales son las posibles parejas de valores
que cumplen con esta condición.

19. Escriba un algoritmo para invertir los dígitos de un número entero positivo.

20. Además del promedio aritmético de un conjunto de números se puede calcular la media geométrica
y la media armónica.
Media geométrica de {x1 , x2 , · · · , xn }:

n
x1 x2 · · · xn .
Media armónica de {x1 , x2 , · · · , xn }:
n
1 1
+ ··· +
x1 xn
Usando estas fórmulas escriba un algoritmo que continúe aceptando números hasta que se introduzca
el número 999, y luego calcule y despliegue tanto la media geométrica como la armónica de los
números introducidos, excepto el 999.

21. Los siguientes datos se recolectaron en un viaje frecuente en automóvil:

Millas galones
22495 Tanque lleno
22841 12.2
23185 11.3
23400 10.5
23772 11.0
24055 12.2
24434 14.7
24804 14.3
25276 15.2

9
Escriba un algoritmo que acepte un valor de millas y galones y calcule las millas por galón (mpg)
logradas para ese segmento del viaje. Las millas por galón se obtienen como la diferencia en millas
entre llenadas del tanque divido entre el número de galones de gasolina utilizados desde que se llenó
el tanque.

22. Suponga que se tiene una caja de banco con la siguiente cantidad en denominaciones de billetes:

Billete Cantidad Billete Cantidad


500 30 10 112
100 55 5 345
50 66 2 234
20 77 1 89

Introducir un número (entero) y desglosarlo de forma ideal en billetes de la caja descrita anterior-
mente.

23. Un número entero positivo n se dice atractivo, si la suma de los dígitos forma parte de la lista de
números de fibonacci. Escriba una algoritmo que calcule los primeros 20 números atractivos.

24. Escriba un algoritmo que por medio de un bloque HACER-MIENTRAS lea un conjunto de números
enteros. Para terminar el ciclo de repetición, tendrá que verificar si el usuario ingresa en algún
momento la secuencia 3,7,0. Además al final del algortimo tendrá que imprimir la suma de los
números primos ingresados. Ejemplo:
Entrada: 3 11 2 12 46 3 7 0
Salida: 26

25. Un número entero n positivo se considera abundante si la suma de los divisores es mayor que 2n.
Por ejemplo 12 es abundante dado que 16 = 1 + 2 + 3 + 4 + 6 > 12. Por medio de un algoritmo,
encuentre los primeros 100 números abundantes.

26. Considere la siguiente lista de números:


 
1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3
, , , , , , , , , , , , , , , , , , , , ···
1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1
Escriba un algoritmo que reciba como entrada un número entero n y a continuación imprima los
primeros n elementos de la lista anterior.

27. Sea n un número entero positivo. Defina S(n) como la suma de los cuadrados de los dígitos de n.
Por ejemplo S(143) = 12 + 42 + 32 = 26. A partir esta definición se puede crear una secuencia
de números: n → S(n) → S(S(n)) → S(S(S(n))) · · · . Por ejemplo, los primeros 4 términos de la
secuencia descrita anteriormente empezando con 143 es: 143 → 26 → 40 → 16. Escriba un algoritmo
que pida al usuario un entero positivo n, a partir de este número se imprimirá la lista que se discutió
antes, por medio de un bloque de repetición. El bloque de repetición se terminará cuando en la lista
aparezca el número 1 o cuando el bloque supere las 100 vueltas.

28. Escriba un algoritmo que lea inicialmente una pareja de números (x, y). Luego por medio de un bloque
de repetición MIENTRAS se leera en cada vuelta tres números, r y (k, l) donde r representará el
radio de un círculo centrado en el punto (k, l). El ciclo de repetición MIENTRAS terminará cuando
el usuario ingrese r = 0. Al final de esto, el algoritmo deberá imprimir si (x, y) esta contenido en la
mayoría de los círculos proporcionados. Se entiende en este sentido por "mayoría" cuando el punto
se encuentra en al menos el 60% de los círculos.
p
29. Una fracción menor que 1. Se considera egipcia, si esta se puede escribir de la siguiente forma:
q
p 1 1
= + ··· + .
q n1 nk

10
Donde los ni son todos diferentes y k ≥ 1. A continuación se muestran algunos ejemplos de fracciones
egipcias:
3 1 1
= +
8 3 24
1 1
=
6 6
5 1 1 1
= + +
7 2 5 70

Si usted no había escuchado sobre las fracciones egipcias, quizas le resulte sorprendente, inicialmente,
que todo fracción menor que 1 es egipcia. Escriba un algoritmo que reciba una pareja de números
p
enteros positivos p y q con p < q, de manera que estos dos números representen a la fracción y
q
posteriormente el algoritmo deberá imprimir la expansión en sumas de fracciones con numerador 1,
que demuestran que en efecto toda fracción es egipcia.
Para poder construir el algoritmo considere la siguiente estrategia, que por simplicidad se ejemplifi-
5 5 1
cará con : Primero buscamos el menor entero positivo n tal que > , en este caso n = 2. Luego
7 7 n
3 5 1
se ejecuta la resta de estas dos fracciones, resultando = − . Luego repetimos el proceso,
14 7 2
3 1
buscamos nuevamente el menor entero positivo n tal que > , en este caso n = 5, operamos
14 n
1 3 1
la diferencia, = − . Como el resulado de la diferencia es una fracción con numerador 1,
70 14 5
entonces el proceso termina y la fracción se puede expandir como:
5 1 1 1
= + + .
7 2 5 70

30. Un número entero positivo es múltiplo de 9, si la suma de sus dígitos, también lo es. Resuelva
el siguiente problema usando un algoritmo que a su vez use un bloque de repetición. Utilizando
exclusivamente los dígitos 2 y a se forma el siguiente número de 90 cifras:

2a22a222a2222a · · · 22 · · · 2a

Si se sabe que este número es múltiplo de 9, ¿Cuáles son los posibles valores del dígito a?

31. Usando un algoritmo encuentre una lista de cinco primos direntes donde la diferencia entre cua-
lesquiera dos términos consecutivos de la lista sea siempre seis.

32. Considere la siguiente secuencia de números:

{1, 2, 4, 5, 7, 9, 10, 12, 14, 16, · · · }.

Escriba un algoritmo que lea un número entero n y a continuación deberá imprimir la lista de los
primeros n números de la colección descrita anteriomente.
Observación: La lista de números se forma de la siguiente manera, se coloca el primer impar (1),
luego se colocan los siguientes dos pares (2,4), después los tres impares siguientes (5,7,9), luego los
cuatro pares siguientes al último impar que se coloco y así susecivamente.

33. Escriba un algoritmo que determine todos los enteros positivos n menores que 1000, tales que sean
múltiplos de 3, terminen en 1 y que sean suma de dos cuadrados.

34. Escriba un algoritmo que determine todos los enteros positivos n menores que 400 tales que n tiene
sólo 2 divisores primos distintos y el producto de sus divisores es igual a n6 . Por ejemplo, n = 12
cumple con esta condición, dado que 1728 = 126 = 1 × 2 × 3 × 4 × 6 × 12 y sólo tiene a 2 y 3 como
únicos divisores primos.

11
35. Por medio de un algoritmo determine el mínimo valor de n para el cual se tiene que el promedio de
los números 12 , 22 , 32 , · · · , n2 es un cuadrado perfecto.

36. Considere la siguiente lista de números:

L = {1, 2, 3, 4, 5, · · · , 2n }.

Escriba un algoritmo que pida al usuario el entero positivo n. A continuación el algoritmo deberá
imprimir la suma de los mayores divisores impares de los elementos en L. Ejemplo:
Entrada: 3
Salida: 22

37. Un número n se considera fantástico si n y 1 + 2 + 3 + · · · + n son cuadrados perfectos.


Escriba un algoritmo que encuentre un número fantástico mayor que 49.

38. Escriba un algoritmo que encuentre el entero más pequeño tal que sea divisible por los números desde
el 1 al 24.

39. Un número primo se dice circular cuando todas las rotaciones de sus dígitos son primos también.
Por ejemplo, 197 es primo y se considera circular, puesto que 971 y 719 también son primos. Escriba
un algortimo que imprima todos los primos circulares de 4 dígitos.

40. Suponga que un triángulo se forma con dos puntos P (x1 , y1 ) y Q(x2 , y2 ) y el origen O(0, 0) de
manera que x1 , y1 , x2 , y2 son números enteros no negativos. Escriba un algoritmo que cuente cuantos
triángulos construidos de esta manera tienen al propiedad de ser rectángulos, suponiendo que 0 ≤
x1 , y1 , x2 , y2 ≤ 20.

41. Suponga que se forman triángulos con los puntos A(a, b), B(c, d), C(e, f ) donde a, b, c, d, e, f ∈ Z.
Encuentre la cantidad de triángulos diferentes formados de esta manera que contienen al origen,
dado que |a|, |b|, |c|, |d|, |e|, |f | < 10.

42. Suponga que las medidas de los lados de un triángulo isósceles son l, l y b, donde b y l son enteros.
Además imagine que h es la altura medida desde el vértice opuesto al lado que mide b. Se dice que
un triángulo iscóceles es especial si h = b ± 1. Escriba un algoritmo que encuentre 12 triángulos
isósceles especiales.

43. Suponga que se quiere evaluar un polinomio de la forma p(x) = an xn + an−1 xn−1 + · · · + a1 x + a0 en
el valor x. Escriba un algoritmo que solicite el valor de x y el valor de n. Luego por medio de un
ciclo PARA, lea los coeficientes del polinomio de forma creciente respecto a las potencias y a su vez
vaya calculando el polinomio evaluado en x.

44. Suponga que se quiere encontrar el término independiente de la división entre p(x) = an xn +
an−1 xn−1 + · · · + a1 x + a0 y ax + b. Escriba un algoritmo que solicite el valor de a, b y n. Luego por
medio de un ciclo PARA, lea los coeficientes del polinomio en forma decreciente con respecto a las
potencias y a su vez vaya haciendo los cálculos necesarios para encontrar el término independiente
haciendo uso de la división sintética.

45. Sea p(x) = an xn + an−1 xn−1 + · · · + a1 x + a0 donde los coeficientes enteros. Existe un criterio en
matemática llamado Criterio de Eisenstein que permite determinar si el polinomio p(x) no tiene
raíces racionales: Suponga que existe un número primpo p que cumple con las siguientes condiciones:

• p divide a a0 , a1 , a2 , · · · , an−1 .
• p no divide a an .
• p2 no divide a a0 .

12
Entonces el polinomio no tiene soluciones racionales.
Escriba un algoritmo que solicite el valor de n y el valor de un primo p. Luego por medio de un
ciclo PARA, lea los coeficientes del polinomio de forma creciente respecto a las potencias y evalue
las condiciones del criterio de Eisenstein. Finalmente en el caso de que el criterio de Einsenstein se
cumpla, deberá imprimir un mensaje indicando que el polinomio no tiene raíces racionales.
46. Escriba un algoritmo que imprima el triángulo de pascal en función de la profundidad n del triángulo.
Por ejemplo si n = 5, entonce se debería imprimir:

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1

k!
Ayuda: En la fila k los elementos se puede calcular con los números para i = 0, 1, 2, · · · , k.
(k − i)!i!
47. Construir un algoritmo que permita multiplicar dos números enteros positivos empleando el método
denominado multiplicación rusa. Este método permite calcular el producto M N de la siguiente
manera: En pasos sucesivos se divide M por 2 (división entera) y se multiplica N por 2. Este proceso
se repite hasta que M es cero. El resultado de la multiplicación deseada se obtiene acumulando
aquellos valores sucesivos de N para los cuales el valor de M es impar.
Ejemplo: N = 31 y M = 27

N M Acumulado
31* 27 31
62* 13 31+62=93
124 6 93
248* 3 93+248=341
496* 1 341+496=837
992 0

Para este algoritmo también se pide que se imprima una tabla como la del ejemplo.
48. Considere la siguiente sumatoria:
N
X (−1)n 4
≈π
n=1
2n + 1
Escriba un algoritmo que pida al usuario un entero positivo m y despliegue una tabla donde vaya
midiendo el error desde que N = 1 hasta que N = m. Ejemplo con m = 8.

PN (−1)n 4 PN (−1)n 4

Suma: n=1 Error: n=1

N − π
2n + 1 2n + 1
1 2.66 0.475
2 3.46 0.325
3 2.89 0.246
4 3.34 0.198
5 2.98 0.166
6 3.28 0.142
7 3.02 0.125
m =8 3.25 0.111

Además responda la siguiente pregunta, ¿Cuál debería ser el valor más pequeño de N para que el
error sea menor a 10−4 ?

13
49. Suponga que en una población hay N habitantes que están a favor de dos posibles partidos, A o
B. Además suponga que r habitantes son simpatizantes del partido A y por ende N − r están con
el partido B. Suponga que usted decide encuestar a n personas de esta población, evidentemente
n < N . Existe un resultado en matemáticas que establece que la probabilidad de que y personas de
las n encuestadas sean simpatizantes del partido A, es igual a:
r N −r
 
y n−y
N
 .
n
 
k k!
Donde = . Escriba un algoritmo que pida al usuario los valores de N , n, r, k.
l l!(k − l)!
Finalmente con ayuda de la fórmula descrita anteriormente, calcule la suma de las probabilidades
desde y = 0 hasta y = k. Este último cálculo representaría la probabilidad de que a lo más k
personas esten a favor del candidato A.

50. Considere el siguiente conjunto de números:

1
12
123
1234
12345
123456
1234567
12345678
123456789
12345678910
1234567891011
..
.
1234567891011 · · · 99100

Ahora suponga que se forma el número N concatenando los números que se ven en el triángulo
anterior:
N = 112123123412345 · · · 12345 · · · 99100.
Escriba un algoritmo que le permita determinar si N es múltiplo de 3.
Ayuda: Un número es múltiplo de 3, si la suma de sus dígitos también lo es.

51. Suponga que se quiere resolver la siguiente ecuación:

arctan(ax + b) = ln(x)

La siguiente secuencia de números:


f (an )
an+1 = an −
g(an )
tienen la propiedad de acercarse al valor de la solución de la ecuación anterior, donde f (x) =
−a2 x2 + (a − 2ab)x − 1 − b2
arctan(ax + b) − ln(x) y g(x) = . Escriba un algoritmo que calcule la
a2 x3 + 2abx2 + (1 + b2 )x
secuencia {an } hasta que |f (an )| < e. Para esto el usuario ingresará los valores de a, b, a1 y e. Por
ejemplo:
Entrada: a = 2, b = −2, a1 = 2, e = 10−5 .
Salida:

14
n an |f (an )|
1 2 0.414
2 6.14 0.341
3 3.77 0.064
4 4.09 0.001
5 4.1 6.872 × 107

52. Considere la siguiente sucesión de números:



 4 si n = 1,
Sn = 5 si n = 2,
max(Sn−2 , Sn−1 − Sn−2 + 7) de otra manera.

Escriba un algoritmo solicite un número entero N y a partir de este número imprima la lista de
valores S1 , S2 , · · · , SN .

53. Escriba un algoritmo que pida al usuario un número entero N . A partir de esto deberá imprimir un
triángulo rectángulo formado por N filas. Ejemplo:
Entrada: N = 5
Salida:

1
2 3
4 5 6
7 8 9 10
11 12 13 14 15

54. Escriba un algoritmo que pida al usuario un número entero N . A partir de esto deberá imprimir un
triángulo rectángulo formado por N filas. Ejemplo:
Entrada: N = 5
Salida:

2
4 6
8 10 12
14 16 18 20
22 24 26 28 30

55. Escriba un algoritmo que pida al usuario un número entero N . A partir de esto deberá imprimir un
triángulo isósceles formado por N filas. Ejemplo:
Entrada: N = 5
Salida:

1
2 3 2
3 4 5 4 3
4 5 6 7 6 5 4
5 6 7 8 9 8 7 6 5

56. Escriba un algoritmo que pida al usuario un número entero N . A partir de esto deberá imprimir un
triángulo rectángulo formado por N filas. Ejemplo:
Entrada: N = 5
Salida:

15
2
3 5
7 11 13
17 19 23 29
31 37 41 43 47

57. Un número entero positivo es múltiplo de 11, si la suma y resta alternada de sus dígitos, también lo
es. Resuelva el siguiente problema usando un algoritmo que a su vez use un bloque de repetición.
Utilizando exclusivamente los dígitos 2 y a se forma el siguiente número de 90 cifras:

N = 2a22a222a2222a · · · 22 · · · 2a

¿Qué valores puede tomar el dígito a, de manera que N sea múltiplo de 11?

58. Escriba un algoritmo que utilice bloques de repetición para resolver el siguiente problema:
Suponga que se desean encontrar las tripletas de enteros (x, y, z) tales que:

x + y + z =3
x3 + y 3 + z 3 =3

Asuma para este ejercicio que |x| + |y| + |z| < 20. Determine cuales son los posibles tripletes de
valores que cumplen con esta condición.

59. Considere las siguientes funciones reales:


p
N (x, y) = x2 + y 2
s(x, y) = −2x − cos(y) + y cos(x)
t(x, y) = x sin(y) + sin(x) − 4y

Defina las siguientes sucesiones x0 = 3, y0 = 3,

xn+1 = xn + s(xn , yn )/N (s(xn , yn ), t(xn , yn )),


yn+1 = yn + t(xn , yn )/N (s(xn , yn ), t(xn , yn )).

Escriba un algoritmo que calcule el valor n de tal manera que:

N (s(xn , yn ), t(xn , yn )) < 10−2 .

Imprima además el valor de xn y yn . Para este algoritmo puede utilizar las funciones trigonométricas
de PseInt.

16

También podría gustarte