Año 2023
Trabajo Práctico Nº 7
Variables multidimensionales: Vectores y Matrices
Para la resolución de cada uno de los siguientes ejercicios se solicita que diseñe y codifique un
algoritmo que resuelva el problema usando la herramienta PSeInt.
El programa debe funcionar correctamente y producir una salida consistente para distintos grupos de
datos de prueba según corresponda.
Es obligatorio el uso de subprogramas para resolver los ejercicios.
Ejercicios con vectores:
1. Crear un array que contenga 100 notas con valores entre 0 y 20 generadas aleatoriamente
mediante el uso de la función azar() o aleatorio() de PseInt. Luego, de acuerdo a las notas
contenidas, el programa debe indicar cuántos estudiantes son:
● Deficientes 0-5
● Regulares 6-10
● Buenos 11-15
● Excelentes 16-20
2. Realizar un programa que lea N valores ingresados por el usuario. A continuación, se debe buscar
un número indicado por el usuario dentro del arreglo. El programa debe indicar la posición donde
se encuentra el valor. Si el número se encuentra repetido dentro del arreglo se deben imprimir
todas las posiciones donde se encuentra ese valor. Finalmente, en caso que el número a buscar no
se encuentre dentro del arreglo se debe mostrar un mensaje al usuario.
3. En un juego se lanza un dado 5 veces y se gana cuando la suma de puntos obtenidos en los dos
primeros lanzamientos es igual a la obtenida en los restantes tres. Por ejemplo:
>>juego()
dado = [3, 2, 1, 3, 1]
sumas = [5, 5]
respuesta=1
>>juego()
dado = [2, 4, 5, 2, 1]
sumas = [6, 8]
respuesta=0
Escriba un programa que simule los cinco lanzamientos del dado y retorne dos posibles valores: 1,
si se trata de un jugada ganadora y 0 en caso contrario. Además, el programa debe permitir realizar
N jugadas diferentes y mostrar por pantalla cada una de las jugadas (valores obtenidos por los
dados, sumas y respuesta) y el porcentaje de jugadas ganadoras.
Profesores: Dra. Elina Pacini – Ing. Sebastián Cardello – Lic. Leandro Spadaro Página 1
Año 2023
4. Articulación entre Introducción a la Programación y Geometría Analítica. Diseñar un algoritmo tal
que:
a) Dados dos vectores de R3 calcule el producto escalar y determine el tipo de ángulo que forman
ambos vectores (recto, agudo, obtuso):
3
En R Sean u = (u1, u2, u3) y v = (v1, v2, v3)
u.v = u1v1+u2v2+u3v3
b) Dados dos vectores de R3 calcule el producto vectorial y determine si los vectores son
linealmente dependientes o linealmente independientes:
3
En R Sean u = (u1, u2, u3) y v = (v1, v2, v3)
uʌv=(u1i+u2j+u3k) ʌ (v1i+v2j+v3k)=(u2v3–u3v2)i+(u3v1–u1v3)j+(u1v2–u2v1)k
c) Dados tres vectores de R3 calcule el producto mixto y determine si los vectores son coplanares
o no:
3
En R Sean u = (u1, u2, u3) , v = (v1, v2, v3) , w = (w1, w2, w3)
(uʌv).w=(u2v3–u3v2) w1+(u3v1–u1v3) w2+(u1v2–u2v1) w3
Pruebas de escritorio para producto escalar, vectorial y mixto de vectores en R3
Verificar el programa con los siguientes datos de entrada y resultados:
Datos de Entrada Salida del Programa
u = [2,1,-1] El producto escalar entre u y v es: 0
v = [1,1,3] Los vectores u y v forman un ángulo recto ( = 90° )
w = [1,4,1]
El producto vectorial entre u y v es: 4i -7j + 1k
Los vectores u y v son linealmente independientes
El producto mixto entre u, v y w es: -23
Los vectores u, v y w no son coplanares
Profesores: Dra. Elina Pacini – Ing. Sebastián Cardello – Lic. Leandro Spadaro Página 2
Año 2023
u = [1,2,-5] El producto escalar entre u y v es: -17
v = [4,-8,1] Los vectores u y v forman un ángulo obtuso, =110°
w = [1,4,1]
El producto vectorial entre u y v es: -38i -21j -16k
Los vectores u y v son linealmente independientes
El producto mixto entre u, v y w es: -138
Los vectores u, v y w no son coplanares
u = [3,4,0] El producto escalar entre u y v es: 28
v = [4,4,2] Los vectores u y v forman un ángulo agudo, = 21°
w = [1,4,1]
El producto vectorial entre u y v es: 8i -6j -4k
Los vectores u y v son linealmente independientes
El producto mixto entre u, v y w es: -20
Los vectores u, v y w no son coplanares
u = [1,2,3] El producto escalar entre u y v es: 56
v = [4,8,12] Los vectores u y v son paralelos (Linealmente
Dependientes)
w = [1,4,1]
El producto vectorial entre u y v es: 0i + 0j + 0k
Los vectores u y v son linealmente dependientes
El producto mixto entre u, v y w es: 0
Los vectores u, v y w son coplanares
Ejercicios de manejo de cadenas de caracteres
5. Escribir un programa que procese una secuencia de caracteres ingresada por teclado y terminada
en punto (leídos de a uno por vez), y luego codifique la palabra o frase ingresada de la siguiente
manera: cada vocal se reemplaza por el carácter que se indica en la tabla y el resto de los
caracteres (incluyendo a las vocales acentuadas) se mantienen sin cambios.
a e i o u
@ # $ % *
Profesores: Dra. Elina Pacini – Ing. Sebastián Cardello – Lic. Leandro Spadaro Página 3
Año 2023
Realice un subprograma que reciba una vocal y retorne la codificación correspondiente.
Utilice la estructura “según” para la transformación. Además se debe calcular cuál es la
consonante dentro de la frase que se repite más veces.
Por ejemplo, si el usuario ingresa: Ayer, lunes, salimos a las once y 10.
La salida del programa debería ser:
@y#r, l*n#s, s@l$m%s @ l@s %nc# y 10.
La letra s es la más repetida y aparece 4 veces
Nota: investigue el uso de la función concatenar de PSeInt para armar la palabra/frase.
6. Un oficial de correos decide optimizar el trabajo de su oficina cortando todas las palabras de más
de cinco letras a sólo cinco letras (e indicando que una palabra fue cortada con el agregado de una
arroba). El oficial también elimina todos los espacios en blanco de más. Por ejemplo, el siguiente
texto:
Llego mañana alrededor del mediodía
se transcribe como:
Llego mañan@ alred@ del medio@
Además, los puntos se reemplazan por la palabra especial STOP, y el punto final (que puede faltar
en el texto original) se indica como STOPSTOP.
Por ejemplo, el siguiente texto:
Llego mañana alrededor del mediodía. Voy a almorzar
Se lo transcribe como:
Llego mañan@ alred@ del medio@ STOP Voy a almor@ STOPSTOP
Para enviar un telegrama se debe abonar un valor por las palabras cortas y otro valor por las
palabras largas (las que deben ser cortadas).
Escriba un programa que automatice el trabajo del oficial de correos. Para ello se debe ingresar el
mensaje a transmitir, el costo de cada palabra corta, y el costo de cada palabra larga. El programa
debe mostrar como salida el texto del telegrama y el costo que se debe abonar por el mismo.
7. Disponemos de un array unidimensional de 20 elementos de tipo carácter. Se pide desarrollar un
programa que:
a. Pida una frase y luego copie carácter a carácter dentro del arreglo. Ayuda: utilizar la función
subcadena.
b. Una vez completado lo anterior, pedirle al usuario que ingrese un carácter cualquiera y una
posición. El programa debe intentar ingresar el carácter en la posición indicada si es que hay
lugar (es decir si está vacío o en blanco). De ser posible debe listar el vector con el carácter
ingresado, de lo contrario debe darle un mensaje al usuario.
8. Tomando en cuenta el ejercicio anterior, mejore el mecanismo de inserción del carácter, facilitando
un potencial reordenamiento del vector. Digamos que se pide ingresar el carácter en la posición X y
la misma está ocupada, entonces de existir un espacio en cualquier posición X-n o X+n, desplazar
los caracteres hacia la izquierda o hacia la derecha para poder ingresar el carácter en cuestión en
el lugar deseado. El procedimiento de reordenamiento debe ubicar el espacio más cercano y
desplazar los caracteres hasta alcanzar esa posición.
Profesores: Dra. Elina Pacini – Ing. Sebastián Cardello – Lic. Leandro Spadaro Página 4
Año 2023
Ejemplo, suponiendo la siguiente frase y los subíndices del vector:
h o l a m u n d o c r u e l !
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Si se desea ingresar el carácter “%” en en la posición 8, entonces el resultado con
desplazamiento sería:
h o l a m u n % d o c r u e l !
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Notar que el desplazamiento se hizo hacia la izquierda porque el espacio de la posición 10 estaba
más cerca de la posición 8 que el espacio de la posición 4. El desplazamiento se realizó hasta la
posición donde se encontró el espacio más cercano.
Ejercicios con matrices:
9. Dada una matriz de orden n * m (donde n y m son valores ingresados por el usuario) realizar un
programa que calcule y muestre la suma de los números pares y la suma de los números impares.
Mostrar la matriz y los resultados por pantalla.
10. Realizar un programa que calcule la multiplicación de dos matrices de enteros de 3x3. Inicialice las
matrices para evitar el ingreso de datos por teclado.
NOTA: Recuerde para calcular el producto: cij=ai1 *b1j +ai2*b2j+ai3*b3j
11. Un cuadrado mágico 3 x 3 es una matriz 3 x 3 formada por números del 1 al 9 donde la suma de
sus filas, sus columnas y sus diagonales son idénticas. Crear un programa que permita introducir
un cuadrado por teclado y determine si este cuadrado es mágico o no. En caso de tratarse de un
cuadrado mágico se debe mostrar la suma, caso contrario se debe indicar un mensaje. El programa
deberá comprobar que los números introducidos son correctos, es decir, están entre el 1 y el 9. Por
ejemplo, en la siguiente matriz las sumas son siempre 15.
2 7 6
9 5 1
4 3 8
12. Se dice que una matriz tiene un punto de silla si alguna posición de la matriz es el menor valor de
su fila, y a la vez el mayor de su columna. Escribir un programa que tenga como entrada una matriz
de números reales, y calcular la posición de un punto de silla (si es que existe).
Profesores: Dra. Elina Pacini – Ing. Sebastián Cardello – Lic. Leandro Spadaro Página 5
Año 2023
13. El proceso de construcción de sillas de oficina se realiza en 5 fases (A,B,C,D,E) que se pueden
realizar en 6 máquinas diferentes (1..6), se necesita calcular el costo máximo y mínimo tanto para
fases como para máquinas; en la tabla siguiente se muestra la relación costo-proceso-máquina que
estos eventos conllevan:
A B C D E
1 6 5 9 19 11
2 45 23 21 17 30
3 15 7 23 25 2
4 75 26 38 49 19
5 2 15 76 1 45
6 92 82 4 20 13
14. Construya un programa que lea 3 palabras de mínimo 3 caracteres y máximo 5 caracteres y, a
medida que el usuario las va ingresando, construya una “sopa de letras para niños” de tamaño de
20 x 20 caracteres. Para la ubicación de las palabras se debe tener en cuenta las siguientes
restricciones:
a. Las palabras se ubican al azar en la sopa de letra.
b. Cada una de las palabras debe quedar en una orientación distinta, es decir, una en
horizontal, una en vertical y otra en diagonal.
c. Se debe determinar en forma aleatoria el sentido (de izq a derecha o viceversa, de
arriba hacia abajo o viceversa) tomando en cuenta la orientación.
d. Las palabras no deben chocar entre sí.
Una vez concluída la ubicación de las palabras, rellene los espacios no utilizados con un número
aleatorio del 0 al 9. Finalmente imprima por pantalla la sopa de letras creada.
Profesores: Dra. Elina Pacini – Ing. Sebastián Cardello – Lic. Leandro Spadaro Página 6