Universidad Autónoma de Querétaro
Facultad de Informática
Materia: Introducción a la Programación
Maestra: D.I.T.E. Sofía Amadis Rivera López
Proyecto Final
Para el proyecto final de la materia deberás de generar un menú de opciones en el cual se desplieguen las
soluciones de los algoritmos planteados en la parte inferior, cada uno tiene su puntaje y tu calificación
dependerá de la cantidad de algoritmos que funcionen de manera adecuada.
1. Determinar qué paquete se puede comprar una persona con el dinero que recibirá en
diciembre, considerando lo siguiente:
a. Paquete A. Si recibe $50,000 o más se comprará una televisión, una bocina, tres pares
de zapatos, cinco camisas y cinco pantalones.
b. Paquete B. Si recibe menos de $50,000 pero más (o igual) de $20,000, se comprará una
grabadora, tres pares de zapatos, cinco camisas y cinco pantalones.
c. Paquete C. Si recibe menos de $20,000 pero más (o igual) de $10,000, se comprará dos
pares de zapatos, tres camisas y tres pantalones.
d. Paquete D. Si recibe menos de $10,000, se tendrá que conformar con un par de zapatos,
dos camisas y dos pantalones.
Cuando obtengas el paquete de acuerdo con el aguinaldo correspondiente deberás de
mostrar en cuestión a lo que puede comprar una tienda en la cual se muestre código,
precio, existencia por producto, por cada producto deberá de existir al menos dos opciones
es decir para la televisión Lineup de LG NanoCell TV o 65" Q900R QLED Smart 8K TV 2019
Samsung y así sucesivamente evidentemente la elección y suma de los productos no deberá
de exeder el aguinaldo. Al ultimo de deberá de mostrar el aguinaldo, el paquete
correspondiente, los productos elegidos y esto en una tabla. Puntos: 0.5
2. Una persona se encuentra en el kilómetro 70 de la carretera Aguascalientes-Zacatecas, otra se
encuentra en el km 150 de la misma carretera, la primera viaja en dirección a Zacatecas,
mientras que la segunda se dirige a Aguascalientes, a la misma velocidad. Realice un algoritmo
para determinar en qué kilómetro de esa carretera se encontrarán y que comunidad, ciudad,
pueblo mágico etc. se encuentra en dicho kilómetro, habrás de realizar dicho algoritmo para la
carretera ya mencionada, para la carretera México – Querétaro y para la carretera San Luis
Potosí – Saltillo (deberá de existir un menú). Puntos: 0.5
3. Desarrolla una calculadora la cual habrá de hacer el cálculo de la suma, división, multiplicación y
exponenciación a N cantidad para una N cantidad de números que el usuario desee. Puntos: 1
4. La cadena de tiendas de autoservicio “El mandilón” cuenta con sucursales en C ciudades
diferentes de la República, en cada ciudad cuenta con T tiendas y cada tienda cuenta con N
empleados, asimismo, cada una registra lo que vende de manera individual cada empleado,
cuánto fue lo que vendió cada tienda, cuánto se vendió en cada ciudad y cuánto recaudó la
Universidad Autónoma de Querétaro
Facultad de Informática
Materia: Introducción a la Programación
Maestra: D.I.T.E. Sofía Amadis Rivera López
cadena en un solo día. Para esto deberás de tener la capacidad de registrar las
sucursales que el usuario desee es decir que podrá registrar las ciudades, tiendas y empleados
que decida y habras de realizar el reporte de ventas por empleado por cada tienda, ciudad y
sucursal (las ventas por empleado las deberá de registrar el usuario, recuerda que la estética del
reporte importa mucho). Puntos: 2
5. Implementa la función exponencial:
Puntos: 2
6. Realice un algoritmo para leer las calificaciones de N alumnos y determine el número de
aprobados y reprobados. deberás a su vez de registrar a cada alumno con su nombre,
expediente y calificación, la cantidad de alumnos la asigna el usuario y el resultado será la lista
con el nombre, expediente, calificación, status y la cantidad de aprobados y reprobados que
hay. Puntos: 0.5
7. En 1951, una persona vendió las tierras de su abuelo al gobierno por la cantidad de $1500.
Suponga que esta persona ha colocado el dinero en una cuenta de ahorros que paga 15% anual.
¿Cuánto vale ahora su inversión? P(1+i)^n. Puntos: 1
8. Realiza un algoritmo para obtener el seno de un ángulo:
Puntos: 1
9. Se requiere un algoritmo para obtener un vector (C) de N elementos que contenga la división de
los elementos correspondientes de otros dos vectores (A y B). Puntos: 0.5
10. Crea un arreglo de caracteres en el cual coloque cada una de las letras del abecedario, lo que
hará el algoritmo, es solicitar al usuario N cantidad de números entre el 1 y el 27 (habrás de
validar que el numero este en ese rango) e imprimir las letras correspondientes por número
aceptado. Puntos: 1
11. Realice un algoritmo que permita introducir un arreglo de n elementos, el programa mostrara
un histograma de esos datos (el histograma se interpretara con la salida de n asteriscos donde n
es el valor de cada elemento del arreglo) ej: el arreglo es 2,3,4 el histograma será 2->**3->***4-
>**** Puntos: 1
Universidad Autónoma de Querétaro
Facultad de Informática
Materia: Introducción a la Programación
Maestra: D.I.T.E. Sofía Amadis Rivera López
12. Se requiere un algoritmo que lea un vector de 8 elementos e intercambie las
posiciones de sus elementos, de tal forma que el primer elemento pase a ser el último y el
último el primero, el segundo el penúltimo y así sucesivamente, e imprima ese vector. Puntos: 1
13. Elabora un algoritmo que permita introducir n elementos de tipo entero en un arreglo, el
programa mostrara impreso el arreglo en orden inverso a como fueron introducidos. Puntos: 2
14. Elabora un algoritmo que encuentre al número mayor y menor de un arreglo y luego muestre en
qué posición se encontraban estos números originalmente. Puntos: 0.5
15. Se requiere un algoritmo que permita que un usuario introduzca una palabra y esta sea
convertida al idioma “efe” y si no es posible convertirla que solicite automáticamente otra
palabra. Puntos: 0.5
16. Realice un algoritmo que lea un vector de X elementos e intercambie las posiciones de sus
elementos, de tal forma que el primer elemento pase a ser el último y el último el primero, el
segundo el penúltimo y así sucesivamente, e imprima ese vector. Puntos: 1
17. Se necesita generar un vector de 50 elementos con valores numéricos enteros (imprima el
vector lleno, el usuario no lo llena), realice lo siguiente:
a. Leer un valor x y buscar en qué posición del vector se encuentra
b. Llene otro vector con los elementos de las posiciones impares del vector.
c. En este último vector, busque cuántos elementos son múltiplos de 3 Puntos: 1
18. Se requiere un algoritmo que ingrese n números, almacenarlos en un vector y muestre el
numero mayor, así como el segundo mayor, asi como el vector completo para validad la
selección de los mayores. Puntos: 0.5
19. Escribe un programa que solicite una matriz NxN de enteros. Luego, crea una segunda matriz de
la misma dimensión que indique si cada celda en la matriz original es un borde o no. En la matriz
de salida, cada borde debe tener el valor 1 y los demás elementos 0. Un borde es una celda que
tiene al menos un vecino con un valor distinto a sí misma (vertical, horizontal o diagonal).
Puntos: 2.5
1 1 2 Inicial
122
222
111 Resultante
111
1 01
Universidad Autónoma de Querétaro
Facultad de Informática
Materia: Introducción a la Programación
Maestra: D.I.T.E. Sofía Amadis Rivera López
20. Crea un programa que reciba una matriz de NxM que contenga solo 0s y 1s.
La tarea es encontrar el tamaño del cuadrado más grande que contiene solo 1s. Devuelve el área
de dicho cuadrado. Puedes usar una matriz auxiliar para ir guardando los tamaños máximos que
pueden formarse en cada posición. Puntos 2.5
1 0 1 1 Inicial
1111
0111
1110
El cuadrado más grande de 1s tiene un área de 4 (2x2).
21. Sistema de control de calificaciones, una institución educativa necesita un programa que
permita calcular y visualizar los promedios de calificaciones de un grupo de estudiantes en
diferentes clases.
El sistema debe solicitar al usuario:
El número de estudiantes
El número de clases que cursan
Después, deberá permitir ingresar las calificaciones de cada estudiante en cada clase,
almacenándolas en una matriz bidimensional donde:
Las filas representan a los estudiantes
Las columnas representan las clases
El sistema debe calcular y mostrar:
El promedio individual de cada estudiante
El promedio por clase (promedio general de todos los estudiantes en esa materia)
El promedio general del grupo (promedio de todos los promedios de estudiantes)
Finalmente, debe mostrar los resultados de manera clara en consola. Puntos 2.5
22. Supón que tienes dos matrices de NxN que representan los costos y los tiempos entre diferentes
ubicaciones. Crea un programa que acepte estas matrices y devuelva una nueva matriz de NxN
donde cada celda contenga el valor 1 si el costo y el tiempo están ambos por debajo de ciertos
valores de umbral especificados por el usuario, o 0 en caso contrario. Ejemplo: Para matrices de
costos y tiempos de 3x3 y umbrales de costo 50 y tiempo 20, crea la matriz: Puntos:2.5
Costos:
20 60 30
45 10 25
30 40 35
Universidad Autónoma de Querétaro
Facultad de Informática
Materia: Introducción a la Programación
Maestra: D.I.T.E. Sofía Amadis Rivera López
Tiempos:
10 25 20
15 18 12
25 15 10
1 0 1 Resultante
111
011
23. Crea un programa que acepte una matriz de NxN e imprima una nueva matriz donde los
elementos en la diagonal principal son la suma acumulativa de los elementos en la fila hasta ese
punto. Los elementos fuera de la diagonal deben mantenerse como 0. Puntos:2.5
1 2 3 Inicial
456
789
1 0 0 Resultante
490
7 15 24
Requerimientos mínimos para cada algoritmo:
a) Deberás de generar un menú interactivo en el que se seleccione el algoritmo que el usuario
desee y se ejecute el algoritmo en su totalidad y posteriormente le dé la opción de regresar al
menú principal y seleccione un algoritmo diferente (nunca se debera de salir del menú a menos
de que el usuario asi lo quera).
b) Código documentado de acuerdo a las convenciones de código de JAVA
c) Emplear para nombrar clases, métodos, variables y constantes las convenciones de código de
JAVA
d) Frase que explique lo que hace cada algoritmo
e) Solicitud de datos específica, no dejar adivinar al usuario
f) Cada algoritmo deberá de tener validación de datos es decir que si el algoritmo hace una
división y tu almacenas la división en un tipo de dato int y esta división da un numero con
decimales es claro que arrojaría un error y eso no debe de ocurrir
g) Deberás de implementar procedimientos y/o funciones en al menos el 70% de los ejercicios que
realices.
h) Deberás de hacer uso de excepciones (Deberás de investigar cómo funcionan las excepciones y
generarlas para cada algoritmo)
a. Si no empleas en los algoritmos el manejo de excepciones como implementar un try
catch se te restara 0.3 pts sobre el ejercicio que realices.
Universidad Autónoma de Querétaro
Facultad de Informática
Materia: Introducción a la Programación
Maestra: D.I.T.E. Sofía Amadis Rivera López
i) La definición de todas las variables y constantes deberá de estar al inicio del
algoritmo a excepción de los contadores de los ciclos for.
j) Código desarrollado empleando las convenciones de código de Java
Para realizar la entrega del proyecto se realizará de manera presencial el día JUEVES 27 de noviembre de
las 10:00 am hasta las 12:00 hrs en las instalaciones de la facultad, se evaluará de manera parcial los
ejercicios por lo que es necesario que un miembro de la pareja tenga listo el proyecto para su revisión es
necesario que ambos miembros de la pareja se presenten de lo contrario la entrega será cancelada, no se
dará prorroga de entrega por ningún motivo y será anulada la calificación para ambos miembros de la
pareja.
El proyecto se entrega en una memoria USB o en un CD debidamente etiquetado y en este deberá de
contener dos archivos uno la exportación del proyecto final completo y un PDF en el que se encuentre
todo el código del proyecto copiado y pegado asi como la evidencia de funcionamiento de cada algoritmo
generado.