Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
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
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
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:
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:
Ao actual
08
08
Edad
46
7
Introduccin a la Programacin
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):
Introduccin a la Programacin
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
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
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
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
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
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) .
Introduccin a la Programacin
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
15
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
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
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
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
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
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:
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
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
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
22
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
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
2
2
2
2
1
3 2 1
3 4 3 2 1
3 4 5 4 3 2 1
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:
Introduccin a la Programacin
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:
Introduccin a la Programacin
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:
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:
Introduccin a la Programacin
26
f(x)=6x2-1
Ahora sustituyendo la funcin y su derivada evaluada en xi-1 tenemos:
Introduccin a la Programacin
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)
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
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:
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:
29
b) Copiar los datos a otro arreglo llamado inverso, de tal forma que queden
almacenados como se indica a continuacin:
inverso
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
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
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
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
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
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
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
36
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
17
PP GF GC Puntos
32
19
24
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
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
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
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.
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
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