PRACTICO DE PROGRAMACIÓN PERÍODO – EXAMEN FINAL |
PARALELOS “A-F” |
El alumno debe resolver todos estos problemas y ejercicios de programación para acceder al examen Finales como derecho de entrada. Aquellos ejemplos en los que exista la duda deben ser consultados y resueltos en clases: |
PROBLEMAS PROPUESTOS PARA PROGRAMACIÓN MODULAR
- Diseñar los módulos necesarios para que tenga como parámetros dos números, y que calcule el mayor y el menor.
- Diseñar los módulos necesarios donde se envían dos enteros y muestra todos los números comprendidos entre ellos, inclusive los mismos.
- Dos números se dicen amigos cuando uno de ellos es igual a la suma de todos los divisores del otro excepto el mismo.
Ejemplo: los números 220 (1+2+4+5+10+11+20+22+44+55+110 = 284) y 284 (1+2+4+71+142 = 220) son amigos.
- Diseñe un programa para mostrar los números capicúas menores o iguales a N.
1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 55…..99, 111, 222 ….
- Diseñe un programa para generar los primeros N números naturales que al menos tengan un digito cero (0).
10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 101, 102,……..
- Dado un número X, hallar la suma del factorial de sus dígitos, mostrar la suma.
Ej. X=363
3! = 1*2*3 = 3*2*1 = 6 6! = 1*2*3*4*5*6= 720 Sumatoria= 6+6+720= 732
- Calcular y visualizar el valor de la siguiente sumatoria de “N” términos (dato ingresado por el usuario) almacenando su resultado en “S” y donde “x” es un valor numérico entero cualquiera ingresado por el usuario:
- Realizar un Módulo para anexar un digito por delante a un numero dado: ej. Si N = 123, y el Dig = 7, el resultado a visualizar será 7123.
- Implemente un programa modular para calcular la aproximación del seno de x.
- Hacer un programa que lea por teclado un número n entero positivo e imprimir en pantalla una pirámide de n filas que responda al siguiente esquema:
1
2 3 2
3 4 5 4 3
4 5 6 7 6 5 4
5 6 7 8 9 8 7 6 5
6 7 8 9 0 1 0 9 8 7 6
7 8 9 0 1 2 3 2 1 0 9 8 7
8 9 0 1 2 3 4 5 4 3 2 1 0 9 8
9 0 1 2 3 4 5 6 7 6 5 4 3 2 1 0 9
0 1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1 0
Haga un programa que resuelva un ejercicio de tiro parabólico. Las condiciones son las siguientes:
Utilice programación modular.
a) Dada la rapidez inicial, el ángulo de disparo y la distancia a la que se encuentra la base del blanco, calcular la altura del blanco.
b) Dada la distancia de la base del blanco, el ángulo del disparo y la altura del blanco, calcule la rapidez del disparo
c) Dado el ángulo del disparo, la rapidez inicial y la altura del blanco, calcular la distancia a la que se encuentra la base.
PROBLEMAS PROPUESTOS PARA VECTORES UNIDIRECCIONALES
- Calcular el promedio de 50 valores almacenados en un vector. Determinar además cuantos son mayores que el promedio, imprimir el promedio, el número de datos mayores que el promedio y una lista de valores mayores que el promedio.
- Llenar dos vectores A y B de 45 elementos cada uno, sumar el elemento uno del vector A con el elemento uno del vector B y así sucesivamente hasta 45, almacenar el resultado en un vector C, e imprimir el vector resultante.
- Almacenar n números en un vector, imprimir cuantos son ceros, cuantos son negativos, cuantos positivos. Imprimir además la suma de los negativos y la suma de los positivos.
- Almacenar 150 números en un vector, almacenarlos en otro vector en orden inverso al vector original e imprimir el vector resultante.
- Se tienen almacenados en la memoria dos vectores M y N de cien elementos cada uno. Hacer un algoritmo que escriba la palabra “Iguales” si ambos vectores son iguales y “Diferentes” si no lo son. Serán iguales cuando en la misma posición de ambos vectores se tenga el mismo valor para todos los elementos.
- Se tiene el vector A con 100 elementos almacenados. Diseñe un algoritmo que escriba “SI” si el vector esta ordenado ascendentemente o “NO” si el vector no está ordenado
- Diseñe un algoritmo que lea un numero cualquiera y lo busque en el vector X, el cual tiene almacenados 80 elementos. Escribir la posición donde se encuentra almacenado el número en el vector o el mensaje “NO” si no lo encuentra. Búsqueda secuencial.
- Diseñe un algoritmo que lea dos vectores A y B de 20 elementos cada uno y multiplique el primer elemento de A con el último elemento de B y luego el segundo elemento de A por el diecinueveavo elemento de B y así sucesivamente hasta llegar al veinteavo elemento de A por el primer elemento de B. El resultado de la multiplicación almacenarlo en un vector C.
- Realizar un procedimiento que muestre los elementos que coincidan con su posición en el vector. Ej.
Resultado: 1, 3
- Realice un procedimiento para invertir un vector V de dimensión N, sin utilizar un vector auxiliar.
- Hacer una función que dado un numero X, y un vector V con n elementos, determinar cuántos divisores de X existe en el vector V.
- Cierta empresa requiere controlar la existencia de diez productos, los cuales se almacenan en un vector A, mientras que los pedidos de los clientes de estos productos se almacenan en un vector B. Se requiere generar un tercer vector C con base en los anteriores que represente lo que se requiere comprar para mantener el stock de inventario, para esto se considera lo siguiente: si los valores correspondientes de los vectores A y B son iguales se almacena este mismo valor, si el valor de B es mayor que el de A se almacena el doble de la diferencia entre B y A, si se da el caso de que A es mayor que B, se almacena B, que indica lo que se requiere comprar para mantener el stock de inventario. Realice el algoritmo y represéntelo mediante el diagrama de flujo ó pseudocódigo.
- Escribe un algoritmo que calcule la Moda de un Vector desordenado. La moda de un vector es aquel elemento que se repite la mayor cantidad de veces en un vector, Represéntelo mediante diagrama de flujo y pseudocódigo.
- Generar el siguiente vector con 6 elementos donde Z (valor ingresado por el usuario) y K inicia en 1:
Pos. 1 | 2 | 3 | 4 | 5 | 6 |
3*Z0 | 5*ZK+0 | 6*ZK+1 | 7*ZK+2 | 8*ZK+3 | 9*ZK+4 |
a) Calcular la suma total de los valores del vector.
b) Hallar el promedio y visualizarlo.
c) Encontrar el mayor elemento del vector.
d) Ordenar el vector en forma descendente.
e) Visualizar el vector ordenado
- Se pide llenar dos vectores (A, B) ambos con 6 elementos. (procure realizarlo modular)
- El Vector “A” debe ser llenado con elementos impares y el vector “B” con elementos pares, luego realizar lo siguiente:
- Unir en un tercer vector C los elementos de los vectores A y B.
- Ordenar el vector C en forma descendente (por cualquier método)
- Buscar el mayor elemento en el primer vector.
- Visualizar el vector ordenado.
Ejemplo:
Vector A:
Pos. 1 | 2 | 3 | 4 | 5 | 6 |
3 | -11 | 1 | 21 | -51 | 9 |
Vector B
Vector C
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
3 | -11 | 1 | 21 | -51 | 9 | 8 | 12 | -10 | 6 | 4 | 42 |
El mayor elemento en el Vector A: 21
Vector C ordenado
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
-51 | -11 | -10 | 1 | 3 | 4 | 6 | 8 | 9 | 12 | 21 | 42 |
- Una empresa necesita que se haga un programa que cumpla con los siguientes requisitos:
- Un menú central que cuando el usuario necesite se hagan las compras, se llame al módulo de compras, donde se ingresan los ítems que se desean comprar y sus precios de compra.
- Cuando se necesita hacer ventas, el menú central llama el módulo de ventas, donde se registran los ítems y los precios de venta
- Finalmente, para hacer el reporte, se llama al módulo que emite el diario (movimientos y montos del dia) con el respectivo total de ingresos y de egresos.
- Un club de amigos desea ingresar a los miembros en una lista. Ingrese los nombres de los socios en un vector (n miembros), ponga un código para indicar al programa que no ingresará más nombres. En un segundo vector coloque los nombres ordenados.
- El mismo ejercicio 17, pero en un segundo vector ingrese los números de teléfono. Al ordenar los nombres en un tercer vector, genere un cuarto vector donde coincidan los números telefónicos a los nombres ordenados
PROBLEMAS PROPUESTOS PARA MATRICES BI-DIRECCIONALES
- Hacer un algoritmo que almacene números en una matriz de 5 * 6. Imprimir la suma de los números almacenados en la matriz.
- Hacer un algoritmo que llene una matriz de 10 * 10 y determine la posición [renglón, columna] del número mayor almacenado en la matriz. Los números son diferentes.
- Hacer un algoritmo que llene una matriz de 7 * 7. Calcular la suma de cada renglón y almacenarla en un vector, la suma de cada columna y almacenarla en otro vector.
- Hacer un algoritmo que llene una matriz de 20 * 20. Sumar las columnas e imprimir que columna tuvo la máxima suma y la suma de esa columna.
- Hacer un algoritmo que llene una matriz de 5 * 5 y que almacene la diagonal principal en un vector. Imprimir el vector resultante.
- Hacer un algoritmo que llene una matriz de 10 * 10 y que almacene en la diagonal principal unos y en las demás posiciones ceros.
- Hacer un algoritmo que llene una matriz de 6 * 8 y que almacene toda la matriz en un vector. Imprimir el vector resultante.
- Hacer un algoritmo que llene una matriz de 8 * 8, que almacene la suma de los renglones y la suma de las columnas en un vector. Imprimir el vector resultante.
- Hacer un algoritmo que llene una matriz de 5 * 6 y que imprima cuantos de los números almacenados son ceros, cuántos son positivos y cuantos son negativos.
- Diseñe un pseudocódigo que muestre todos los elementos de la fila cuya suma sea mayor que las demás filas. Suponga que todas las filas suman diferente cantidad.
- Diseñar un algoritmo en pseudocódigo que permita cargar una matriz (U) en memoria y comprobar si la misma es unitaria o no, ¡ojo! abandonando la comprobación cuando algún elemento no sea de la matriz unitaria. Una matriz unitaria de orden (n) es aquella que tienen n filas (f) y n columnas (c), con todas sus componentes a 0 excepto la diagonal principal que está a 1.
- Crear y cargar una tabla de tamaño 4x4 y decir si es simétrica o no, es decir si se obtiene la misma tabla al cambiar las filas por columnas.
- Crear y cargar dos matrices de tamaño 3x3, sumarlas y mostrar su suma.
- Se pretende realizar un programa para gestionar la lista de participaciones en una competición de salto de longitud. El número de plazas disponible es de 10. Sus datos se irán introduciendo en el mismo orden que vayan inscribiéndose los atletas. Diseñar el programa que muestre las siguientes opciones:
Inscribir un participante.
- Mostrar listado de datos.
- Mostrar listado por marcas.
- Finalizar el programa.
- Si se selecciona 1, se introducirán los datos de uno de los participantes: Nombre, mejor marca del 2002, mejor marca del 2001 y mejor marca del 2000. Si se elige la opción 2, se debe mostrar un listado por número de dorsal. La opción 3 mostrará un listado ordenado por la marca del 2002, de mayor a menor. Tras procesar cada opción, se debe mostrar de nuevo el menú inicial, hasta que se seleccione la opción 4, que terminará el programa.