Ejercicios - PRO C++

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 12

IMPLEMENTAR LOS SIGUIENTES PROGRAMAS EN LENGUAJE C ANSI

<<Para los ejercicios del 1 al 41, es indispensable codificar todo el programa haciendo uso de solo
una subrutina (esto es, escribir todas las instrucciones del programa dentro de la subrutina main)>>

1. Implementar un programa que calcule el área de un triángulo usando variables int nombradas
"a", "b" y "h". No es necesario solicitar datos al usuario, pero es aceptable igual.

2. Implementar un programa que calcule el área de un triángulo usando variables int nombradas
"areaTriangulo", "base" y "altura". No es necesario solicitar datos al usuario, pero es aceptable.

3. Implementar un programa que calcule el área de un círculo usando variables float nombradas
"a", "r" y "pi"

4. Implementar un programa que calcule el área de un círculo usando variables float nombradas
"areaCirculo", "radio" y "pi"

5. Implementar un programa que calcule el área de un círculo usando variables float nombradas
"areaCirculo", "radio" y constante #define "PI"

6. Implementar un programa que usando scanf para base y altura, calcule el área de un triángulo
usando variables int nombradas "areaTriangulo", "base" y "altura"

7. Implementar un programa que usando scanf para radio, calcule el área de un círculo usando
variables float nombradas "areaCirculo", "radio" y constante #define "PI"

8. Escriba un programa que solicite al usuario dos valores enteros a y b (deseablemente enteros)
y realice las siguientes operaciones:
• a+b
• a–b
• b–a
• a*b
• a/b
• b/a
• a%b
• b%a
El programa debe mostrar los valores leídos y resultado de cada operación realizada.
A PARTIR DEL SIGUIENTE EJERCICIO Y PARA LOS SIGUIENTES, LOS PROGRAMAS
SOLICITEN AL USUARIO LOS DATOS DE ENTRADA NECESARIOS PARA LOS CÁLCULOS

IMPLEMENTAR LOS SIGUIENTES PROGRAMAS EN LENGUAJE C++ ANSI

9. Escriba un programa que haga la conversión de grados Celsius a Fahrenheit mediante la


fórmula:
ºF = 1.8 x ºC + 32
Debe pedir el valor a convertir y mostrarlo en pantalla junto con su valor equivalente calculado.

10. Escriba un programa que haga la conversión de grados Fahrenheit a Celsius mediante los
siguientes dos métodos:
• Haciendo un cálculo aproximado como sigue:
o Restar 32 al valor leído para adaptar el equivalente en la escala Fahrenheit.
o Dividir el valor obtenido entre 2 (equivalente a multiplicar por 0.5).
o Tomar 1/10 del valor generado y sumarlo al valor obtenido anteriormente, lo cual
daría la aproximación en grados.
o Por ejemplo, para convertir 60ºF a ºC se hace:
60 – 32 = 28
28 / 2 = 14
14 / 10 = 1.4
14 + 1.4 = 15.4 ºC
• Haciendo una conversión exacta usando la siguiente formula:

Por ejemplo, para convertir de igual manera 60ºF a ºC se hace:


5 (60 - 32) / 9 = 5 (28) / 9= 15.55ºC
Se deben imprimir el valor leído y el valor obtenido en cada método y comparar en ejecución
los resultados de ambos métodos para saber la diferencia qué hay del valor aproximado al
valor exacto e imprimirla. Para el ejemplo dado la diferencia a imprimir de ambos métodos es:
15.4 – 15.55 = -0.15.

11. Implemente el intercambio de valores de tres valores a, b y c en un programa mediante la


siguiente manera:
• a = valor inicial de c
• b = valor inicial de a
• c = valor inicial de b
El programa debe imprimir el valor original de las 3 variables, luego hacer el intercambio y
finalmente imprimir los valores de las 3 variables.
Nota: se necesita una variable auxiliar para realizar los intercambios y no perder el valor inicial de
los valores. Usar en el programa solo 4 variables. Para toda impresión de variable (a,b,c) se
imprima la variable mencionada y no otra variable, esto es:
Imprimir:
en C: printf(“valor de a es: %d\n”,a),
en C++: cout << “valor de a es: “” << a << endl;
Nunca hacer algo como:
en C: printf(“valor de a es: %d\n”,c) //disque imprime la “a” pero imprime la “c”
en C++: cout << “valor de a es: “ << c << endl;
Los ejercicios en adelante requieren de cumplir los Requerimientos de Valor
Agregado en Código Fuente (hasta el requerimiento M):

12. Implementar un programa que, dada una constante MAXIMO_ASISTENCIAS=34, calcule el


porcentaje de asistencias de un(a) alumn@ si falta X veces a clase. Solicitar al usuario la
cantidad de faltas. El programa imprima el porcentaje de asistencias.

IMPLEMENTAR LOS SIGUIENTES PROGRAMAS EN LENGUAJE C ANSI

13. Escriba un programa que obtenga del usuario los valores para un arreglo de enteros, de 10
celdas dicho arreglo. Luego, capture un multiplicador. Luego, cada elemento del vector debe
ser multiplicado por el multiplicador y depositar los resultados en un segundo arreglo.
Finalmente, después lo anterior (que haya multiplicado todas y cada una de las celdas), debe
ser mostrado el vector resultante. Si conoce las estructuras de control iterativas, no las aplique
en este ejercicio.

14. Implementar y usar un registro llamado "Alumno" con al menos 3 campos de información, un
campo de tipo cadena, otro de tipo entero y otro de tipo flotante; inicializar los campos a partir
de entrada de consola y al final del programa imprimirlos. Alumnos de primer semestre pueden
entregar en C++ de ser necesario.

15. Implementar y usar en un mismo programa un registro llamado "Arbol" y un registro “Libro”,
ambos con al menos 3 campos de información; utilizar en alguno cualquiera de los registros un
campo de tipo cadena, otro de tipo caracter, otro de tipo entero y otro de tipo flotante; inicializar
los campos a partir de entrada de consola y al final del programa imprimir todos los campos de
todos los registros. Alumnos de primer semestre pueden entregar en C++ de ser necesario.

IMPLEMENTAR LOS SIGUIENTES PROGRAMAS EN LENGUAJE C++ ANSI

16. Implementar y usar una clase llamada "Alumno" con al menos 3 atributos, un atributo de tipo
cadena, otro de tipo entero y otro de tipo flotante; inicializar los atributos a partir de entrada de
consola y al final del programa imprimirlos. Implementar y usar los métodos fija() y dame()
correspondientes a cada atributo.

17. Implementar y usar en un mismo programa una clase llamada "Arbol" y una clase “Libro”,
ambas con al menos 3 atributos; utilizar en alguna cualquiera de las clases un atributo de tipo
cadena, otro de tipo caracter, otro de tipo entero y otro de tipo flotante; inicializar los atributos a
partir de entrada de consola y al final del programa imprimir todos los atributos de todos los
objetos. Implementar y usar los métodos fija() y dame() correspondientes a cada atributo.

IMPLEMENTAR LOS SIGUIENTES PROGRAMAS EN LENGUAJE C ANSI

18. En una tienda se venden artículos de primera necesidad, a los cuales se les aplica un
descuento del 20% de la compra total, si esta es igual o mayor a $50. Escriba un programa
que, a partir del importe total de la compra muestre lo que debe pagar el cliente; informar en
pantalla solo lo que debe pagar el cliente a partir del monto de compra, sin decirle al usuario
nada más que eso. Usar solo el “if disparador” (if sin else). Usar solo una variable. Usar solo un
“if” en todo el programa.
19. Escriba un programa que al recibir como datos tres valores enteros diferentes entre sí,
determine si los mismos están en orden creciente; informar en pantalla solo una de las
siguientes salidas: “están en orden creciente” o “no están en orden creciente”. Tip:
1, 2, 3, 4, 5 están en “orden creciente”
1, 3, 4, 5, 10 están en “orden creciente”
1, 1, 2, 3, 4 están en “orden no decreciente” y también “no están en orden creciente”
1, 1, 2, 2, 3 están en “orden no decreciente” y también “no están en orden creciente”

20. Escriba un programa que al recibir como dato el salario de un profesor de una universidad,
calcule su incremento de acuerdo con el siguiente criterio e imprima en pantalla el nuevo
salario, o bien el salario tal cual lo tenía si no le aplica incremento.

Salario<18,000 incremento del 12%


18,000 <=salario<=30,000 incremento del 8%
30,000<salario<=50,000 incremento 7%

21. Escriba un programa que pida el mes del año (1 a 12) y el día del mes (1 a 31), y en base a los
valores introducidos imprima con letra qué mes es y que estación del año es. Por ejemplo si le
leyeran los valores 3 y 25, el programa imprimirá: El mes es marzo y la estación es primavera,
pero si se leyeran los valores 3 y 20, el programa imprimirá: El mes es marzo y la estación es
invierno.

IMPLEMENTAR LOS SIGUIENTES PROGRAMAS EN LENGUAJE C++ ANSI

22. Implementar un programa que solicite al usuario el valor para una variable “anio” y que
resuelva si se trata de un año bisiesto o no dado lo siguiente:
1) Un año bisiesto se presenta cada 4 años contados a partir del año cero, esto es: 0, 4, 8,
12…etc. son años bisiestos.
2) Hay una excepción para los años bisiestos, esto es cada 100 años: 100, 200, 300, 500,
600, 700…etc. no son años bisiestos.
3) Cómo se habrá notado en la serie anterior, hay una excepción a la excepción, esto es que
cada 400 años: 400, 800, 1200…etc. sí son años bisiestos. Tip: si la expresión anio%4
calcula un 0, anio es un múltiplo de 4

23. Implemente un programa que solicite dos valores y la operación aritmética básica (suma, resta,
etc.) a realizar. El programa debe imprimir el resultado de la operación y los valores leídos.
Pueden ser valores enteros o reales. Use la estructura switch.

24. Escriba un programa que haga el cálculo del área de una de las siguientes figuras en base a
un menú de opciones: círculo, cuadrado, triángulo o rectángulo. El programa debe pedir los
datos necesarios para obtener el área. Use la estructura de control switch para el menú de
opciones.

25. Realice un programa que calcule el importe a pagar por un vehículo al circular por una
autopista. El vehículo puede ser motocicleta, automóvil, camión (utilizar un menú para elegir el
tipo de vehículo). Use la estructura switch para el selector. El importe se calculará:
a. Las motos pagarán $35 + IVA
b. Los automóviles pagarán $48.50 + IVA
c. Los camiones pagarán $57 + $18 por cada tonelada
26. Escriba un programa que solicite un número “x”. El programa utilice una sola variable, de modo
que todo cómputo (suma, resta, multiplicación, división, potencia, valor absoluto, etc.) asigne el
resultado de nuevo en “x”. Si “x” es positivo lo eleve al cuadrado, luego, si el nuevo “x” es par le
sume 5, de lo contrario le reste 5. Si “x” es negativo lo eleve al cubo, luego, para el nuevo “x”
determinar su valor absoluto originando un nuevo “x”, finalmente, si este último “x” es mayor a
100 le sume 100, de lo contrario le reste 100. Imprimir el valor final de “x”. Ejemplos:
1) si x=10, imprima al final x=105;
2) si x=9, imprima x=76;
3) si x=-5, imprima x=225;
4) si x=-4, imprima x=-36;
5) si x=0, imprima x=5 (para este ejercicio considerar al 0 como positivo)

27. Implemente un programa que solicite al usuario el tiempo inicial (hora, minuto, segundo) y el
tiempo final (hora, minuto, segundo) y calcule la diferencia de tiempo en horas, minutos y
segundos. El programa debe mostrar el tiempo transcurrido (en formato horas:minutos:
segundos) o informarle al usuario si este capturó un tiempo final con valor inferior al tiempo
inicial. Asumir que el usuario capturará la hora correctamente en el rango 0 a 59 segundos y 0
y 59 minutos. Al imprimir la diferencia de tiempo no imprimir más de 59 segundos ni más de 59
minutos. Ejemplos:
1) Hora inicial 0:10:20, Hora final 0:20:30, Diferencia 0:10:10
2) Hora inicial 0:10:58, Hora final 0:20:30, Diferencia 0:9:32
3) Hora inicial 0:10:20, Hora final 0:9:59, Capturó un tiempo final inferior al tiempo inicial

IMPLEMENTAR LOS SIGUIENTES PROGRAMAS EN LENGUAJE C ANSI

28. Implementar un programa que pida al usuario que escriba el operador (+,-,*,/,%) de su
elección, luego solicite los valores para unas variables “a” y “b” y finalmente se escribirá la
operación realizada y su resultado seguidos de una pausa.

Escribe el operador (+,-,*,/,%): %


Dame el valor de a=20
Dame el valor de b=3
20 % 3 = 2

Presione entrar para continuar . . .

Entregar en el comprimido 2 carpetas, con el código fuente utilizando para la selección canónica
una estructura de control selectiva diferente y cuyo nombre de carpeta sea la estructura de control:
a) Una que utilice if
b) Otra que utilice switch
Los ejercicios en adelante requieren de cumplir los Requerimientos de Valor
Agregado en Código Fuente (hasta el requerimiento Z):
29. Un encuestador realiza una consulta en la calle a 100 personas para saber que prefieren de lo
siguiente:
a) Los políticos deben bajarse el sueldo y dejar de robar.
b) Los políticos deben conservar su sueldo y dejar de robar.
c) Es indistinto, ya que los políticos siempre roban.
Escriba un programa que obtenga la opinión de cada persona e imprima al final cuántas personas
votaron por cada una de las opciones. Utilice la estructura de control do-while.
Solicite de la consola escribir las letras “a”, “b”, “c” (contemplando recibir tanto mayúsculas como
minúsculas) y luego la tecla “entrar”

30. Mostrar en pantalla el abecedario mostrando el par mayúscula y minúscula Aa, Bb, Cc, Dd, etc.
Utilice la estructura de control do-while. Vea el ejemplo en carpeta “Ejemplos PRO\01
Estructuras de Informacion Simples\01 Variables y Constantes\15 Variables caracter”. Al
menos el abecedario del inglés. No es necesaria entrada de datos

31. Escriba un programa que solicite 50 valores reales e imprima al final lo siguiente: cuántos son
positivos y cuántos son negativos, cuántos son pares y cuántos son impares, la suma de los
valores positivos y la suma de los valores negativos, la suma de los valores pares y la suma de
los valores impares, y finalmente el promedio de todos los valores introducidos. Utilice la
estructura de control do-while. El cero sea considerado positivo. Para determinar si son pares o
impares considere solo la parte entera de los valores capturados.

32. Escriba un programa que pregunte a cuántas personas se desea saludar y que imprima lo
siguiente (para el caso por ejemplo de 2 personas):
“Hola persona #1, te saludo”
“Hola persona #2, te saludo”
[en caso de capturar un cero imprima: “no hay nadie”]
• Entregar 2 fuentes de este programa en el mismo comprimido, uno que utilice while
(nombrándolo while.c) y otro que utilice for (nombrándolo for.c); esto es, renombrar
“main.c” (hecho con while) por “while.c” y el otro “main.c” renombrarlo como “for.c”

33. Escriba un programa que calcule el promedio de las estaturas (deseablemente en metros) y
edades de un grupo de N personas; se requiere leer el valor de N y luego para cada persona
leer su estatura y edad; considere validar que N puede ser cero. El programa imprima el
promedio de estaturas y edades y/o cualquier otro mensaje.
• Entregar 2 fuentes de este programa en el mismo comprimido, uno que utilice while
(nombrándolo while.c) y otro que utilice for (nombrándolo for.c)
34. Un médico desea conocer el peso promedio de sus pacientes en base a la categoría que
pertenecen:
a) Niños: 0 a 12 años
b) Adolescentes: 13 a 17 años.
c) Jóvenes: 18 a 29 años.
d) Adultos jóvenes: 30 a 59 años.
e) Adultos mayores: 60 en adelante.
Escriba un programa que pida la cantidad de pacientes del médico y para cada uno de ellos
solicite la edad y peso; al final imprima el peso promedio en cada una de las categorías que
maneja. Nótese que puede no haber pacientes en alguna categoría y valide para evitar un fallo.
• Entregar 2 fuentes de este programa en el mismo comprimido, uno que utilice while
(nombrándolo while.c) y otro que utilice for (nombrándolo for.c)

IMPLEMENTAR LOS SIGUIENTES PROGRAMAS EN LENGUAJE C++ ANSI

35. Implementar un programa que pida al usuario que ingrese los valores para el multiplicando y el
último multiplicador y posteriormente se imprimirá la tabla de multiplicar correspondiente,
empezando desde el 1, seguido de una pausa.

Dame el multiplicando = 7
Dame hasta cual multiplicador = 10
Tabla de multiplicar del 7...
7 X 1 = 7
7 X 2 = 14
7 X 3 = 21
7 X 4 = 28
7 X 5 = 35
7 X 6 = 42
7 X 7 = 49
7 X 8 = 56
7 X 9 = 63
7 X 10 = 70

Presione entrar para continuar . . .

Validar el caso donde para el multiplicador se capture “-1”.

Entregar en el comprimido 3 carpetas, con el código fuente utilizando para imprimir la tabla una
estructura de control iterativa diferente y cuyo nombre de carpeta sea la estructura de control:
a) Una que utilice do-while
b) Otra que utilice while
c) Otra que utilice for
Las 3 versiones deben imprimir en consola exactamente igual ante el usuario.

36. Escriba un programa que permita al usuario la captura de 8 valores en un arreglo de enteros
del mismo tamaño, utilizando para ello una estructura de control iterativa. Después de capturar
todos los valores, enseguida se sumen los elementos de todas las celdas, y para esto será
necesario usar un acumulador que vaya almacenando la sumatoria; aplicar una estructura de
control iterativa diferente a la usada para la captura. Finalmente el programa debe mostrar en
pantalla la suma total, es decir: se debe imprimir el acumulador. Por estructuras diferentes, sea
respecto a usar do-while, o while o for.
37. Escriba un programa que obtenga del usuario los valores para un arreglo de enteros, de 10
celdas dicho arreglo, utilizando una estructura de control iterativa. Luego, al terminar la iterativa
anterior, capture un multiplicador. Luego, cada elemento del vector debe ser multiplicado por el
multiplicador, depositando el resultado en el mismo vector, y usando una estructura de control
iterativa diferente a la primera. Finalmente, después de terminar la iteración anterior, sea
mostrado el vector resultante, y usando una estructura de control iterativa diferente a las 2
anteriores. Por estructuras diferentes, sea respecto a usar do-while, ó while o for.

38. En una escuela secundaria se hace un censo para conocer: cuántos alumnos son mujeres y
cuántos son hombres y además la cantidad de personas que tienen 12 o 13 o 14 o 15 o más
de 15 años cumplidos. Implemente un programa que solicite la cantidad de alumnos de la
secundaria y para cada uno de ellos se indique si es hombre o mujer y su edad. Dicho
programa debe imprimir los resultados buscados en el censo.
• Entregar 2 fuentes de este programa en el mismo comprimido, uno que utilice while
(nombrándolo while.cpp) y otro que utilice for (nombrándolo for.cpp)

IMPLEMENTAR LOS SIGUIENTES PROGRAMAS EN LENGUAJE C ANSI

39. Escriba un bucle que calcule la suma de cada tercer entero, comenzando por i=2 (es decir,
calculando la suma de 2 + 5 + 8 + 11 +…) para todos los valores de i menores que 100.
Imprimir solo el resultado de la suma.

40. Escriba un programa que solicite un valor entero y haga lo siguiente: si el número es positivo
encuentre todas las sumas de números enteros positivos consecutivos hacia la derecha (orden
ascendente) que den el número introducido, por ejemplo: 50 = 8 + 9 + 10 + 11 + 12 y 50 = 11
+ 12 + 13 + 14; si el número es negativo éste encuentre todas las sumas de número enteros
negativos consecutivos hacia la izquierda (orden descendente) que den el número introducido,
por ejemplo: -50 = -8 - 9 - 10 - 11 - 12 y -50 = -11 - 12 - 13 – 14; pero si no existe ninguna
suma imprima que no es posible obtenerla.

41. Codifique un programa que solicite un valor entero positivo k y en base a ese valor realice lo
siguiente: escriba los números desde 1 hasta el valor k, cada uno tantas veces como indique
su propio valor; y calcule la suma y la multiplicación de ellos. Por ejemplo, si k = 4, debe
obtenerse la salida:
1 = 1, 1 = 1
2 + 2 = 4, 2 x 2 = 4
3 + 3 + 3 = 9, 3 x 3 x 3 = 27
4 + 4 + 4 + 4 = 16, 4 x 4 x 4 x 4 = 256

IMPLEMENTAR LOS SIGUIENTES PROGRAMAS EN LENGUAJE C++ ANSI

42. Implemente y use una subrutina sin parámetros, que muestre el menú de opciones para el
ejercicio 24, donde la última opción sea “salir”; el programa cumpla con el ejercicio 24 y que
muestre cíclicamente el menú hasta que el usuario elija “salir”
43. Implemente una subrutina que muestre una presentación gráfica en modo texto (googlea “text
art”), que abarque toda la pantalla, luego espere por la tecla entrar; usar dicho procedimiento
como complemento de cualquier programa de los previamente solicitados en este documento,
llamando al procedimiento al principio del programa principal. La presentación no exceda 24
líneas impresas más otra línea para una “pausa” para continuar.

44. Implementar y usar desde main una función que reciba un entero y devuelva su factorial, en
caso de parámetro negativo, devolver un -1.

45. Implemente una función que reciba base tipo real y exponente entero y que devuelva la
potencia contemplando inclusive exponente negativo; usar dicha función desde el programa
principal; el programa incluya SOLO las librerías básicas.

46. Después de haber estudiado bien el programa de la carpeta "Ejemplos PRO\09 Estructuras de
Control Compuestas\07 El ABC, Altas, Bajas, Consultas y Cambios", implementar desde cero
un programa que funcione de manera similar al ejemplo, solo que usando registros cuyo
nombre sea Alumno o Arbol o Libro, con atributos propios del tipo de dato elegido, con arreglo
de registros, programación modular y optativamente el menú "búsqueda"; evitar lo más posible
estar consultando muy seguido cómo está hecho el ejemplo. Alumnos del curso de
Programación realizarán este ejercicio en lenguaje C. Queda por cuenta del (la) estudiante el
entrenar hasta lograr implementar un programa así, en menos de 1 hora, programando tiempo
corrido.

47. Implementar una función que reciba un arreglo de enteros y devuelva el menor valor que
encuentre; usar dicha función desde el programa principal con un vector de al menos 4 celdas

48. Implementar una función que reciba un arreglo de enteros y devuelva verdadero si todos los
números son diferentes, en otro caso devuelva falso; usar dicha función desde el programa
principal con un vector de al menos 4 celdas

IMPLEMENTAR LOS SIGUIENTES PROGRAMAS EN LENGUAJE C ANSI

49. Implementar una función que haga lo mismo que strlen() de string.h recibiendo igual un arreglo
de char; usar dicha función desde main; el programa no incluya más librerías que stdio.h y
stdlib.h

50. Implementar una función que haga lo mismo que strcpy() de string.h recibiendo igual dos
arreglos de char; usar dicha función desde main; el programa no incluya más librerías que
stdio.h y stdlib.h

51. Implementar una función que haga lo mismo que strcat() de string.h recibiendo igual dos
arreglos de char; usar dicha función desde main; el programa no incluya más librerías que
stdio.h y stdlib.h

52. Implementar una función que haga lo mismo que strcmp() de string.h recibiendo igual dos
arreglos de char; usar dicha función desde main; el programa no incluya más librerías que
stdio.h y stdlib.h
53. Implementar un programa que lea de la consola letras para un arreglo de caracteres, luego
convertir a minúsculas todos los caracteres y finalmente imprimir el arreglo de caracteres (ya
en minúsculas). Tomar en cuenta que el código ASCII de la “A” es 65, el de la “Z” es 90. El de
la “a” es 97 y el de la “z” es 122. Ignorar para la conversión los caracteres acentuados y la “ñ”.

54. Implementar un programa que lea de la consola letras para un arreglo de caracteres, luego
convertir a mayúsculas todos los caracteres y finalmente imprimir el arreglo de caracteres (ya
en mayúsculas). Tomar en cuenta que el código ASCII de la “A” es 65, el de la “Z” es 90. El de
la “a” es 97 y el de la “z” es 122. Ignorar para la conversión los caracteres acentuados y la “ñ”.

IMPLEMENTAR LOS SIGUIENTES PROGRAMAS EN LENGUAJE C++ ANSI

55. Modificar el programa del ejercicio 46 (el ABC), para que al principio del programa se solicite al
(la) usuari@ la cantidad máxima de registros que podrán ser capturados; luego de lo anterior el
programa funcione igual que la versión anterior del programa, pero soportando la captura de
tantos registros como se haya especificado por el (la) usuari@. Declarar y definir el arreglo de
registros en main(), y hacer paso de parámetros por referencia, pasando el arreglo de registros
como parámetro desde main() hacia las subrutinas encargadas del ABC. Este programa no
requiera de variables globales.

56. Implementar una subrutina que convierta un int en un arreglo de caracteres (no un objeto
string); dicha subrutina reciba un int, el puntero a un arreglo de caracteres (que no necesita ser
inicializado) y el tamaño del arreglo de caracteres; tal subrutina devuelva verdadero solo si la
cantidad de caracteres a escribir en el arreglo pudieron ser almacenados en dicho arreglo; al
salir de dicha subrutina, imprimir el contenido del arreglo de caracteres; por ejemplo: si la
subrutina recibe un entero 2017 y el arreglo cuenta al menos con 5 celdas, el arreglo de
caracteres contenga en la celda 0 el código ASCII del ‘2’, en la celda 1 el ASCII del ‘0’, etc.
donde finalmente la celda 4 contenga el carácter nulo.

57. Implementar un programa, donde una subrutina reciba una cadena por referencia, busque en
dicha cadena un caracter, digamos el ‘|’ y si se encuentra tal caracter, removerlo de la cadena.
La cadena puede ser un arreglo de caracteres o un objeto string.
58. Implementar un programa ABC, para gestionar un listado de materias con sus prerrequisitos,
donde, si se capturara el siguiente listado de materias con sus prerrequisitos, se imprimiera en
la consola tal cual se muestra a continuación (nótese que “Estructuras de Datos I” tiene 2
prerrequisitos):

---------------------------------------------------------------
Clave | Nombre | Prerrequisito(s)
---------------------------------------------------------------
I5882 | Programación | (Lógica)
---------------------------------------------------------------
I5892 | Matemática Discreta | (Álgebra)
---------------------------------------------------------------
I5886 | Estructuras de Datos I | I5882
| | I5892
---------------------------------------------------------------
I5888 | Estructuras de Datos II | I5886
---------------------------------------------------------------
I5890 | Bases de Datos | I5886
---------------------------------------------------------------
I5898 | Ingeniería de Software I | I5890
---------------------------------------------------------------
I5909 | Programación para Internet | I5888
| | I5890
---------------------------------------------------------------
I7035 | Sistemas Concurrentes y Distribuidos | I5909
---------------------------------------------------------------

59. Elabore un programa que multiplique una matriz de 5 filas X 5 columnas por un vector de 5
filas. Inicializa las celdas como gustes.

60. Implemente un programa que calcule la multiplicación matricial de 2 matrices de 3x3,


inicializadas con valores secuenciales; pedir un valor inicial al usuario y a partir de dicho valor
inicializar cada celda de ambas matrices con valores diferentes. Imprimir las tres matrices

61. Escriba un programa que llene una matriz de 10 x 10 con valores aleatorios; luego sume cada
columna de la matriz y almacene los resultados en un vector; después sume cada fila de la
matriz y almacene los resultados en otro vector. Al final del programa imprima la matriz y
ambos vectores.

62. Escriba un programa que solicite los valores reales de las celdas de una matriz de 4 x 4 y
muestre lo siguiente:
a) El contenido de la matriz.
b) La suma de los elementos de la matriz
c) El promedio de los elementos de la matriz.
d) La posición en la matriz del elemento menor y el valor de dicho elemento.
e) La posición en la matriz del elemento mayor y el valor de dicho elemento.
f) La cantidad de elementos que son iguales al elemento menor.
g) La cantidad de elementos que son iguales al elemento mayor.
h) La cantidad de elementos que son mayores al elemento menor.
i) La cantidad de elementos que son menores al elemento mayor.
• Ejerza la programación modular
63. Modificar el programa del ejercicio 55 (el ABC), para declarar y sin definir una variable global
de tipo arreglo de apuntadores, incluir una subrutina de inicialización que se ejecute al principio
del programa y ahí se solicite al (la) usuari@ la cantidad máxima de registros que podrán ser
capturados; luego de lo anterior el programa funcione igual que la versión anterior del
programa. Este entregable requiere conocimientos sobre arreglos de apuntadores, propio de
Estructuras de Datos I.

64. Modificar el programa del ejercicio 46 (el ABC), removiendo el campo “libre” del registro
modelado y, representando el estado “libre” de los registros en un arreglo de booleanos, por
separado del arreglo de registros, esto es, si el arreglo de booleanos en su celda cero indica
verdadero (valor 1), entonces es posible capturar un registro nuevo en la celda cero del arreglo
de registros, de lo contrario entiéndase que el registro tiene ya datos útiles para consultarlos y
listarlos; procurar de ser posible elaborar la solución evitando recurrir a consultar la solución en
carpeta “08 El ABC arreglo de booleanos”; al final comparar su solución contra la del ejemplo
dado. Alumnos del Curso de Programación y Seminario de Programación realizarán este
ejercicio en lenguaje C.

65. Después de haber estudiado bien el programa de la carpeta "Ejemplos PRO\09 Estructuras de
Control Compuestas\09 El ABC recorriendo registros", implementar desde cero un programa
que funcione de manera similar al ejemplo, solo que usando registros cuyo nombre sea
Alumno o Arbol o Libro (y que el tipo de dato sea diferente al elegido para el ejercicio 46), con
atributos propios del tipo de dato elegido, con arreglo de registros, programación modular y que
incluya el menú "búsqueda"; evitar lo más posible estar consultando muy seguido cómo está
hecho el ejemplo. Alumnos del Curso de Programación y Seminario de Programación
realizarán este ejercicio en lenguaje C.

66. Después de haber estudiado bien el programa de la carpeta "Ejemplos PRO\09 Estructuras de
Control Compuestas\10 Reemplazando registro", implementar desde cero un programa que
funcione de manera similar al ejemplo, solo que usando registros cuyo nombre sea Alumno o
Arbol o Libro (y que el tipo de dato sea diferente al elegido para los ejercicios 46 y 64), con
atributos propios del tipo de dato elegido, con arreglo de registros, programación modular y que
incluya el menú "búsqueda"; evitar lo más posible estar consultando muy seguido cómo está
hecho el ejemplo. Alumnos del Curso de Programación y Seminario de Programación
realizarán este ejercicio en lenguaje C.

También podría gustarte