Etiqueta: arreglos-matrices

array numpy

  • 2Eva_IIT2009_T2 Transponer una matriz

    2da Evaluación II Término 2009-2010. Febrero 02, 2010 /ICM00794

    Tema 2 (15 puntos). Realizar una función transponer(matriz) para obtener la transpuesta de una matriz como se muestra en el ejemplo.

    >>matriz

    1 2 3
    4 5 6
    7 8 9
    >> transponer(matriz)

    1 4 7
    2 5 8
    3 6 9

    NOTA: No use la operación de transpuesta definida en MATLAB con la tilde.
    Rúbrica: Definición de la función (5 puntos), trasponer la matriz (10 puntos)

    matriz = [[1,2,3],
              [4,5,6]]
  • 2Eva_IT2009_T3 Mejores vendedores por categoría

    2da Evaluación I Término 2009-2010. Septiembre 01, 2009 /ICM00794

    Tema 3 (35 puntos). Para realizar el monitoreo del trabajo de ventas, una empresa registra las unidades vendidas de cada vendedor por producto.
    Los mejores vendedores por categoría son aquellos que: mejor vendedor dibujo

    a) Venden más unidades
    b) Su monto total (en dólares) por ventas es el mayor

    Realice un programa que:

    • Registre las ventas mensuales de n vendedores por m productos y la lista de precios para los m productos,
    • luego encuentre los mejores vendedores por cada categoría planteada. Monto = (Unidades vendidas de un producto)* (precio de un producto)
    Lista de Precios
    Prod 1 2 3 4 m
    precio 10 20 30 40 ...
    ventas [,] Producto m
    vendedor 1 2 3 4
    1 10 0 12 7
    2 6 4 13 19
    3 2 17 8 9
    4 4 19 16 13
    5 9 14 14 11
    n …

    Rúbrica: Registro de datos (5 puntos), mejor vendedor/unidades (15 puntos), mejor vendedor/monto (15 puntos)

  • 2Eva_IIT2008_T3 Crear un Calendario

    2da Evaluación II Término 2008-2009. Febrero 10, 2009 /ICM00794

    Tema 3 (25 puntos) Realice un programa que permita crear un calendario de un mes cualquiera, conociendo el día de la semana que inicia el mes y el número de días que tiene el mes.

    Nota: suponga que el primer día de la semana es domingo, entonces el día jueves seria el día 5 de la semana.

    >> creacalendar
     día de inicio del mes: 5
     días del mes: 28
     D  L   M  M  J  V  S
     0  0   0  0  1  2  3
     4  5   6  7  8  9 10
     11 12 13 14 15 16 17
     18 19 20 21 22 23 24
     25 26 27 28  0  0  0

    Rúbrica: Rellenar con ceros los días antes del primer día del mes (5 puntos), mantener la secuencia de días entre semanas (5 puntos), crear semanas hasta completar los días (5 puntos). Solución integrada y funcional en una matriz (10 puntos).

  • 2Eva_IIT2007_T2 Juego de memotest

    2da Evaluación II Término 2007-2008. Febrero 12, 2008 /ICM00794

    Tema 2. (25 puntos) Memotest es un juego de tablero que consiste en buscar las “parejas”. El tablero cuadrado de tamaño 4×4, donde se encuentran ubicados de forma aleatoria números del 1 al 8 en fichas “volteadas” que no muestran el número. memotest

    • El juego consiste en indicar las ubicaciones de dos fichas en el tablero (fila y columna), que muestran su número y de resultar “parejas” se gana 10 puntos.
    • El jugador tiene máximo 3 posibilidades de equivocación para tratar de descubrir las 8 parejas.

    Escriba un programa en Matlab que permita simular el juego memotest.

    El programa pone parejas de números del 1 al 8 aleatoriamente en una matriz cuagrada de 4×4 equivalente al tablero de juego. Realice esta sección como una función tableroparejas(n) con n=4.

    Se pregunta al jugador dos posiciones de fichas que desea jugar, es decir filas y columnas en el tablero. El  algoritmo verifica si se ha encontrado una pareja de números o si se ha equivocado, revisando que no se puede equivocar más de 3 veces.

    Al final muestra la cantidad de puntos conseguidos.


    >>tableroparejas(4)
    [[3 5 8 1]
     [4 3 2 6]
     [8 7 2 4]
     [6 7 1 5]]
    >>> 
    

    Rúbrica: generar tablero (5 puntos), función estructurada (3 puntos), validar casillas del jugador (2 puntos), equivocaciones (5 puntos), control de aciertos  o puntaje (5 puntos). Algoritmo estructurado (5 puntos)

  • 2Eva_IT2007_T4 Registrarse en curso fundamentos

    2da Evaluación I Término 2007-2008. Agosto 28, 2007 /ICM00794

    Tema 4. (30 puntos) Programe una aplicación para el registro de estudiantes en la materia Fundamentos de Computación, considere que se han abierto 5 paralelos con un cupo de 40 estudiantes. Se debe ofrecer el siguiente menú de opciones:

    Fundamentos de Computación
     1) Registrar
     2) Consultar
     3) Anular
     4) Salir
    • En la opción 1), el estudiante ingresa su matrícula. El programa le indica en qué paralelos hay cupo disponible. El estudiante elige el paralelo. El programa registra su código en ese paralelo.
    • En la opción 2), el estudiante ingresa su matrícula. El programa le indica en qué paralelo está registrado.
    • En la opción 3), el estudiante ingresa su matrícula y el paralelo en el cual está registrado. El programa elimina este estudiante del paralelo.
    • Al escoger la opción 4), se termina la ejecución del programa.

    Cada opción puede manejarse separadamente con funciones o en el mismo programa. Para almacenar los datos se debe usar un arreglo de estructuras.

  • 2Eva_IT2007_T2 Verificar matriz triangular con Python

    2da Evaluación I Término 2007-2008. Agosto 28, 2007 /ICM00794

    Tema 2. (20 puntos) Escriba la función verifica(matriz) que reciba una matriz cuadrada y retorne:

    • 1 si es una matriz triangular inferior (todos los elementos sobre la diagonal principal son iguales a cero),
    • 2 si es una matriz triangular superior (todos los elementos debajo de la diagonal principal son iguales a cero),
    • 3 si es una matriz diagonal (todos los elementos sobre y debajo de la diagonal principal son iguales a cero).
    Diagonal
    1 0 0 0
    0 1 0 0
    0 0 1 0
    0 0 0 1

    Ejemplo de algoritmo en Python

    import numpy as np
    A = np.array([[ 1, 0, 0 ],
                  [ 0, 1, 0 ],
                  [ 0, 0, 1 ]])
    
    >>> verifica(A)
    >>> 3
    
    B = np.array([[ 5., 4. , 3. ],
                  [ 0., 3.4, 6.8],
                  [ 0., 0. , 5. ]])
    >>> verifica(B)
    >>> 2
    
    C = np.array([[1, 0, 0],
                  [2, 1, 0],
                  [1, 1, 1]])
    >>> verifica(C)
    >>> 1

    Referencia: Método de Gauss con Python

  • 3Eva_IT2013_T4 Menú para administración de edificio

    3ra Evaluación I Término 2013-2014, Septiembre 10, 2013 /ICM00794

    Tema 4. (20 puntos) El administrador de un edificio de n pisos requiere controlar el uso de m apartamentos por piso mediante una matriz que registra:

    • Si está arrendado: el número de cédula del arrendatario,
    • Si está disponible: 0,
    • Si se encuentra en reparación: -1.

    Escriba un programa que use una matriz para almacenar esta información y con un menú proporcione al administrador las opciones mostradas.

    Menú
    1. Consultar estado de un departamento
    2. Alquilar un departamento. (Ingresar número de cédula)
    3. Marcar un departamento para reparación
    4. Marcar un departamento disponible. (luego de su reparación)
    5. Mostrar reporte, de la cantidad de departamentos en cada estado por cada uno de los pisos.
    6. Salir

    Inicialmente todos los departamentos están disponibles.

    Rúbrica: Menú , opción 1 y 2 (5 puntos), opción 3 y 4 (5 puntos), opción 5 (10 puntos)

  • 2Eva_IT2013_T2 Una Tabla de Bingo con arreglos

    2da Evaluación I Término 2013-2014, Agosto 27, 2013 /ICM00794

    Tema 2. (20 puntos). Para una tarde de bingo se usaran tablas generadas con las siguientes reglas:

    • Los 5 números en cada columna son aleatorios ordenados no repetidos de acuerdo al rango asignado por columna.
    • La casilla central de la tabla tiene valor marcado cero o ‘libre’.

    Realice un programa para generar una tabla de bingo.

    Columna /Rango:
    B entre 1 - 15
    I entre 16 - 30
    N entre 31 – 45
    G entre 46 – 60
    O entre 61 – 75
    Tabla de Bingo
    B I N G O
    2 16 32 46 61
    4 19 34 47 63
    6 22 libre 49 66
    7 25 37 54 70
    8 26 42 60 73

    Nota: Puede hacer uso de la función del tema anterior sorteoentre(K,a,b). 2Eva_IT2013_T1 Función sorteoentre(k,a,b)

    Rúbrica: Programa estructurado (5 puntos), uso de funciones (5 puntos), llenado de matriz (5 puntos), salida (5 puntos)

     

  • 1Eva_IIT2004_T4 Matriz de paridad

    Parcial II Término 2004 – 2005. Diciembre, 2004 /ICM00794

    Tema 4. (25 puntos) Se necesita transmitir una matriz de 7 filas y 7 columnas conteniendo “bits” (ceros o unos).

    Antes de transmitirla se debe agregar una columna a la derecha conteniendo ceros o unos, de tal manera que las 7 filas tengan paridad par, es decir que la cantidad de unos en cada fila sea par. Este cero o uno adicional se denomina bit de paridad.

    Realice un algoritmo que genere aleatoriamente la matriz de 7×7 llena con ceros y unos, agregue el bit de paridad en cada fila y muestre la matriz resultante.

    Ejemplo: Matriz
    Datos Paridad
    1 0 1 1 1 0 1 1
    0 1 0 1 1 0 1 0
    1 1 1 1 1 0 1 0
    1 0 1 1 0 1 1 1
    1 0 1 0 0 1 0 1
    1 0 1 0 0 0 1 0
    1 1 1 1 0 1 1 0

    Ejemplo:
    Para la primera fila: 1011101  1
    La suma de los primeros 7 bits es 5, que es un resultado impar.

    Para que la suma de toda la fila sea par se debe añadir un bit 1 adicional que es el bit de paridad.

    Si suma ahora los 8 bits, incluyendo el bit de paridad, el resultado es 6 que es un número par, cumpliendo así con lo requerido.


    Sugerencia: Resuelva primero para una fila, luego repita el resultado para las siguientes filas.
    Referencia:
    https://es.wikipedia.org/wiki/Paridad_(telecomunicaciones)

    matriz = [[1,0,1,1,1,0,1,1],
              [0,1,0,1,1,0,1,0],
              [1,1,1,1,1,0,1,0],
              [1,0,1,1,0,1,1,1],
              [1,0,1,0,0,1,0,1],
              [1,0,1,0,0,0,1,0],
              [1,1,1,1,0,1,1,0]]
    
  • 1Eva_IT2004_T4 Verificar matriz simétrica

    Parcial I Término 2004 – 2005. Julio 06, 2004 /ICM00794

    Tema 4. (25 puntos) Se dice que una matriz cuadrada A de orden n es simétrica, si se cumple que:

    ∀ i, ∀j
    (aij = aji)
    1 ≤ i ≤n
    1 ≤ j ≤n
    1 2 3 4
    2 1 5 6
     3 5 1 7
    4 6 7 1

    Escriba un algoritmo que permita ingresar los elementos de una matriz A con un orden n≤10 y verifique si la matriz es simétrica.

    La matriz presentada es simética respecto a la diagonal, es decir matriz[f,c] = matriz[c.f]

    Nota: símbolo ∀ "Para todo"


    import numpy as np
    matriz = [[1,2,3,4],
              [2,1,5,6],
              [3,5,1,7],
              [4,6,7,1]]
    
    matriz = np.array(matriz,dtype=float)

    El resultado debería mostrar:

    "Es simétrica"
    >>>

    Si usa la matriz:

    matriz = [[1,4,3,2],
              [2,1,5,6],
              [3,5,1,7],
              [4,6,7,1]]
    
    matriz = np.array(matriz,dtype=float)
    

    el resultado será:

    "No es simétrica"