Matriz de 4x4 (en este caso la matriz es cuadrada)

UNIVERSIDAD TECNOLOGICA DE PEREIRA FACULTAD DE INGENIERIA INDUSTRIAL MATRICES - INFORMATICA III – Febrero 17 de 2012 MATRIZ: Es un arreglo que puede

48 downloads 363 Views 50KB Size

Recommend Stories


Matriz de alimentacio
Matriz de alimentacion Comida te agua galletas ajonjoli Dia 1 Peso 1.8 gr 220ml 35gr Media manana platanitos jugo hit galletas 25gr 500ml 30gr Al

V MATRIZ DE CALIFICACIONES
ESCUELA PREPARATORIA COMALAPA T/V MATRIZ DE CALIFICACIONES CUESTIONARIO - IDENTIFICA LOS CONCEPTOS AL RESPONDER LAS PREGUNTAS. - ENTREGA A TIEMPO. -

Definición de la matriz inversa
Definici´ on de la matriz inversa Ejercicios Objetivos. Aprender la definici´on de la matriz inversa. Requisitos. Multiplicaci´on de matrices, matriz

Story Transcript

UNIVERSIDAD TECNOLOGICA DE PEREIRA FACULTAD DE INGENIERIA INDUSTRIAL MATRICES - INFORMATICA III – Febrero 17 de 2012

MATRIZ: Es un arreglo que puede contener varias direcciones (filas y columnas), pueden ser: Bidimensionales, Tridimensionales, Entre otros. Los elementos que la componen pueden ser de diferente tipo (a nivel columna): numérico, cadena, fecha, booleano, entre otros (en general se utilizan de tipo numérico). A continuación se esquematiza una matriz bidimensional en donde cada elemento tiene una posición definida (fila, columna) con su respectivo contenido:

Columnas

Filas

6 1 8 189

100 7 23 15

50 12 16 9

Diagonal secundaria, compuesta por los números 2, 12, 23 y 189 2 80 97 41

Matriz de 4x4 (en este caso la matriz es cuadrada) Diagonal principal, compuesta por los números 6,7,16 y 41

* Para la utilización de diagonales la matriz debe ser cuadrada, esto es, el número de filas igual al número de columnas. Para referirnos a cada elemento se debe invocar su posición fila y columna (en su orden), por ejemplo: - El número 6 esta en la posición 1,1 - El número 7 esta en la posición 2,2 - El número 80 esta en la posición 2,4 - El número 9 esta en la posición 4,3 Tipos de matrices: Rectangular, cuadrada, traspuesta, opuesta, nula, simétrica, antisimétrica, diagonal, escalar, identidad, triangular, inversa, entre otras. Operaciones con matrices: - Suma y Resta de matrices: Las dos matrices (n x m y p x q) deben ser de la misma dimensión, donde n=p y m=q. - Producto de un real por una matriz: Se multiplica el escalar por cada elemento y se obtiene una matriz del mismo orden. - Producto de matrices: Se debe tener en cuenta que el número de columnas de la primera matriz debe ser igual al número de filas de la segunda matriz, la matriz producto corresponde al orden n x q. El elemento que ocupa el lugar (i, j) en la matriz producto se obtiene sumando los productos de cada elemento de la fila i de la matriz A por el correspondiente de la columna j de la matriz B.

Ejercicios: 1) Ingresar tres notas parciales para N estudiantes con un porcentaje de 25%, 35% y 40% respectivamente; calcular y mostrar el promedio de las notas definitivas mayores o iguales a 3 y la cantidad de estudiantes que perdieron la materia (nota definitiva menor a 3.0). clc clear all matriznotas = 0; nota1 = 0; nota2 = 0; Profesor Wilson Cortés Álvarez, Ingeniero y Auditor de Sistemas de Información e-mail: [email protected] - [email protected]

nota3 = 0; ndf = 0; promedio = 0; sumadf = 0; candf = 0; perdieron = 0; canalumnos = 0; canalumnos = input('Cantidad de alumnos: '); % Llenar la matriz con las 3 notas parciales por alumno for a = 1 : canalumnos disp(sprintf('Notas del alumno No.%d', a)) nota1 = input('Primera nota 25%: '); nota2 = input('Segunda nota 35%: '); nota3 = input('Tercera nota 40%: '); % Almacenar en la matriz matriznotas(a, 1) = nota1; matriznotas(a, 2) = nota2; matriznotas(a, 3) = nota3; end % Recorrer la matriz, calcular la nota definitiva y verificar si cumple % para el promedio solicitado. for a = 1 : canalumnos ndf = matriznotas(a, 1) * 0.25 + matriznotas(a, 2) * 0.35 + matriznotas(a, 3) * 0.4; if ndf >= 3 sumadf = sumadf + ndf; candf = candf + 1; else perdieron = perdieron + 1; end end promedio = sumadf / candf; disp(sprintf('Promedio de las notas definitivas mayores o iguales a tres --> %.2f', promedio)) disp(sprintf('Cantidad de estudiantes que perdieron la materia --> %d', perdieron)) disp('Fin del ejercicio') 2) Diseñar una matriz cuadrada (n x n) y una vez llena de números, calcular el valor total de la diagonal principal mostrando su resultado. 3) Diseñar una matriz cuadrada (n x n) y una vez llena de números, calcular el valor total de la diagonal principal pero solo para aquellos números cuyo valor sea par y al final mostrar su resultado. 4) Diseñar una matriz cuadrada (n x n) y una vez llena de números, calcular el valor total de la diagonal secundaria pero solo para aquellos números impares, y al final mostrar su resultado.

5) Se cuenta con una matriz poblacional de municipios, la cual presenta una dimensión de 10 x 5, donde 10 son los municipios y 5 son las columnas con la siguiente información en su orden: - Cantidad de niños - Cantidad de mujeres - Cantidad de hombres - Altitud - Temperatura

Profesor Wilson Cortés Álvarez, Ingeniero y Auditor de Sistemas de Información e-mail: [email protected] - [email protected]

Se requiere determinar: Número total de habitantes, temperatura mayor o igual a 20 grados centígrados.

promedio poblacional y cantidad de municipos con

clc clear all censomun = 0; % Variable para la matriz de censo del municpio promhabi = 0; % Variable para calcular el promedio de los habitantes por municipio numtothabi = 0; % Variable para sumar la población total tempmayor = 0; % Variable para contar las temperaturas mayores a 15 grados centígrados disp('Matriz con información de municipios') [censomun] = xlsread('InfoMunicipios.xlsx', 'Poblacion'); % Leer la información de los municipios desde Excel for m = 1 : 10 % Recorrer los 10 municipios % Acumular la población numtothabi = numtothabi + (censomun (m,1) + censomun(m,2)+ censomun(m,3)); if censomun(m,5) >= 20 % Determinar si el municipio tiene una temperatura >= a 20 grados centígrados tempmayor = tempmayor + 1; % De ser afirmativo irlos contando end end promhabi = numtothabi / 10; % Determinar el promedio poblacional de los municipios disp(sprintf('El total de habitantes es de %d', numtothabi)) disp(sprintf('El promedio de habitantes por municipio es de %12.2f', promhabi)) disp(sprintf('La cantidad de municipios con >= 20 grados centígrados es %d', tempmayor)) 6) Crear un libro en Excel y en una hoja ingresar los gastos de la semana para n personas (las filas que quiera digitar en lo posible no menor a 10). Esta matriz tendrá una dimensión de n x 7 (donde el n son las personas y el 7 son los días de la semana de lunes a domingo). Los valores ingresados son numéricos en su totalidad, nada de encabezados con nombres de columnas, nombres de personas o nombres de los días. Se requiere determinar: - El gasto total - El mayor valor de gasto en persona (en otras palabras la persona que más gasto) - Nombre del día que tuvo mayor gasto (incluido su valor). a) Solución algorítmica clc clear all gastos = 0; % Variable para almacenar los datos como una matriz gastotal = 0; % Variable para acumular el gasto total de la semana mayorgastop = 0; % Variable para almacenar el gasto mayor de persona en la semana mayorgastod = 0; % Variable para almacenar el gasto mayor del día de la semana posdia = 0; % Varible para determinar la posición del dia de mayor gasto nomdia = ''; % Variable para determinar el nombre del día a partir de la posición disp('Matriz con información de gastos semanales de personas') gastos = xlsread('Personas.xlsx', 'Gastos'); % Leer la información de los gastos desde Excel [personas] = size(gastos, 1); % Determinar la cantidad de personas for p = 1 : personas % Recorrer desde la primera hasta la última persona sumaper = 0; % Dejar la variable en cero para acumular el gasto de la persona actual for d = 1 : 7 % Recorrer desde el primer hasta el último día de la semana gastotal = gastotal + gastos(p,d); % Acumular el gasto total (dia a dia) % Acumular el gasto de la persona actual (7 dias de la semana) sumaper = sumaper + gastos(p,d); end if sumaper > mayorgastop mayorgastop = sumaper; end end

Profesor Wilson Cortés Álvarez, Ingeniero y Auditor de Sistemas de Información e-mail: [email protected] - [email protected]

% Sumar la matriz gasto por columnas, para hallar el acumulado por día vectordia = sum(gastos); % Recorrer el vector de gastos acumulados por dia para hallar el mayor for d = 1 : 7 if vectordia(d) > mayorgastod mayorgastod = vectordia(d); posdia = d; % Posición del dia en el vector end end if posdia == 1 nomdia = 'Lunes'; elseif posdia == 2 nomdia = 'Martes'; elseif posdia == 3 nomdia = 'Miércoles'; elseif posdia == 4 nomdia = 'Jueves'; elseif posdia == 5 nomdia = 'Viernes'; elseif posdia == 6 nomdia = 'Sábado'; else nomdia = 'Domingo'; end disp(sprintf('El gasto total de la semana fue de : %14.2f', gastotal)) disp(sprintf('El gasto mas alto de persona fue de : %14.2f', mayorgastop)) disp(sprintf('El día que mas se gasto fue el %s por valor de : %14.2f', nomdia, mayorgastod)) disp('Fin del ejercicio')

b) Solución directa mediante funciones predeterminadas clc clear all gastos = 0; % Variable para almacenar los datos como una matriz gastotal = 0; % Variable para acumular el gasto total de la semana mayorgastop = 0; % Variable para almacenar el gasto mayor de persona en la semana mayorgastod = 0; % Variable para almacenar el gasto mayor del día de la semana posdia = 0; % Varible para determinar la posición del dia de mayor gasto nomdia = ''; % Variable para determinar el nombre del día a partir de la posición disp('Matriz con información de gastos semanales de personas') gastos = xlsread('Personas.xlsx', 'Gastos'); % Leer la información de los gastos desde Excel gastotal = sum(sum(gastos)); % Totalizar el gasto de la semana mayorgastop = max(sum(gastos, 2)); % Suma la matriz por filas (personas) y extrae el máximo valor [mayorgastod, posdia] = max(sum(gastos, 1)); % Suma la matriz por columnas (días) y extrae el máximo valor if posdia == 1 nomdia = 'Lunes'; elseif posdia == 2 nomdia = 'Martes'; elseif posdia == 3 nomdia = 'Miércoles'; elseif posdia == 4 nomdia = 'Jueves'; elseif posdia == 5 nomdia = 'Viernes'; elseif posdia == 6 nomdia = 'Sábado'; Profesor Wilson Cortés Álvarez, Ingeniero y Auditor de Sistemas de Información e-mail: [email protected] - [email protected]

else nomdia = 'Domingo'; end disp(sprintf('El gasto total de la semana fue de : %14.2f', gastotal)) disp(sprintf('El gasto mas alto de persona fue de : %14.2f', mayorgastop)) disp(sprintf('El día que mas se gasto fue el %s por valor de : %14.2f', nomdia, mayorgastod)) disp('Fin del ejercicio') 7) Una empresa cuenta con una matriz de ventas (leer desde libro de Excel primera hoja) para el segundo semestre del año, la cual presenta las siguientes columnas en su orden: Documento del vendedor Ventas mes de julio Ventas mes de agosto Ventas mes de septiembre Ventas mes de octubre Ventas mes de noviembre Ventas mes de diciembre Se requiere determinar: a) Valor total de las comisiones pagadas al 5% b) Valor total de las comisiones pagadas al 2% c) Documento y valor de las ventas del semestre del vendedor que menos ventas realizo. Para las dos primeras respuestas, tenga en cuenta: - Se paga comisión del 5% siempre y cuando las ventas del mes en curso hayan sido superiores a 5.000.000 millones. - Se paga comisión del 2% siempre y cuando las ventas del mes en curso hayan sido entre el rango de 2.000.000 y 5.000.000 millones. clc clear all ventas = 0; % Variable para almacenar la matriz de ventas tcomis5 = 0; % Variable para acumular las comisiones al 5% tcomis2 = 0; % Variable para acumular las comisiones al 2% documento = 0; % Variable para almacenar el documento del vendedor con menos venta ventamenor = 0; % Variable de referencia para almacenar el valor menor de venta en vendedor vendedores = 0; % Variable para determinar la cantidad de vendedores (filas de la matriz) disp('Matriz con información de ventas del segundo semestre de los vendedores') ventas = xlsread('Empresa.xlsx', 'Vendedores'); % Leer el archivo desde Excel vendedores = size(ventas, 1); % Determinar las filas de la matriz (cantidad de vendedores) for v=1:vendedores % Se recorre desde el primer vendedor hasta el último ventasvendedor = 0; % Se inicia las ventas del vendedor en cero for m=2:7 % Se recorre desde el mes de Julio hasta Diciembre if ventas(v, m) > 5000000 % Se evalúa si el mes tiene ventas superiores a 500.000 pesos tcomis5 = tcomis5 + (ventas(v, m) * 0.05); % Se cálcula la comisión al 5% end % Se evalúa si el mes tiene ventas entre 2.000.000 y 500.000 pesos if ventas(v, m) >= 2000000 & ventas(v, m)

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.