1. Universidad Católica Andrés Bello
Extensión Guayana
Facultad de Ingeniería
Ingeniería en Informática
DE EJERCICIOS
Carrera: Ingeniería Informática
Elaborado por: Ing. Julio César Canelón Rangel
Asignatura: Algoritmo y Programación II
Ejercicios Básicos:
1. Escriba un programa que dado tres números a, b y c imprima el menor
de ellos.
2. Realice un programa que lea dos números a y b, calcule e imprima su
producto, cociente y el resto cuando el primero se divide por el
segundo.
3. Escriba un programa que convierta una medida dada en pies y lo
transforme en: a) yardas, b) pulgadas, c) centímetros y d) metros,
conociendo que 1 pie = 12 pulgadas, 1 pulgada = 2,54cm y 1 yarda = 3
pies.
4. Escriba un programa que permita hallar las raíces de una Ecuación de
2do grado. Se deben leer los coeficientes a, b y c.
5. Escriba un programa que dado un precio de un producto y una cantidad
para pagarlo, calcule la cantidad de monedas y billetes (vuelto a
devolver). Monedas: 1, 2, 5, 10, 20, 50, 100, 500, 1000. Billetes:
2000, 5000, 10000, 20000 y 50000. Considere que debe darse la menor
cantidad de billetes y monedas.
6. Escriba un programa que determine el monto a pagar por una llamada
telefónica, teniendo en cuenta lo siguiente: Toda llamada que dure
hasta 5 minutos tiene un costo de Bs. 250. por cada minuto adicional
se cobrará bs. 50. Se debe leer el tiempo de la llamada.
7. Escriba un programa que lea una secuencia de números enteros y
calcule el mayor, menor y el promedio de la secuencia. La secuencia
termina cuando se ingresa el número cero.
8. Escriba un programa que dado tres números los imprima en orden
ascendente.
9. Escriba un programa que calcule el valor de n para el cual la
siguiente suma excede a un valor x: 1 + 2 + 3 + 4 +… + n. Por
ejemplo para un X = 20, el n que excede es n = 6, porque 1 + 2 + 3 +
4 + 5 + 6 = 21.
10.Escriba un programa que dado un número n determine si es par o impar.
1
2. Universidad Católica Andrés Bello
Extensión Guayana
Facultad de Ingeniería
Ingeniería en Informática
11.Escriba un programa que dado un carácter determine si este es una
vocal o no.
12.Escriba un programa que imprima los 100 primeros números naturales y
la suma de los mimos.
13.Escriba un programa que determine los primeros n números primos,
comenzando de un número x. Se debe leer x y n.
14.Realice un programa que dado un carácter determine si este es un
digito entre '0'.. '9'.
15.Escriba un programa que multiplique dos números por medio de sumas
sucesivas.
16.Escriba un programa que divida dos números por medio de restas
sucesivas.
17.Escriba un programa que cuente el número de cifras o dígitos de un
valor entero positivo.
18.Escriba un programa que dado dos números enteros a y b realice la
operación de potencia ab.
19.Escriba un programa que permita calcular la suma de la progresión
geométrica: 1 + x + x2 + … + xn.
20.Escriba un programa que permita calcular la serie: 1/2 + 2/22 + 3/23 +
… + n/2n
21.Escriba un programa que determine si un año es bisiesto. Un año es
bisiesto si es múltiplo de 4, excepto los múltiplos de 100 que no son
bisiestos salvo que a su vez también sean múltiplos de 400. (1800 no
es bisiesto, 2000 sí).
22.Escriba un programa que determine que si un número entero es capicúa.
(número que se escribe igual al derecho y al revés). No use cadenas.
23.Escriba un programa que permita hallar el factorial de un número n.
24.Escriba un programa que lea un entero positivo y produzca el número
invertido.
25.Escriba un programa que dada una cadena de fecha en el formato “dd mm
aaaa” devuelva su correspondiente en texto. Ej.: Para 12 03 1998 el
valor en texto es “12 de marzo de 1998”.
26.Una persona desea invertir su dinero en un banco, el cual le otorga
un 3% de interés mensual. ¿Cuál será la cantidad de dinero que esta
persona tendrá al cabo de n meses, si la ganancia de cada mes es
reinvertida.
27.Un supermercado hace una promoción, mediante la cual el cliente
obtiene un descuento dependiendo de un número que se escoge al azar.
Si el número escogido es menor que 74 el descuento es del 15% sobre
el total de la compra, si es mayor o igual a 74 el descuento es del
2
3. Universidad Católica Andrés Bello
Extensión Guayana
Facultad de Ingeniería
Ingeniería en Informática
20%. Imprimir cuánto es el subtotal, el descuento y el total a
pagar.
28.Escriba un programa que lea un número entero n mayor a cero que
identifica una cantidad de segundos, y calcule e imprima el número de
horas, minutos y segundos contenidos en ella. Ejemplo: Para n =
15723 se debe imprimir 4 horas, 22 minutos y 3 segundos.
29.Escriba un programa que dada una hora en formato de hh:mm:ss
determine cuál será el tiempo dentro de 1 segundo.
30.Escriba una función que reciba un número entero (base binaria) y
devuelva su equivalente en base decimal. Ejemplo para n = 11010 se
debe retornar 26. No es necesario el uso de cadenas de carácter.
CADENAS
31.Escriba una función que reciba una cadena de caracteres y devuelva su
longitud.
32.Escriba una función que reciba una cadena de caracteres y la retorne
sin ningún espacio en blanco.
33.Escriba una función que reciba una cadena de caracteres y retorne la
misma en mayúscula. Utilice la tabla ASCII.
34.Escriba una función que reciba una cadena de caracteres y la retorne
invertida.
35.Escriba una función que reciba una cadena de caracteres y un char.
La función deberá devolver la posición de la primera ocurrencia del
char.
36.Escriba una función que reciba una cadena de caracteres y un char.
La función deberá devolver la posición de la última ocurrencia del
char.
37.Escriba una función que reciba dos cadenas de caracteres. La función
deberá devolver una cadena producto de la concatenación de las dos
cadenas recibidas.
38.Escriba una función que permita eliminar una secuencia de caracteres
dentro de una cadena recibida por parámetro a partir de determinada
posición p y un número determinado de dígitos.
39.Escriba un programa que determine si una palabra es palíndroma. (se
escribe igual al derecho y al revés).
40.Escriba un programa que determine si una secuencia de caracteres
recibida por teclado contiene vocales, el número de cada una de
ellas. La secuencia terminará cuando se lea el carácter punto (.).
La lectura debe hacerse con la función READKEY de Turbo Pascal.
3
4. Universidad Católica Andrés Bello
Extensión Guayana
Facultad de Ingeniería
Ingeniería en Informática
41.Escriba un programa que lea una frase e imprima cada palabra y su
tamaño en líneas diferentes.
42.Escriba un programa que lea un texto y cuente la frecuencia de un
carácter n. la secuencia terminará cuando se lea el carácter punto
(.) o se llegue al final de cadena.
43.Escriba un programa que lea una frase y sustituya todas las
secuencias de dos o más espacios en blanco juntos y por uno solo
blanco y visualice la frase modificada.
44.Escriba un programa que lea una frase y visualice cuantas palabras
contiene la misma.
45.Escriba una rutina que reciba una cadena de caracteres y devuelva el
carácter que se repite con mayor frecuencia.
VECTORES
46.Escriba un programa que cuente el número de veces que cada letra del
abecedario se repite en un texto.
47.Escriba una función que cuente las palabras de (n) letras que haya en
un texto. Cada palabra se debe almacenar en una posición de un
vector de char.
48.Escriba un programa que lea una secuencia de números enteros, calcule
el promedio, así como el elemento mínimo y máximo.
49.Escriba una función que reciba dos vectores y determine si son
disyuntos, es decir que por lo menos difieren en un valor. Los
vectores no se encuentran necesariamente ordenados.
50.Escriba una función que reciba un vector de números enteros y lo
invierta.
51.Escriba una función que reciba un vector de números enteros y asigne
cero (0) a los valores duplicados.
52.Escriba un programa que lea (n) números enteros y los valla ordenando
en forma ascendente en un arreglo, mientras los va leyendo
(ordenación por inserción).
53.Escriba una función que reciba dos vectores de números reales A y B
ordenados ascendentemente y los ordene en otro vector C (ordenación
por mezcla).
54.Escriba una función que reciba un arreglo A de (n) elementos enteros
y también reciba un número entero k. Si k = 1 ordenar A
descendentemente; si k > n ordenar A ascendentemente y si 1 < k < n
ordenar en forma creciente los primeros k elementos y en forma
decreciente los restantes.
4
5. Universidad Católica Andrés Bello
Extensión Guayana
Facultad de Ingeniería
Ingeniería en Informática
55.Realice una función que realice una búsqueda secuencial de un valor x
en un vector de números enteros. La función debe retornar la
posición en el vector si el valor de x fue encontrado o -1 de lo
contrario. El vector se encuentra ordenado en forma decreciente.
56.Escriba una función que reciba un vector de números enteros y lo
ordene por el método de la burbuja en forma ascendente.
57.Escriba una función que realice una búsqueda binaria de un valor x en
un vector de números enteros. La función deberá retornar la posición
en el vector si el valor de x existe en el mismo o -1 si no es
encontrado. El vector se encuentra ordenado de forma creciente.
MATRICES
58.Escriba una función que reciba dos matrices A y B de números reales
de dimensiones M x N. Realice la suma de estas matrices y la
almacene en una matriz C resultante.
59.Escriba una función que verifique si una matriz M x N de números
enteros es simétrica.
60.Escriba un programa que verifique si una matriz cuadrada de números
enteros es mágica, en caso de no serlo listar la suma de cada una de
sus filas y columnas, así como de sus diagonales principales. Una
matriz mágica es aquella donde la suma de cada una de sus filas,
columnas y diagonales tienen el mismo valor.
61.Escriba una función que calcule todos los puntos de silla de una
matriz de dimensión M x N. Un punto de silla es el máximo de su fila
y el mínimo de su columna.
62.Escriba una función que verifique si una matriz de enteros de
dimensión M x N es triangular superior. Una matriz triangular
superior es aquella en donde todos los elementos situados bajo la
diagonal principal son cero.
63.Escriba una función que reciba dos matrices A y B de números reales,
realice la multiplicación de estas dos matrices y almacene en una C
resultante.
64.Escriba una función que reciba una matriz de números enteros de
dimensiones M x N y verifique cual es mayor en valor absoluto, si la
suma de los elementos situados en la parte superior de la diagonal
principal o la suma de los elementos situados en la parte inferior de
la diagonal principal.
65.Escriba una función que reciba una matriz de números reales de
dimensión M x N y devuelva la suma de los elementos de la diagonal
principal.
5
6. Universidad Católica Andrés Bello
Extensión Guayana
Facultad de Ingeniería
Ingeniería en Informática
66.Escriba una función que reciba una matriz de números reales de
dimensiones M x N y devuelva la suma de la diagonal secundaria.
67.Escriba un función que calcule la transpuesta de una matriz.
68.Escriba un programa que dada una matriz de números enteros, imprima
la suma de sus componentes cuya suma de subíndices sea par e impar
respectivamente.
ESTRUCTURAS
69.Una compañía disquera organiza una encuesta para determinar el éxito
de sus canciones. La población encuestada es dividida en cuatro
categorías de acuerdo al sexo y a la edad. A cada persona se le
piden sus cinco canciones favoritas, las canciones son identificadas
por números del 1 al N. Los resultados de la encuesta son tomados
de la entrada estándar. Cada elemento leído representa un encuestado
y contiene su nombre, apellido, sexo, edad, cédula y sus cinco
canciones favoritas en orden de preferencia. Se desea que diseñe una
estructura de datos para almacenar dicha información.
70.Una compañía dedicada al transporte de pasajeros vía aérea, desea
contratar sus servicios con el fin de automatizar el proceso de
reservación de sus vuelos. Para ello Ud. Deberá definir una
estructura de datos que permita almacenar dicha información. Además
se solicita que realice un programa que permita: a) Reservar un
asiento en un vuelo, b) cancelar una reservación, c) confirmar una
reservación.
71.En una ciudad se conocen los siguientes datos de los ciudadanos:
Nombres, Apellidos, Edad, C.I., Sexo, Estado Civil, Nacionalidad. Si
el sexo es masculino se conoce si tiene pies planos o no y si ha
prestado servicio militar. Se desea que diseñe una estructura de
datos para almacenar esta información. Además se pide un programa
que permita las siguientes operaciones: a) listar toda la población
que puede votar en las próximas elecciones, b) listar aquellos
ciudadanos que pueden prestar servicio militar.
72.El comando de campaña del candidato X, requiere hacer una
clasificación por sexo de un grupo de encuestados de la siguiente
manera: A medida que se ingresan los datos se almacenan en dos pilas
(una para cada sexo), luego se ordenan por popularidad y cada una de
las pilas se imprimen. Sobre cada encuestado se conoce la siguiente
información: Nombre, Apellido, Fecha de Nacimiento, Sexo y un número
del 0 al 10 que indica la popularidad del candidato. Se desea que
6
7. Universidad Católica Andrés Bello
Extensión Guayana
Facultad de Ingeniería
Ingeniería en Informática
diseñe una estructura de datos para almacenar esta información,
además del programa que resuelva la situación.
73.Diseñe una estructura de datos y un programa para almacenar y manejar
respectivamente la información concerniente a los resultados de los
exámenes parciales de una materia. Se asume que la materia es
acumulativa y son tres exámenes parciales (30 – 30 y 40). El
programa debe ser capaz de: a) tomar como entrada los nombres de los
alumanos, C.I. y Nota de cada parcial; b) producir un listado de
aquellos alumnos que aprobaron y otro listado los que no aprobaron
(aprobatoria 45% de la nota total).
74.El Banco LAKY desea automatizar todas sus operaciones bancarias. Por
tal razón desea contratar sus servicios y realice un programa que
permita manejar de una manera fácil y eficiente todas sus operaciones
considerando los siguientes requerimientos: A) el banco maneja tres
tipos de cuentas (aunque el modelo deberá de permitir muchos más):
cuenta de ahorros, corriente y activos líquidos; además por cada una
de ellas deberá llevarse la tasa de rendimiento correspondiente. B)
para cada uno de los clientes deberá conocer la siguiente
información: número de cuenta (20 dígitos), C.I., Nombres, Apellidos,
Tipo de Cuenta, Dirección, Teléfono. C) deberá existir un registro
de todas las transacciones realizada por el banco: Código de la
transacción, fecha, número de cuenta involucrada, monto en bs. Y el
número de la caja donde fue realizada. Con el modelo diseñado
programe lo siguiente: (a) Obtener todos los clientes de un tipo de
cuenta especificado por teclado, ordenado alfabéticamente en orden
creciente o decreciente, según sea la solicitud; (b) Mostrar todas
las transacciones que involucraron a un Número de Cuenta desde y
hasta una fecha determinada; (c) Una opción que permita a un cajero
realizar el cierre de caja, para ello deberá especificar el número de
caja y la fecha para obtener el total de cheques o efectivo cobrados
y los depósitos realizados.
75.Un instituto de educación posee N alumnos. La información de cada
alumno está compuesta por: Nombre, Apellido, Curso y Año de
Nacimiento. En el instituto existen 8 cursos diferentes. Se desea
que diseñe e implemente una estructura de datos y un programa que
permita mantener la información y pueda indicar cuántos alumnos
pertenecen a cada curso y permita listarlos de forma ascendente.
76.Se dispone de un vector de registros con los siguientes campos:
Nombre, cédula, edad y sueldo. Escriba un programa que calcule
cuantas personas ganan menos que alguna otra de menor edad, dando
7
8. Universidad Católica Andrés Bello
Extensión Guayana
Facultad de Ingeniería
Ingeniería en Informática
como salida una estructura donde se encuentre el nombre de cada una
de ellas, junto a la persona de menor edad que ella, que gane más
dinero.
77.Diseñe una estructura de datos para manejar la información de la
empresa Y2K COMPUTER, C.A. La cual tiene su centro de operaciones en
Puerto Ordaz, pero además posee filiales en N ciudades de Venezuela.
En cada empresa existen M empleados divididos en 5 categorías
diferentes. Además cada empresa posee un inventario de equipos
informáticos.
78.Se requiere hacer una clasificación de un grupo de 50 beisbolistas de
manera, que a partir de sus estadísticas y tomando en cuenta ciertos
criterios produzcamos una lista donde aparezcan en orden de calidad.
Sobre cada jugador se conoce la siguiente información: Nombre, Fecha
de Nacimiento, País de Origen, Peso (kg.), Estatura (mts), si batea a
la derecha o izquierda, si lanza a la derecha o izquierda, equipo en
que juega en las grandes ligas y posición habitual de campo. Si el
jugador es “Pitcher” se proporcionarán las siguientes estadísticas:
entradas lanzadas (IP), bases por bolas concedidas (BB), ponches (K),
carreras limpias permitidas (CL), juegos ganados (G), juegos perdidos
(P). Si el jugador no es “Pitcher” (sólo interesa el bateo), se
proporcionarán los siguientes datos: veces al bate (VB), hits (H),
jonrones (HR), triples (3H), dobles (2H), carreras anotadas (CA),
carreras impulsadas (CI) y bases robadas (BR). Se desea que diseñe
un estructura de datos que permita almacenar de forma eficiente dicha
información con la finalidad de obtener una lista de los mejores
jugadores (Bateadores y Pitcher) del grupo.
Promedio de Bateo = (H / VB) * 100
Efectividad Pitcher = (CL * 9) / IP.
ARCHIVOS
79.Escriba un programa que dado un archivo de texto, cree otro con los
caracteres de cada línea invertidos.
80.Escriba un programa que dado un archivo de texto, almacene las líneas
impares en un archivo y las líneas pares en otro.
81.Escriba un programa que permita concatenar dos archivos de números
enteros.
82.Escriba un programa que permita mezclar dos archivos de números
enteros, los cuales se encuentran ordenados en forma ascendente en
cada archivo.
8
9. Universidad Católica Andrés Bello
Extensión Guayana
Facultad de Ingeniería
Ingeniería en Informática
83.Escriba un programa que copie un archivo de caracteres en otro,
cambiando los caracteres en mayúscula a minúscula.
84.Escriba un programa que lea un archivo de enteros y encuentre el
elemento máximo y el elemento mínimo.-
9