Sunteți pe pagina 1din 10

EJERCICIOS DE PROGRAMACIN

PROBLEMAS SECUENCIALES

1. Escriba un programa que solicite al usuario que introduzca dos nmeros y obtenga e imprima la
suma, el producto, la diferencia, el cociente y el mdulo de los dos nmeros.

2. Leer la entrada de dos nmeros y mostrar el doble producto del primero menos la mitad del
segundo.

3. Lea su nombre, apellido paterno, apellido materno y matricula, y escrbala en un solo rengln,
separando con tabuladores:

090101 JUAN LOPEZ PEREZ

4. Escribir un programa para lea un flotante que represente un nmero de grados Celsius, y la
imprima como el flotante equivalente en grados Fahrenheit. La salida debe ser de la siguiente
forma:

100.0 grados Celsius son 212.0 grados Fahrenheit.

5. Dados ciertos centmetros como entrada de tipo flotante, imprimir su equivalencia a pies
(enteros) y pulgadas (flotante con 1 decimal). Considerar como 2.54 centmetros por pulgada, y
12 pulgadas por pie. Por ejemplo, si la entrada es 333.3, el formato de la salida deber ser:

333.3 centmetros son 10 pies 11.2 pulgadas.

6. Escriba un programa que solicite al usuario dos enteros e imprima al mayor de ellos seguido de
la frase es el mayor..

7. Escriba un programa que imprima un recuadro, un ovalo, una flecha y un diamante, como
sigue:

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

8. Escriba un programa que reciba un nmero entero de 5 dgitos y separe el nmero en sus dgitos
individuales escribindolos en diferentes renglones, por ejemplo, si el usuario escribe 42389, el
programa deber imprimir:
4
2
3
8
9 Sugerencia: Utilice los operadores de divisin y mdulo.

9. Escriba un programa que solicite al usuario tres nmeros diferentes y a continuacin imprima el
ms pequeo y el ms grande de esos nmeros (sugerencia: utilice el operador ternario, dado
que slo se cuenta con proposiciones secuenciales)

10. Escriba un programa que reciba un nmero y escriba su tabla de multiplicar, usando
tabuladores, por ejemplo, si el usuario introduce el 4, el programa debe imprimir:

4 x 1 = 4
4 x 2 = 8
4 x 3 = 12
4 x 4 = 16
4 x 5 = 20
4 x 6 = 24
4 x 7 = 28
4 x 8 = 32
4 x 9 = 36
4 x 10 = 40

nicamente se estarn empleando proposiciones secuenciales.

PROBLEMAS CON ESTRUCTURAS DE SELECCIN

11. Escriba un programa que lea dos nmeros enteros y, si el primero es menor que el segundo, que
imprima el mensaje Arriba"; si el segundo es menor que el primero, que imprima el mensaje
Abajo"; si los nmeros son iguales, que imprima el mensaje igual".

12. Realice un programa que indique a un cajero de una tienda departamental si un cliente excede o
no su lmite de crdito. El lmite se excede si la suma del saldo actual con el pago a realizar es
mayor al crdito del cliente.

Por ejemplo, si el Crdito es de $ 5000.00 y el saldo actual es de $3500.00, si un cliente intenta
pagar $2000.00, el programa le debe decir: LIMITE EXCEDIDO. Pero si intenta pagar
$1000.00, el programa debe decir: OPERACIN AUTORIZADA.

13. Desarrolle un programa que lea un valor entero entre 1 y 7, suponga que el nmero es un da de
la semana: 1 corresponde a domingo, 2 a lunes, y as sucesivamente. Imprima el nombre del da
o un mensaje de error si el nmero es mayor que 7.

14. Una empresa de ventas semanalmente paga a sus empleados un sueldo fijo ms las comisiones
por ventas, la comisin sobre las ventas es del 5% si la cantidad vendida fue menor a $5000.00,
el 8% si vendi entre $5000.00 y $10,000 y el 10% si vendi $10,000 o ms. Escriba un
programa que reciba el sueldo base de un empleado y sus ventas de una semana, y devuelva su
sueldo semanal.

15. La comisin del agua cobra por metros cbicos el consumo de los usuarios. A $3.00 por m
3

dentro de los primeros 10 m
3
, entre los prximos 10 hay un costo adicional de $0.50 y para los
que se consuman despus de 20 m
3
hay un costo adicional de $0.75, los costos adicionales son
por m
3
. Realizar un programa que reciba la cantidad de m
3
de un usuario y devuelva la cantidad
que debe pagar.

16. Una empresa paga por horas a sus empleados, pagando tiempo normal en las primeras 40
horas de trabajo y tiempo y medio por todas las horas en exceso de 40 horas. Escriba un
programa que reciba el nmero de horas que trabajo un empleado y su pago por hora, y
devuelva el salario de ese empleado.

17. Escriba un programa que proporcione la solucin de una ecuacin cuadrtica, es decir, una
ecuacin del tipo: a x
2
+ b x + c = 0. Recuerde que este tipo de ecuaciones se resuelven con la
frmula general para ecuaciones cuadrticas y considere que existen tres posibles soluciones,
dependiendo del discriminante.

18. Escriba un programa que proporcione la solucin de un sistema de ecuaciones lineales con 2
incgnitas, un sistema del tipo: a1 x + b1 y = c1 y a2 x + b2 y = c2. Notifique si no es
posible encontrar la solucin.

19. Escriba un programa que lea dos caracteres, los interprete como dgitos hexadecimales y
muestre su valor en decimal. El programa debe aceptar letras maysculas y minsculas para los
valores del 10 al 15 y debe enviar un mensaje de error para caracteres que no representan
dgitos en hexadecimal.

20. Dados como entrada 3 enteros representando la fecha como da, mes y ao, realice un programa
que imprima la fecha del da anterior. Por ejemplo, para una entrada como: 1 3 1992 La salida
ser:

Fecha anterior a 1-3-1992 es 29-02-1992.

Suponga que se introducir una fecha correcta y considere la posibilidad de aos bisiestos.

21. Realice un programa que reciba como entrada 3 enteros representando la hora actual en hora,
minutos y segundos e imprima la hora en el segundo siguiente. Por ejemplo, para una entrada
como: 1 59 59, la salida ser:

La hora siguiente a 1:59:59 es 2:0:0.

Suponga que se introducir una hora correcta en un formato de 1 a 12 horas (de 12:59:59 sigue
1:0:0).

PROBLEMAS QUE REQUIEREN ESTRUCTURAS REPETITIVAS

22. Leer n calificaciones y obtener el promedio. Donde el valor de n debe ser proporcionado por el
usuario.

23. Leer una secuencia de calificaciones y obtener el promedio, el fin de la secuencia se determina
cuando el usuario introduce -1 (centinela).

24. Calcular la suma de los nmeros enteros existentes en un rango definido por el usuario. El
usuario debe proporcionar el lmite inferior y el lmite superior del rango. El programa debe
asegurar que el lmite inferior es menor que el superior.

25. Leer n nmeros enteros y mencionar cuantos son positivos y cuantos negativos, n deber ser
proporcionado por el usuario.

26. Leer n nmeros enteros y mencionar cuantos son pares y cuantos impares, n deber ser
proporcionado por el usuario.
27. Determinar si un nmero entero positivo es primo o no.

28. Calcular el factorial de un nmero entero positivo n.

29. Realizar la suma de todos los nmeros pares en el intervalo de 0 hasta un mximo
proporcionado por el usuario, incluyendo el valor mximo si es un nmero par.

30. Realizar la suma de todos los nmeros impares en el intervalo de 0 hasta un mximo
proporcionado por el usuario, incluyendo el valor mximo si es un nmero impar.

31. Contar el nmero de caracteres que introduzca el usuario, antes de teclear al carcter $.

32. Leer una secuencia de enteros positivos terminada con un nmero negativo, y como resultado,
mostrar el nmero mayor, el nmero menor y cuantos nmeros se introdujeron antes de haber
ledo un nmero negativo.

33. Escribir un programa que muestre un nmero generado en forma aleatoria y luego escriba la
frase Desea continuar (S/N)?, esta tarea se repetir hasta que la respuesta sea N o n.

34. Imprimir todos los nmeros primos en el intervalo [1, 200].

35. Calcular los n primeros mltiplos del 3 (incluyendo al 3), donde el valor de n debe ser
introducido por teclado. Modificar el problema para calcular los n primeros mltiplos del
nmero k, con n y k introducidos desde el teclado.

36. Leer el peso de los alumnos de una preparatoria y determinar cuntos pesan:
Menos de 50 kilos,
Entre [50, 60] kilos,
Entre (60,70] kilos,
Ms de 70 kilos.
El fin de la lectura de pesos se indica con -1 (centinela).

37. Dado un nmero entero entre 1 y 15, imprima su tabla de multiplicar, por ejemplo, para el 4:

1 2 3 4
** ** ** **
1* 1 2 3 4
2* 2 4 6 8
3* 3 6 9 12
4* 4 8 12 16

38. Leer las calificaciones del grupo del curso Lgica de Programacin e indicar cuantos fueron
aprobados y cuantos reprobados. Primero se debe leer el nmero de estudiantes en el grupo.

39. Calcular el n-simo trmino de la serie de Fibonacci definida por:
F0 = 0, F1 = 1, F2 = F1 + F0 = 1 + 0, Fn = Fn-1 + Fn-2 para n >= 2.
(n es proporcionado por el usuario).

40. Escriba un programa que realice una operacin aritmtica sobre dos nmeros reales que
inicialmente deben tener 1.0, la operacin se debe seleccionar con un cdigo, de acuerdo con la
siguiente relacin:
[1] Modificar los nmeros
[2] Sumar los nmeros y mostrar el resultado
[3] Restar el segundo nmero del primero y mostrar el resultado
[4] Multiplicar los nmeros y mostrar el resultado
[5] Dividir el primero entre el segundo y mostrar el resultado
[6] Terminar
El programa debe continuar su ejecucin hasta que se teclee la opcin 6.

41. Una estacin climtica proporciona un par de temperaturas diarias (mxima, mnima) (no es
posible que una o ambas temperaturas sea menor a 10 grados centgrados). La pareja que marca
el fin de introduccin de datos de las temperaturas es 0,0. Se pide determinar de manera
independiente el promedio de las temperaturas mximas y el de las mnimas, el nmero de
errores y el porcentaje que representan

42. Una compaa de seguros tiene contratados a n vendedores. Cada uno hace m ventas a la
semana. Su poltica de pagos es que un vendedor recibe un sueldo base semanal de $500.00 y
un 10% extra por comisiones de sus ventas. El gerente de su compaa desea saber cuanto
dinero obtendr en la semana cada vendedor.

43. En una empresa se requiere calcular el salario semanal de cada uno de los n obreros que laboran
en ella. El salario se obtiene de la siguiente forma:
Si el obrero trabaja 40 horas o menos se le paga $20 por hora
Si trabaja ms de 40 horas se le paga $20 por cada una de las primeras 40 horas y $25
por cada hora extra.
Adems del pago para cada obrero, el programa debe mostrar la cantidad total que ha pagado.

44. En una reunin escolar de padres de familia, se quiere determinar cuntos hombres y cuntas
mujeres participaron, contando a las personas conforme van llegando. El programa
repetidamente preguntar: lleg un nuevo padre de familia (S/N)? Si la respuesta es S o s se
debe solicitar el sexo (M/F). Terminar cuando la respuesta sea N o n.

45. El Depto. de Seguridad Pblica y Trnsito del D.F. desea saber cuntos autos entran a la ciudad
de Mxico con calcomana de cada color. Conociendo el ltimo dgito de la placa de cada
automvil se puede determinar el color de la calcomana utilizando la siguiente relacin:

DGITO COLOR
1 2 amarilla
3 4 rosa
5 6 roja
7 8 verde
9 0 azul
El fin de ingreso de datos se marca cuando el cobrador introduce -1 como ltimo dgito de la
placa.

46. Una persona desea invertir su dinero en un banco, el cual le otorga un 0.8% de inters mensual.
Cul ser la cantidad de dinero que esta persona tendr al cabo de k meses si la ganancia de
cada mes es reinvertida?
47. En un supermercado, un cajero captura los precios de los artculos que los clientes compran e
indica a cada cliente cul es el monto de lo que deben pagar. Al final del da, le indica a su
supervisor cuanto fue lo que cobro en total a todos los clientes que pasaron por su caja.

Despus de introducir el precio de un producto, el sistema debe preguntar si an hay productos
del cliente actual.

Despus de que se le indica a un cliente cuanto debe pagar, el sistema debe preguntar si an hay
clientes por atender.

48. Cinco miembros de un club contra la obesidad se renen mensualmente para ver si han bajado o
subido de peso, desde su ltima reunin. Para esto realizan un ritual de pesaje en donde cada
uno se pesa en cuatro bsculas distintas para as tener un promedio de su peso. Si existe
diferencia positiva entre este promedio de peso y el peso de la ltima vez que se reunieron,
significa que subieron de peso. Pero si la diferencia es negativa, significa que bajaron. Lo que
el problema requiere es que por cada persona se imprima un letrero que diga si SUBIO o
BAJO de peso y la cantidad de kilos que subi o bajo.

49. Se desea obtener el promedio de los 4 grupos que estn en segundo cuatrimestre; siendo que
cada grupo puede tener n alumnos, los alumnos cursan 8 materias y las materias se califican con
2 parciales. El programa debe pedir el nmero de alumnos en cada grupo y sus calificaciones.
Lo que va a mostrar es el promedio de cada alumno, el promedio de cada grupo y el promedio
de los 4 grupos.

PROBLEMAS CON FUNCIONES

Para los siguientes ejercicios, evale las funciones continuamente, es decir, el programa
principal debe escribir la frase Desea continuar (S/N)? despus de evaluar la funcin y
terminar hasta que la respuesta sea N o n.

50. Escriba una funcin que reciba un entero y devuelva su cuadrado.

51. Realice una funcin que reciba tres nmeros y devuelva el mayor de ellos.

52. Escriba la funcin par que reciba un nmero entero y devuelva 1 si el nmero es par, o 0 en
caso contrario. El programa principal indicar: Nmero Par o Nmero Impar, segn el
resultado de la funcin.

53. Escriba la funcin multiplo que reciba un par de nmeros enteros e indique si el segundo es
mltiplo del primero, esto se indicar regresando 1. Y se regresar 0 en caso contrario. El
programa principal imprimir un mensaje indicando si el segundo nmero fue mltiplo del
primero.

54. Escriba una funcin potencia( base, exponente) que devuelva el valor de base
exponente
. Por
ejemplo potencia( 3, 4 ) = 3*3*3*3. Suponga que exponente es un entero positivo, no cero y
base es un entero.

55. Defina una funcin hipotenusa que calcule la longitud de un triangulo rectngulo, cuando es
conocida la longitud de los otros dos lados. Utilice la funcin para determinar la hipotenusa de
tringulos cuyos lados son proporcionados por el usuario como nmeros positivos en punto
flotante (la hipotenusa es del mismo tipo).

56. Escriba una funcin que despliegue en la esquina superior izquierda de la pantalla un cuadro
slido de asteriscos, cuyo costado o lado est especificado en un argumento llamado lado, por
ejemplo, si lado es 4, la funcin mostrar:
* * * *
* * * *
* * * *
* * * *

57. Modifique la funcin creada en el ejercicio anterior para formar el cuadro con base en cualquier
carcter que se reciba como un segundo argumento. Por ejemplo, si se recibe 3 y % se debe
imprimir :
% % %
% % %
% % %

PROBLEMAS CON FUNCIONES RECURSIVAS

Las funciones siguientes tambin deben evaluarse continuamente.

58. El Mximo Comn Divisor de los enteros x e y es el entero ms grande que divide de forma
completa tanto a x como a y. Escriba una funcin recursiva gcd que regrese el mximo comn
divisor de x e y. El gcd en forma recursiva se define como sigue: Si y es igual a 0, entonces
gcd(x, y) es x; de lo contrario gcd(x, y) es igual a gcd(y, x MOD y), donde MOD es el operador
mdulo.

59. Realice una funcin recursiva que calcule el factorial de un nmero.

60. La funcin producto en forma recursiva de a y b, siendo enteros positivos, se define como: Si b
es igual a 1 entonces el producto de a y de b es a; en caso, contrario producto(a, b) es igual a a
+ producto(a, b-1).

61. La serie de Fibonacci se define como:

fibo(n) = n, si n = 0 n = 1, es decir, fibo(0) = 0 y fibo(1) = 1
fibo(n) = fibo(n-1) + fibo(n-2), para n mayor o igual a 2.

62. La potencia de dos nmeros enteros positivos pot(a, b) se define como: Si b = 1, entonces
pot(a, b) = a, en caso contrario pot(a, b) = a * pot(a, b-1).

63. Desarrolle un programa basado en una funcin recursiva que imprima los movimientos
requeridos para el juego de las Torres de Hanoi. El juego consiste en mover n discos de
diferentes dimetros de la torre fuente a la torre destino.


Fuente Destino Apoyo
Las reglas a seguir son:

Se debe mover un disco a la vez.
No es posible colocar un disco sobre otro de dimetro mayor.

La torre de Apoyo es auxiliar para los movimientos, el planteamiento recursivo es el siguiente:
Si se van a mover n discos de la torre Fuente a la torre Destino, primero se deben mover n 1
discos de la torre Fuente a la torre Apoyo, luego se mueve el disco nico de Fuente a Destino
y finalmente se mueven n 1 discos de la torre Apoyo a la torre Destino.

PROBLEMAS CON VECTORES (ARREGLOS UNIDIMENSIONALES)

64. Escriba un programa que solicite 10 enteros, los almacene en un arreglo y los imprima en orden
inverso.

65. Escriba un programa que solicite n enteros, los almacene en un arreglo y los imprima en orden
inverso. El valor de n debe ser proporcionado por el usuario con un mximo de 20.

66. Llenar un vector de n elementos, imprimir la posicin y el valor del elemento ms grande
almacenado en el vector. Imprima la ltima posicin en caso de existir repeticiones.

67. Llenar un vector de n elementos, imprimir la posicin y el valor del elemento ms pequeo
almacenado en el vector. Imprima la primera posicin en caso de existir repeticiones.

68. Escriba un programa que sume dos arreglos de n elementos, en donde n se debe solicitar al
usuario con un mximo de 10.

69. Obtenga el promedio de un arreglo de n elementos.

70. Solicite n enteros para almacenarlos en un vector A, con una capacidad mxima de 50
elementos. Disee un algoritmo que escriba SI si el vector est ordenado de manera
ascendente o NO si el vector no esta ordenado

71. Solicite n enteros para almacenarlos en un vector A, con una capacidad mxima de 50
elementos. Disee un algoritmo que escriba SI si el vector est ordenado en forma
descendente o NO si el vector no esta ordenado

72. Desarrolle un programa que obtenga el Producto Punto de dos Vectores de n elementos.

73. Realice la bsqueda secuencial de un elemento x en un arreglo de n elementos enteros
positivos, el programa debe pedir los datos del arreglo y luego en forma repetida debe solicitar
el elemento a buscar, terminando cuando el usuario introduce el -1.

74. Realice la bsqueda binaria de un elemento x en un arreglo de n elementos enteros positivos,
el programa debe pedir los datos del arreglo y luego en forma repetida debe solicitar el
elemento a buscar, terminando cuando el usuario introduce el -1.

75. Desarrolle el programa de Ordenamiento de Burbuja, para un vector de n elementos. El
Ordenamiento de Burbuja es un mtodo clsico con n 1 iteraciones y que consiste en ubicar
en cada iteracin al elemento mayor de un sub-arreglo cuyo tamao va disminuyendo.

PROBLEMAS SOBRE CADENAS (ARREGLOS DE CARACTERES)

76. Realice una funcin str_lon que devuelva la longitud de una cadena, una cadena es una
secuencia de caracteres terminada con el carcter NUL (\0). La cadena debe ser solicitada al
usuario.

77. Desarrolle una funcin str_cat que concatene una cadena s2 al final de una cadena s1. Las
cadenas s1 y s2 deben ser solicitadas al usuario y se debe mostrar la cadena resultante.

78. Implemente una funcin str_cpy que compare dos cadenas s1 y s2. La funcin debe devolver -1
si s1 es menor que s2, 0 si s1 es igual que s2 y l en caso de que s1 sea mayor que s2. La
comparacin se realiza carcter por carcter y termina tan pronto se encuentra una diferencia.

79. Implemente una funcin str_search que busque y determine si una cadena s1 est contenida en
una cadena s2. La funcin debe devolver 1 si la cadena s1 est contenida en la cadena s2 y 0 en
caso contrario.

PROBLEMAS RECURSIVOS SOBRE ARREGLOS UNIDIMENSIONALES

80. Escribir una funcin recursiva que imprima un arreglo de enteros de tamao n (del elemento 0
al elemento n-1).

81. Escribir una funcin recursiva que imprima un arreglo de enteros de tamao n en orden inverso
(del elemento n-1 al elemento 0).

82. Escribir una funcin recursiva que sume los elementos de un arreglo de tamao n.

83. Escriba una funcin recursiva que implemente una bsqueda secuencial en un arreglo de n
elementos.

84. Escriba una funcin recursiva que implemente una bsqueda binaria en un arreglo de n
elementos.

85. Escriba una funcin recursiva que implemente el mtodo ordenamiento rpido (qsort).

86. Escriba una funcin recursiva que imprima una cadena en orden inverso.

87. Escriba una funcin que reciba una cadena y regrese uno si la cadena es palndromo y cero en
caso contrario.

PROBLEMAS CON MATRICES (ARREGLOS BIIDIMENSIONALES)

88. Escriba un programa que solicite los elementos de una matriz de 4 x 5 elementos e imprima la
matriz original y la matriz transpuesta.

89. Escriba un programa que solicite los elementos de una matriz de n x m elementos e imprima la
matriz original y la matriz transpuesta. El valor de n y m debe solicitarse al usuario, con un
mximo de 10.

90. Desarrolle un programa que sume 2 matrices de n x m, solicitando los valores de n, m y los
elementos de cada matriz. El programa debe mostrar las matrices a sumar y la matriz resultante.

91. Realice un programa que recorra una matriz para buscar un elemento e indique el rengln y la
columna en donde fue localizado o una notificacin de que el elemento no est en la matriz.

92. Sume todos los elementos de una matriz y muestre el resultado de la suma.

93. Encuentre el valor mximo en una matriz y muestre su valor, as como el rengln y la columna
en donde haya sido encontrado, muestre la ltima aparicin, en caso de repeticiones.

94. Encuentre el valor mnimo en una matriz y muestre su valor, as como el rengln y la columna
en donde haya sido encontrado, muestre la primera aparicin, en caso de repeticiones.


95. Obtenga el promedio de los elementos de una matriz de n x m.

96. Hallar el promedio por renglones.

97. Hallar el promedio por columnas.

98. Realice el producto de 2 matrices, una de m x n y la otra de n x k, los valores de n, m y k
deben ser solicitados al usuario. Limitando a un mximo de 10 para todos los casos.

PROBLEMAS RECURSIVOS SOBRE MATRICES

99. En un tablero de Ajedrez, es posible que un caballo recorra todas las casillas partiendo
de cualquier posicin. Realice un programa, basado en una funcin recursiva, que
reciba una posicin inicial y muestre el recorrido que realizara un caballo para recorrer
todo el tablero.

100. En un tablero de Ajedrez, es posible acomodar 8 reinas sin que se ataquen entre
ellas. Realice un programa, basado en una funcin recursiva, que reciba la posicin de
una reina y coloque a las 7 reinas restantes en el tablero.

S-ar putea să vă placă și