Documente Academic
Documente Profesional
Documente Cultură
Ejercicios Básicos
1. Escriba un programa en que dados tres números a, b y c imprima el menor de ellos.
Contrato Aumento %
0 a 100.000 Bs. 20
5. Escriba un programa para hallar las raíces de una Ecuación de Segundo Grado. Se
deben leer los valores de los coeficientes a, b y c.
6. 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, Billetes: 1.000, 2.000, 5.000 y 10.000 Bs. Considere que debe de
darse la menor cantidad de billetes y monedas.
7. Escriba un programa que determine el monto a pagar por una llamada telefónica,
teniendo en cuenta lo siguiente: Toda llamada que dure hasta 3 minutos tiene un
costo de 25 Bs. Por cada minuto adicional se cobra una tarifa de 22,50 Bs. Se debe
leer el tiempo de llamada.
8. 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 (El cero no es tomado en cuenta).
9. Escriba un programa que dado tres números enteros indique cual es el mayor, el menor
y el intermedio.
10. Escriba un programa que dados tres números y que los imprima en orden ascendente.
Universidad Nacional Experimental de Guayana.
Coordinación de Ingeniería en Informática.
Asignatura: Programación II.
Profesor: Ing. Ronald Pérez.
11. Escriba un programa que calcule la suma de la Serie Armónica. La serie está definida
de la siguiente manera: 1 + 1/2 + 1/3 +...+ 1/n. El valor de n será suministrado
por el usuario.
12. Escriba un programa que encuentre los factores divisibles mínimos de un número
(Descomposición del Número en sus Factores Primos Mínimos).
13. Escriba un programa que encuentre el primer valor de n para el cual la siguiente
suma excede a un valor x: 1 + 2 + 3 +...+ n. Por Ejemplo: Para un X = 10, el n que
exceda a 10 es 5, porque 1 + 2 + 3 + 4 + 5 = 15.
14. Escriba un programa que dado un número n, determine si este es par o impar.
15. Escriba un programa para determinar la cantidad de dígitos que tiene un número
entero positivo dado.
16. Escriba un programa para determinar la cantidad de dígitos diferentes que tiene un
número entero positivo dado.
17. Escriba un programa que dado un carácter car, determine si este es una vocal o no.
18. Escriba un programa que dado un carácter car, determine si este es un dígito entre
'0' ... '9'.
19. Escriba un programa que imprima los 100 primeros números naturales y la suma de los
mismos.
20. Escriba un programa que multiplique dos números por medio de sumas sucesivas.
21. Escriba un programa que divida dos números por medio de restas sucesivas.
22. Escriba un programa que calcule el MCD (máximo común divisor) de dos números por el
algoritmo de Euclides.
23. Escriba un programa que dado dos números enteros a y b realice la operación de
b
potencia a .
25. Escriba un programa que permita la impresión de los primeros N números primos.
26. Escriba un programa que dado dos números x y n, permita calcular la suma de la
2 n
progresión geométrica: 1 + x + x +...+ x .
2 3 n
27. Escriba un programa que permita calcular la serie: 1/2 + 2/2 + 3/2 +...+ n/2 .
29. Escriba un programa que lea una secuencia de caracteres y determine el número de
vocales leídas. La secuencia terminará cuando se lea el carácter punto (.). La
lectura debe hacerse con la función READKEY provista por Turbo Pascal.
30. Escriba un programa que lea una frase e imprima cada palabra y su tamaño o longitud
en líneas diferentes. El texto es leído carácter a carácter y finaliza cuando se
ingrese el carácter punto (.).
32. Escriba un programa que lea una frase en una variable string y sustituya todas las
secuencias de dos o más blancos por un sólo blanco y visualice la frase obtenida.
33. Escriba un programa que realice la lectura de un Texto (carácter por carácter) e
indique la cantidad de palabras que tienen más de 10 caracteres, donde las palabras
pueden ser separadas por uno o más espacios en blancos.
37. Escriba un programa que dado un número entero positivo produzca el número invertido.
38. Escriba un programa que permita verificar si un número entero es capicúa (Similar al
concepto de palíndrome pero en las cadenas de caracteres).
39. Escriba un programa que permita contar el número de caracteres de una cadena de
texto ingresada por teclado. La secuencia terminará cuando se lea el carácter punto
(.).
40. Escriba un programa que dada una cadena de fecha en el formato "dd mm aaaa" devuelva
su correspondiente en texto. Ejemplo: Para la fecha "17 11 1998" el valor en texto
es "17 Noviembre 1998".
41. Escriba un programa que cuente el número de veces que cada vocal se repite en un
texto. El texto debe leerse carácter a carácter y finaliza al encontrar el carácter
punto (.).
Universidad Nacional Experimental de Guayana.
Coordinación de Ingeniería en Informática.
Asignatura: Programación II.
Profesor: Ing. Ronald Pérez.
Ejercicios de Funciones y
Procedimientos
1. Escriba una rutina que reciba un carácter y determine si este es una vocal.
3. Escriba una rutina que permita intercambiar los valores de dos variables a y b
(enteras o reales) sin usar una variable temporal.
4. Escriba una función lógica que reciba un carácter y determine si este es un dígito
de '0'..'9'.
5. Escriba una rutina que reciba como parámetro una cadena cad y una variable ch de
tipo char. La función devolverá la posición de la primera ocurrencia de ch en cad.
6. Escriba una rutina que reciba como parámetro una cadena cad y una variable ch de
tipo char. La función devolverá la posición de la última ocurrencia de ch en cad.
7. Escriba una rutina que reciba una cadena de caracteres y devuelva la cadena
invertida.
8. Escriba una rutina que reciba una letra y devuelva la correspondiente en mayúsculas.
Debe validarse si el carácter recibido no es una letra minúscula, en cuyo caso se
devuelve el mismo carácter.
9. Escriba una rutina que reciba una cadena cad y devuelva los caracteres de cad en
mayúsculas.
10. Escriba una rutina que reciba una cadena cad y devuelva los caracteres de cad en
minúsculas.
11. Escriba una rutina que permita concatenar dos cadenas de caracteres.
12. Escriba una rutina que reciba dos cadenas, cad1, cad2 y una posición p. La función
retorna la posición de la primera ocurrencia de cad1 en cad2 a partir de la posición
p.
13. Escriba una rutina que permita eliminar una secuencia de caracteres dentro de un
string a partir de una determinada posición, un número determinado de dígitos o
caracteres.
14. Escriba una rutina que permita remplazar una secuencia de caracteres dentro de un
string n veces, pero la sustitución se realiza en forma inversa, desde el final
hasta el inicio del string.
Universidad Nacional Experimental de Guayana.
Coordinación de Ingeniería en Informática.
Asignatura: Programación II.
Profesor: Ing. Ronald Pérez.
15. Escriba una rutina que devuelva la palabra más larga de un texto y la cantidad de
palabras leídas. El texto debe leerse carácter a carácter y finaliza al encontrar el
carácter punto (.). Las palabras están separadas por uno o más blancos.
16. Escriba una rutina que reciba una secuencia de caracteres cad y retorne la cadena de
caracteres sin espacios en blanco a la izquierda del string. Por ejemplo: ' Hola',
debe retornar: 'Hola'.
17. Escriba una rutina que reciba una secuencia de caracteres cad y retorne la cadena de
caracteres sin caracteres en blanco a la derecha del string. Por ejemplo: 'Hola ',
debe retornar: 'Hola'.
18. Escriba una rutina que reciba una secuencia de caracteres cad y retorne la cadena de
caracteres sin caracteres en blanco tanto a la izquierda como a la derecha del
string. Por ejemplo: ' Hola ', debe retornar: 'Hola'.
19. Escribir una rutina que utilice un procedimiento para convertir coordenadas
rectangulares a polares. La única función que retorna el arco del ángulo en Pascal
es el ArcTan(Tan( )) y el valor resultante se encuentra expresado en Radianes.
Radianes = Grados * 3,141503658 / 180.
P(x,y)
r
x = r * cos( )
y = r * sen( )
21. Escribir una rutina que calcule I-ésimo elemento de la Serie Fibbonacci.
23. Escribir una rutina que calcule el I-ésimo elemento de los número primos.
25. Escribir una rutina que permita eliminar una secuencia de caracteres dentro de un
string a partir de una determinada posición, un número determinado de dígitos o
caracteres.
Universidad Nacional Experimental de Guayana.
Coordinación de Ingeniería en Informática.
Asignatura: Programación II.
Profesor: Ing. Ronald Pérez.
Ejercicios de Vectores
1. Escriba un programa que cuente el número de veces que cada letra del abecedario se
repite en un texto. El texto debe leerse carácter a carácter y finaliza al encontrar
el carácter punto (.).
2. Escriba un programa que cuente el número de veces que cada dígito numérico
('0’..'9') se repite en un texto. El texto debe leerse carácter a carácter y
finaliza al encontrar el carácter punto (.).
3. Escriba un programa que cuente el número de veces que cada vocal se repite en un
texto. El texto debe leerse carácter a carácter y finaliza al encontrar el carácter
punto (.).
4. Escriba una función que cuente las palabras de (n) letras que haya en un texto. El
texto debe leerse carácter a carácter y finaliza al encontrar el carácter punto (.).
Las palabras están separadas por uno o más blancos.
5. Escriba un programa que lea una secuencia de números enteros, calcule el promedio,
así como el elemento mínimo y máximo de la secuencia.
6. Escriba una función que verifique si un número entero es capicúa. Un número capicúa
es aquel que al invertirse es igual al número original. Nota: Usar Arreglos.
7. Escriba una función que verifique si dos vectores de (n) y (m) enteros
respectivamente son disjuntos, es decir que difieren a lo menos en un valor. Los
vectores no se encuentran ordenados.
9. Escriba una función que reciba un vector de números enteros que puede contener
elementos duplicados. La función debe sustituir cada valor repetido por -5.
10. Escriba un programa que lea (n) números enteros y los vaya ordenando en forma
ascendente en un arreglo, mientras los va leyendo (Ordenación Por Inserción).
11. 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).
12. Escriba un programa que lea un arreglo A de (n) elementos enteros y luego un número
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.
13. Escriba una función que realice una búsqueda secuencial de una valor (x) en un
vector de números enteros. La función debe retornar la posición en el vector si el
Universidad Nacional Experimental de Guayana.
Coordinación de Ingeniería en Informática.
Asignatura: Programación II.
Profesor: Ing. Ronald Pérez.
14. Escriba una función que reciba un vector de números enteros y lo ordene por el
método de Burbuja en forma ascendente.
15. Escriba una función que reciba un vector de números enteros y lo ordene por el
método Shell en forma ascendente.
16. Escriba una función que realice una búsqueda binaria de una valor (x) en un vector
de números enteros. La función debe retornar la posición en el vector si el valor
(x) fue encontrado o -1 de lo contrario. El vector debe encontrarse ordenado en
forma creciente.
Universidad Nacional Experimental de Guayana.
Coordinación de Ingeniería en Informática.
Asignatura: Programación II.
Profesor: Ing. Ronald Pérez.
Ejercicios de Matrices
1. 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 dos matrices y la almacene en una matriz C resultante.
4. 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.
6. Escriba una función que reciba dos matrices A y B de números reales, realice la
multiplicación de estas dos matrices y la almacene en una matriz C resultante.
7. Escriba una función que reciba una matriz de números enteros de dimensión 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.
8. 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.
9. 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 secundaria.
10. Escriba una función que calcule el determinante de una matriz de números enteros de
dimensión M x N.
11. Escriba un programa que sustituya los números perfectos de una matriz de números
enteros de dimensión M x N por el menor número primo que encuentre mayor que el.
12. Escriba un programa que calcule la traspuesta de una matriz de números enteros de
dimensión M x N.
13. Escriba un programa que calcule la inversa de una matriz por el siguiente método:
14. Escriba un programa que tome las (n) primeras palabras de un texto ingresado por
teclado carácter a carácter, las ordene en forma ascendente y las imprima. Las
palabras han de tener 40 caracteres como máximo.
15. Escriba un programa en Pascal que dada una matriz de números enteros, imprima la
suma de sus componentes cuya suma de subíndices sean par e impar respectivamente.
Universidad Nacional Experimental de Guayana.
Coordinación de Ingeniería en Informática.
Asignatura: Programación II.
Profesor: Ing. Ronald Pérez.
Ejercicios de Registros
(Estructuras)
1. Diariamente, durante la temporada de béisbol, aparece en el periódico una tabla
similar a la siguiente:
2. 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 (Por ejemplo: en personas de 20 años o menos y mayores de 20 años).
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, cedula y sus cinco canciones favoritas en orden de
preferencia. Se desea que Ud. diseñe una estructura de datos en "Pascal" para
almacenar dicha información.
3. Una compañía dedicada al transporte de pasajeros por 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 en "Pascal" que permita almacenar
dicha información. Además se solicita que realice un programa que permita:
4. En una ciudad se conocen los siguientes datos de los ciudadanos: Nombres, Apellidos,
Edad, C.I., Sexo, Si es Sexo Masculino se conoce si tiene pies planos o no, Estado
Civil, Nacionalidad, Si es masculino se conoce si presto o esta prestando
actualmente el Servicio Militar, etc. Se desea que Ud. diseñe una estructura de
datos en "Pascal" para almacenar esta información. Además se pide un programa que
permita las siguientes operaciones:
Universidad Nacional Experimental de Guayana.
Coordinación de Ingeniería en Informática.
Asignatura: Programación II.
Profesor: Ing. Ronald Pérez.
(a) Listar toda la población que puede votar en las próximas elecciones.
5. 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 el sexo femenino y otra para los de sexo
masculino), luego se ordenan por popularidad cada una de las pilas y 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 Ud. diseñe una estructura de datos en "Pascal" para almacenar esta
información, además del programa que resuelve tal situación.
(a) Tomar como entrada los nombres de los alumnos, C.I., Carrera e información de
los objetivos evaluados (Aprobado, No Aprobado).
7. El Banco LATIN BANK, desea automatizar todas sus operaciones bancarias. Por tal
razón desea contratar sus servicios, con la finalidad que Ud. diseñe una Estructura
de Datos en "Pascal" que permita manejar de una manera fácil y eficiente todas sus
operaciones considerando los siguientes requerimientos:
(a) El banco maneja básicamente tres (3) tipos de cuentas (aunque su modelo deberá
permitir muchos más): cuentas de ahorro, corrientes y de activos líquidos;
además por cada una de ellas deberá llevarse la tasa de rendimiento
correspondiente.
(b) Para cada uno de los clientes se deberá conocer la siguiente información: Número
de la Cuenta, Tipo de Cuenta, Nombre, Dirección, Teléfono, Saldo en la Cuenta,
Cédula de Identidad, etc.
(c) Deberá existir un registro de todas las transacciones realizadas por el Banco:
Código de la Transacción, Fecha de la misma, Número de Cuenta Involucrada, Monto
en Bolívares y el Número de la caja donde fue realizada.
(a) Obtener todos los clientes con Cuenta Corriente, ordenados alfabéticamente en
orden creciente.
Universidad Nacional Experimental de Guayana.
Coordinación de Ingeniería en Informática.
Asignatura: Programación II.
Profesor: Ing. Ronald Pérez.
(c) El cajero encargado de la caja 3, desea realizar su cuadre de caja para el día
actual de trabajo. Para ello desea obtener la siguiente información:
9. 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 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.
10. Diseñe una estructura de datos para manejar la información de la empresa CLONE
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 que pertenece a la cadena
CLONE COMPUTER existen M empleados divididos en cinco (5) categorías diferentes.
Además cada empresa posee un inventario de elementos de computación.
Se desea que Ud. diseñe una estructura de datos en "Pascal" que permita almacenar
dicha información, con la finalidad de obtener una lista de los "mejores" jugadores
(Bateadores y Pitchers) del grupo de 50.
Universidad Nacional Experimental de Guayana.
Coordinación de Ingeniería en Informática.
Asignatura: Programación II.
Profesor: Ing. Ronald Pérez.
NOTA:
Pilas y Colas
1. Escriba un programa que A-Pile dos pilas en otra pila resultante.
7. Defina una estructura de datos y las operaciones básicas de una bi-pila. Una bi-pila
es una estructura que comparten un único arreglo para almacenar c/u de sus elementos
y las inserciones y supresiones se realizan en cada uno de sus extremos. Alguna de
ambas pilas podrá ocupar la totalidad de la estructura.
8. Defina una estructura que soporte la simulación de "COLA-PILA" y escriba las rutinas
básicas para su operación.
Archivos
1. Escriba un programa que dado un archivo de texto, cree otro con los caracteres de
cada línea invertidos.
2. Escriba un programa que dado un archivo de texto, almacene las líneas impares en un
archivo y las líneas pares en otro.
4. Escriba un programa que permita mezclar dos archivos de números enteros, los cuales
se encuentran ordenados en forma ascendente en cada archivo.
Recursividad
1. Escriba una rutina recursiva que verifique si una palabra es palíndrome.
3. Escriba una rutina recursiva que imprima en forma invertida los dígitos de un número
entero.
5. Escriba una rutina recursiva que calcule los (n) primeros números de la serie de
Fibonacci.
6. Escriba una rutina recursiva que calcule el factorial de un número entero (n).
7. Escriba una rutina recursiva que encuentre el máximo común divisor (mcd) de dos
números a y b. a y b son enteros mayores que 0.
8. Escriba una rutina recursiva que calcule la media aritmética de un vector de números
reales.
9. Escriba una rutina recursiva que realice una búsqueda binaria (dicotómica) de un valor
(x) dentro de un vector ordenado en forma creciente de números enteros.
10. Escriba una rutina recursiva que verifique la formula de Cassini para un entero (n)
mayor que 1. La formula de Cassini es:
2 n
fn+1 * fn-1 - (fn) = (-1) donde fn es el enésimo número de la Serie de Fibonacci.
11. Escriba una rutina recursiva que reciba dos enteros a y b tales que a, b >= 1 y
calcule la división entera de dichos números.
12. Escriba una rutina recursiva que sume los (n) primeros números enteros positivos.
13. Escriba una rutina recursiva que permita contar la cantidad de dígitos que tiene un
número entero positivo.