Está en la página 1de 6

PROGRAMACIÓN DE COMPUTADORES

PREPARADOR POR: César Ruiz Jaramillo


TALLER 5. ARREGLOS EN MATLAB

TEMAS REQUERIDOS: Estructura condicional if-else, estructura condicional múltiple


switch, estructuras repetitivas while y for, uso del operador módulo (mod), operador de
división entera (fix), generación de números aleatorios (rand y randi), scripts y
funciones, arreglos (vectores y matrices), manejo del Matlab.

Para todos los subprogramas que se enumeran a continuación debe diseñar además el
subprograma Principal desde donde se prueba la(s) solución(es).

PARTE 1. VECTORES

1. Dado un vector con las estaturas de un grupo de 100 personas, determine la


cantidad de personas bajas (menores que el promedio) y altas (mayores que el
promedio).

2. Dado un vector con la edad de 20 personas, mostrarlo ordenado de menor a mayor


o de mayor a menor, según escoja el usuario. (Consulte el algoritmo burbuja).

3. Buscar en un vector de 30 elementos (llenar aleatoriamente con dígitos) un dígito


dado por el usuario y determinar cuántas veces está y en qué posiciones.

4. Llenar aleatoriamente un vector de 30 elementos con dígitos y mostrar cuántas


veces está cada dígito.

5. Llenar los siguientes vectores (de 10 elementos cada uno):


- Código (3 dígitos)
- Edad (18-65)
- Sexo (0-1) 0 indica F y 1 indica M
- Mensualidad (500-600)
Mostrar los vectores en forma de tabla así:
Código Edad Sexo Mensualidad
234 43 1 550
521 19 0 400
...

Y hallar:
a. El total de las mensualidades
b. La edad del más viejo
c. Cuántos hay de cada sexo
d. Mensualidad promedio
e. Cuántos pagan más de la mensualidad promedio (subprograma)
f. Código del más joven (subprograma)

cruizjar@eafit.edu.co 1
6. El cuadrante en el cual se ubica una línea dibujada desde el origen está
determinado por el ángulo que la línea forma con el eje positivo de x así (los ángulos
extremos de los rangos no se incluyen):

Ángulo Cuadrante
Entre 0 y 90 I
Entre 91 y 180 II
Entre 181 y 270 III
Entre 271 y 360 IV

Escriba un programa que llene aleatoriamente un vector con 15 ángulos y muestre


cuántos hay en cada cuadrante.

NOTA: Si el ángulo es exactamente 360, 90, 180 o 270 no se ubica en ningún


cuadrante sino en un eje (360: eje X positivo, 90: eje Y positivo, 180: eje x negativo,
270: eje Y negativo).

7. Una compañía de transporte vende tiquetes a diario para las siguientes rutas:

Código Ruta
1 Medellín – Santa Fe de Antioquia
2 Medellín – Guatapé
3 Medellín – Jardín
4 Medellín – Jericó

Llenar dos vectores que almacenen la información de cada transacción (suponga


que en total son 20 clientes y cada cliente indica la ruta y la cantidad de tiquetes):
ruta y número de tiquetes vendidos y hallar cuántos tiquetes de cada ruta se
vendieron.

NOTA: Utilice un vector de contadores para guardar el conteo de tiquetes de cada


ruta.

8. Al final de un proceso de secado de madera se debe registrar el porcentaje de


humedad de ésta para clasificarla según la siguiente tabla:

Humedad (%) Tipo


0 – 20 Seca
21 – 59 Normal
60 – 80 Húmeda
81 en adelante Muy Húmeda

De acuerdo a esta tabla, clasificar (mostrar cuántos hay de cada tipo) los datos de
15 lotes de madera cuya humedad es generada aleatoriamente con valores entre 0
y 100 y guardada en un vector. Indicar además cuál es la humedad promedio de
cada tipo.

NOTA: Utilice vectores para realizar los conteos, los acumuladores y los promedios.

cruizjar@eafit.edu.co 2
PARTE 2. MATRICES

9. Escriba un subprograma que reciba un valor N y genere una matriz identidad NxN.
Esta matriz es cuadrada y tiene unos en la diagonal principal y ceros en los demás
elementos. Ejemplo:
|1 0 0 0|
|0 1 0 0|
|0 0 1 0|
|0 0 0 1|

10. Realice un subprograma que reciba un valor N y genere una matriz cuadrada NxN
con unos en la diagonal secundaria y ceros en los demás elementos. Ejemplo:
|0 0 0 1|
|0 0 1 0|
|0 1 0 0|
|1 0 0 0|

11. Escriba un subprograma que reciba un valor N y genere una matriz cuadrada NxN
con unos en los bordes y ceros en los demás elementos. Ejemplo:
|1 1 1 1|
|1 0 0 1|
|1 0 0 1|
|1 1 1 1|

12. Realice un subprograma que reciba una matriz cuadrada y retorne Verdadero si es
una matriz identidad. Esta matriz es cuadrada y tiene unos en la diagonal principal y
ceros en los demás elementos. Ejemplo:
|1 0 0 0|
|0 1 0 0|
|0 0 1 0|
|0 0 0 1|

13. Escriba un subprograma que reciba una matriz cuadrada y retorne Verdadero si es
una matriz con unos en la diagonal secundaria y ceros en los demás elementos.
Ejemplo:
|0 0 0 1|
|0 0 1 0|
|0 1 0 0|
|1 0 0 0|

14. Realice un subprograma que reciba 2 matrices y muestre su multiplicación en una


matriz resultante (consultar cómo se multiplican 2 matrices).

15. Escriba un subprograma que reciba una matriz cuadrada NxN y determine el
promedio de los elementos de sus esquinas.

16. Realice un subprograma que reciba una matriz cuadrada NxN y determine el
promedio de su diagonal principal.

cruizjar@eafit.edu.co 3
17. Escriba un subprograma que muestre el promedio de los elementos marcados como
X en una matriz cuadrada NxN, donde N es un número impar (entre 3 y 11) digitado
por el usuario. Además se debe mostrar el elemento central marcado como Z. En las
siguientes matrices se da como ejemplo un N de 5 y 3 respectivamente.
N=5
|Y Y Y X Y|
|Y Y Y X Y|
|Y Y Z X Y|
|Y Y Y X Y|
|Y Y Y X Y|

N=3
|Y X Y|
|Y ZX Y|
|Y X Y|

18. Realice un subprograma que reciba una matriz cuadrada NxN y determine el
promedio de los elementos superiores (x) a su diagonal principal.
|Y X X X|
|Y Y X X|
|Y Y Y X|
|Y Y Y Y|

19. Escriba un subprograma que reciba dos matrices del mismo tamaño y retorne
Verdadero si son exactamente iguales.

20. Realice un subprograma que reciba dos matrices del mismo tamaño y determine si
el mayor de la primera matriz es igual al mayor de la segunda.

21. Escriba un subprograma que llene aleatoriamente una matriz (FxC) con caras de un
dado y mostrar cuántas veces está cada cara.

22. Una fábrica de dulces tiene 3 líneas de producción que trabajan de 6 AM a 10 PM.
En cada línea hay un contador de dulces por hora que se registra en una matriz
diaria. Los dulces son distribuidos en empaques de 6. Llenar la matriz de un día con
valores aleatorios entre 500 y 599 y determinar:
a. Cuántos dulces se produjeron en el día.
b. Cuántos dulces de cada línea no pudieron ser empacados.
c. En qué turno (6AM-2PM o 2PM-10PM) se obtuvo la mayor producción.
d. Cuál fue el promedio de producción de cada línea.
e. De cuánto fue la menor producción de ese día y a qué hora se obtuvo.
f. Cuántas horas estuvo la producción por debajo del promedio total.
g. El promedio de dulces x hora de cada turno.

23. En una planta de químicos se realizan 6 lotes diarios de producción. De cada lote se
extraen 3 muestras, se les mide el pH (entero) y se registra en una matriz como la
que se muestra a continuación:

cruizjar@eafit.edu.co 4
HORA MINUTOS PH1 PH2 PH3
6 35 12 11 12
9 28 14 12 12
12 49 13 11 12
14 25 12 12 11
17 13 11 12 13
20 31 14 11 13

Llenar la matriz de un día (aleatorios) y determinar:


a. El pH promedio.
b. La suma de los pH pares.
c. El pH mayor y menor con la hora en que se dio cada uno.
d. Cuántos PH hay de cada tipo (usar un vector de contadores).
e. El pH promedio de cada muestra (PH1, PH2 y PH3).

24. En una fábrica de textiles desea registrar las horas de uso de sus motores para
realizar mantenimiento preventivo. Son 8 motores a los que se les registra:
 Código (caracter)
 Horas de uso a la derecha (entre 100 y 999)
 Horas de uso a la izquierda (entre 100 y 999)

Llenar el vector código y la matriz horas y determinar:


a. Código del motor con más horas totales de uso
b. Promedio de horas de uso a la izquierda
c. Cuántos motores tienen más de 100 horas de uso a la derecha o a la izquierda

25. En una empresa de buses se deben almacenar por día los datos de cada bus:
 Número del bus (entero)
 Número de pasajeros transportados (entero)
 Código de la ruta asignada (caracter)

En total son 5 buses. Llenar el vector código y la matriz buses y mostrar:


a. Número del bus y código de la ruta del que más pasajeros transportó.
b. Promedio de pasajeros transportados en la ruta 'A'.
c. Cuántos buses transportaron menos pasajeros que el promedio.

26. Determine si 10 personas son saludables dados su peso (Kg) y su altura (m). El
índice de masa corporal IMC (peso/altura2) se considera saludable entre 18 y 25
Kg/m2. Llene una matriz con las columnas peso, altura, IMC y un vector saludable
(valores lógicos) y muéstrelos juntos en forma de tabla.

cruizjar@eafit.edu.co 5
Bibliografía
 Introducción a la Programación Lógica y Diseño. JOYCE FARRELL. 2013.
Capítulo 6.
 Fundamentos Generales de Programación. LUIS JOYANES AGUILAR. 2013.
Capítulo 8.
 La esencia de la lógica de programación. LUIS OMAR TREJOS BURITICÁ.1999.
Capítulos 9 y 10.

Ejercicios recomendados
 Introducción a la Programación Lógica y Diseño. JOYCE FARRELL. 2013.
Capítulo 6.
o Preguntas de repaso P246-249
o Ejercicios P249-253
 Fundamentos Generales de Programación. LUIS JOYANES AGUILAR. 2013.
Capítulo 8.
o Actividades de Programación Resueltas. P298-308
o Ejercicios. P310-311

cruizjar@eafit.edu.co 6

También podría gustarte