Está en la página 1de 8

Universidad Católica Boliviana San Pablo – Unidad Académica Tarija

Departamento de Informática, Sistemas y Telecomunicaciones


INF 101 – INTRODUCCIÓN A LA PROGRAMACIÓN
-------------------------------------------------------------------------------------------------------------------------
TRABAJO PRÁCTICO

1. Escribir un programa que lea dos números por teclado y muestre su suma, resta, multiplicación
y división.
2. De un lote de N números determinar los que son múltiplos de 3 y 4 e imprimir dichos números.
3. Calcular el valor de: D = (b2 - 4ac) 0,5.
4. Hacer un programa que lea una serie de números hasta que introduzca un cero, luego imprimir
la suma de dichos números.
5. Dada una cantidad grande X en bolivianos determinar en cuantos billetes de 100, 50, 10, 5 y
monedas de 1Bs. Se puede descomponer.
6. Dado un número X determinar si es capicúa.
7. Dado un número X obtener la suma al cuadrado de sus dígitos. Ej: X=25 => 22 + 52 = 29
8. Dado un número X imprimir el digito mayor y el menor.
9. Dado un número X entero positivo determinar cuántos dígitos pares e impares tiene.
10. Dado un número X entero positivo intercambiar el dígito menos significativo por el más
significativo. Ej. 56789 => 96785.
11. Dado un número X entero positivo, descomponerlo en otros dos, uno formado por los dígitos
impares del número y otro por los pares. Mostrar en pantalla los resultados.
Ej. X = 124964, X1 = 19, X2 = 2464
12. Hacer un programa que imprima los caracteres del código ASCII
13. Escribir un programa que dibuje el triángulo siguiente:
*
* *
* *
* *
* * * * * * * *
14. Escribir un programa que dibuje el rectángulo siguiente:
**************
* *
* *
* *
* *
**************
15. Modificar el programa anterior de manera que se lea una palabra de cinco letras y se imprima
en el centro del rectángulo.
Pedir en ingreso por teclado cuatro números x1, y1, x2, y2 ; con estos datos dibujar en la pantalla
un cuadro o rectángulo, cuyos vértices tendrán por coordenadas: (x1, y1), (x1, y2), (x2, y1), (x2,
y2). Consultar el código ASCII.
16. Dado un número X entero positivo suprimir los ceros si es que tuviera.
Ej. 450607 => 4567
17. Generar la serie 0 1 1 2 2 3 3 4 4 5 5 6 6 …
18. Generar la serie 1 2 3 5 16 63 395…
19. Generar la serie 0 3 8 15 24…
20. Generar la serie 0 1 2 6 16 44 …
21. Generar la serie 2 4 6 24 30 720…
22. Generar la serie 5 7 11 16 24…
23. Generar la serie 0 1 2 3 6 11 20 37 …
24. Generar la serie 11 13 8 84 18 612 90…
25. Generar la serie 1 2 3 6 11 20 37…
26. Generar la serie 1 3 7 15 31 63 …
27. Generar la serie 5 7 35 42 1470 1512…
28. Generar la serie 0 2 6 12 20 30…
29. Generar la serie 1 2 3 5 7 11 13…
Universidad Católica Boliviana San Pablo – Unidad Académica Tarija
Departamento de Informática, Sistemas y Telecomunicaciones
INF 101 – INTRODUCCIÓN A LA PROGRAMACIÓN
-------------------------------------------------------------------------------------------------------------------------
30. Generar la serie 6 7 13 91 104 9464 …
31. Generar la serie 1 4 25 676 458329 …
32. Generar la serie 1 0.5 0.75 0.625 0.6875 0.65625…
33. Generar la serie abc cde efg ghi …
34. Generar la serie 12 6 11 5 10 4 …

Generar las siguientes matrices de tamaño N x N:

35.

36.

37.

38.

39.

40.
Universidad Católica Boliviana San Pablo – Unidad Académica Tarija
Departamento de Informática, Sistemas y Telecomunicaciones
INF 101 – INTRODUCCIÓN A LA PROGRAMACIÓN
-------------------------------------------------------------------------------------------------------------------------
41.

42.

43.

44.

45.

N
Ni
46. Calcular el valor de la sumatoria: a  
i 1 [( N  1)  i ]!
N K
( N K  K N )!
47. Calcular el valor de la sumatoria: a   donde K  N .
i 1 j 1 ( N  K ) i j
N N 5
(i j  j i ) 2 (2 j  3i)!
48. Calcular el valor de la sumatoria: a   cos(i  j) * sin(i  j) *
i 1 j 1 (i  j )!
49. Escribir un programa que indique si una palabra leída es un palíndromo. Un palíndromo
(capicúa) es una palabra que se lee igual en ambos sentidos, tal como radar.
50. Escribir un programa que visualice el cuadro mágico de orden impar N, comprendido entre
3 y 11; el usuario elige el valor de N. Un cuadro mágico se compone de números enteros
comprendidos entre 1 y N 2. La suma de los números que figuran en cada línea, cada columna
y cada diagonal son idénticos. Un ejemplo es:
Universidad Católica Boliviana San Pablo – Unidad Académica Tarija
Departamento de Informática, Sistemas y Telecomunicaciones
INF 101 – INTRODUCCIÓN A LA PROGRAMACIÓN
-------------------------------------------------------------------------------------------------------------------------
8 1 6
3 5 7
4 9 2
Un método de construcción del cuadrado consiste en situar el número 1 en el centro de la
primera línea, el número siguiente en la casilla situada encima y a la derecha, y así
sucesivamente. Es preciso considerar que el cuadrado se cierra sobre sí mismo. Sin embargo,
cuando la posición del número caiga en una casilla ocupada, se elige la casilla situada por
debajo del número que acaba de ser situado.
51. Un número perfecto es un entero positivo, que es igual a la suma de todos los enteros positivos
(excluido el mismo) que son divisores del número. El primer número perfecto es 6, ya que los
divisores de 6, son 1, 2, 3 y 1+2+3 = 6. Diseñar un programa que encuentre los primeros 3
números perfectos.
52. Escribir un programa que reciba una cadena de caracteres y la devuelva en forma inversa
(‘hola’ se convierte en ‘aloh’).
53. Hacer un programa que multiplique matrices
54. Pedir en ingreso por teclado dos números: a, b; y visualizar el resultado del producto mediante
sumas sucesivas. Ej. a = 5, b = 3 ; p = 5 + 5 + 5 = 15
55. Pedir en ingreso por teclado dos números: a, b; donde (a > b) y visualizar el resto y el cociente
de dividir (a/b) por restas sucesivas.
56. Pedir en ingreso por teclado de un número N, visualizar en pantalla la siguiente pirámide:
1
22
333
………..
NNN…N
57. La siguiente pirámide de dígitos aparece periódicamente en varias publicaciones de acertijos y
juegos:
1
232
34543
4567654
567898765
Diseñe e implemente un programa que genere esta pirámide.
58. Escribir un programa que genere la pirámide de Pascal:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
59. Pedir por teclado un ángulo A en grados sexagesimales y devolver en pantalla su seno, coseno
tangente, secante, cosecante y cotangente. Averiguar la clase Math.
60. Hacer un programa que lea cuatro números y luego los imprima ordenados de forma
ascendente sin usar vectores.
61. Escribir un programa que lea un vector de cualquier tipo básico de datos y lo muestre ordenado
de manera ascendente y descendente. Utilizar al menos tres métodos.
62. Hacer un programa que lea los elementos de un vector de tamaño N, y lo ordene de manera
ascendente y descendente
63. Realizar un programa para determinar si un número N es primo. (Use las tres estructuras de
control repetitivas).
64. Pedir el ingreso de un número N y visualizar el primo inmediato inferior y el inmediato superior.
65. Escribir un programa que determine el máximo común divisor de dos números enteros positivos
(mcd) por el teorema de Euclides:
 Dividir el mayor de los dos números por el más pequeño.
Universidad Católica Boliviana San Pablo – Unidad Académica Tarija
Departamento de Informática, Sistemas y Telecomunicaciones
INF 101 – INTRODUCCIÓN A LA PROGRAMACIÓN
-------------------------------------------------------------------------------------------------------------------------
 A continuación dividir el divisor por el resto.
 Continuar el proceso de dividir el último divisor por el último resto hasta que la división
sea exacta
 El último divisor es el mcd.
66. Escribir un programa que lea cuatro números y a continuación imprima el mayor de los cuatro.
67. Diseñar un programa que lea tres números y encuentre si uno de ellos es la suma de los otros
dos.
68. Escribir un programa que solicite un carácter y que sitúe ese carácter en el centro de la
pantalla. El usuario debe poder a continuación desplazar el carácter pulsando las flechas del
teclado y Escape para finalizar.
69. Diseñar un programa para calcular la velocidad (en m/s) de los corredores de la carrera de
1500 m. La entrada consistirá en parejas de números (minutos, segundos) que dan el tiempo
del corredor por cada corredor, el programa debe imprimir el tiempo en minutos y segundos, así
como la velocidad media.
Ejemplo de entrada de datos: (3,53) (3,40) (3,46) (3,52) (4,0) (0,0); el último par de datos se
utilizara como fin de entrada de datos.
70. Escribir un programa que calcule la superficie de un triángulo en función de la base y la altura.
71. Escribir un programa que encuentre el salario semanal de un trabajador, dada la tarifa horaria y
el número de horas trabajadas diariamente.
72. Una temperatura Celsius (centígrados) C puede ser convertida a una temperatura equivalente F
de acuerdo a la siguiente fórmula: F = (9/5)*C + 32. Escribir un programa que lea una
temperatura Celsius como número decimal y obtenga la temperatura Fahrenheit equivalente.
73. Hacer un programa que resuelva sistemas de dos ecuaciones lineales, ingresados a, b, c, d, e y
f mediante tres métodos de resolución :
ax + by = c
dx + ey = f
74. Escribir un programa que calcule el semiperímetro de un triángulo y en función a este su área,
siendo conocidos sus tres lados.
75. Desglosar una gran cantidad de segundos introducida por teclado en su equivalente en
semanas, días, horas, minutos y segundos.
76. Escribir un programa que lea la hora en notación de 24 hrs. e imprima la respuesta en notación
de 12 hrs. Por ejemplo, si la entrada es 13:45, la salida será: 1:45 PM.
El programa pedirá al usuario que introduzca exactamente cinco caracteres. Así por ejemplo,
las nueve en punto se introduce como: 09:00.
77. Sea N un entero positivo de cuatro dígitos, se desea redondearlo a la centena más próxima y
visualizar la salida. Por ejemplo, si N es 2362 el resultado será 2400. Si N es 2342, el resultado
será 2300. Diseñar el programa correspondiente.
78. Hacer el juego de tres en raya
79. Sean dos fechas en el formato día (1 al 31), mes (1 al 12), y año (entero de cuatro dígitos),
correspondientes a las fechas de nacimiento y la fecha actual, respectivamente. Escribir un
programa que calcule y visualice la edad del individuo. Si es la fecha de un bebe (menos de un
año de edad), la edad debe dar en meses y días; caso contrario, la edad se calculara en años.
80. Escribir un programa que determine si un año es bisiesto. Un año es bisiesto si es múltiplo de
cuatro (por ejemplo 1984). Sin embargo, los años múltiplos de 100 sólo son bisiestos cuando a
la vez son múltiplos de 400 (por ejemplo, 1800 no es bisiesto, mientras que 2000 sí lo será).
81. En una empresa de computadoras, los salarios de los empleados se van a aumentar según su
contrato actual:
Contrato Aumento
0 a 9000 dólares 20%
9001 a 15000 dólares 10%
15001 a 20000 dólares 5%
más de 20000 dólares 1%
Universidad Católica Boliviana San Pablo – Unidad Académica Tarija
Departamento de Informática, Sistemas y Telecomunicaciones
INF 101 – INTRODUCCIÓN A LA PROGRAMACIÓN
-------------------------------------------------------------------------------------------------------------------------
Hacer el programa correspondiente que imprima el nuevo salario.
82. Escribir un programa que efectúe el cálculo de la expresión:
E = 5*(2/3)*(3/4)*(4/5)*(5/6)…
Con un número de términos especificados por el usuario.
83. Escribir un programa que lea dos enteros positivos ‘n’ y ‘b’ y que calcule y muestre la
representación del número ‘n’ en base ‘b’. Ej: n= 17 b=2 => 10001
84. Hacer un programa que calcule la suma 1 + ½ + 1/3 + ¼ +1/5 +1/6 +…+1/N.
85. Calcular el valor de la progresión R = x + x2 + x3 + x4 +…+ x n.
86. Escribir un programa que genere una matriz de tamaño N por N de elementos aleatorios
comprendidos entre 10 y 100 y que pueda encontrar el mayor y el menor de ellos.
87. Escribir un programa que indique si la matriz introducida es simétrica o no. (Una matriz es
simétrica si esta es cuadrada y si los elementos cumplen con A(i,j)=A(j,i) para todo i, j dentro de
los límites de la matriz)
Escribir un programa que encuentre la inversa de una matriz si es posible.
88. Diseñar un programa que calcule las raíces reales de una ecuación de la forma: ax2+ bx + c = 0
Que indique además si es que alguna llegara a ser imaginaria.

Para los siguientes nueve programas no se debe usar funciones ni procedimientos para el manejo de
cadenas.
89. Hacer un programa que lea N cadenas y las coloque una después de otra en otra cadena, si la
cadena resultante es mayor que 255 caracteres, se truncan los caracteres después del 255.
90. Diseñar un programa que proporcione la longitud lógica de una cadena de caracteres y está
en una variable entera.
91. Escribir un programa que lea una cadena de caracteres y la devuelva con todas las letras
minúsculas cambiadas a las correspondientes mayúsculas.
92. Hacer un programa que fije la longitud de una cadena en un tamaño N menor a 255, cualquier
carácter después de la posición N se truncara.
93. Escribir un programa que permita determinar si una cadena está contenida en otra. En este
caso, se devuelve la posición donde comienza la cadena buscada en la cadena fuente. Si la
cadena no existe, se devuelve el resultado cero. La posición se devuelve en una variable
entera.
94. Diseñar un programa que borre o elimine una subcadena de una cadena. Una subcadena es
una cadena contenida en otra cadena de mayor longitud. Para realizar la eliminación se debe
leer la posición del primer carácter desde el cual se desea borrar dentro de la cadena y la
cantidad de caracteres a suprimir (expresión entera), para luego borrar dicha subcadena. (Si la
posición es mayor que la longitud de la cadena, no se borra ningún carácter, si la cantidad de
caracteres a suprimir a partir de la posición inicial excede el tamaño de la cadena, sólo se
borraran tantos caracteres como estén en la cadena)
95. Hacer un programa que devuelva en una cadena de caracteres (subcadena) extraída de otra
cadena, para realizar esta extracción el programa debe leer el primer carácter a extraer y el
total de caracteres a partir de este a extraer. (Si la Posición del primer carácter a extraer es
mayor que la longitud de la cadena original, se devuelve una cadena vacía; si el número de
caracteres a extraer a partir de la Posición del primer carácter a extraer, es mayor que la
longitud de la cadena original, sólo se devuelve el resto de la cadena original)
96. Escribir un programa que inserte una subcadena en una cadena, se debe leer ambas cadenas
sus tamaños y la posición a partir de la cual se inserta la primera en la segunda. Al insertar
texto en una cadena y resulten más caracteres de los que pueda contener, se trunca la
cadena a su longitud máxima.
97. Diseñar un programa que convierta una cadena en variable numérica sin utilizar ninguna
función propia del lenguaje. Para que esta conversión sea efectiva, el contenido de la cadena
de caracteres no debe tener ningún espacio en blanco en la primera o en la última posición. Si
la conversión se puede efectuar devolver en una variable entera cero (como indicador de que
la conversión se llevó a cabo), si la conversión no se puede efectuar la variable contendrá la
Universidad Católica Boliviana San Pablo – Unidad Académica Tarija
Departamento de Informática, Sistemas y Telecomunicaciones
INF 101 – INTRODUCCIÓN A LA PROGRAMACIÓN
-------------------------------------------------------------------------------------------------------------------------
posición del primer carácter de la cadena que no permite hacer la conversión. Se debe leer
una cadena y devolver el resultado de la conversión en un variable entera o real, que se
mostrara en pantalla.
98. Escribir un programa que calcule la potencia y el factorial de un número sin hacer uso de
Math.
99. Escribir un programa que cuente el número de ocurrencias de cada letra en una palabra leída
por teclado e imprima un gráfico de barras que muestre cuantas veces se repite cada letra. Ej.:
Nabucodonosor

2 n: **
1 a: *
1 b: *
1 u: *
1 c: *
4 o: ****
1 d: *
1 s: *
1 r: *

100. Construir un programa para obtener la hipotenusa y los ángulos agudos de un triángulo
rectángulo a partir de las longitudes de los catetos.
101. Hacer un programa que lea un número imprima dicho número en su correspondiente literal Ej:
1203 = mil doscientos tres
102. Hacer un programa que permita convertir de numeración romana a decimal y viceversa
Ej: 234 = CCXXXIV
DLXXX = 580
103. En base a los dos últimos ejercicios crear una librería que permita generar la serie de
Fibonacci en literal y números romanos.
104. Hacer un programa que obtenga el coeficiente de asimetría de una cantidad N de datos
ingresados.
105. La fecha de pascua corresponde al primer domingo después de la primera luna llena que
sigue al equinoccio de primavera, hacer un programa que determine esta fecha para cualquier
año.
106. Hacer un programa que permita calcular la desviación estándar de los datos ingresados
107. Escribir un programa interactivo que permita convertir que permita convertir una longitud entre
metros, kilómetros, millas (náuticas y terrestres), pulgadas, pies, yardas, codos, furlongs,
parsecs, años luz, brasas, amstrongs y tatnoms.
108. Escribir un programa que imprima la cantidad de días de un mes, dados los valores numéricos
del mes y del año.
109. El valor de ex se puede aproximar por la suma:
x2 x3 x4 x5 xn
1 x      .... 
2! 3! 4! 5! n!
Escribir un programa que tome el valor de x como entrada y visualice la suma para cada uno
de los primeros 100 términos
110. Hacer un programa que obtenga el coeficiente de simetría de una cantidad N de datos
ingresados.
111. Leer dos fechas en el formato dd/mm/aaaa y encontrar la cantidad de días transcurrido en ese
intervalo. Está prohibido utilizar alguna librería o tipo de dato propio del lenguaje.
112. Escribir el inverso de un número usando recursividad. Ej: 1154 y 4511
113. Escribir un método recursivo que calcule la suma de: 1 + 2 + 3 + 4 + … + (n-1)+n.
114. Escribir un programa recursivo que imprima todos los pares enteros positivos que son la suma
de un número dado. Ej: 7 = 6+1, 5+2, 4+3. (No se pueden repetir las parejas como 4+3 y 3+4).
Universidad Católica Boliviana San Pablo – Unidad Académica Tarija
Departamento de Informática, Sistemas y Telecomunicaciones
INF 101 – INTRODUCCIÓN A LA PROGRAMACIÓN
-------------------------------------------------------------------------------------------------------------------------
115. Escribir un programa recursivo que muestre de manera gráfica la resolución del problema de
las torres de Hanoi con la cantidad de discos ingresados por el usuario.
116. Hacer un programa que halle el factorial de un número mediante recursividad
117. Hacer una calculadora que permita operar con las funciones aritméticas básicas
118. Escribir un programa que permite calcular el seno y coseno de un ángulo sin utilizar Math.
119. Escribir una jerarquía de clases Círculo, Cilindro y Cilindro Hueco que en base a la herencia
que permita encontrar perímetros, áreas y volúmenes según corresponda. Se deberá
identificar correctamente las operaciones necesarias así como los atributos con los que
deberá contar cada clase.
120. Escribir un programa que calcule y visualice la longitud de la circunferencia de radio dado.
121. Hacer un programa que permita jugar el juego del ahorcado que cuente con un diccionario de
más de 50 palabras que se puede extender abriendo un nuevo archivo de diccionario que use
la extensión “.dic”, el juego debe mostrar un gráfico que se actualice a medida que el jugador
vaya adivinando la palabra.
122. Hacer una calculadora que opere con números complejos
123. Hacer un programa que permita visualizar el desarrollo de la suma de fracciones como
muestra el ejemplo:

Nótese que el programa calcula el común denominador


124. Hacer un programa que contenga la clase “pila”:
PILA
- TamañoMaximo: byte
- PosicionActual: byte
+ Insertar(int): void
+ Eliminar(): void
+ Mostrar(): string
- pilaLlena(): bool
- pilaVacia(): bool
La cual es un vector donde el último elemento insertado es el primero en ser eliminado
125. Escribir un programa que lea una cadena de texto y encuentre que letras del alfabeto no se
encuentran en dicha frase.
126. Escribir un programa que busque dentro de un archivo de texto todas las palabras donde no
se repitan sus vocales.
127. Escribir un programa que permita comprimir un archivo, use un algoritmo propio.
128. Hacer un block de notas similar al de Windows
129. Hacer un programa similar al Paint de Windows
130. Hacer el programa del movimiento del caballo de ajedrez. Este programa visualiza un tablero
de ajedrez y un caballo, el cual recorre todas las casillas del tablero, pasando por ellos una
sola vez.
131. Hacer el programa de las 8 reinas. Consiste en ubicar 8 reinas en un tablero de ajedrez sin
que ninguna se amenace a la otra. El programa debe encontrar todas las combinaciones de
posiciones de las reinas.
132. Hacer una agenda que pueda registrar contactos con sus respectivos datos: Nombre, Apellido,
Celular, Teléfono, Dirección, correo electrónico, fecha de cumpleaños, etc…
133. Hacer un reloj digital con alarma
134. Hacer un programa usando modo gráfico dibuje un eje de coordenadas con el origen en el
centro de la pantalla y sobre este eje dibuje la función seno y tangente.
135. Hacer un buscador de archivos similar al de Windows
136. Hacer un programa que grafique en diagrama de barras, porcentajes insertados