Ejercicios de Programación

38
Ejercicios de programación 1. En un supermercado se hace una promoción, mediante la cual el cliente obtiene un descuento dependiendo de un número que se escoge al azar. Si el número escogido es menor que 50 el descuento es del 15% sobre el total de la compra, si es mayor o igual a 50 el descuento es del 20%. Obtener cuánto dinero se le descuenta. (Nivel 1) 1

description

matlab

Transcript of Ejercicios de Programación

Page 1: Ejercicios de Programación

Ejercicios de programación

1. En un supermercado se hace una promoción, mediante la cual el cliente obtiene un descuento dependiendo de un número que se escoge al azar. Si el número escogido es menor que 50 el descuento es del 15% sobre el total de la compra, si es mayor o igual a 50 el descuento es del 20%. Obtener cuánto dinero se le descuenta.

(Nivel 1)

1

Page 2: Ejercicios de Programación

2. La administración del municipio de Palermo desea reforestar un bosque que mide determinado número de hectáreas. Si la superficie del terreno excede a 1 millón de metros cuadrados, entonces decidirá sembrar de la siguiente manera:

Porcentaje de la superficie del bosque Especie de árbol

70% Pino

20% Eucalipto

10% Cedro

Si la superficie del terreno es menor o igual a un millón de metros cuadrados, entonces decidirá sembrar de la siguiente manera:

Porcentaje de la superficie del bosque Especie de árbol

50% Pino

30% Eucalipto

20% Cedro

El gobierno desea saber el número de pinos, eucaliptos y cedros que tendrá que sembrar en el bosque, si se sabe que en 10 metros cuadrados caben 8 pinos, en 15 metros cuadrados caben 15 eucaliptos y en 18 metros cuadrados caben 10 cedros. También se sabe que una hectárea equivale a 10 mil metros cuadrados.

(Nivel 2)

2

Page 3: Ejercicios de Programación

3. Una empresa comercial compra piezas en forma de varilla para una máquina conforme a los siguientes criterios:

a. La longitud debe estar entre los 7.75 y los 7.85 centímetros.

b. El diámetro debe estar entre 0.335 y 0.346 milímetros.

c. Bajo ninguna circunstancia la masa de la varilla puede exceder a los 5.6 gramos. Es necesario recordar que la masa es igual al volumen de la varilla multiplicado por la densidad de la varilla (7.8 gramos/ centímetro cúbico).

Escribe un programa que reciba la longitud y el diámetro de la varilla para que indique si se acepta o se rechaza. Si es rechazada imprímase la razón del rechazo. Probar el programa con los siguientes casos:

a. Longitud = 7.71, diámetro = 0.338b. Longitud = 7.81, diámetro = 0.341c. Longitud = 7.86, diámetro = 0.344d. Longitud = 7.83, diámetro = 0.343e. Longitud = 7.73, diámetro = 0.351

(Nivel 2)

3

Page 4: Ejercicios de Programación

4. La asociación estadounidense de carreteras del estado y oficiales del transporte proporciona los siguientes criterios sobre el tamaño para la clasificación de materiales empleados en las construcción de carreteras y presas:

Tamaño del grano Clasificación

> 75 Rocas[2, 75] Grava[0.05, 2> Arena[0.002, 0.05> Cieno< 0.002 Arcilla

Desarróllese un programa para clasificar el material con base al tamaño de grano. Pruébese el programa con los datos siguientes:

Número de muestra Tamaño del grano

1 2 x 10 -4

2 103 0.64 1205 0.01

(Nivel 3)

4

Page 5: Ejercicios de Programación

5. Un acondicionador de aire enfría y retira humedad de una fábrica. El sistema está diseñado para encenderse bajo las siguientes condiciones:

a. Entre 7:00 y 18:00 si la temperatura sobrepasa los 75 grados Fahrenheit y la humedad sobrepasa el 40% o si la temperatura sobrepasa los 70 grados Fahrenheit y la humedad sobrepasa el 80%.

b. Entre 18:00 y 7:00 si la temperatura sobrepasa los 80 grados Fahrenheit y la humedad sobrepasa el 80% o si la temperatura sobrepasa a 85 grados Fahrenheit, independientemente de la humedad.

(Nivel 1)

5

Page 6: Ejercicios de Programación

6. Las resistencias electrónicas suelen ir identificadas por un código de colores que permite marcar cada resistencia con su valor (en Ohmios, W) y su Tolerancia (en %). Este código de colores viene representado en la siguiente tabla:

Dígito Color Multiplicador Tolerancia

Ninguno 20%Plata 0.01 10%Oro 0.10 5%

0 Negro 1.001 Marrón 10.002 Rojo 100.00 2%3 Naranja 1,000.004 Amarillo 10,000.005 Verde 100,000.006 Azul 1,000,000.007 Violeta 10,000,000.008 Gris9 Blanco

El código que suele emplearse en las resistencias es un código de 4 colores, es decir, cada resistencia está marcada con 4 bandas y cada una de ellas puede ser de diferente color. Cada banda tiene un significado, que depende de cada color:

Las primeras 2 bandas indican un número de 2 dígitos: Esos dos dígitos vienen dados por el color de esas bandas, según la columna "Dígito" de la tabla.

La tercera banda es un valor por el que se multiplicará el número obtenido por las bandas anteriores. Una vez multiplicados ambos valores, obtenemos el valor de la resistencia en Ohmios (W).

La cuarta banda indica la tolerancia de la resistencia y, como puede verse en la tabla, no puede ser de cualquier color.

Ejemplo: Unas resistencias con los siguientes colores, tienen los siguientes valores de resistencia y tolerancia:

Verde-Azul-Amarillo-Oro 560 k, 5%

Rojo-Negro-Rojo-Rojo 2 k, 2%

Rojo-Rojo-Marrón-Plata 220, 10%

Según todo lo anterior, implemente un programa que permita calcular la resistencia y la tolerancia de una resistencia, sabiendo los códigos de colores. Los colores Oro, Plata y Ninguno tomarán los valores 10, 11 y 12 respectivamente.

6

Page 7: Ejercicios de Programación

(Nivel 4)

7. En una fábrica de computadoras se planea ofrecer a los clientes un descuento que dependerá del número de computadoras que compre. Si las computadoras son menos de cinco se les dará un 10% de descuento sobre el total de la compra; si el número de computadoras es mayor o igual a cinco pero menos de diez se le otorga un 20% de descuento; y si son 10 o más se les da un 40% de descuento. El precio de cada computadora es de $1,150.00.

(Nivel 1)

8. Tomando como base los resultados obtenidos en un laboratorio de análisis clínicos, un médico determina si una persona tiene anemia o no, lo cual depende de su nivel de hemoglobina en la sangre, de su edad y de su sexo. Si el nivel de hemoglobina que tiene una persona es menor que el rango que le corresponde, se determina su resultado como positivo y en caso contrario como negativo. La tabla en la que el médico se basa para obtener el resultado es la siguiente:

Edad Nivel de hemoglobina

0 - 1 mes 13 - 26 g%> 1 y < = 6 meses 10 - 18 g%> 6 y < = 12 meses 11 - 15 g%> 1 y < = 5 años 11.5 - 15 g%> 5 y < = 10 años 12.6 - 15.5 g%> 10 y < = 15 años 13 - 15.5 g%mujeres > 15 años 12 - 16 g%hombres > 15 años 14 - 18 g%

(Nivel 3)

7

Page 8: Ejercicios de Programación

9. Una persona debe realizar un muestreo con 50 personas para determinar el promedio de peso de los niños, jóvenes, adultos y viejos que existen en su zona habitacional. Se determinan las categorías con base en la siguiente tabla:

Categoría Edad

Niños 0 - 12Jóvenes 13 - 29Adultos 30 - 59Viejos 60 en adelante

(Nivel 2)

10. Ésta es la información que proporciona Wikipedia sobre el Índice Metropolitano de la Calidad del aire:

El Índice Metropolitano de la Calidad del Aire (IMECA) funciona como valor de referencia para que la población de grandes ciudades como el Distrito Federal conozca los niveles de contaminación ambiental que prevalecen en su zona de residencia o trabajo.

El IMECA se obtiene a partir de las mediciones de la calidad del aire que realiza el Sistema de Monitoreo Atmosférico de la Ciudad de México. El IMECA se emplea para comunicar a la población de la Ciudad de México y su área metropolitana el grado de contaminación y el nivel de riesgo que este representa para la salud humana, así como las recomendaciones o acciones que pueden realizar para su protección. El IMECA se calcula empleando los promedio horarios de la medición de los contaminantes ozono (O3), dióxido de azufre (SO2), dióxido de nitrógeno (NO2), monóxido de carbono (CO) y partículas menores a 10 micrómetros (PM10).

El IMECA se publica cada hora para la población de la Zona Metropolitana de la Ciudad de México, que abarca la totalidad del Distrito Federal y la zona conurbada del Estado de México.

Para reportar la calidad del aire, el índice emplea cinco categorías:

• BUENA. Cuando el uno de todos y por tal cual índice se encuentra entre 0 y 50 puntos IMECA, la calidad del aire se considera como satisfactoria y la contaminación del aire tiene poco o nulo riesgo para la salud.

• REGULAR. Cuando el índice se encuentra entre 51 y 100 puntos IMECA, la calidad del aire es aceptable, sin embargo algunos contaminantes pueden tener un efecto moderado en la salud para un pequeño grupo de personas que presentan una gran sensibilidad a algunos contaminantes.

• MALA. Cuando el índice se encuentra entre 101 y 150 puntos IMECA, algunos grupos sensibles pueden experimentar efectos en la salud. Hay algunas personas que pueden presentar efectos a concentraciones menores que el resto de la población, como es el caso de personas con problemas respiratorios

8

Page 9: Ejercicios de Programación

o cardíacos, los niños y ancianos. El público en general puede no presentar riesgos cuando el Imeca está en este intervalo.

• MUY MALA. Cuando el índice se encuentra entre 151 y 200 puntos IMECA, toda la población experimenta efectos negativos en la salud. Los miembros de grupos sensibles pueden presentar molestias graves. En este intervalo se activan las Fases de Precontingencia y Contingencia Fase I del Programa de Contingencias Ambientales Atmosféricas (PCAA) del Valle de México.

• EXTREMADAMENTE MALA. Cuando el valor del índice es mayor a 201 puntos IMECA, la población en general experimenta molestias graves en la salud.

Elabora un programa, en Python, que solicite el IMECA y que señale cuál es la calidad del aire en la zona metropolitana.

(Nivel 1)

11. Ésta es la información que proporciona Wikipedia sobre la escala de huracanes de Saffir-Simpson:

La escala de huracanes de Saffir-Simpson es una escala que clasifica los ciclones tropicales según la intensidad del viento, desarrollada en 1969 por el ingeniero civil Herbert Saffir y el director del Centro Nacional de Huracanes de Estados Unidos, Bob Simpson.

La escala original fue desarrollada por Saffir mientras pertenecía a una comisión de las Naciones Unidas dedicada al estudio de las construcciones de bajo coste en áreas propensas a sufrir huracanes. En el desarrollo de su estudio, Saffir se percató de que no había una escala apropiada para describir los efectos de los huracanes. Apreciando la utilidad de la escala sismológica de Richter para describir terremotos, inventó una escala de cinco niveles, basada en la velocidad del viento, que describía los posibles daños en edificios. Saffir cedió la escala al Centro Nacional de Huracanes de Estados Unidos; posteriormente Simpson añadiría a la escala los efectos del oleaje e inundaciones. No son tenidas en cuenta ni la cantidad de precipitación ni la situación, lo que significa que un huracán de categoría 3 que afecte a una gran ciudad puede causar muchos más daños que uno de categoría 5 pero que afecte a una zona despoblada.

Además, a medida que un ciclón tropical se organiza, pasa por dos categorías iniciales. Éstas no están contenidas dentro de la Escala de Huracanes de Saffir-Simpson, pero clasifican a un ciclón tropical en formación y se utilizan como categorías adicionales a la misma. Son la Depresión tropical —un sistema organizado de nubes y tormenta eléctrica con una circulación cerrada y definida— y la Tormenta tropical —un sistema organizado de fuertes tormentas eléctricas con una circulación bien definida que muestra la distintiva forma ciclónica—. …

Conforme a los datos de esta escala, se elaboró una tabla que clasifica a un huracán, la cual es mostrada a continuación:

9

Page 10: Ejercicios de Programación

CategoríaRango de velocidad del aire en

kilómetros por hora

Depresión tropical [0 – 62]

Tormenta tropical [63-117]

Huracán categoría I [119-153]

Huracán categoría II [154-177]

Huracán categoría III [178-209]

Huracán categoría IV [210-249]

Huracán categoría V [250, ∞)

Elabora un programa en Python que reciba la velocidad del aire e indique, como resultado, el tipo de huracán al que se estaría enfrentando la región donde se midió esa velocidad.

(Nivel 1)

12. Un zoólogo pretende determinar el porcentaje de animales que hay en las siguientes tres categorías de edades: de 0 a 1 año, de más de 1 año y menos de 3 y de 3 o más años. El zoólogo todavía no está seguro del animal que va a estudiar. Si se decide por elefantes sólo tomará una muestra de 20 de ellos; si se decide por las jirafas, tomará 15 muestras, y si son chimpancés tomará 40.

(Nivel 2)

13. La función exponencial puede evaluarse por medio de la siguiente serie infinita:

ex=1+x+ x2

2!+ x

3

3 !+ x

4

4 !+…

Escríbase un programa para ejecutar esta fórmula de manera que determine el valor de la función a medida que se añade cada término de la serie. En otras palabras, calcúlese e imprímase la secuencia hasta el término que se seleccione.

ex ≅ 1

ex ≅ 1+x

ex ≅ 1+x+ x2

2 !

Para cada una de las expresiones anteriores, evalúese el porcentaje relativo de error como:

% error= valor verdadero−aproximaciónde la serievalor verdadero

∗100%

10

Page 11: Ejercicios de Programación

Úsese la función del módulo “math” que obtiene el valor de excon el fin de determinar “el valor verdadero”. Hágase el programa para que imprima las aproximaciones de las series y el error en cada paso. Empléense ciclos para efectuar el análisis. Como prueba, utilícese el

programa para evaluar e1.5 hasta el término x10

10!.

(Nivel 2)

14. Repítase el problema 13 para el coseno hiperbólico que puede aproximarse con:

cosh x=1+ x2

2 !+ x

4

4 !+ x

6

6 !+ x

8

8 !+…

Como prueba, úsese el programa para calcular cosh 78 grados hasta x10

10!. Recuérdese que en

la computadora se manejan radianes.

(Nivel 2)

15. Cinco miembros de un club contra la obesidad desean saber cuánto han bajado o subido de peso desde la última vez que se reunieron. Para esto se debe realizar un ritual de pesaje en donde cada uno se pesa en diez básculas distintas para así tener el promedio más exacto de su peso. Si existe diferencia positiva entre este promedio de peso y el peso de la última vez que se reunieron, significa que subieron de peso. Pero si la diferencia es negativa, significa que bajaron. Lo que el problema requiere es que por cada persona se imprima un letrero que diga: “SUBIÓ” o “BAJÓ” y la cantidad de kilos que subió o bajó de peso.

(Nivel 1)

16. Una compañía de seguros tiene contratados a “n” vendedores. Cada uno hace tres ventas a la semana. Su política de pagos es que un vendedor recibe un sueldo base, y un 10% extra por comisiones de sus ventas. El gerente de su compañía desea saber cuánto dinero obtendrá en la semana cada vendedor por concepto de comisiones por las tres ventas realizadas, y cuánto tomando en cuenta su sueldo base y sus comisiones.

(nivel 1)

17. En una tienda de descuento las personas que van a pagar el importe de su compra llegan a la caja y sacan una bolita de color, que les dirá qué descuento tendrán sobre el total de su compra. Determinar la cantidad que pagará cada cliente desde que la tienda abre hasta que cierra. Se sabe que si el color de la bolita es roja el cliente obtendrá un 40% de descuento; si es amarilla un 25% y si es blanca no obtendrá descuento.

(Nivel 2)

11

Page 12: Ejercicios de Programación

18. En un supermercado, un ama de casa pone en su carrito los artículos que va tomando de los estantes. La señora quiere asegurarse de que el cajero le cobre bien lo que ella ha comprado, por lo que cada vez que toma un artículo anota su precio junto con la cantidad de artículos iguales que ha tomado y determina cuánto dinero gastará en ese artículo; a esto le suma lo que irá gastando en los demás artículos, hasta que decide que ya tomó todo lo que necesitaba. Ayúdale a esta señora a obtener el total de sus compras.

(Nivel 2)

19. Un teatro otorga descuentos según la edad del cliente. Se desea elaborar un programa para determinar la cantidad de dinero que el teatro deja de percibir por cada una de las categorías. Tomar en cuenta que los niños menores de 5 años no pueden entrar al teatro y que existe un precio único en los asientos. Los descuentos se hacen tomando en cuenta el siguiente cuadro:

Categoría Edad Descuento

1 5-14 35%

2 15-19 25%

3 20-45 10%

4 46-65 25%

5 66 o más 35%

(Nivel 2)

20. Implementar una función “digito(N,num)” que devuelva el dígito enésimo de un número “num”, teniendo en cuenta que el dígito 0 es el dígito más a la derecha (el menos significativo). La función devolverá -1 si el número no tiene suficientes dígitos. Considere la posibilidad de que N pueda ser un número negativo. Ejemplos:

digito (0,3456) Devuelve 6

digito (1,-3456) Devuelve 5

digito (4,3456) Devuelve -1

(Nivel 3)

12

Page 13: Ejercicios de Programación

21. En el municipio de Othón Pompeyo Blanco, Quintana Roo, México, están compitiendo, para Presidente Municipal, los candidatos de los partidos “PRI”, “PAN” y “PRD”. La empresa de “Josué” aplicó una encuesta para detectar las preferencias de los othonenses. Para ello, seleccionó al azar 2 000 ciudadanos y les hizo las siguientes preguntas:

a. ¿De qué partido es el candidato que más conoces?b. ¿De qué partido es el candidato que más confianza te inspira?c. ¿Cuál partido es el que te parece más atractivo por ir conforme a tus ideas?

Después de lo anterior, estableció el índice de popularidad para el candidato de cada partido con base en la fórmula siguiente:

Índice de popularidad = (Número de ciudadanos que conocen al candidato * 0.25 + Número de ciudadanos que confían en el candidato * 0.40 + Número de ciudadanos que consideran atractivo al partido * 0.35) / Total de ciudadanos encuestados

Elabora un programa que determine el índice de popularidad de cada candidato.

(Nivel 2)

22. Wikipedia discute ocho escalas de temperatura: Kelvin, Celsius, Fahrenheit, Rankine, Delisle, Newton, Réaumur y Rmer. Con la finalidad de tener una idea más clara acerca de estas escalas visita http://en.wikipedia.org/wiki/Comparison_of_temperature_scales.

a. Escribe la función “ConvierteTemperaturas(Temperatura, Fuente, Destino)” que convierta la “Temperatura” de las unidades “Fuente” a las unidades “Destino”, donde “Fuente” y “Destino” pueden ser "Kelvin", "Celsius", "Fahrenheit", "Rankine", "Delisle", "Newton", "Reaumur", and "Rmer".

Sugerencia: en la página de Wikipedia hay ocho tablas, cada una con dos columnas y siete renglones. Esto se traduce en una cantidad espantosa de estatutos “if’s” – al menos 8 * 7, debido a que cada una de las ocho unidades puede ser convertida a las otras siete unidades. Es posible que sea peor, si tú decides agregar otra escala de temperatura. Necesitarías agregar, por lo menos, dieciséis estatutos “if’s” más: ocho para convertir de tu nueva escala a cada una de las escalas actuales y ocho más para convertir de las escalas actuales a la nueva escala.

Una manera mejor de hacer esto es seleccionar una escala canónica, tal como la Celsius. Tu función de conversión podría trabajar mediante dos pasos: convertir de la escala “Fuente” a la escala Celsius y, entonces, hacer la conversión de Celsius a la escala “Destino”.

b. Bajo la segunda forma de trabajo, si tú agregaras una escala nueva de temperatura, ¿Cuántos estatutos “if’s” necesitarías agregar?

13

Page 14: Ejercicios de Programación

(Nivel 2)

23. Hacer un programa que lea un número entero y que señale cuántos dígitos tiene.

(Nivel 2)

14

Page 15: Ejercicios de Programación

24. Hacer un programa que lea un número entero y que obtenga el producto de sus dígitos que sean diferentes a cero.

(Nivel 2)

25. Realizar un programa que solicite “n” números en una lista para que, posteriormente, señale cuál es la frecuencia de los números diferentes que se encuentran en ella.

(Nivel 4)

15

Page 16: Ejercicios de Programación

26. Elaborar un programa que genere los coeficientes de un binomio elevado a la potencia “n”, empleando para ello la generación parcial del triángulo de Pascal. Por ejemplo, si la potencia a la que se va a elevar el binomio es “6”, entonces el programa deberá generar el siguiente triángulo de Pascal.

Coeficientes Potencia1 0

1 1 11 2 1 2

1 3 3 1 31 4 6 4 1 4

1 5 10 10 5 1 51 6 15 20 15 6 1 6

Sin embargo, sólo deberá imprimir la serie “1 6 15 20 15 6 1”.

(Nivel 5)

27. Elaborar un programa que lea un número entero positivo y que señale si es un número primo o no.

(Nivel 2)

16

Page 17: Ejercicios de Programación

28. Las computadoras pueden codificar fácilmente los mensajes. Una forma de hacerlo es mediante el proceso de corrimiento a la izquierda o la derecha de las letras del alfabeto. Por ejemplo, supongamos que deseamos hacer tres corrimientos a la izquierda para codificar un mensaje, entonces, las equivalencias entre el alfabeto “normal” y el “nuevo” alfabeto serían las siguientes:

A B C D E F G H I J K L M N O P Q R S T U W X Y Z

D E F G H I J K L M N O P Q R S T U W X Y Z A B C

Es necesario observar que las letras que se salen de la posición izquierda se vuelven a colocar en el extremo derecho. También, por cuestiones de sencillez, sólo se emplean letras mayúsculas, el espacio en blanco y el símbolo de pesos ($) para indicar la terminación de la cuerda.

Dado lo anterior, elabora un programa que lea un mensaje normal y que lo codifique con base a un número de corrimientos (n) hacia la izquierda. El mensaje normal debe terminar con símbolo de “$”. Si el mensaje a codificar fuera “ENVIEN A LA CABALLERIA$”, entonces, el mensaje codificado, bajo el esquema de tres corrimientos hacia la izquierda, sería “HQYLHQ OD FDEDOOHULD”.

(Nivel 3)

29. Se requiere elaborar un programa que solicite las tres longitudes de los lados de un triángulo, para que indique qué tipo de triángulo es, bajo las siguientes consideraciones:

a. La longitud de cualquier lado de un triángulo es menor que la suma de las longitudes de los otros dos lados. Si no es así, no se trata de un triángulo.

b. Si las longitudes los tres lados son iguales, entonces, se trata de un triángulo equilátero.

c. Si dos de las longitudes de los lados son iguales, entonces, es un triángulo isósceles.d. Si todas las longitudes son diferentes, entonces, es un triángulo escaleno.

(Nivel 2)

30. El área de un polígono regular se define de la siguiente manera:

Área polígono regular= longitudLado∗numeroLados∗apotema2

Entre los polígonos regulares se encuentran:

Triángulo equilátero Cuadrado Pentágono Hexágono

17

Page 18: Ejercicios de Programación

Heptágono Octágono Eneágono Decágono Endecágono Dodecágono Tridecágono Tetradecágono

Elabora un programa para que solicite el nombre del polígono, conforme a esta lista, la longitud de uno de sus lados y la longitud de su apotema, para que calcule e imprima el área y el perímetro de ese polígono regular.

(Nivel 2)

31. Elaborar un programa que lea un número entero en base 10 y que lo convierta en su equivalente en base “N”. “N” debe ser un entero entre 2 y 20. Sugerencia, a partir de de la base 11, emplear las letras mayúsculas para representar los dígitos mayores o iguales a 10.

(Nivel 3)

32. Diséñese un algoritmo para solicitar las longitudes de los tres lados de un triángulo (“lado1”, “lado2”, “lado3”) e indicar el tipo de triángulo que es, conforme a las siguientes especificaciones.

Suponer que “ladoMayor” se refiere al mayor de los lados “lado1”, “lado2”, “lado3” y que “ladoMenor1” y “ladoMenor2” se refieren indistintamente a los otros dos lados, entonces:

a. Si ladoMayor ≥ladoMenor 1+ladoMenor2, entonces, no se trata de un triángulo.b. Si ladoMayor2=ladoMenor 12+ ladoMenor22, entonces, se trata de un triángulo

rectángulo.c. Si ladoMayor2>ladoMenor12+ladoMenor 22, entonces, se trata de un triángulo

obtusángulo.d. Si ladoMayor2<ladoMenor12+ladoMenor 22, entonces, se trata de un triángulo

acutángulo.

(Nivel 3)

33. Los reglamentos de pesca de Chetumal imponen un límite mínimo al peso de los peces capturados por medio del anzuelo así como una indicación sobre las especies que pueden ser capturadas. Supóngase que se planea llevar una computadora portátil en la siguiente salida de pesca realizada por “Alex”. Para esa salida, desea contar con un programa que señale el requerimiento de devolver el pescado al mar cuando su peso sea inferior a un kilogramo. Así mismo “Alex” desea que el programa le señale la cantidad y el peso de los peces atrapados de

18

Page 19: Ejercicios de Programación

de “mero”, “pargo”, “rubia” y “palometa”. Por último, quiere que si el pez atrapado no pertenece a una de esas especies el programa le indique que debe devolverlo al mar para no tener problemas de índole legal. Observación, no se sabe cuántos peces capturará “Alex”.

(Nivel 4)

34. La criba de Eratóstenes, renombrado astrónomo y geógrafo griego del siglo III antes de Cristo, es una técnica para generar números primos. Se comienza escribiendo todos los enteros impares de 3 hasta N. En seguida, se elimina cada tercer elemento después de 3, cada quinto elemento después de 5, hasta que los múltiplos de todos los enteros impares menores que

√N hayan sido eliminados. Los enteros que quedan constituyen la lista exacta de los números primos entre 3 y N. Diséñese un algoritmo para generar los números primos entre 3 y 1 000, utilizando la técnica de la criba.

(Nivel 5)

35. El Instituto Tecnológico de Chetumal está realizando una entrevista a los alumnos aspirantes a estudiar Ingeniería en Tecnologías de la Información y Comunicaciones e Ingeniería en Sistemas Computacionales. Entre los datos que se recolectan con la entrevista se encuentran:

a. Nombre del alumnob. Edadc. Sexod. Si les gustan las matemáticas o noe. Carrera elegida

Con esa información, la Institución genera un reporte que proporciona la siguiente información:

a. El porcentaje de hombres y mujeres que están solicitando entrar a cada carrerab. El porcentaje de hombres y mujeres de cada carrera que gustan de las matemáticasc. La edad máxima y mínima de los aspirantes de cada carrerad. El porcentaje de alumnos que no les gusta matemáticas en cada uno de los siguientes

rangos de edades:i. Menor a 18 años

ii. Entre 18 y 20 años inclusiveiii. Entre 21 y 23 años inclusiveiv. Entre 23 y 25 años inclusivev. Más de 25 años

Elabora un programa que capture los datos de los alumnos y genere el reporte deseado por la Institución.

(Nivel 5)

19

Page 20: Ejercicios de Programación

36. Sean “nombre” y “sexo” dos vectores que contienen el nombre y el sexo de cada uno de los miembros de un club juvenil. Masculino y femenino se denotan mediante “M” y “F”, respectivamente. Elabórese un programa que genere dos vectores nuevos, llamados “hombres” y “mujeres”, de tal forma que “hombres” contenga los nombres de todos los varones en orden alfabético y “mujeres” los nombres de todas las mujeres, también, en orden alfabético.

(Nivel 2)

37. El municipio de Othón Pompeyo Blanco, Quintana Roo, está actualizando su registro catastral con la finalidad de obtener mayores ingresos por concepto de impuestos catastral. Para ello, ha comenzado a trabajar en la ciudad de Chetumal y sus alrededores, haciendo que un grupo de empleados visiten los predios de las colonias. Por cada predio, un empleado recaba la siguiente información:

a. Número de colonia, que puede estar entre (1 y 100)b. Tipo de predio, puede ser urbano, sub-urbano y rústico.c. Superficie en metros cuadrados.d. Situación del predio, que puede ser baldío o habitado.

Con estos datos, la Dirección de Catastro desea establecer lo siguiente:

a. Número de terrenos promedios por colonia.b. Superficie promedio de los terrenos en cada colonia.c. Número de terrenos baldíos en cada una de las colonias.d. Número de terrenos urbanos, sub-urbanos y rústicos en Chetumal.e. Las 5 colonias con mayor número de terrenos baldíos.

(Nivel 5)

38. Los líderes de los sindicatos de los taxistas de Chetumal y de Majahual se han dado cuenta que algunos de sus agremiados pertenecen a ambas organizaciones. Debido a que están en pugna por el control del territorio, han decidido realizar, por separado, una reunión secreta excluyendo a los agremiados que forman parte de ellas dos. Elabora un programa que realice la siguiente tarea:

a. Leer, por separado, las listas de nombres de los agremiados de cada organización.

b. Ordenar alfabéticamente cada lista de nombres.

c. Generar una lista alfabética de los nombres de los agremiados de cada organización que asistirán a la reunión secreta de su sindicato.

20

Page 21: Ejercicios de Programación

Es importante observar que no se tiene el dato de cuántos agremiados existen en cada sindicato.

(Nivel 5)

39. El Instituto Tecnológico de Chetumal las siguientes carreras en la ciudad de Chetumal:

a. Licenciatura en Administración de Empresasb. Ingeniería en Gestión Empresarialc. Ingeniería Administrativad. Ingeniería en Tecnologías de la Información y Comunicacionese. Ingeniería en Sistemas Computacionalesf. Licenciatura en Biologíag. Licenciatura en Contaduríah. Ingeniería Eléctricai. Ingeniería Civilj. Arquitectura

Michel ha decido hacer un censo de los estudiantes, preguntando a cada uno de ellos lo siguiente:

a. Carrera que estudiab. Sexoc. Semestre

Con estos datos desea establecer lo siguiente:

a. El número de alumnos por semestre y carrerab. El número de hombres y mujeres por carrera

Es importante observar que un alumno puede estudiar una carrera hasta en 12 semestres. También, es de interés saber que hay alrededor de 2700 alumnos en el Instituto Tecnológico.

(Nivel 5)

40. Estudiantes procedentes de instituciones de educación media superior de Quintana Roo van a presentar el Examen Nacional de Ingreso a la Educación Superior para estudiar alguna de las carreras ofertadas por el Instituto Tecnológico de Chetumal. Después de que presenten este examen, las autoridades académicas de esta Institución imprimen una lista que indican los resultados de cada uno de ellos. Por tal motivo, se te pide elaborar un programa que solicite lo siguiente por cada estudiante:

a. El número de matrícula (un número entero no mayor a 2000).

b. La escuela de procedencia (un numero entero no mayor a 50).

21

Page 22: Ejercicios de Programación

c. La calificación obtenida.

Después de lo anterior, el programa deberá elaborar una lista ordenada por escuela, donde aparezcan el número de la escuela, la matrícula del estudiante y la calificación obtenida. Los estudiantes deben aparecer en cada escuela ordenados descendentemente por calificación.

(Nivel 5).

41. Dada una matriz “calificaciones”, cuyos elementos “calificaciones[I, J]” contienen la j-ésima calificación del I-ésimo estudiante y un factor de ponderación “peso”, cuyo elemento “peso[j]” denota la ponderación correspondiente al j-ésimo problema de un examen, formúlese un programa que establezca niveles entre los estudiantes. Los niveles deben registrarse en un vector llamado “categoria”, de tal forma que “categoria[i]” indique la posición del I-ésimo estudiante de la clase. EL algoritmo debe leer los datos de entrada para “N” estudiantes y “M” problema. Por ejemplo, las siguientes formaciones contienen la calificación, los problemas y la información del nivel de un curso compuesto de cinco estudiantes y de un examen de tres problemas. En este ejemplo, el promedio del primer estudiante es:

3x 65+2 x80+1x 856

=73.3

Con lo cual este estudiante se clasifica en cuarto lugar en el curso de cinco asistentes.

“peso”

3 2 1

“calificaciones” “categoria”

65 80 85 480 60 90 375 50 50 5

100 50 75 2100 80 70 1

Nivel 5.

42. Penny Programmer está descontenta con su rendimiento en la clase de Ciencias de la Computación. En su primer programa cometió un error; en el segundo, cometió; en el tercero 4; y así sucesivamente. Resulta que siempre comete el doble de errores en cada nuevo programa que hace. La clase dura trece semanas y se deben realizar dos programas por semana. Diséñese un programa que calcule el número de errores que Penny debe esperar que se presenten en su programa final, si mantiene la misma tendencia en su rendimiento.

Nivel 1

22

Page 23: Ejercicios de Programación

43. Diséñese un algoritmo para calcular la suma de los siguientes 100 términos de la serie:

1−12+ 14−16+ 18− 110

+ 112

−…

Nivel 2

44. El antiguo filósofo griego Zenón es posiblemente mejor conocido por su paradoja de Aquiles y la tortuga. Ésta consiste en que ambos disputan una carrera en la que Aquiles corre 10 veces más rápidamente que la tortuga, pero, ésta se encuentra 100 metros más adelante. En la paradoja, se supone que Aquiles nunca alcanzará a su contrincante puesto que cada vez que éste llegue al punto en que la tortuga estaba, ésta se habrá movida una cierta distancia. Diséñese un programa para determinar el tiempo que tarda Aquiles en sobrepasar, de hecho, a la tortuga.

Nivel 2

45. Manny Motorist acaba de regresar de una reciente gira automovilística. En cada parada para cargar combustible apuntó la lectura del odómetro y la cantidad de combustible comprado, supóngase que en cada ocasión llenó el tanque. Además supóngase que cargó combustible inmediatamente antes de iniciar el viaje e inmediatamente después de regresar, tomando la lectura del odómetro en ambos casos. Diséñese un programa para leer primero el número total de paradas que efectuó (incluyendo la inicial y la última) y que enseguida lea los datos relativos al odómetro y el combustible , calculando posteriormente:

a. El rendimiento alcanzado en kilómetros por litro entre cada par de detenciones.b. El rendimiento alcanzado en kilómetros por litro durante la totalidad del viaje.

Nivel 2

46. Cada equipo de la liga canadiense de fútbol tiene un cuadro de 33 jugadores. Supóngase que cada equipo de la liga prepara una hoja para cada uno de sus jugadores, que contiene los siguientes datos:

a. Nombre del jugador

b. Peso

c. Edad

Los datos correspondientes a los nueve equipos de la liga se recolectan y se envían a la sede central para su análisis. Se prepara un solo paquete con los datos contenidos en las hojas de cada equipo individualmente; es decir, las primeras 33 hojas son del equipo 1, las siguientes 33 son del equipo 2 y así sucesivamente. Diséñese un programa para leer el paquete de hojas y para calcular los siguientes valores estadísticos:

23

Page 24: Ejercicios de Programación

a. Pesos y edades promedios de cada uno de los nueve equiposb. Peso y edad promedio de todos los jugadores

Nivel 4

47. Considerando el promedio alcanzado en el semestre, a los alumnos de Programación se les aplica un examen final con un nivel sugerido de dificultad. La decisión sobre la sugerencia está sustentada en el siguiente criterio:

Promedio del alumno Nivel de dificultad>= 95 Nivel 5[90, 95> Nivel 4[85, 90> Nivel 3[80, 85> Nivel 2[70, 80> Nivel 1

Dado lo anterior, el maestro de esta asignatura ha elaborado una relación que consta de 30 exámenes diferentes por cada nivel de dificultad. Él desea que escribas un programa que le solicite los siguientes datos:

a. Nombre del alumnob. Promedio

Con esos datos, el programa deberá determinar el nivel de dificultad sugerido para el examen final del alumno. Una vez que ha realizado lo anterior, tendrá que seleccionar el número de examen dentro del nivel que le corresponde al alumno, evitando que dos o más alumnos presenten el mismo examen. Sólo en el caso de que haya más alumnos que exámenes disponibles en un nivel se podrá aceptar que dos alumnos tengan el mismo examen. Un grupo consta de no más de 40 alumnos. No se sabe cuántos alumnos tiene el maestro de la asignatura de programación.

Al final, el programa deberá emitir los siguientes resultados:

a. Una lista que contenga el nombre del alumno, el nivel de dificultad sugerido para su examen y el número de examen que le corresponde dentro de ese nivel.

b. Una relación que contenga el nivel de dificultad y el número de alumnos que tendrán un examen con ese grado de dificultad.

Nivel 5

48. El estado de Quintana Roo otorga una compensación a sus trabajadores, considerando el nivel salarial que éstos poseen. Para ello, se basa en la siguiente tabla de criterios:

Salario quincenal del trabajador

Monto de la compensación

24

Page 25: Ejercicios de Programación

[$0.0, $2 000> $2,500[$2,000, $ 4 500] 2,000<$ 4 500, $8 000] 1,500> $8 000 1,000

Diséñese un programa que solicite el nombre y el salario de cada uno de los trabajadores, para que posteriormente realice lo siguiente:

a. Emita una relación que contenga el nombre del trabajador, su salario actual y el monto de la compensación que le corresponde.

b. Imprima los montos totales del salario y las compensaciones.

Nivel 2

49. Los catedráticos del Departamento de Sistemas y Computación del Instituto Tecnológico de Chetumal y los alumnos han desarrollado una actividad que les ha permitido recabar fondos para mejorar sus instalaciones. En una reunión entre dos representantes de los catedráticos y dos representantes de los alumnos se llegó a la conclusión que las necesidades más apremiantes eran las siguientes:

a. Adecuar aulas para que los alumnos usen en ellas, cómodamente, las computadoras portátiles.

b. Atender las necesidades de equipo y accesorios requeridos para los laboratorios de las áreas de telecomunicaciones, electrónica e instrumentación.

c. Atender las necesidades de equipos de aire acondicionado.

Dado que los recursos económicos disponibles son menores a los necesitados y a que cada quién tenía un criterio diferente para la asignación, acordaron emplear el proceso de análisis jerárquico (APH, por sus siglas en inglés). Este proceso se basa en una escala, ver la tabla 01, para establecer el nivel de importancia de una necesidad con relación a otra.

Tabla 01. Escala de comparaciónConsideración Valor a asignar

Igualmente importante 1Un poco más importante 3Medianamente más importante 5Bastante más importante 7Abrumadoramente más importante 9

Una vez identificada la escala de comparación, se califican las necesidades comparándolas entre sí. Para poder hacer la comparación entre todas las necesidades, se elabora una matriz con ellas, tal y como se muestra a continuación:

Adecuación de aulasNecesidades de

laboratoriosEquipos de aire acondicionado

25

Page 26: Ejercicios de Programación

Adecuación de aulasNecesidades de laboratoriosEquipos de aires acondicionados

Para llenar esta tabla, se procede a recorrerla renglón por renglón. La necesidad expresada por cada renglón es comparada con la necesidad expresada por cada columna. Por ejemplo, uno de los catedráticos podría opinado que “adecuación de aulas” es un poco más importante que las necesidades de los laboratorios, pero, que los equipos de aire acondicionado son medianamente más importantes que ésta. Entonces, el primer renglón de la matriz para ese catedrático quedaría de la manera siguiente:

26

Page 27: Ejercicios de Programación

Tabla 02.- Tabla de comparación de necesidades con celdas por encima de la diagonal principal con sus valores respectivos, considerando la escala de comparación.

Adecuación de aulasNecesidades de

laboratoriosEquipos de aire acondicionado

Adecuación de aulas 1 3 1/5Necesidades de laboratorios

1 3

Equipos de aires acondicionados

1

Para el renglón 2, el mismo catedrático podría opinar que las “necesidades de los laboratorios” son ligeramente más importantes que los “equipos de aire acondicionado”. Lógico que cuando se compara una necesidad consigo misma, entonces, su nivel de importancia es igual a 1. Por eso mismo, en la diagonal de esta tabla siempre aparecerán unos.

Como puede observarse, sólo se han llenado las celdas que se encuentran por encima de la diagonal de la tabla. Para llenar aquellas celdas que se encuentran debajo de la diagonal, se emplea el valor inverso del elemento simétrico de la tabla (en matemáticas se diría mediante

la siguiente fórmula a j ,i=1ai , j

¿. Por ejemplo, La comparación de “necesidades de

laboratorio” con “adecuación aulas” sería igual a “1/3”, debido a que la comparación de “adecuación aulas” con “necesidades de laboratorio” es igual a 3. Por lo tanto, la tabla completamente llena quedaría como sigue:

Tabla 02.- Tabla de comparación de necesidades con celdas por encima de la diagonal principal con sus valores respectivos, considerando la escala de comparación.

Adecuación de aulasNecesidades de

laboratoriosEquipos de aire acondicionado

Adecuación de aulas 1 3 1/5Necesidades de laboratorios

1/3 1 3

Equipos de aires acondicionados

1/5 1/3 1

Como tercer paso, la tabla o matriz generada se multiplica por sí misma, quedando como sigue:

Tabla 02.- Tabla de comparación de necesidades con celdas por encima de la diagonal principal con sus valores respectivos, considerando la escala de comparación.

Adecuación de aulasNecesidades de

laboratoriosEquipos de aire acondicionado

Adecuación de aulas 2.0400 6.0667 9.4000Necesidades de laboratorios

1.2667 3.000 6.0667

Equipos de aires acondicionados

0.5111 1.2667 2.0400

Seguidamente, cada renglón es sumado y normalizado, tal y como se muestra en la tabla 03.

27

Page 28: Ejercicios de Programación

28

Page 29: Ejercicios de Programación

Necesidad Suma Normalización ResultadosAdecuación de aulas 2.0400 + 6.0667 + 9.4000 4.2000 4.2000/10.0667 0.4172Necesidades de laboratorios

1.2667 + 3.0000 + 6.0667 4.3333 4.3333/10.0667 0.4305

Equipos de aire acondicionado

0.5111 + 1.2667 + 2.0400 1.5333 1.5333/10.0667 0.1523

Total 10.0667 1.0000

Ahora, se ha obtenido la importancia de las necesidades, expresada en valores decimales, que el catedrático ha establecido con los criterios que aplicó.

Para obtener la ponderación final, los resultados de los cuatro participantes se promedian. Los resultados promediados indicarían la proporción de los recursos económicos disponibles que serían asignados a las necesidades.

Se te pide elaborar un programa que solicite las necesidades que serán evaluadas, el número de los participantes, el monto de los recursos económicos disponibles y la calificación que cada participante proporciona a una necesidad con relación a las otras. Al final, el programa deberá indicar los resultados promedios de ponderación de cada necesidad y el monto de dinero que se sugiere que se destine a cada necesidad.

Nivel: calificación 100 en la materia.

50. La Coordinación de Tutorías del Instituto Tecnológico de Chetumal está encuestando a los alumnos de primero y segundo semestre que han desertado de sus materias. El interés es identificar las causas principales de deserción entre ellos. Por tal motivo, procedió a recabar la siguiente información de cada alumno:

a. Nombreb. Año de nacimientoc. Carrerad. Sexoe. Motivo de la deserción

Las carreras ofrecidas en esta Institución son las siguientes:

a. Licenciatura en Administración de Empresasb. Ingeniería en Gestión Empresarialc. Ingeniería Administrativad. Ingeniería en Tecnologías de la Información y Comunicacionese. Ingeniería en Sistemas Computacionalesf. Licenciatura en Biologíag. Licenciatura en Contaduría

29

Page 30: Ejercicios de Programación

h. Ingeniería Eléctricai. Ingeniería Civilj. Arquitectura

Así mismo, los motivos por los cuales un alumno abandona una materia son los siguientes:

a. Inasistencias a clasesb. No entiende al maestroc. Trabajod. Enfermedad del alumnoe. Enfermedad de familiares cercanosf. No le interesag. La materia es difícilh. Horario inadecuado

El Coordinador de Tutorías desea que se haga un programa para lo siguiente:

a. El porcentaje de alumnos que desertó de sus materias en cada carrerab. El porcentaje de deserción por el siguiente rango de edades:

i. Edad < 18ii. 18 <= Edad <= 20

iii. 21 <= Edad <= 22iv. Edad >= 23

c. El porcentaje de deserción por motivo

Nivel 5

30