ProblemarioProgramaciónI_II

15
Universidad Nacional Experimental de Guayana. Coordinación de Ingeniería en Informática. Asignatura: Programación II. Profesor: Ing. Ronald Pérez. Ejercicios Básicos 1. Escriba un programa en que dados tres números a, b y c imprima el menor de ellos. 2. Escriba 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. Escribir un programa para convertir una medida dada en pies a su equivalente en a) pulgadas, b) centímetros y d) metros, conociendo que 1 pie = 12 pulgadas, 1 pulgada = 2.54 cm y 1 m = 100 cm. 4. En una empresa de computadoras, los salarios de los empleados se van a aumentar según su contrato actual según la siguiente tabla: Contrato Aumento % 0 a 100.000 Bs. 20 100.001 a 150.000 Bs. 10 150.001 a 300.000 Bs. 05 más de 300.001 Bs. 00 Escribir un programa que solicite el salario actual del empleado, calcule y visualice el nuevo salario. 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.

Transcript of ProblemarioProgramaciónI_II

Page 1: ProblemarioProgramaciónI_II

Universidad Nacional Experimental de Guayana.

Coordinación de Ingeniería en Informática.

Asignatura: Programación II.

Profesor: Ing. Ronald Pérez.

Ejercicios Básicos

1. Escriba un programa en que dados tres números a, b y c imprima el menor de ellos.

2. Escriba 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. Escribir un programa para convertir una medida dada en pies a su equivalente en a)

pulgadas, b) centímetros y d) metros, conociendo que 1 pie = 12 pulgadas, 1 pulgada

= 2.54 cm y 1 m = 100 cm.

4. En una empresa de computadoras, los salarios de los empleados se van a aumentar

según su contrato actual según la siguiente tabla:

Contrato Aumento %

0 a 100.000 Bs. 20

100.001 a 150.000 Bs. 10

150.001 a 300.000 Bs. 05

más de 300.001 Bs. 00

Escribir un programa que solicite el salario actual del empleado, calcule y

visualice el nuevo salario.

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.

Page 2: ProblemarioProgramaciónI_II

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

potencia ab.

24. Escriba un programa para determinar si un valor n es un número primo.

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

progresión geométrica: 1 + x + x2 +...+ x

n.

27. Escriba un programa que permita calcular la serie: 1/2 + 2/22 + 3/2

3 +...+ n/2

n.

28. Escriba un programa que determine si un valor n es un número perfecto. 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. Ejemplo: 6 es un número

perfecto, ya que 1+2 + 3 = 6.

Page 3: ProblemarioProgramaciónI_II

Universidad Nacional Experimental de Guayana.

Coordinación de Ingeniería en Informática.

Asignatura: Programación II.

Profesor: Ing. Ronald Pérez.

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 (.).

31. Escriba un programa que lea un Texto y cuenta la frecuencia de un carácter n. La

secuencia terminará cuando se lea 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.

34. Escriba un programa que permita determinar si una palabra es palíndrome.

35. 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í).

36. Escriba un programa que permita calcular el factorial de un número n.

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 (.).

Page 4: ProblemarioProgramaciónI_II

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.

2. Escriba una rutina que permita verificar si un número n es par o impar.

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.

Page 5: ProblemarioProgramaciónI_II

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.

20. Escribir una rutina que calcule el Factorial de un número n dado.

21. Escribir una rutina que calcule I-ésimo elemento de la Serie Fibbonacci.

22. Escribir una rutina que indique si un número es primo o no.

23. Escribir una rutina que calcule el I-ésimo elemento de los número primos.

24. Escribir una rutina para verificar si un año es bisiesto.

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.

P(x,y)

r

x = r * cos( )

y = r * sen( )

Page 6: ProblemarioProgramaciónI_II

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.

8. Escriba una función que reciba un vector de números reales y lo invierta.

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

Page 7: ProblemarioProgramaciónI_II

Universidad Nacional Experimental de Guayana.

Coordinación de Ingeniería en Informática.

Asignatura: Programación II.

Profesor: Ing. Ronald Pérez.

valor (x) fue encontrado o -1 de lo contrario. El vector se encuentra ordenado en

forma decreciente.

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.

Page 8: ProblemarioProgramaciónI_II

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.

2. Escriba una función que verifique si una matriz de dimensión M x N de números

enteros es simétrica.

3. 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 en que la suma de

cada una de sus filas, columnas y diagonales tienen el mismo valor.

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.

5. 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 la cual todos los

elementos situados bajo su diagonal principal son cero.

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:

a) Calcular el valor del determinante de la matriz, si el determinante es cero, no

se puede construir la inversa.

Page 9: ProblemarioProgramaciónI_II

Universidad Nacional Experimental de Guayana.

Coordinación de Ingeniería en Informática.

Asignatura: Programación II.

Profesor: Ing. Ronald Pérez.

b) Hallar la matriz traspuesta.

c) Sustituir cada elemento de la traspuesta por su adjunto, teniendo en cuenta el

signo.

d) Dividir la matriz obtenida por el determinante hallado en el punto a).

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.

Page 10: ProblemarioProgramaciónI_II

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:

Equipo Ganados Perdidos Puntos Puntos Primer Lugar

A 95 59 617 0.0

B 91 65 583 5.0

C 84 70 545 11.0

D 81 74 523 14.5

Donde Juegos Primer Lugar = ((G1 - P1) - (G2 - P2)) / 2

Puntos = (Juegos Ganados / Juegos Perdidos) * 1000

Se desea que Ud. diseñe una estructura de datos en "Pascal" que permita almacenar

dichos datos. Además se pide realizar un programa que actualice y ordene la tabla si

los datos de entrada son el resultado de un juego entre dos equipos.

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:

(a) Reservar un asiento en un vuelo.

(b) Cancelar una reservación.

(c) Confirmar una reservación.

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:

Page 11: ProblemarioProgramaciónI_II

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.

(b) Listar aquellos ciudadanos que pueden prestar servicio militar.

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.

6. Diseñe una estructura de datos y un programa en "Pascal", para almacenar y manejar

respectivamente la información concerniente a los resultados de los exámenes

integrales. El programa debe ser capaz de:

(a) Tomar como entrada los nombres de los alumnos, C.I., Carrera e información de

los objetivos evaluados (Aprobado, No Aprobado).

(b) Producir un listado de aquellos alumnos que aprobaron la materia, tomando en

cuenta un mínimo de tres objetivos, incluyendo el objetivo de aprobación

obligatoria.

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.

Con el modelo diseñado, programe lo siguiente:

(a) Obtener todos los clientes con Cuenta Corriente, ordenados alfabéticamente en

orden creciente.

Page 12: ProblemarioProgramaciónI_II

Universidad Nacional Experimental de Guayana.

Coordinación de Ingeniería en Informática.

Asignatura: Programación II.

Profesor: Ing. Ronald Pérez.

(b) Mostrar todas las transacciones que involucraron a la cuenta de ahorros

010101088 desde el día 15-01-94 al 01-02-94.

(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:

Todos los cheques cobrados.

Todos los depósitos realizados.

8. En un instituto existen N alumnos. La información de cada alumno está compuesta por

su nombre, apellido, curso y año de nacimiento. En el instituto existen 8 cursos

diferentes. Se desea que Ud. diseñe una estructura de datos en "Pascal" para

mantener dicha información. Además se pide que realice un programa que indique

cuantos alumnos han nacido en cada año y cuantos hay en cada curso. Los años de

nacimiento van desde 1972 hasta 1980 inclusive.

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.

11. 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 los mencionados deportistas.

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 a la izquierda,

si lanza a la derecha o a la zurdo, equipo en el que juega en las grandes ligas y

posición habitual en el campo.

Además si el jugador es "pitcher" se proporcionarán las siguientes estadísticas:

entradas lanzadas (IP), bases por bolas concedidas (BB), ponchados (K), carreras

limpias permitidas (CL), juegos ganados (G) y 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 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.

Page 13: ProblemarioProgramaciónI_II

Universidad Nacional Experimental de Guayana.

Coordinación de Ingeniería en Informática.

Asignatura: Programación II.

Profesor: Ing. Ronald Pérez.

NOTA:

Promedio Bateo = (H / VB) * 100 / Efectividad Pitchers = (CL * 9) / IP

Pilas y Colas

1. Escriba un programa que A-Pile dos pilas en otra pila resultante.

2. Escriba una rutina que intercambie dos pilas.

3. Escriba una rutina que vacie una pila en otra.

4. Escriba una rutina para concatenar dos colas en una resultante.

5. Escriba una rutina para invertir una cola.

6. Escriba una rutina para copiar una cola en otra.

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.

NOTA : Se debe manejar un parámetro que indique la forma en que se comporta la

estructura en un momento dado.

Page 14: ProblemarioProgramaciónI_II

Universidad Nacional Experimental de Guayana.

Coordinación de Ingeniería en Informática.

Asignatura: Programación II.

Profesor: Ing. Ronald Pérez.

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.

3. Escriba un programa que permita concatenar dos archivos de números enteros.

4. Escriba un programa que permita mezclar dos archivos de números enteros, los cuales

se encuentran ordenados en forma ascendente en cada archivo.

5. Escriba un programa que copie un archivo de caracteres en otro, cambiando los

caracteres en minúsculas a mayúsculas.

6. Escriba un programa que lea un archivo de enteros y encuentre el elemento máximo,

mínimo y promedio.

Page 15: ProblemarioProgramaciónI_II

Universidad Nacional Experimental de Guayana.

Coordinación de Ingeniería en Informática.

Asignatura: Programación II.

Profesor: Ing. Ronald Pérez.

Recursividad

1. Escriba una rutina recursiva que verifique si una palabra es palíndrome.

2. Escriba una rutina recursiva que invierta un arreglo de números enteros.

3. Escriba una rutina recursiva que imprima en forma invertida los dígitos de un número

entero.

4. Escriba una rutina recursiva que invierta una cadena caracteres.

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:

fn+1 * fn-1 - (fn)2 = (-1)

n 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.