Está en la página 1de 42

1

Universidad Autnoma de la Ciudad de Mxico


Nada humano me es ajeno

Ejercicios de algoritmos
SENCILLOS
1) Dada una ecuacin de segundo grado, calcula sus races. Observa que usaste
variables. Desde hace mucho tiempo aprendiste a usarlas.
2) Pedro compr carritos a $8.00 y los vendi a $12.00. Cul es su porcentaje de
ganancia?
3) Pedro compr carritos a p pesos y los vendi a q pesos. Cul es su porcentaje
de ganancia?
4) Si un pastel y medio cuesta $150.00, cunto valdrn 3 pasteles y medio?
5) Si 5 revistas de automviles cuestan $85, cunto costarn 9 revistas?
6) Mara tarda 5 minutos en ir a de su casa al colegio en bicicleta a una media de 6
km/hora. Cunto tardar cuando va andando si su velocidad es de 4 km/h?
7) Si el tiempo empleado por 7 trabajadores en limpiar una calle es de 7 horas,
cunto tardar un grupo de 5 trabajadores?
8) La edad de Juan es el doble que la de Pepe y la edad de Pepe es el triple que la
de Antonio, si entre todos ellos suman 30 aos, cul es la edad de Antonio?
9) En la cocina de un comedor universitario han pagado $420 por 70 barras de pan.
Cunto tendra que pagar si hubieran comprado 45 barras?
10) El precio de 15 menes del da en un restaurante ha sido $1200. Si van a comer 7
personas, cunto pagarn en total?, cunto vale el men del da?
11) Una llave vierte 6 litros por minuto y tarda 5 horas en llenar una baera. Si vertiese
10 litros por minuto, cunto tardara?
12) Un coche gasta $4.60 cada 4 km en gasolina. Cunto costar el combustible en
un viaje de 270 km si mantiene el mismo consumo?
13) Un rbol de 2.25 m de altura da una sombra de 2 m. Qu altura tendr una torre
que, a la misma hora, da una sombra de 188.20 m?, qu longitud tendr la
sombra de Luis, que mide 1.80 metros?.

Introduccin a la Programacin

Alfonso San Miguel Aguirre

2
14) Un nmero ms su doble suman 210, cul es ese nmero?
15) Un edificio es pintado por 12 obreros en 15 das. Cuntos das emplearn 20
obreros en pintar el mismo edificio?
16) Para construir una alberca, 10 obreros trabajan 16 das. Cuntos obreros
trabajaron en su construccin si el nmero de das empleado fue 40?
17) Perla quiere comprar un CD que cuesta $150.00, pero se entera de que en la
tienda de discos hay un descuento del 20%. Cunto deber pagar por el CD?
18) Perla quiere comprar un CD que cuesta p pesos, pero se entera de que en la
tienda de discos hay un descuento del d por ciento. Cunto deber pagar por el
CD?
19) Imagina un viaje a un pueblo que se localiza a 90 km de donde t ests. Vas a una
velocidad de 45 km/h y regresas a 90 km/h. Cul es el promedio de la velocidad
del viaje redondo?
20) Elabora un diagrama de flujo que lea dos valores numricos a y b y que los escriba
en orden ascendente.
21) (Desglose de IVA) Dado el importe de una compra que incluye el IVA, se desea
saber el monto del IVA y el importe de la venta sin IVA.
22) Un vendedor ambulante se propuso vender una cesta de 115 peras a $10.00 cada
montn de 5 peras. Ya en la venta cambi de opinin e hizo un montn con las 58
peras ms grandes y otro con ls 57 peras ms chicas. Las grandes las vendi a
$5.00 cada montn de 2 peras, las pequeas a $5.00 cada montn de 3 peras.
Le convino el cambio de venta?, s, no, por qu?
23) (Telmex) El cargo por llamadas locales es de $156.55 ms IVA e incluye 100
llamadas. Cada llamada adicional tiene un costo de $1.48 cada una ms IVA.
Elabora un diagrama de flujo que dado el nmero de llamadas realizado, calcule y
escriba el total a pagar.
24) Dados dos puntos (x1, y1), (x2, y2) en el plano, calcular la distancia entre ellos (son
4 datos). Recuerda que la distancia est dada por la frmula:

25) Dos puntos (x1, y1), (x2, y2) en el plano determinan una recta, dado un valor x
determinar el valor de y de tal manera que el punto (x, y) se encuentre en la recta
determinada por los puntos (x1, y1) y (x2, y2) (son 5 datos).

Introduccin a la Programacin

Alfonso San Miguel Aguirre

3
26) (Crdito hipotecario) En cierto banco, una persona es sujeta de un crdito
hipotecario si su salario es al menos de $10000 o si tiene una antigedad laboral
de al menos 10 aos. Si este es el caso, el banco presta 2 aos de salario, con
$400,000 como mximo. Decir si una persona es sujeta de crdito o no y, en el
primer caso, decir el monto del prstamo otorgado por el banco.
27) Dada la funcin f(x) = ax2 + bx + c = 0 elabora un diagrama de flujo que lea como
datos los coeficientes a, b y c, y que escriba el valor de x en donde la funcin f
toma un mnimo.
28) (Cajero automtico) Supongamos que un cajero automtico cuenta con billetes de
las denominaciones: $500, $200, $100 y $50. Dada una cierta cantidad en pesos,
el problema consiste en determinar cules billetes el cajero debe entregar, de tal
manera que el nmero de billetes entregados sea mnimo. As por ejemplo, si la
cantidad solicitada es $3850, el diagrama debe indicar que se entregan:
7 billetes de $500
1 billetes de $200
1 billetes de $100
1 billetes de $50
29) Elabora un diagrama de flujo que lea dos valores numricos a y b y que escriba el
mayor de ellos.
30) (Costo de agua) Determina el pago a realizar en un hogar por concepto de
consumo de agua con las siguientes tres reglas de negocio:
a) Si el consumo es menor a 20 metros cbicos se paga una cuota fija de $25,
b) Los siguientes 30 metros cbicos se pagan a $2.50 cada metro,
c) Todos los siguientes se pagan a $4.50 por metro cbico.
31) (Costo de una llamada telefnica) Determina el costo de una llamada telefnica
con las siguientes dos reglas de negocio:
a) Toda llamada de a lo ms 3 minutos de duracin cuesta $2.00
b) Cada minuto adicional cuesta $1.50
32) (Movistar Pagamenos) Movistar pagamenos, con el que tus llamadas cortas se
cobran por minuto y si se alargan, se cobran por llamada.
(11/nov/07)
a) Cobro por minuto: los 2 primeros de una llamada, a $2.75 por minuto.
b) $5.75 por llamada, en bloques de 30 minutos. (IVA incluido.)

33) (Amigo Combinado) La llamada corta se cobra por minuto y la larga por llamada.
(21/ene/08) (IVA incluido.)
c) Los primeros2 minutos se cobran a $2.88 cada minuto o fraccin.
d) A partir del minuto 2:01 se cobra por llamada, $5.75 por cada 20 minutos o
fraccin.
Introduccin a la Programacin

Alfonso San Miguel Aguirre

34) (reas) Elabora diagramas de flujo para calcular el rea de un:


a) Cuadrado
b) Rectngulo
c) Tringulo
d) Crculo
e) Cilindro
35) (rea de un tringulo) En el ejercicio anterior (c) supusiste que los datos eran la
base y la altura. El propsito de este problema es calcular nuevamente el rea de
un tringulo pero ahora conociendo la longitud de sus tres lados. Cmo se
calcula en este caso el rea? La frmula es:
donde a, b, c son las longitudes de los tres lados y s es igual al permetro del
tringulo dividido entre dos, es decir,

36) (Volmenes) Elabora diagramas de flujo para calcular el volumen de un:


a) Cubo
b) Paraleleppedo rectngulo
c) Cilindro.
d) Esfera:
e) Cono:
37) Una empresa desea conocer el monto de comisin correspondiente a una venta
realizada por un vendedor bajo las siguientes condiciones. Si la venta es menor a
$1,000.00, se le otorga el 3% de comisin. Si la venta es de $1,000.00 o ms, el
vendedor recibe el 5% de comisin.
38) Elabora un diagrama de flujo que dados tres puntos en el plano encuentre el
crculo que pasa por ellos. Este crculo debe especificarse dando las coordenadas
de su centro y su radio. Una vez encontrado este crculo y dado un punto (x, y) en
el plano, tu algoritmo debe decir la distancia de este punto al punto ms cercano al
crculo anteriormente encontrado.
39) Una agencia automotriz ofrece planes de crdito para la adquisicin de los
diferentes modelos de automviles. Si el automvil vale ms de $250,000.00 la
agencia solicita un 35% de enganche y el resto debe cubrirse en 24
mensualidades sin intereses. Si el automvil tiene un valor mximo de
$250,000.00 se requiere un enganche del 25% y el resto se debe pagar en 18
mensualidades sin intereses. La agencia desea saber, en base al precio de un
automvil que un determinado cliente elija, cul es el monto del enganche; y cul
es el nmero y el monto de las mensualidades que ste debe cubrir.
40) Dado el sueldo de un empleado, determinar su aumento en base a los siguientes
criterios:
Introduccin a la Programacin

Alfonso San Miguel Aguirre

5
7% si el sueldo es inferior a $5,000,
5% si el sueldo est entre $5,000 y $15,000,
4% si el sueldo es superior a $15,000.
41) Dado un sistema de ecuaciones lineales:
ax + by = c
dx + ey = f
Elabora un diagrama de flujo que lea dos conjuntos de coeficientes (a, b, y c; d, e,
y f) y encuentra los valores de x, y que resuelven el sistema.
42) Una persona recibe un prstamo de $10,000.00 de un banco y desea saber cunto
pagar de inters al terminar el mes si el banco le cobra una tasa del 2% mensual.
a) Resuelve este caso particular.
b) Generaliza este problema para un monto cualquiera de capital y para una tasa
cualquiera.
43) Disea un diagrama de flujo que lea un entero y diga:
Si es par o no.
Si es par, o mltiplo de 3, o mltiplo de 5.
Si es par, o mltiplo de 3, o mltiplo de 4.
44) Escribe un programa que lea las longitudes de los lados de un tringulo y que
determine el tipo de tringulo que es: equiltero, issceles o escaleno.
45) Una pizzera vende cuatro tamaos de pizzas (1=personal, 2=chica, 3=mediana y
4=grande). Para realizar una venta se requieren saber tanto el tamao de la pizza
como el nmero de ingredientes extra que lleva. Los precios de las pizzas son:
personal: $25, chica: $50, mediana: $70 y grande: $100. Los ingredientes cuestan
$10 cada uno. Adems, el tiempo de entrega de las pizzas es de 20 minutos, a
menos que sea una pizza grande o que tenga ms de 3 ingredientes, en cuyo
caso el tiempo de entrega es de 30 minutos. Escribe un diagrama de flujo que
dado el tamao de una pizza y el nmero de ingredientes extra calcule e imprima
el precio a pagar y el tiempo de entrega de la pizza.
(ref.: http://staff.unak.is/not/andy/JavaNotes/cs151java.html)
46) (Precios con descuento) Durante una venta especial en una tienda, se otorga un
10% de descuento a las compras de ms de $150.00. Escribe un algoritmo que
dado el importe de la compra, calcule el precio con descuento.
47) (Verificador de rdenes) Los precios en una tlapalera son los siguientes:

50 centavos por tornillo

30 centavos por tuerca

10 centavos por rondana


Introduccin a la Programacin

Alfonso San Miguel Aguirre

6
Escribe un algoritmo que dado el nmero de tornillos, tuercas y rondanas en una
compra, calcule e imprima la cuenta. Como una caracterstica extra, el programa
verifica la orden. Es generalmente un error si hay ms tornillos que tuercas. En
este caso el algoritmo escribe "Verifica la orden". De otro modo el algoritmo
escribe "La orden est bien". En cualquier caso el precio total es escrito.
48) (Gasolinera) Una gasolinera se encuentra en una ruta del desierto. No hay
ninguna otra gasolinera en 300 km a la redonda. Debes escribir un algoritmo para
ayudar a que los conductores decidan si necesitan gasolina. El algoritmo lee:

La capacidad del depsito de gasolina, en litros

El indicador del nivel de gasolina, en porcentaje (lleno = 100, tres cuartos =


75, etctera)

Los kilmetros por litro que consume el coche.


El algoritmo entonces escribe "Carga gasolina" o "Seguro avanzar" dependiendo
de si el coche puede cruzar los 300 kilmetros con la gasolina que queda en el
tanque.
49) (Concurso de comer pasteles) En el concurso de comer pasteles de la feria del
pueblo todos los concursantes deben pesar entre 30 y 90 kilogramos. Escribe un
algoritmo que pida el peso del concursante y diga si el concursante es admitido en
el concurso o no.
50) (Calculadora de edades) Escribe un algoritmo que tenga como datos el ao de
nacimiento de una persona, codificado como dos dgitos (como 62), as como el
ao actual, tambin codificado en dos dgitos (como 08). El problema es calcular
la edad del usuario. (Nota: se supone que el programa no calcula edades mayores
a 100 aos y no se toman en cuenta mes ni da.) Ejemplos:
Ao nacimiento
62
01

Ao actual
08
08

Edad
46
7

51) (Eficiencia de un motor) La eficiencia mxima de un motor de vapor depende de la


temperatura del vapor en la caldera y de la temperatura del aire del exterior, y est
dada por la siguiente frmula:
eficiencia = 1 Temperatura del aire / Temperatura del vapor
Las temperaturas miden los grados sobre el cero absoluto. Normalmente, la
temperatura del aire es cercana a 300oK. El agua hierve a 373oK. Escribe un
algoritmo que lea la temperatura area y la temperatura del vapor y que escriba la
eficiencia posible mxima de un motor de vapor. Sin embargo, si la temperatura
del vapor es menor a 373oK no hay vapor, as que la eficiencia es cero.

Introduccin a la Programacin

Alfonso San Miguel Aguirre

7
52) (Microondas) Un fabricante de hornos de microondas recomienda que cuando se
calienten dos artculos, se aumente un 50% el tiempo de coccin, y al calentar tres
artculos se duplique el tiempo de coccin. La coccin de ms de tres artculos al
mismo tiempo no es recomendada. Escribe un algoritmo que lea el nmero de
artculos a calentar y el tiempo de coccin de cada artculo. El algoritmo entonces
escribe el tiempo de coccin recomendado.
Sugerencia: haz esto con cuatro instrucciones de decisin, cada una verifica uno
de los posibles cuatro casos: 1, 2, 3 o ms artculos.
53) (Juego de roles) En un nuevo juego de roles, los jugadores disean su carcter
escogiendo un valor para cada una de tres caractersticas:

Fuerza, de 1 a 10

Salud, de 1 a 10

Suerte, de 1 a 10
Escribe un algoritmo que pida el puntaje de cada una de las tres caractersticas.
Sin embargo, los puntos totales deben ser a lo ms 15. Si la suma excede 15,
entonces 5 puntos son asignados a cada caracterstica. Ejemplo:
Bienvenido a la Bsqueda
fuerza (1-10)? 8
salud (1-10)? 4
suerte (1-10)? 6
Demasiados puntos! Se han asignado los valores por omisin:
fuerza: 5, salud: 5, suerte: 5
(ref.: http://www.ganimides.ucm.cl/haraya/inicio.htm)
54) (Balanza en equilibrio) Una balanza se encuentra en equilibrio cuando el producto
de la carga aplicada sobre el brazo derecho por la longitud de este brazo, es igual
al producto de la carga aplicada sobre el brazo izquierdo por la longitud de este
otro brazo. Determinar si una balanza se encuentra en equilibrio si (hacer un
dibujo como ayuda para entender el problema):

La longitud del brazo izquierdo es 3 m, la del derecho es 2 m, la carga


aplicada al brazo izquierdo es 5 Kg y la carga aplicada al derecho es 7 Kg.

La longitud del brazo izquierdo es 4 m, la del derecho es 2 m, la carga


aplicada al brazo izquierdo es 4 Kg y la carga aplicada al derecho es 4 Kg.

Desarrollar un algoritmo que sirva para cualquier conjunto de valores para


las longitudes de los brazos y las cargas aplicadas.
55) Determinar si un punto est dentro de un crculo. Datos?

Introduccin a la Programacin

Alfonso San Miguel Aguirre

8
56) Un hombre desea saber cuanto dinero se genera por concepto de intereses sobre
la cantidad que tiene en una inversin en el banco. l decidir reinvertir los
intereses siempre y cuando stos excedan $7000. Datos?
57) Determina si un estudiante obtiene la certificacin o no de un curso, sabiendo que
la obtiene si el promedio de sus tres calificaciones es mayor o igual a 70; no la
obtiene en caso contrario.
58) En un almacn se hace un 20% de descuento a los clientes cuya compra supere
los $1000 Cul ser la cantidad que pagar una persona por su compra?
59) Un obrero necesita calcular su salario semanal, el cual se obtiene de la siguiente
manera:
Si trabaja 40 horas o menos se le paga $16 por hora
Si trabaja ms de 40 horas se le paga $16 por cada una de las primeras 40 horas
y $20 por cada hora extra.
60) Haga un algoritmo que calcule el total a pagar por la compra de camisas. Si se
compran tres camisas o ms se aplica un descuento del 20% sobre el total de la
compra y si son menos de tres camisas un descuento del 10%. El precio de una
camisa es de $150.00
61) Calcula el total que una persona debe pagar en una llantera. El precio de cada
llanta es de $800 si se compran menos de 5 llantas y de $700 si se compran 5 o
ms.
62) Calcula el nmero de pulsaciones que debe tener una persona por cada 10
segundos de ejercicio aerbico; la frmula que se aplica cuando el sexo es
femenino es:
a.
nmero pulsaciones = (220 - edad)/10
y si el sexo es masculino:
b.
nmero pulsaciones = (210 - edad)/10
Datos?
63) Una compaa de seguros est abriendo un departamento de finanzas y ha
establecido un programa para captar clientes que consiste en lo siguiente: si el
monto por el que se efecta la fianza es menor que $50,000 la cuota a pagar ser
por el 3% del monto mientras que si el monto es mayor que $50,000 la cuota a
pagar ser el 2% del monto. La afianzadora desea determinar cual ser la cuota
que debe pagar un cliente.
64) En una escuela la colegiatura de los alumnos se determina segn el nmero de
materias que cursan. El costo de todas las materias es el mismo. Se ha
establecido un programa para estimular a los alumnos, el cual consiste en lo
Introduccin a la Programacin

Alfonso San Miguel Aguirre

9
siguiente: si el promedio obtenido por un alumno en el ltimo periodo es mayor o
igual que 9, se le har un descuento del 30% sobre la colegiatura y no se le
cobrar IVA; si el promedio obtenido es menor que 9 deber pagar la colegiatura
completa, la cual incluye el IVA. Obtener cuanto debe pagar un alumno, datos?
65) Una empresa de bienes races ofrece casas de inters social, bajo las siguientes
condiciones: si los ingresos del comprador son menores a $8000 el enganche ser
del 15% del costo de la casa y el resto se distribuir en pagos mensuales, a pagar
en diez aos. Si los ingresos del comprador son mayores de $8000 el enganche
ser del 30% del costo de la casa y el resto se distribuir en pagos mensuales a
pagar en 7 aos. La empresa quiere obtener cuanto debe pagar un comprador por
concepto de enganche y cuanto por cada pago parcial. Datos?
66) Una persona desea iniciar un negocio, para lo cual piensa verificar cuanto dinero
le prestar el banco por hipotecar su casa. Tiene una cuenta bancaria, pero no
quiere disponer de ella a menos que el monto por hipotecar su casa sea muy
pequeo. Si el monto de la hipoteca es menor que $1,000,000 entonces invertir el
50% de la inversin total y un socio invertir el otro 50%. Si el monto de la
hipoteca es de $ 1,000,000 o ms, entonces invertir el monto total de la hipoteca
y el resto del dinero que se necesite para cubrir la inversin total se repartir a
partes iguales entre el socio y l. Datos?
67) El gobierno del Estado de Mxico desea reforestar un bosque que mide cierto
nmero de hectreas. Si la superficie del terreno excede a 1 milln de metros
cuadrados, entonces decidir sembrar de la siguiente manera:
Porcentaje de la superficie del bosque
Tipo de rbol
a.
70%
pino
b.
20%
oyamel
c.
10%
cedro
Si la superficie del terreno es menor o igual a un milln de metros cuadrados,
entonces decidir sembrar de la siguiente manera:
Porcentaje de la superficie del bosque
Tipo de rbol
d.
50%
pino
e.
30%
oyamel
f.
20%
cedro
El gobierno desea saber el nmero de pinos, oyameles 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 oyameles y en 18 metros cuadrados caben 10
cedros. Tambin se sabe que una hectrea equivale a 10 mil metros cuadrados.
Datos?
68) Una fbrica ha sido sometida a un programa de control de contaminacin para lo
cual se efecta una revisin de los puntos IMECA generados por la fbrica. El
Introduccin a la Programacin

Alfonso San Miguel Aguirre

10
programa de control de contaminacin consiste en medir los puntos IMECA que
emite la fabrica en cinco das de una semana y si el promedio es superior a los
170 puntos entonces tendr la sancin de parar su produccin por una semana y
una multa del 50% de las ganancias diarias cuando no se detiene la produccin. Si
el promedio obtenido de puntos IMECA es de 170 o menor entonces no tendr ni
sancin ni multa. El dueo de la fbrica desea saber cuanto dinero perder
despus de ser sometido a la revisin.
69) Una persona se encuentra con un problema de comprar un automvil o un terreno,
los cuales cuestan exactamente lo mismo. Sabe que mientras el automvil se
devala, con el terreno sucede lo contrario. Esta persona comprar el automvil si
al cabo de tres aos la devaluacin de ste no es mayor que la mitad del
incremento del valor del terreno. Aydale a esta persona a determinar si debe o no
comprar el automvil.
70) Leer 2 nmeros; si son iguales que los multiplique, si el primero es mayor que el
segundo que los reste y si no que los sume.
71) Determinar la cantidad de dinero que recibir un trabajador por concepto de las
horas extras trabajadas en una empresa, sabiendo que cuando las horas de
trabajo exceden de 40, el resto se consideran horas extras y que stas se pagan al
doble de una hora normal cuando no exceden de 8; si las horas extras exceden de
8 se pagan las primeras 8 al doble de lo que se pagan las horas normales y el
resto al triple. Las hora normales se pagan a $16.00
72) Calcular la utilidad que un trabajador recibe en el reparto anual de utilidades si
sta se otorga como un porcentaje de su salario mensual dependiendo de su
antigedad en la empresa de acuerdo con la siguiente tabla:
Tiempo
Utilidad
Menos de 1 ao
5 % del salario
1 ao o ms y menos de 2 aos
7% del salario
2 aos o ms y menos de 5 aos
10% del salario
5 aos o ms y menos de 10 aos
15% del salario
10 aos o ms
20% del salario
73) En cierta tienda se efecta una promocin en la cual se hace un descuento sobre
el valor de la compra total segn el color de la bolita que el cliente saque al pagar
en caja. Si la bolita es de color blanco no se le har descuento alguno, si es verde
se le har un 10% de descuento, si es amarilla un 25%, si es azul un 50% y si es
roja un 100%. Determinar la cantidad final que el cliente deber pagar por su
compra. Se sabe que slo hay bolitas de los colores mencionados.
74) El IMSS requiere clasificar a las personas que se jubilarn en el ao de 1997.
Existen tres tipos de jubilaciones: por edad, por antigedad joven y por antigedad
Introduccin a la Programacin

Alfonso San Miguel Aguirre

11
adulta. Las personas adscritas a la jubilacin por edad deben tener 60 aos o ms
y una antigedad en su empleo de menos de 25 aos. Las personas adscritas a la
jubilacin por antigedad joven deben tener menos de 60 aos y una antigedad
en su empleo de 25 aos o ms. Las personas adscritas a la jubilacin por
antigedad adulta deben tener 60 aos o ms y una antigedad en su empleo de
25 aos o ms.
Determinar en qu tipo de jubilacin quedar adscrita una
persona.
75) En una fbrica de computadoras se planea ofrecer a los clientes un descuento
que depender del nmero 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 nmero de computadoras es mayor o igual a cinco pero menos de diez se le
otorga un 20% de descuento; y si son 10 o ms se les da un 40% de descuento. El
precio de cada computadora es de $11,000.
76) En una llantera se ha establecido una promocin de las llantas marca
Ponchadas, dicha promocin consiste en lo siguiente: si se compran menos de
cinco llantas el precio es de $300 cada una, de $250 si se compran de cinco a 10 y
de $200 si se compran ms de 10. Obtener la cantidad de dinero que una persona
tiene que pagar por cada una de las llantas que compra y la que tiene que pagar
por el total de la compra.
77) En un juego de preguntas a las que se responde Si o No gana quien responda
correctamente las tres preguntas. Si se responde mal a cualquiera de ellas ya no
se pregunta la siguiente y termina el juego. Las preguntas son:
Coln descubri Amrica?
La independencia de Mxico fue en el ao 1810?
The Doors fue un grupo de rock Americano?
78) Un proveedor de estreos ofrece un descuento del 10% sobre el precio sin IVA de
algn aparato si cuesta $2000 o ms. Adems, independientemente de esto,
ofrece un 5% de descuento si la marca es NOSY. Determinar cuanto pagar,
con IVA incluido, un cliente por la compra de su aparato.
79) Una frutera ofrece las manzanas con descuento segn la siguiente tabla:
NUM. DE KILOS COMPRADOS
% DESCUENTO
0
- 2
0%
2.01 - 5
10%
5.01 - 10
15%
10.01 en adelante
20%
Determinar cuanto pagar una persona que compre manzanas en esa frutera.
80) El dueo de una empresa desea planificar las decisiones financieras que tomar
en el siguiente ao. La manera de planificarlas depende de lo siguiente: si
Introduccin a la Programacin

Alfonso San Miguel Aguirre

12
actualmente su capital se encuentra con saldo negativo, pedir un prstamo
bancario para que su nuevo saldo sea de $10,000. Si su capital tiene actualmente
un saldo positivo pedir un prstamo bancario para tener un nuevo saldo de
$20,000, pero si su capital tiene actualmente un saldo superior a los $20,000 no
pedir ningn prstamo. Posteriormente repartir su presupuesto de la siguiente
manera.
a. $5,000 para equipo de cmputo
b. $2,000 para mobiliario
c. y del resto, la mitad ser para la compra de insumos y la otra para
otorgar incentivos al personal.
Desplegar qu cantidades se destinarn para la compra de insumos e incentivos al
personal y, en caso de que fuera necesario, a cunto ascendera la cantidad que
se pedira al banco.
81) Tomando como base los resultados obtenidos en un laboratorio de anlisis
clnicos, un mdico 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 mdico se basa para obtener el resultado es la siguiente:
a.
b.
c.
d.
e.
f.
g.
h.

EDAD
0 - 1 mes
> 1 y < = 6 meses
> 6 y < = 12 meses
> 1 y < = 5 aos
> 5 y < = 10 aos
> 10 y < = 15 aos
mujeres > 15 aos
hombres > 15 aos

NIVEL HEMOGLOBINA
13 - 26 g%
10 - 18 g%
11 - 15 g%
11.5 - 15 g%
12.6 - 15.5 g%
13 - 15.5 g%
12 - 16 g%
14 - 18 g%

82) Una institucin educativa estableci un programa para estimular a los alumnos con
buen rendimiento acadmico y que consiste en lo siguiente:
Si el promedio es de 9.5 o ms y el alumno es de preparatoria, entonces ste
podr cursar 55 unidades y se le har un 25% de descuento.
Si el promedio es mayor o igual a 9 pero menor que 9.5 y el alumno es de
preparatoria, entonces ste podr cursar 50 unidades y se le har un 10% de
descuento.
Si el promedio es mayor que 7 y menor que 9 y el alumno es de preparatoria, ste
podr cursar 50 unidades y no tendr ningn descuento.
Si el promedio es de 7 o menor, el nmero de materias reprobadas es de 0 a 3 y
el alumno es de preparatoria, entonces podr cursar 45 unidades y no tendr
descuento.

Introduccin a la Programacin

Alfonso San Miguel Aguirre

13
Si el promedio es de 7 o menor, el nmero de materias reprobadas es de 4 o ms
y el alumno es de preparatoria, entonces podr cursar 40 unidades y no tendr
ningn descuento.
Si el promedio es mayor o igual a 9.5 y el alumno es de profesional, entonces
podr cursar 55 unidades y se le har un 20% de descuento.
Si el promedio es menor de 9.5 y el alumno es de profesional, entonces podr
cursar 55 unidades y no tendr descuento.
Obtener el total que tendr que pagar un alumno si la colegiatura para alumnos de
profesional es de $300 por cada cinco unidades y para alumnos de preparatoria es
de $180 por cada cinco unidades.
83) Leer tres nmeros diferentes y determine el nmero medio del conjunto de los tres
nmeros (el nmero medio es aquel nmero que no es ni mayor ni menor).
84) (Nmeros complejos) Los nmeros complejos tienen la caracterstica de estar
formados por una parte real y una parte imaginara que va acompaada de la letra
i. donde el valor de i es la raz cuadrada de -1. Un ejemplo de este tipo de
nmeros es el siguiente: 5+2i, en donde la parte real vale 5 y la parte imaginara 2.
El programa a hacer realiza las operaciones aritmticas bsicas (suma resta,
multiplicacin y divisin) de nmeros complejos El programa deber tener un
men donde sus opciones deben ser las operaciones, Ejemplo:
NUMEROS COMPLEJOS
1. SUMA
2. RESTA
3. MULTIPLICACIN
4. DIVISIN
5. SALIR
ELIGE UNA OPCIN: 1
Despus de la ejecucin de cada opcin se regresa al men.
85) (Paralelismo, perpendicularidad, coincidencia e interseccin de dos rectas.) Dadas
las ecuaciones de dos rectas en su forma general, es posible determinar si son
paralelas, perpendiculares, coincidentes o si existe la interseccin entre stas. Si
las ecuaciones de las rectas son:
Ax + By + C = 0
Ax + By + C = 0
Se tiene que:
a) Son paralelas si
b) Son perpendiculares si
c) Son coincidentes si

.
(k 0) .

d) Existe interseccin en uno y solamente un punto si

Introduccin a la Programacin

Alfonso San Miguel Aguirre

14
El problema a resolver consiste en, dadas las ecuaciones de dos rectas,
determinar si son paralelas, perpendiculares, coincidentes o si existe interseccin
entre stas.
86) (CONVERSIONES DE UNIDADES DE LONGITUD) Elaborar un programa para
convertir entre unidades de longitud del sistema mtrico decimal al sistema ingles
y viceversa. La equivalencia entre estas unidades es la siguiente:
1 yarda= 3 pies
1 pie= 12 pulgadas
1 pulgada = 2.54 cm
El programa debe preguntar si se desea convertir medidas del sistema ingls al
decimal (opcin 1) o bien del sistema decimal al ingls (opcin 2). Los datos se
pueden ingresar ya sea en pulgadas, yardas o pies para la opcin 1 y en metros,
centmetros o kilmetros para el caso 2. Los resultados se deben mostrar en una
tabla en las tres unidades correspondientes al sistema deseado.
87)

Introduccin a la Programacin

Alfonso San Miguel Aguirre

15

ESTRUCTURA REPETITIVA (MIENTRAS)


1) Escribe un diagrama de flujo que escriba los nmeros enteros del 1 al 5.
2) Disea un diagrama de flujo que escriba los nmeros enteros del 1 al 10.
3) Elabora un diagrama de flujo que escriba los primeros 100 nmeros naturales, es
decir, 1, 2, 3,, 100.
4) Dibuja un diagrama de flujo que escriba los primeros 100 nmeros naturales
pares, es decir, 2, 4, 6,, 200.
5) Escribe un diagrama de flujo que escriba los nmeros enteros del 100 al 1.
6) Elabora un diagrama de flujo que sume los primeros 100 nmeros naturales, es
decir, 1 + 2 + 3 + + 100.
7) Elabora un diagrama de flujo que, dado un nmero entero n, escriba los primeros n
nmeros naturales, es decir, 1, 2, 3,, n.
8) Disea un diagrama de flujo que, dado un nmero entero n, sume los primeros n
nmeros naturales, es decir, 1 + 2 + 3 + + n.
9) Escribe un diagrama de flujo que calcule m x n (m 0, n 0, ambos enteros) sin
utilizar la operacin de multiplicacin.
n

10) Elabora un diagrama de flujo, que calcule m (n > 0 y entero) sin utilizar la
operacin de potencia.
11) En instalaciones de red que utilizan como medio de transmisin de datos la fibra
ptica, las prdidas de enlace estn dadas por la frmula:
Donde:
Pe significa prdidas de enlace,
Pat es prdidas por atenuacin de la fibra ptica,
Pem es prdidas por empalme y
Ptr es prdidas por cada transicin.
Dibuja un diagrama de flujo que calcule las prdidas de n enlaces y que muestre al
final las prdidas promedio de los enlaces.
12) Una empresa de telfonos celulares necesita realizar un programa que calcule el
saldo mensual de cada uno de sus n clientes. Para ello se considera el tiempo aire
utilizado en el periodo mensual. El costo de la llamada por minuto es de $5. La
Introduccin a la Programacin

Alfonso San Miguel Aguirre

16
empresa por promocin realizar un descuento del 15% a aquellos clientes cuyo
consumo al final del mes sea mayor que $800.
13) Dados los datos:
a1, b1, a2, b2,...., a32, b32
ai: reales
bi: enteros, i = 1, 2, ..., 32
donde ai representa el ingreso del estado i de la Repblica Mexicana y bi
representa el nmero de habitantes que hay en ese mismo estado. Elabora un solo
diagrama de flujo para:
a) Calcular el ingreso per cpita de cada estado:
,

i = 1, 2, ..., 32

b) Calcular el ingreso per cpita total de la Repblica Mexicana (suma de


las ais entre suma de las bi s):

14) Una empresa tiene n empleados, por los que aporta al INFONAVIT el 3% de la
nmina y al IMSS el 4%. Los datos son:
n, s1, s2,..., sn
Donde:
n representa el nmero de empleados
si representa el sueldo del empleado i
Elabora un diagrama de flujo que calcule e imprima:
a) el sueldo-empresa de cada empleado que consiste en el sueldo del empleado ms
las aportaciones mencionadas;
b) el monto total de la nmina que paga la empresa; y
c) el total de aportaciones al INFONAVIT y al IMSS que realiza la empresa.
15) (Cajero automtico bis) Supongamos que un cajero automtico cuenta con billetes
de las denominaciones: $500, $200, $100 y $50. Dada una cierta cantidad en
pesos, el problema consiste en determinar cules billetes el cajero debe entregar,
de tal manera que el nmero de billetes entregados sea mnimo, sin usar la
divisin, slo sumas y restas.
16) Las elecciones presidenciales estn prximas a realizarse en cierto pas.
Como es el segundo turno, solamente hay dos partidos diferentes (1 y 2). Uno de
los partidos desea realizar una encuesta a n personas para saber la estrategia a
seguir.
A cada persona entrevistada se le pregunta:
si va a votar,
en caso de que vote, por qu partido votar.
Introduccin a la Programacin

Alfonso San Miguel Aguirre

17
Elabora un diagrama de flujo para procesar esta encuesta. Los datos son:
n
resp1 (partido1)
resp2 (partido2)
...
respn (partidon)
17) Un banco necesita un algoritmo para conocer cul es la conversin de una cierta
cantidad de pesos a dlares, dlares, libras, euros o yenes. Los datos son:
clave, cant y tipoDeCambio
donde clave es un entero que indica la moneda a la que se desea convertir
(1=dlares, 2=libras, 3= euros y 4=yenes), cant indica la cantidad en pesos a
convertir y tipoDeCambio indica el tipo de cambio de dlares al momento del
clculo. El resultado debe decir:
cant pesos equivalen a tantos moneda
Por ejemplo, si se convierten 1000 pesos a euros a una equivalencia de $14.30,
los datos deben ser: 3 1000 14.30 y el resultado debe ser:
1000 pesos equivalen a 69.93 euros
18) Disea un diagrama de flujo para convertir una temperatura en grados centgrados
a grados Farenheit, usando la frmula:
F = 9.0 / 5.0 * C + 32.0
19) Disea un diagrama de flujo que imprima una tabla de conversin de grados
Centgrados a grados Fahrenheit para un rango de valores entre m y n, donde m
n, usando la frmula anterior. Por ejemplo, para m=-10 y n=100 el diagrama debe
escribir una tabla como la siguiente:
-10
-9
.
.
.
0
1
.
.
.
100

14
15.80

32
33.80

212

20) (Ruido) Disea un diagrama de flujo que dado n y t calcule el valor de


sen(t) + sen(2t) + sen(3t) + + sen(n t)
21) (Aguinaldo) En Mxico, las empresas estn obligadas a proporcionar un aguinaldo
de al menos 15 das de salario a sus trabajadores, siempre y cuando hayan
Introduccin a la Programacin

Alfonso San Miguel Aguirre

18
laborado el ao completo, en caso contrario, les deben pagar la parte proporcional
trabajada. Elabora un algoritmo y programa para que una empresa que otorga 15
das de aguinaldo a sus n trabajadores pueda calcular el aguinaldo que le
corresponde a cada uno de ellos, as como la suma total que debe pagar por
concepto de aguinaldos. Los datos de cada trabajador sern su sueldo y el tiempo
trabajado en el ao. Determina la forma de estos datos.
22) Supongamos que una bacteria en un lago incrementa su nmero en un factor de p
cada segundo; por tanto, empezando con n0 bacterias iniciales en el tiempo cero,
hay n1= n0*(1+p) bacterias despus de un segundo, n2= n1*(1+p) despus de dos
segundos y as sucesivamente. Elabora un diagrama de flujo que escribe el
nmero de bacterias existentes en cada perodo de tiempo, durante un lapso
especificado. Por ejemplo, con los valores n0= 106, p=.001 y escribiendo el nmero
de bacterias cada 24 horas durante una semana, tu programa debe escribir:
Numero inicial de bacterias? 1000000
factor de incremento? .001
numero de segundos? 605000
n(0)
= 1e+006
n(86400)
= 3.19371e+043
n(172800)
= 1.01998e+081
n(259200)
= 3.25753e+118
n(345600)
= 1.04036e+156
n(432000)
= 3.32261e+193
n(518400)
= 1.06115e+231
n(604800)
= 3.389e+268
23) (Aproximacin a ) He aqu una manera interesante de calcular : generar
repetidamente puntos (x, y) al azar dentro del cuadrado de lado dos, con centro en
el origen y lados paralelos a los ejes coordenados. Si el punto (x,y) est dentro del
crculo unitario lo contamos como un xito. Si S es el nmero de xitos dentro del
crculo unitario y n es el nmero total de puntos generados, entonces S/n = /4
(por qu?, tiene que ver con reas). Esta aproximacin tiende a ser mejor a
medida que n crece. Escribe un programa que use este mtodo para calcular ,
preguntando por el nmero n de puntos a generar. Probarlo para varios valores de
n.
24) (Tiro parablico) Elabora un programa que escriba tripletas t, x(t), y(t) describiendo
la posicin de una pelota arrojada con un ngulo con respecto al suelo y con una
velocidad v, tomando en cuenta la aceleracin gravitacional g, y con posicin
inicial x(0)=0, y(0)=0. La pelota debe seguirse hasta que pega en el suelo en y=0.
Recuerde que las ecuaciones estn dadas por:
x(t)= v cos()t,
Introduccin a la Programacin

Alfonso San Miguel Aguirre

19
y(t)= v sen()t gt2 / 2, donde g= 9.81 m/s2
25) (Longitud de arco) Idear un algoritmo e implementarlo en C para estimar la
longitud sobre una curva y=f(x) aproximndola por segmentos de recta. Prueba tu
programa con al menos dos ejemplos significativos.
26) Utiliza el algoritmo del ejercicio anterior para estimar la distancia que la pelota
modelada en el ejercicio (14) recorri en su trayectoria (no sobre el piso sino sobre
su trayectoria en el aire).
27) La funcin generadora de nmeros aleatorios estndar de C, rand, no genera
realmente nmeros aleatorios. Por tanto, es de inters el estudio de qu tan
aparentemente aleatorios son sus valores. Una prueba simple es calcular el
promedio y la desviacin estndar de un nmero grande de valores regresados
por rand. Escribir un programa para hacer esto, cul debiera ser la respuesta?
28) El nmero se aproxima con un nmero suficiente de trminos de la siguiente
serie:

= 4*(1 1/3 + 1/5 1/7 + 1/9 1/11 + )


Escribe un programa que calcule utilizando la serie anterior. El clculo debe
terminarse cuando el valor de un nuevo trmino de la serie sea menor o igual a
0.0001
29) Un nio va a la tienda con los p pesos que le dio su pap de domingo para
comprar dulces. Son tres los tipos de dulces que le interesan, sus precios son:
$0.75, $1.15 y $0.65. El nio va pidiendo al tendero qu tipo de dulces quiere (1, 2
o 3) y cuntos quiere, entonces el tendero, si an le alcanza para comprar ms
dulces, le pregunta cul y cuntos quiere y as hasta que el nio no pueda comprar
ms dulces. Escribe un diagrama de flujo que simule el comportamiento del nio y
el tendero y que, cuando el nio no pueda comprar ms dulces, imprima cuntos
dulces compr de cada tipo y cul es su cambio.
30) Un grupo consta de n estudiantes, cada uno de los cuales cursa 5 materias. Para
cada estudiante se da una lnea de entrada formada por su matrcula
(supongamos que es un valor entero) y sus cinco calificaciones. Como ejemplo de
la entrada de datos se podra tener:
4
22345
21212
32323
43434

10 7.5 7 8.3 8.9


4 7.1 5.9 7 8.2
10 9 10 10 10
68756

Escribe un diagrama de flujo que lea estos datos y que escriba la matrcula de
cada estudiante junto con su promedio, al igual que el promedio del grupo.

Introduccin a la Programacin

Alfonso San Miguel Aguirre

20
31) Dado un entero n encuentra su raz digital. La raz digital de un entero se calcula
sumando los dgitos que componen a n. El proceso se repite hasta que el
resultado as obtenido sea de un dgito.
Ejemplo: 347 3 + 4 + 7 = 14 1 + 4 = 5 RD(347) = 5
32) En una guardera hay 25 nios de 1, 2 y 3 aos. Los nios de 1 ao consumen 6
paales al da, los nios de 2 aos consumen 3 paales diarios y los nios de 3
aos consumen 2 paales diarios. Se desea conocer el consumo total de paales
diarios. Datos:
edad1
edad2
.....
edad25
donde edadi representa la edad del isimo nio en aos cumplidos (1, 2 o 3).
33) (Factorial de un nmero) Elabora un diagrama de flujo que reciba un valor n entero
y que calcule su factorial. El factorial de un nmero n est definido como:
a. 1,
si n=0,
b. (n-1)! n, si n0,
c. escribe un mensaje de error y no calcula nada, si n<0.
34) Elabora un programa para encontrar el mximo de n valores numricos.
35) Una empresa que cuenta con k empleados desea realizar algunos clculos para la
nueva nmina. Los datos con que cuenta son el nmero de empleados (k) y los
sueldos de estos k empleados:
s1, s2, s3, ..., sk.
Elabora un programa para leer los datos y contestar las siguientes preguntas:
a) Cul es el aumento correspondiente a cada empleado segn el
siguiente criterio?
7% si el sueldo es inferior a $5,000
6% si el sueldo est entre $5,000 y $15,000
5% si el sueldo es superior a $15,000
b) Cul es el nuevo sueldo para cada empleado?
c) Cul es el total de la nueva nmina?
d) Cul es el incremento en la nmina?
e) Cul es el mximo sueldo nuevo?
f) Cul es el mnimo sueldo nuevo?
Resuelve los incisos progresivamente.
36) Dados los valores: n, P1, P2,..., Pn con n 2, donde los Pt (t = 1,...,n) representan
los ndices de precios al consumidor de varios aos. El ndice Nacional de Precios
al Consumidor (INPC) es un indicador econmico diseado especficamente para
medir el cambio promedio de los precios en el tiempo, mediante una canasta

Introduccin a la Programacin

Alfonso San Miguel Aguirre

21
ponderada de bienes y servicios representativa del consumo de las familias
urbanas de Mxico. Elabora un diagrama de flujo para calcular y escribir:
a) La tasa de inflacin entre aos consecutivos:
TIt = (Pt / Pt-1 1) * 100, t = 2, 3, ..., n
Nota: este es un problema real; para una muestra del programa que debes hacer
puedes usar la calculadora proporcionada por Banxico.
b) La tasa media inflacionaria:
Tasa media= (TI2 + TI3 + + TIn)/ (n-1)
37) Construye un diagrama de flujo que calcule e imprima los 150 primeros nmeros
de la serie de Fibonacci. Recuerda que los dos primeros nmeros de la serie son 1
y 1. El resto se calcula como la suma de los dos nmeros que lo preceden.
Ejemplo: 1, 1, 2, 3, 5, 8, 13, 21, 34, . . .
38) En una generacin hay 30 estudiantes y cada uno de ellos tiene 5 calificaciones,
correspondientes a 5 diferentes materias. Se requiere que calcules:
a. El promedio de cada estudiante.
b. Lo mismo que el inciso anterior y adems el promedio general de la
generacin (=promedio de los promedios).
c. Lo mismo que el inciso anterior pero suponiendo que cada estudiante tiene
n calificaciones.
d. Lo mismo que el inciso anterior pero contando adems el nmero de
estudiantes condicionados, es decir, cuntos estudiantes tienen ms de 2
materias no certificadas (con nota inferior a 7).
39) a. Dados los coeficientes de un polinomio de tercer grado
y un
punto
, evaluar el polinomio en
, sin usar la operacin de potencia.
Cuntas multiplicaciones y sumas realizaste?
b. Generaliza ahora a evaluar un polinomio de grado n:
A esta evaluacin se le conoce como el mtodo de Horner para evaluar
polinomios.
40) Elabora un diagrama de flujo que, dado un entero n>1 calcule e imprima la tabla
de multiplicar del n, del 1 al 12. Ejemplo, si n=3 el diagrama debe escribir:
3

12

15

18

21

24

27

30

33

36

41) Escribe un diagrama de flujo que imprima las tablas de multiplicar del 2 al 12, es
decir, que escriba:
2
3
.
.
12

4
6

6
9

8
12

10
15

12
18

14
21

16
24

18
27

20
30

22
33

24
36

24

36

48

60

72

84

96

108

120

132

144

Introduccin a la Programacin

Alfonso San Miguel Aguirre

22

42) Realiza un programa que escriba el siguiente cuadrado de nmeros:


1
1
1
1
1
1
1
1
1
1

2
2
2
2
2
2
2
2
2
2

3
3
3
3
3
3
3
3
3
3

4
4
4
4
4
4
4
4
4
4

5
5
5
5
5
5
5
5
5
5

6
6
6
6
6
6
6
6
6
6

7
7
7
7
7
7
7
7
7
7

8
8
8
8
8
8
8
8
8
8

9
9
9
9
9
9
9
9
9
9

10
10
10
10
10
10
10
10
10
10

43) Ahora escribe un programa que escriba el siguiente tringulo de nmeros:


1
1
1
1
1
1
1
1
1
1

2
2
2
2
2
2
2
2
2

3
3
3
3
3
3
3
3

4
4
4
4
4
4
4

5
5
5
5
5
5

6
6
6
6
6

7
7 8
7 8 9
7 8 9 10

44) Escribe un algoritmo que imprima el siguiente tringulode nmeros, teniendo


como entrada el nmero de filas de la misma. Por ejemplo, si la entrada fuera 5 la
salida sera (el nmero de filas est entre 1 y 10):
1
1
1
1
1

2
2
2
2

1
3 2 1
3 4 3 2 1
3 4 5 4 3 2 1

45) Disea un programa que simule el comportamiento de un reloj digital en un da, es


decir, tu programa debe escribir la hora, segundo a segundo,
a) En un da: desde las 0 : 0 : 0 hasta las 23 : 59 : 59
b) Perpetuo (es decir, nunca termina).
46) Elabora un programa que lea un nmero entero n y que escriba n al revs,
invirtiendo el orden de sus dgitos. Por ejemplo, si el nmero ledo fuera 315 tu
programa debe escribir 513.
47) Disea un programa que lea un nmero entero n y que encuentre otro entero m
que sea n al revs, invirtiendo el orden de sus dgitos y que diga si n es
Introduccin a la Programacin

Alfonso San Miguel Aguirre

23
palndroma. Una palabra es palndroma si se lee igual de izquierda a derecha que
de derecha a izquierda.
48) La funcin matemtica sen(x) se aproxima con un nmero suficiente de trminos
de la siguiente serie:

Escribe un programa en C para que, dada un valor de x, calcule sen(x) utilizando


la serie anterior. El clculo debe terminarse cuando el valor absoluto de un nuevo
trmino de la serie sea menor o igual que 0.0001. Asimismo, que imprima el
nmero de trminos requeridos para obtener esta precisin. El valor de x debe
expresarse en radianes cumpliendo la siguiente restriccin: 0 x /2
Nota: por eficiencia, no debes emplear la operacin de potencia.
49) Una compaa que vende cigarros realiz una encuesta a varias personas. En
dicha encuesta se ha preguntado lo siguiente:
Si el encuestado fuma o no.
Si fuma, de qu marca fuma.
Si fuma, cuntas cajetillas fuma al da.
Los resultados de la encuesta estn almacenados de la siguiente forma:
n
fumar1, marca1, cuantas1
fumar2, marca2, cuantas2
fumar3, marca3, cuantas3
...
...
fumarn, marcan, cuantasn
Donde:
n
representa el nmero de encuestas realizadas, n (entero) 1
fumari representa el hecho de fumar o no; (0 = no fuma, 1 = si fuma)
marcai representa la clave de la marca de cigarrillos que fuma el encuestado i,
(1=marca1, 2=marca2, 3=marca3, 0=ninguna)
cuantasi representa el nmero de cajetillas que fuma al da, cuantasi (entero) 0.
Se te pide que realices un programa que conteste lo siguiente:
Cuntos no fumadores fueron encuestados?
Cul es la marca que mayor nmero de fumadores tiene?
Cul es la marca que ms vende?
50) Escribe un programa que dado un entero positivo encuentre y escriba sus
divisores propios (es decir, aquellos divisores que no son ni 1 ni el mismo nmero).

Introduccin a la Programacin

Alfonso San Miguel Aguirre

24
51) El teorema fundamental de la Aritmtica afirma que todo entero positivo se
puede representar de forma nica como producto de factores primos. Por ejemplo,
los nmeros 6936 y 1200 se representan como:
6936 = 2 3 17 = 2 2 2 3 17 17
1200 = 24 3 5 = 2 2 2 2 3 5 5
No existe ninguna otra factorizacin de 6936 y 1200 en nmeros primos. Como la
multiplicacin es conmutativa, el orden de los factores es irrelevante; por esta
razn, usualmente se enuncia el teorema como factorizacin nica salvo el orden
de los factores. Elabora un programa que dado un entero positivo escriba su
representacin como producto de factores primos.
52) (Movimientos en una cuenta de banco) Un cliente realiza n transacciones en su
cuenta de banco. Las transacciones pueden ser depsitos (1) o retiros (0).
Inicialmente, el saldo de la cuenta es cero. Se deben leer n parejas de la forma:
transaccin monto
Calcular el importe total de depsitos, el importe total de retiros, el nmero de
ellos, as como el saldo final de la cuenta.
53) Para cualquier nmero natural n realicemos los siguientes clculos:
Si n es par dividmoslo entre 2,
Si n es impar multipliqumoslo por 3 y summosle 1 al resultado.
Repitiendo el proceso con los nmeros as obtenidos la secuencia siempre
acabar en 1.
Esta es la llamada conjetura de Collatz. Por ejemplo, si n=6 obtenemos:
6, 3, 10, 5, 16, 8, 4, 2, 1.
Si escogemos n = 11 obtenemos:
11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1
Elabora un programa que lea un entero n y que calcule e imprima la sucesin
generada a partir de n.
54) (mcd) Elabora un programa que lea dos nmeros enteros positivos y que calcule
su mximo comn divisor. El mximo comn divisor (mcd) de dos nmeros
naturales es el mayor divisor posible de ellos. Sugerencia: utiliza el algoritmo de
Euclides.
55) La media cuadrtica de n nmeros
n es igual a la raz cuadrada de la
suma de los cuadrados de los valores dividida entre el nmero de datos:

Esta media como medida de asociacin tiene aplicaciones tanto en ciencias


biolgicas como en medicina.

Introduccin a la Programacin

Alfonso San Miguel Aguirre

25
La media armnica, representada por H, de una cantidad finita de nmeros es
igual al recproco, o inverso, de la media aritmtica de los recprocos de dichos
nmeros. As, dados los nmeros
, la media armnica ser igual a:

La media generalizada de n nmeros


es una abstraccin de los
diversos tipos de media (geomtrica, aritmtica, armnica, etc.).
Se define como:

En donde el parmetro m indica si la media es:


aritmtica, si m=1
geomtrica, si m=0
armnica,

si m=-1

cuadrtica, si m=2
Observa que para valores de m 0 la expresin slo tiene sentido si todos los xi0.
Elabora programas por separado, o subprogramas, para calcular los distintos tipos
de media.
56) (Clculo de races por el mtodo de biseccin) Teorema del valor intermedio: una
funcin f continua en un intervalo [a, b] con f(a)f(b)<0 tiene al menos una raz real.
Este problema consiste en, dada una funcin continua f, los lmites del intervalo a
y b con f(a)f(b)<0 y un entero n, encontrar una aproximacin a la raz de f usando
el mtodo de biseccin con n aproximaciones. El mtodo de biseccin consiste en
encontrar el punto medio del intervalo y evaluar f en dicho punto, si f no es cero
ah, necesariamente se cumple que f tiene signo contario a alguno de los extremos
del intervalo, el problema se reduce a seguir el mismo procedimiento con el nuevo
subintervalo. Despus de n iteraciones se logra la aproximacin deseada a la raz.
La funcin f se implementar como una funcin del programa.
57) (Clculo de races por el mtodo de Newton-Raphson) Dada una funcin f, un
valor inicial x0 de la aproximacin de la raz de la funcin f y el nmero de
iteraciones n, el mtodo de Newton-Raphson permite calcular una serie de
aproximaciones a la raz de la funcin f(x), que estn dadas por:

donde f es la derivada de la funcin f.


Por ejemplo: si f(x)= 2x3 - x, el valor inicial es x0=1 y el nmero de iteraciones es
n=5.
Primero calculamos la derivada de la funcin f:

Introduccin a la Programacin

Alfonso San Miguel Aguirre

26
f(x)=6x2-1
Ahora sustituyendo la funcin y su derivada evaluada en xi-1 tenemos:

esta relacin nos permite calcular las n (=5) iteraciones:


Para i=1 y sustituyendo el valor dado de x0

Ya que se tiene el valor de x1 se puede determinar el valor de x2 sustituyendo en la


ecuacin (1) i=2, y as sucesivamente. Escribe un programa que dadas una
funcin f, su derivada, una aproximacin inicial y el nmero de iteraciones, calcule
una aproximacin a la raz de f usando este mtodo. La funcin (f) y su derivada
(df) se implementarn con dos funciones, que son dadas en el problema.
58) Especifica las siguientes operaciones mediante una simple instruccin de
asignacin, es decir, no debe usarse la instruccin condicional.
a) Sea una variable entera n. Si tiene un valor positivo, debe tomar el valor
negativo de la misma magnitud, y al revs.
b) Sea una variable entera n. Si tiene el valor cero, debe tomar el valor diez, y
viceversa.

Introduccin a la Programacin

Alfonso San Miguel Aguirre

27

ARREGLOS
1) En un grupo de n estudiantes se desea obtener el promedio de sus edades para
saber cuntos estudiantes tienen ms aos que el promedio.
2) En un concurso canino hay 5 concursantes (numerados 0, 1, 2, 3 y 4) y n jueces,
quienes deben emitir su voto para as determinar al(a) perro(a) ganador(a).
Elabora un programa que lea los votos de los n jueces y que determine al ganador
(suponiendo que no hay empates).
3) En otro concurso canino hay 15 concursantes (numerados del 0 al 14) y n jueces,
quienes deben emitir su voto para as determinar al(a) perro(a) ganador(a).
Elabora un programa que lea los votos de los n jueces y que determine al ganador,
pudiendo ahora haber empates.
4) (Maratn nutico) En un club de natacin se ha realizado un maratn, el cual
consiste en tomar la distancia nadada por cada participante, en 10 sesiones de 45
minutos cada una. Escribe un programa que reciba como entrada el nmero de
participantes y las 10 distancias nadadas por cada nadador y que encuentre:
a)
b)

La distancia total recorrida por cada participante.


Los ganadores.

5) Un grupo consta de n estudiantes (con n entre 1 y 50), cada uno de los cuales
cursa 5 materias. Para cada estudiante se da una lnea de entrada formada por su
matrcula (supongamos que es un valor entero) y sus cinco calificaciones. Como
ejemplo de la entrada de datos se podra tener:
4
22345
21212
43434
32323

10 7.5 7 8.3 8.9


4 7.1 5.9 7 8.2
6.9 8 7 5.6 6
10 9 10 10 10

a) Escribe un diagrama de flujo y programa que lea estos datos y que escriba la
matrcula de cada estudiante junto con su promedio, al igual que el promedio
del grupo.
b) Posteriormente, tu programa debe leer matrculas de estudiantes y escribir el
promedio de cada estudiante cuya matrcula se ha proporcionado.
6) Se tiene el arreglo ventas:

Donde se han almacenado las ventas mensuales de una empresa en el ao


anterior. Elabora un programa que:
a) Lea el arreglo,
b) Diga cul fue el total de las ventas,
Introduccin a la Programacin

Alfonso San Miguel Aguirre

28
c) Diga cul fue el promedio de las ventas,
d) Diga en qu mes se obtuvieron las ventas mximas de la empresa y a cunto
ascendieron stas.
7) Dados los datos n, a0,a1,. . .,an-1, b0,b1, . . . ,bn-1 con: 1 n 50, entero y ai, bi
reales, realiza un programa para calcular:

Requieres de arreglos?, cuntos?, por qu?


8) Sean los datos:
n, x1, x2, . . . , xn , con: 1 n 25, entero, xi reales.
Realiza un programa que realice funciones por cada inciso y la funcin principal
que las mande llamar e imprima los resultados:
a) Lea los datos y almacene los valores xi en un arreglo.
b) Calcule e imprima la media de los datos dada por la frmula:

c) Calcule e imprima la desviacin estndar, que est dada por la frmula:

9) Se tienen n estudiantes (1 n 50) de los cuales se conoce la matrcula (entera) y


la calificacin final. Elabora un programa que:
a. Lea dicha informacin, la cual se da ya ordenada en forma descendente,
con respecto a la matrcula.
b. Imprima la clave y calificacin de todos los estudiantes que obtuvieron
calificacin superior al promedio del grupo.
c. Imprima la calificacin que obtuvieron los estudiantes cuyas matrculas
proporcionar el usuario. Se sabr que el usuario ya no quiere conocer
ms calificaciones cuando, en lugar de una matrcula, proporcione un cero.
Utiliza bsqueda binaria para buscar las matrculas que el usuario solicita.
10) Dados los siguientes datos enteros:
n, k (en la primera lnea)
a0 (en la segunda lnea)
a1 (en la tercera lnea)
.
an-1 (en la ltima lnea)
Con: |k| n; 1 n 50
Introduccin a la Programacin

Alfonso San Miguel Aguirre

29

Elabora un programa completo que resuelve progresivamente por funciones cada


uno de los siguientes incisos:
a) Leer los datos y almacenarlos en un arreglo vec, de tal manera que queden:
vec

b) Copiar los datos a otro arreglo llamado inverso, de tal forma que queden
almacenados como se indica a continuacin:
inverso

c) Reemplazar cada ai en vec por (ai * 2 ) sin utilizar la funcin de potencia y


optimizando el nmero de operaciones:
vec

d) Correr los elementos del vec anterior


|k| lugares a la derecha si k > 0, y
|k| lugares a la izquierda si k < 0
Al correr los elementos, entrarn ceros a los lugares vacos; as, si k = 2 se pierden
los dos ltimos datos (an-2 y an-1) y el arreglo quedara:

11) Una compaa ha clasificado a sus n (1 n 50) empleados dentro de los grupos
1 y 2. Cada empleado del grupo 1 recibir, a partir de ahora, un aumento de
$250.00 a la semana sobre su sueldo actual, mientras que a cada uno de los del
grupo 2 slo se les dar $150.00 adicionales por semana. La informacin que se
proporciona de cada empleado es: clave del empleado (comprendida entre 100 y
2500, inclusive), grupo al que pertenece (1 o 2) y sueldo semanal actual (entre
$300.00 y $6000.00). Si un empleado del grupo 1 con el nuevo sueldo gana
semanalmente ms que el sueldo promedio del grupo, entonces debe cambiar al
grupo 2. Elabora un programa modular que:
a) Lea la informacin de los n empleados e imprima la clave, grupo y sueldo
semanal nuevo para cada empleado, actualizando el grupo si es el caso.
b) Calcule el sueldo promedio de los empleados por grupo y calcule tambin el
promedio general de todos, sin considerar el grupo.
c) Indique cuntos empleados cambiaron del grupo 1 al 2.

Introduccin a la Programacin

Alfonso San Miguel Aguirre

30
12) Elabora una serie de funciones para leer una serie de n datos desordenados,
almacenarlos en el arreglo val (de mximo 50 localidades), ordenarlos de manera
creciente, utilizando el algoritmo de seleccin directa, en ese mismo arreglo y, por
ltimo, imprimirlos en orden.
13) (Vectores) Escribe un programa que lea dos vectores de dimensin n y que calcule
su suma y su producto punto.
14) Partiendo del ejercicio anterior, elabora un programa que contenga funciones para:
a. Buscar un valor x dentro del arreglo utilizando el algoritmo de bsqueda
secuencial. La funcin debe regresar como resultado la posicin en la que
se encuentra el valor buscado. Si x no se encuentra en el arreglo, la
funcin calcula la posicin en la que debera encontrarse y regresa:
posicin 1.
b. Buscar un valor x dentro del arreglo utilizando el algoritmo de bsqueda
binaria.
c. Insertar un valor x en el arreglo de tal forma que se siga conservando el
orden ascendente de los valores. Al insertar se debe verificar que haya
espacio libre y que x no exista en el arreglo. La funcin debe regresar
como resultado 1 si se insert x en el arreglo, 0 si x ya exista en el arreglo
y 1 si no existe espacio libre en el arreglo.
d. Eliminar un valor x del arreglo, compactando si es necesario para que no
haya espacios libres entre valores. La funcin debe regresar como
resultado 1 si se elimin x, 0 si x no se encontraba en el arreglo y 1 si el
arreglo estaba vaco.
e. Sustituir un valor x ya existente en el arreglo con un valor y de tal manera
que el arreglo siga conservando su orden creciente. La funcin debe
regresar como resultado 1 si se hizo la sustitucin, 0 si x no se encontraba
en el arreglo y 1 si el arreglo estaba vaco.
15) Haz un programa que lea n nmeros guardndolos en un arreglo. Despus, que
lea nmeros y diga cuntas veces aparece cada uno de estos nmeros en el
arreglo.
16) Escribe una funcin que dado un arreglo de n elementos calcule y regrese su
moda. En estadstica, la moda de una serie de nmeros es aquel nmero que
aparece con ms frecuencia. Por ejemplo, dada la lista 1, 2, 2, 3, 6, 4, 7, 5, 4, 6, 9,
4, la moda es 4, ya que aparece tres veces. Si todos los nmeros son diferentes
entonces no hay moda, con lo cual se debe indicar que hubo error.
17) Haz un mdulo llamado mayoritario que calcule y regrese un uno (1) si un arreglo
es mayoritario o cero (0) si no lo es. Se dice que un arreglo es mayoritario si existe
un elemento almacenado en l que se repite ms de n/2 veces, siendo n el total de
elementos guardados en el arreglo.
18) Elabora un programa completo en C con una funcin que lea una serie de
nmeros, otra funcin que reciba como parmetro la serie de nmeros y arroje la
moda o, si no la hay, 1. La funcin principal manda llamar a las anteriores e

Introduccin a la Programacin

Alfonso San Miguel Aguirre

31
imprime la moda (nmero que mas veces se repiti, en caso de haber dos iguales
o ms mencione el primero).
19) Asume que se dispone de una vector (arreglo) con n enteros e ndices
comprendidos entre 0 y n-1. Encuentra algoritmos para resolver los siguientes
problemas:
a) Hallar el segundo mayor valor contenido en el arreglo.
b) Encontrar la mxima diferencia absoluta entre elementos adyacentes del
arreglo.
c) Hallar el mximo elemento del vector, el nmero de veces que aparece y los
ndices de las celdas donde aparece por primera y ltima vez. Debe hacerse
un solo recorrido del arreglo, esto es, debe usarse un solo ciclo.
20) En la Repblica Mexicana, las personas asalariadas deben utilizar la tabla que se
muestra a continuacin, correspondiente al ao fiscal 2007, para calcular el
impuesto anual que deben pagar. La frmula a utilizar es:
Base gravable (igual a salario anual menos deducciones)
Menos:
Lmite inferior, tarifa del artculo 177 de la LISR
Igual:
Excedente lmite inferior
Por:
Porcentaje sobre el lmite inferior
Igual:
Impuesto marginal
Ms:
Cuota fija
Igual:
Impuesto Art. 177 LISR
Tarifa del artculo 177 de la LISR para el clculo del impuesto correspondiente al
ejercicio de 2007
Lmite inferior Lmite superior Cuota fija Por ciento para aplicarse sobre
el excedente del lmite inferior
$

0.01

5,952.84

0.00

1.50

5,952.85

50,524.92

89.28

5.00

50,524.93

88,793.04

2,317.68

8.50

88,793.05

103,218.00

5,571.24

12.50

103,218.01

123,580.20

7,373.88

14.00

123,580.21

249,243.48

10,224.57 16.80

Introduccin a la Programacin

Alfonso San Miguel Aguirre

32

249,243.49

392,841.96

31,335.97 19.60

392,841.97

En adelante

59,481.26 28.00

Elabora un programa que dados salarios anuales calcule e imprima los impuestos
anuales a pagar.
21)

Introduccin a la Programacin

Alfonso San Miguel Aguirre

33

FUNCIONES (MDULOS)
1) Escribe una funcin llamada cuadrado que tenga un parmetro de entrada llamado
longitud y entregue como resultado el rea del cuadrado cuyo lado sea la longitud
especificada. Todas las variables son reales.
2) Elabora una funcin llamada circulo que tenga un parmetro de entrada llamado
radio y entregue como resultado el rea del crculo cuyo radio sea el radio
especificado. Todas las variables son reales.
3) Escribe una funcin llamada rectangulo que tenga como parmetros de entrada las
longitudes de los lados de un rectngulo y entregue como resultado el rea del
rectngulo de lados especificados. Todas las variables son reales
4) Escribe una funcin llamada calculaDistancia que tenga cuatro parmetros de
entrada llamados x1, y1, x2, y2 y que entregue como resultado la distancia entre
dos puntos cuyas coordenadas son (x1, y1) y (x2, y2) segn la siguiente frmula:

5) Realiza una funcin que diga si sus dos argumentos son mltiplo el uno del otro
(no importa cul de cul).
6) Un piso rectangular que mide 12 metros por 15 metros est cubierto parcialmente
por tapetes circulares. El radio de un tapete es un metro. El radio del otro es de
dos metros.
Escribe un programa que encuentre el rea de la parte del piso que est
descubierta.
7) Escribe un programa que ayude en la operacin de la pizzera King of Pizza. El
programa debe contener dos funciones:
precio

dado el tamao de la pizza y el nmero de ingredientes, calcula


y regresa el precio de la pizza, y
tiempo dado el tamao de la pizza y el nmero de ingredientes, calcula
y regresa el tiempo de entrega.
Las pizzas chicas (c) cuestan 70 pesos, las medianas (m) 90, las grandes (g)
110 y las familiares (f) 130. Adems, cada ingrediente solicitado cuesta 10 pesos.
El tiempo de entrega de las pizzas es de 20 minutos, a menos que sea una pizza
familiar o que tenga ms de 3 ingredientes, en cuyo caso el tiempo de entrega es
de 30 minutos.
8) (Cafetera) Una cafetera vende cuatro tipo de bebidas (1=Americano, 2=Express,
3=Cappuccino y 4=Frapp). Los precios de las bebidas son, respectivamente, $8,
$7, $13 y $16.
a) Elabora un diagrama de flujo y su correspondiente programa en C que, dado el
nmero de ventas realizadas en un da, calcule e imprima el total de bebidas
vendidas de cada tipo as como el importe total de las ventas.
b) Igual que (a) pero ahora las bebidas vendidas son, adems, 5=Moka y 6=T,
con precios $15 y $7, respectivamente. Debes usar una instruccin de
seleccin mltiple switch(-).
Introduccin a la Programacin

Alfonso San Miguel Aguirre

34
c) Igual que (b) pero ahora usando como bandera de fin datos el valor 0 (Nota: 0
indica terminar, ya no hay contador en el while).
d) Igual que (c) pero ahora usando la inicial de la bebida vendida en lugar de una
clave entera, es decir, se proporcionar A si americano, E si express, C si
cappuccino, F si frapp, M si moka, T si t o S si salir como fin de datos.
e) Igual que (c) pero ahora usando dos arreglos, uno para los acumuladores y
otro para los precios.
9) Se dice que dos nmeros a y b son amigos si cada uno de ellos es la suma de los
divisores del otro. Por ejemplo, los ms pequeos son 220 y 284; comprobmoslo:
DivisoresDe(220) = (1, 2, 4, 5, 10, 11, 20, 22, 44, 55, 110)
SumaDivDe(220) = 284
DivisoresDe(284) = (1, 2, 4, 71, 142)
SumaDivDe(284) = 220
a) realiza una funcin que recibiendo dos nmeros devuelva si son amigos o no.
b) elabora una funcin que tenga como entrada un nmero natural n y que escribe
todas las parejas de nmeros amigos que existan menores que n.
10) Realiza un programa que imprima todos los aos bisiestos entre 1 y 2020. Una
funcin debe determinar si un ao es bisiesto. Un ao es bisiesto si es divisible
entre 4 pero no es divisible entre 100, a menos de que sea divisible entre 400.
11) Realiza un programa que imprima todos los aos perfectos entre 1 y 2020. Una
funcin debe determinar si un ao es perfecto. Un nmero es perfecto si es igual
a la suma de sus divisores, incluyendo al 1 y exceptuando a l mismo. Por
ejemplo, 6 es perfecto (6=1+2+3).
12) Modifica adecuadamente el programa anterior para que determine, de todos los
nmeros entre 1 y 2010 cuales de ellos son perfectos, abundantes o deficientes.
Un nmero es abundante si la suma de sus divisores propios es mayor que el
propio nmero. Por ejemplo, 12 es abundante ya que sus divisores son 1, 2, 3, 4 y
6 y se cumple que 1+2+3+4+6=16, que es mayor que el propio 12. Un nmero es
deficiente si la suma de sus divisores propios es menor que el nmero. Por
ejemplo, 16 es un nmero deficiente ya que sus divisores propios son 1, 2, 4 y 8 y
se cumple que 1+2+4+8=15, que es menor que 16.
13) Escribe una funcin para determinar si su argumento n es o no es primo. NOTA:
Tener en cuenta que basta con probar la divisibilidad por los nmeros desde el 2
hasta la raz de n. Lo cual ahorra muchas operaciones. Si adems consideramos
que basta con saber si es par o no al principio, podemos ahorrarnos la mitad de las
pruebas de divisores, eliminando todos los pares.
14) Elabora un programa que, dado un entero k mayor o igual a 1, escriba los primeros
k nmeros repunits (que son aquellos formados nicamente por unos: 1, 11, 111,
1111, etc.). Repunit proviene del ingls, "repeated unit".
15) Disea un programa que lea un nmero positivo n y que determine si el nmero
ledo es ondulado o no. Un nmero entero es ondulado si tiene la forma
ababab. Por ejemplo, los nmeros 232, 8383 son ondulados.
Introduccin a la Programacin

Alfonso San Miguel Aguirre

35
16) Escribe un programa que determine si un nmero es malvado. Nmero malvado:
todo nmero natural cuya expresin en base 2 (binaria) contiene un nmero par de
unos. Por ejemplo, 12 y 15 son nmeros malvados ya que 12=11002 y 15=11112.
Si un entero no es malvado se dice que es odioso, es decir, nmero odioso: todo
nmero cuya expresin en base 2 (binaria) contiene un nmero impar de unos. Por
ejemplo, 11=10112 es un nmero odioso.
17) Ahora un programa que determine si un nmero es feliz. Nmero feliz: todo
nmero natural que cumple que si sumamos los cuadrados de sus dgitos y
seguimos el proceso con los resultados obtenidos el resultado es 1. Por ejemplo,
el nmero 203 es un nmero feliz ya que 22+02+32=13; 12+32=10; 12+02=1.
18) Elabora un programa que determine si un nmero es narcisista. Nmero
narcisista: todo nmero de k dgitos que cumple que es igual a la suma de las
potencias k de sus dgitos es un nmero narcisista. Por ejemplo, 153 es un nmero
narcisista de 3 dgitos, ya que 13+53+33=153.
19) Disea un programa que lea un nmero positivo n y que determine si el nmero
ledo es palindrmico. Nmero palindrmico: nmero natural que se lee igual de
derecha a izquierda y de izquierda a derecha. Por ejemplo 1348431.
20) Escribe un programa que determine si un nmero es libre de cuadrados. Nmero
libre de cuadrados: todo nmero natural que cumple que en su descomposicin
en factores primos no aparece ningn factor repetido. Por ejemplo, el nmero 30
es un nmero libre de cuadrados.: 30=2 3 5.
21) Escribe un programa que determine si un nmero es oblongo. Nmero oblongo:
todo nmero natural que cumple que es el producto de dos naturales consecutivos.
Por ejemplo, los nmeros 30, 42 y 56 son oblongos.
22) Disea un programa que lea un nmero positivo n y que determine si el nmero
ledo es poderoso. Nmero poderoso: todo nmero natural n que cumple que si
un primo p es un divisor suyo entonces 2p tambin lo es. Por ejemplo, el nmero
36 es un nmero poderoso ya que los nicos primos que son divisores suyos son 2
y 3 y se cumple que 4 y 9 tambin son divisores de 36.

Introduccin a la Programacin

Alfonso San Miguel Aguirre

36

MATRICES (ARREGLOS BIDIMENSIONALES)


1) Dados los datos:
m, n
a11, a12, . . ., a1n
a21, a22, . . ., a2n
...
am1, am2, . . ., amn
b11, b12, . . ., b1n
b21, b22, . . ., b2n
...
bm1, bm2, . . ., bmn
con: 1 m, n 20, enteros;
aij, bij reales (1 i m; 1 j n)
Donde:
m representa el nmero de renglones de las matrices A y B,
n representa el nmero de columnas de las matrices A y B,
aij representan los componentes de la matriz Amxn
bij representan los componentes de la matriz Bmxn.
Elabora un programa modular para calcular la matriz Cmxn = Amxn + Bmxn.
2) Escribe un programa modular que lea una matriz de enteros de m renglones y n
columnas y calcule la suma de los elementos de cada columna.
3) Elabora una funcin que reciba como entrada un entero n y una matriz cuadrada
(de nxn) de enteros e imprima los elementos que conforman su diagonal.
4) Realiza una funcin que reciba como entrada un entero n y una matriz cuadrada
(de nxn) de enteros e imprima los elementos que conforman la diagonal que inicia
en la esquina superior derecha y termina en la esquina inferior izquierda.
5) Una matriz cuadrada A se dice que es simtrica si aij = aji para todo i, j dentro de
los lmites de la matriz. Elabora una funcin que lea una matriz y regrese un 1
(uno) si es simtrica o un 0 (cero) no.
6) Escribe una funcin que lea una matriz de enteros de mxn (1 < n, m 50) y otra
funcin que encuentre el menor y el mayor valor y regrese sus posiciones.
7) Elabora un programa modular que lea una matriz de mxn y la escriba poniendo las
columnas como renglones y los renglones como columnas.
Por ejemplo, si la matriz que da el usuario es:
4 7 1 3 5
2 0 6 9 7
3 1 2 6 4
entonces el programa debe escribir la matriz transpuesta:
4 2 3
7 0 1
1 6 2
3 9 6
5 7 4
Introduccin a la Programacin

Alfonso San Miguel Aguirre

37
8) Tabla de clasificacin de futbol. Elabora un programa para almacenar una tabla de
clasificacin de los equipos de futbol de la primera divisin de Mxico. A partir de
la tabla almacenada, tu programa debe ser capaz de proporcionar las estadsticas
de los equipos que consulte el usuario, por medio de un men. La tabla a guardar
es algo as (sin embargo, nota que no es necesario guardar la columna
correspondiente a los 17 de partidos jugados PJ).
PJ

PG

PE

PP

GF

GC Puntos

Santos

17

11

40

22

38

Toluca

17

10

27

16

34

Atlante

17

32

19

33

Guadalajara

17

28

16

31

San Luis

17

31

30

29

Amrica

17

26

22

26

Cruz Azul

17

27

22

25

Pachuca

17

26

23

24

UNAM

17

32

19

24

Morelia

17

20

25

22

Necaxa

17

23

32

20

Chiapas

17

22

28

18

Veracruz

17

20

35

18

Puebla

17

16

24

17

UAG

17

10

24

38

17

UANL

17

16

22

16

Monterrey

17

18

25

14

Atlas

17

11

23

33

12

Si el usuario pregunta por las estadsticas de la UNAM, por ejemplo, tu programa


debe escribir:
PJ PG PE
UNAM

17

PP GF GC Puntos

32

19

24

9) Tabla de resultados de futbol. Elabora un programa para almacenar una tabla de


resultados de los equipos de futbol de la primera divisin de Mxico. Tu programa
debe poder almacenar los nuevos resultados as como dar resultados anteriores,
dependiendo de la opcin que el usuario elija a travs de un men. A manera de
ejemplo, tu programa debe funcionar as:
FEDERACION MEXICANA DE FUTBOL
Torneo apertura 2007
Introduccin a la Programacin

Alfonso San Miguel Aguirre

38

( 1) Ingresar marcador
( 2) Proporcionar marcador
( 3) Salir
Opcion? --> 1
Equipo? Guadalajara
vs. Equipo? AMERICA
Goles guadalajara? 3
Goles america? 2
( 1) Ingresar marcador
( 2) Proporcionar marcador
( 3) Salir
Opcion? --> 2
Equipo? atlas
vs. Equipo? atlante
No han jugado
( 1) Ingresar marcador
( 2) Proporcionar marcador
( 3) Salir
Opcion? --> 2
Equipo? America
vs. Equipo? GUAdalajara
america - guadalajara --->
2 - 3
( 1) Ingresar marcador
( 2) Proporcionar marcador
( 3) Salir
Opcion? --> 3
Presione una tecla para continuar . . .
10) (Cuadrado mgico) Un cuadrado mgico es la disposicin de una serie de
nmeros enteros en un cuadrado o matriz de forma tal que la suma de los
nmeros por columnas, filas y diagonales principales sea la misma, la constante
Introduccin a la Programacin

Alfonso San Miguel Aguirre

39
mgica. Usualmente los nmeros empleados para rellenar las casillas son
consecutivos, de 1 a n, siendo n el nmero de columnas y filas del cuadrado
mgico. Un algoritmo para construir un cuadrado mgico de orden n siendo n
impar es el siguiente:
1.
Comenzar colocando el nmero 1 en la primera fila, en la columna de en
medio.
2.
El siguiente nmero se coloca en la fila anterior y columna siguiente,
tratando a la matriz como si fuera una esfera, es decir, la fila anterior a la primera
es la ltima, la columna siguiente a la ltima es la primera.
3.
Si dicha posicin ya se encuentra ocupada entonces el nmero que no se
pudo colocar se pone en la siguiente fila, misma columna.
11)

Introduccin a la Programacin

Alfonso San Miguel Aguirre

40

CADENAS DE CARACTERES
Los ejercicios de programacin deben resolverse utilizando funciones. Para ello divide el
problema en sub-problemas y programa la solucin de cada uno de ellos por medio de las
funciones.
1) Escribe un programa que lea una cadena de, a lo ms, 80 caracteres e imprima
todos los caracteres que se encuentran en posicin par.
2) Elabora un programa que lea una lnea de texto, transforme las letras que se
encuentran en minsculas por maysculas e imprima la lnea modificada.
3) Escribe un programa que lea una frase de, a lo ms, 80 caracteres y cuente
cuntas veces aparece la letra a en la frase.
4) Elabora un programa que lea una frase y cuente cada una de las vocales
minsculas o maysculas que contiene.
5) Escribe un programa que lea una frase y cuente el nmero de palabras que
contiene. Nota: Las palabras se separan por un espacio y la frase termina con una
palabra.
6) Disea un programa que lea una frase y una palabra y que cuente cuntas veces
aparece la palabra leda dentro de la frase, ya sea como una palabra completa o
como parte de otra palabra. La frase y la palabra tienen una longitud mxima de 80
caracteres.
7) El teclado de una computadora est descompuesto y cada vez que oprime la letra
s sta se escribe tres veces en vez de una. Elabora un programa en C que reciba
como dato de entrada una lnea tecleada en dicha computadora y que genere e
imprima una cadena resultado sin exceso de eses. El programa tambin debe
funcionar si la lnea original no contiene ninguna s.
8) Escribe un programa que lea una frase de, a lo ms, 80 caracteres y que, si su
longitud es menor a 80, le aada tantos espacios entre las palabras como sean
necesarios hasta que alcance los 80 caracteres.
9) Realiza un programa que:
a) Pida al usuario el ao actual y el mes actual.
b) Lea una serie de Registros Federales de Contribuyentes (RFC). El final de
datos estar dado por FIN o Fin o fin.
c) Para cada uno de los RFC recibidos debe imprimir la edad en aos de la
persona.
El RFC de una persona est formado por 4 caracteres en maysculas (inicial del
primer apellido, primera vocal del primer apellido, inicial del segundo apellido e
inicial del primer nombre, 6 nmeros (los dos ltimos del ao de nacimiento, mes y
da), un nmero y dos caracteres en mayscula que representan una clave.

Introduccin a la Programacin

Alfonso San Miguel Aguirre

41
10) El FBI enva sus mensajes codificados para que el enemigo no los descubra.
Escribe un programa al FBI que reciba un texto (mximo 50 caracteres) codificado,
genere una cadena de caracteres con el texto decodificado y la imprima.
El tipo de codificacin que utiliza el FBI para escribir sus mensajes consiste en
sustituir las vocales por nmeros, dejando los dems caracteres igual, de la
siguiente forma:

Ejemplo:
Texto decodificado:
Toma aos construir la confianza y solo minutos para destruirla.

Texto codificado:
T4m1 14s c4nstr53r l1 c4nf31nz1 y s4l4 m3n5t4s p1r1 d2str53rl1.

11) Sabiendo que los caracteres alfabticos son consecutivos en el cdigo ASCII,
escribe un programa que tenga como entrada una lnea de texto, con caracteres
de puntuacin: el punto, '.', la coma ',', el punto y coma, ';' y el espacio, ' ' y que
escribe la misma lnea de texto pero:
i) Poniendo los caracteres de principio de oracin en mayscula (es decir, el
primer carcter de la lnea y los siguientes a un punto.
ii) Asegurndose de que haya al menos un espacio despus de un punto, una
coma o un punto y coma.
iii) Asegurndose de que no haya espacios antes de un punto, una coma o un
punto y coma.
He aqu dos ejemplos para ilustrar las entradas y salidas que debe tener el
programa:
1. Entrada:
este es mi proyecto.pienso que para certificarme debo tener,
si es posible,4.
Salida:
Este es mi proyecto. Pienso que para certificarme debo tener,
si es posible, 4.
2. Entrada:
este es otro ejemplo.
Salida:
Este es otro ejemplo.

ya hay 3 espacios despues del punto.


Ya hay 3 espacios despues del punto.

En este ltimo ejemplo, como ya hay tres espacios despus del punto, tu
programa no debe aadir ningn espacio extra, de tal manera que en la salida
siguen estando los mismos tres espacios despus del punto.

Introduccin a la Programacin

Alfonso San Miguel Aguirre

42
12) (Consultorio mdico) Un mdico desea que le ayudes escribiendo un programa
para programar sus citas semanales. Trabaja de lunes a viernes, de 9 de la
maana a 8 de la noche, las citas tienen una duracin de una hora. En una
primera versin, tu programa slo debe registrar citas para una semana. El
programa debe poder registrar citas y tambin el poder cancelarlas. Para registrar
una cita, un paciente indica el da y la hora en que quiere su cita, el programa
revisa que dicha cita est disponible y, de ser el caso, registra el nombre del
paciente. Para cancelar una cita el programa pregunta da, hora y nombre del
paciente y, si efectivamente est registrada esa cita, la pone nuevamente
disponible. El programa debe escribir convenientemente la agenda semanal.

Introduccin a la Programacin

Alfonso San Miguel Aguirre