Autor: Edison Del Rosario

  • 2Eva_IIT2004_T1 Calcular raíz cúbica recursiva

    Final II Término 2004 – 2005. Febrero, 2005 /ICM00794

    Tema 1. Para Calcular la raíz cúbica x de un número n se puede usar repetidamente la siguiente fórmula:

    x = \frac{2 x^3+n}{3 x^2}
    Si comienza con un valor inicial de x ← 1, 
    esta fórmula produce valores de x cada vez
    más cercanos a la raíz cúbica de n.

    Escriba una función cubic(n) que entregue con 4 decimales exactos la raíz cúbica de un número dado n.

    La función debe incluir una repetición y salir cuando la diferencia entre el valor de n y el valor de x3 sea menor a 0.0001.

    Escriba un programa de prueba para obtener las raíces cúbicas de los números n = 1, 2, 3, 4 … 20

     

  • 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)

  • 3Eva_IT2013_T3 Menú de consejerías académicas

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

    Tema 3 (30 puntos). Para administrar las consejerías por estudiante, se requiere un programa que administre mediante un menú los listados de consejeros y estudiantes.consejeria estudiantil 01

    Menú
    1. Ingresar datos de estudiante
    2. Ingresar datos de consejero
    3. Sorteo de consejeros/estudiantes
    4. Mostrar lista de estudiantes por consejero
    5. Mostrar consejero de un estudiante
    6. Salir

    El programa registra de los listados de estudiantes con su número de matrícula, nombre y correo electrónico;
    para los consejeros se registra su cédula, nombre y correo electrónico.

    • En el numeral 3, una vez ingresado todos los datos, se procede al sorteo descrito en el tema anterior.
      Puede usar la función del tema anterior para la asignación
    • En el numeral 4, Un consejero solicita su lista con los datos de los estudiantes asignados dando su número de cédula; al final se muestra el número de estudiantes asignados.
    • En el numeral 5, Un estudiante puede solicitar los datos de su consejero ingresando el número de matrícula.

    Rúbrica: Menú (5 puntos), definición y uso de estructuras (5 puntos), opción 3 (5 puntos), opción 4 (10 puntos), opción 5 (5 puntos)


    Referencia: http://www.vra.espol.edu.ec/content/estudiantes

  • 3Eva_IT2013_T2 sorteo de consejeros para estudiantes

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

    Tema 2 (25 puntos). Para asignar un consejero a cada estudiante, la universidad los selecciona de forma aleatoria buscando mantener el mismo número de estudiantes por cada consejero.

    http://www.vra.espol.edu.ec/content/estudiantes
    http://www.vra.espol.edu.ec/content/estudiantes

    Se dispone de n estudiantes y m profesores con dedicación tiempo completo que serán los consejeros.

    Realice una función sorteoconsejeros(n,m), que realice la asignación descrita

    >> sorteaconsejero(9,3)
    ans = 1 3 1 1 2 3 3 2 2
     
    >> sorteaconsejero(11,3) 
    ans = 2 3 2 1 3 2 1 1 3 2 1

    Rúbrica: Definición de función (5 puntos), sorteo equitativo (10 puntos), sorteo fuera de equidad (10 puntos)


    Referencia: http://www.abet.espol.edu.ec/noticias/historico/17-noviembre-2008/35-consejerias-academicas.html

    Consejeros
    Profesor 1 2 3
    conteo
    asignados
    3 3 3
    Estudiantes
    matricula 1 2 3 4 5 6 7 8 9
    consejero 1 3 1 1 2 3 3 2 2
  • 3Eva_IT2013_T1 Verificar un Abecegrama

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

    Tema 1 (25 puntos). Realice un programa que reciba un texto, y verifique si es un abecegrama mostrando el mensaje "Es un abecegrama" ó "No es un abecegrama".

    Un abecegrama consiste en realizar un texto utilizando la inicial de cada letra del abecedario en orden ascendente, pero pudiendo elegir la letra del abecedario que se quiera para empezar.

    Ejemplo: iniciando con la ‘a’:

    'anoche brillaron cerca, dos estrellas fugaces;
    g
    ravitaban hermosas iluminando juntas kilométricos lugares;
    m
    ágicos negros ñublos;
    o
    riginaban planetas que relucían surcando tenues universos,
    ... vertiendo wolframio, xenón y zafiros.'

    Francisco Briz Hidalgo, Juegos de palabras.

    Nota: No considerar para ésta evaluación las letras del alfabeto en español ‘ch’ y ‘ll’

    Sugerencia: buscar posición de letras dentro del alfabeto y usar el número como banderas para verificación de orden.

    Rúbrica: programa estructurado (5 puntos), posición de letra en alfabeto (5 puntos), registro de orden de letras (10 puntos), verificación de orden (5 puntos),


    Referencia: Conceptos de abecegramas: https://www.juegosdepalabras.com/abc/abecegrama.htm

  • 2Eva_IT2013_T4 Control de cupos de gasolina

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

    Tema 4. (40 puntos) Una gasolinera vende por mes cupos pre-pagados de combustible para empleados de las empresas, luego de consumido el cupo se debe cancelar el consumo excedente.

    • Para ingresar un nuevo comprador se requiere de cédula y cupo.
    • Se puede consultar el saldo de cupo en la opción, de no existir registro, mostrar “cliente no registrado para cupo”.
    • En cada venta para cargar combustible, el empleado proporciona su cédula y la cantidad de galones a llenar. El programa le presenta para el despacho la cantidad a despachar “dentro de cupo” y de ser necesario la cantidad de galones que “excede del cupo”.

    Realice un programa con el menú mostrado para realizar el control de despacho por cupos en la gasolinera.

    >> controlcombustible.m
    Menú:
    1. Nuevo comprador
    2. Saldo de cupo
    3. Registro de venta
    4. Salir
    -- ¿Cuál opción?: 1
    Cédula de comprador: 0912345678
    Cupo pre-pagado: 20
    -- ¿Cuál opción?: 2
    Ingrese cédula: 0912345678
    Saldo cupo: 20
    Consumido en el mes: 0
    -- ¿Cuál opción?: 3
    Ingrese cédula: 0912345678
    Cantidad a llenar: 5
    - dentro de cupo: 5
    - excede del cupo: 0
    saldo después de venta: 15
    -- ¿Cuál opción?: 3
    Ingrese cédula: 0912345678
    Cantidad a llenar: 20
    - dentro de cupo: 15
    - excede del cupo: 5
    saldo después de venta: 0
    -- ¿Cuál opción?: 4
    Gracias por usar el software

    Referencia: www.expreso.ec 7/08/2013 - La reducción del subsidio a la gasolina, tema de análisis.
    www.eluniverso.com 24/08/2014 -SRI pide datos de usuarios en venta de gasolina

    Rúbrica: Menú estructurado (5 puntos), opción 1 (5 puntos), opción 2 (15 puntos), opción 3 (10 puntos), actualizar cupos (5 puntos).

     

  • 2Eva_IT2013_T3 Verificar anagrama

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

    Tema 3. (25 puntos) Un anagrama es una palabra o frase que resulta de la transposición de letra de otra palabra o frase, como se muestra en el ejemplo.

    Otro ejemplo, en la serie Harry Potter, versión en español, el nombre del personaje “Tom Sorvolo Ryddle” convierte en la frase “Soy Lord Voldemort”
    Ambas cadenas contienen la misma cantidad de caracteres.

    Realice un programa que solicite dos palabras y muestre: “es un anagrama” o “no es un anagrama”.

    Sugerencia: use banderas para determinar si coinciden las letras en diferente orden.
    Referencia: http://es.wikipedia.org/wiki/Anagrama

    Rúbrica: programa estructurado (5 puntos), comparación por letra (15 puntos), validación de letras (5 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)

     

  • s2Eva_IT2013_T2 Una Tabla de Bingo con arreglos

    Ejercicio: 2Eva_IT2013_T2 Una Tabla de Bingo con arreglos

    2Eva_IT2013_T1 Función sorteoentre(k,a,b)

    Propuesta de solución en Python, continua desde tema 1:

    Algoritmo en Python

    # ICM00794-Fundamentos de Computación - FCNM-ESPOL
    # propuesta: edelros@espol.edu.ec
    
    # 2Eva_IT2013_T1 Una Tabla de Bingo
    import random as rnd
    import numpy as np
    
    def sorteoentre(k,a,b):
        suertudos = []
        i = 0
        while not(i>=k):
            sorteo = int(rnd.random()*(b-a+1))+a
            if not(sorteo in suertudos):
                suertudos.append(sorteo)
                i = i+1
        return(suertudos)
    
    # 2Eva_IT2013_T2 Una Tabla de Bingo
    n = 5
    #Rango inicial de B [1,15]
    a = 1  
    b = 15
    incremento = 15
    
    # PROCEDIMIENTO
    tabla = np.zeros(shape=(n,n),dtype=int)
    columna = 0
    while not(columna>=n):
        datos = sorteoentre(n,a,b)
        for fila in range(0,n,1):
            tabla[fila,columna]=datos[fila]
        a = a + incremento
        b = b + incremento
        columna = columna + 1
        
    # corrige el cero en la posicion central
    mitad = n//2
    tabla[mitad,mitad] = 0
    
    # SALIDA
    print(tabla)
    

    Ejemplo:

    >>> ================================ RESTART ==========
    >>> 
    [[ 4 28 37 51 63]
     [15 18 45 56 74]
     [13 23  0 48 69]
     [ 2 20 34 58 72]
     [ 3 16 32 50 71]]
    >>> ================================ RESTART ==========
    >>> 
    [[ 2 17 37 58 75]
     [13 24 45 53 65]
     [ 7 19  0 51 73]
     [15 23 36 52 69]
     [ 3 30 39 47 67]]
    >>>

     

  • 2Eva_IT2013_T1 Función sorteoentre(k,a,b)

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

    Tema 1. (15 puntos) Realice una función sorteoentre(k,a,b) que selecciona k números aleatorios no repetidos en el rango comprendido entre a y b.
    La función entrega un vector ordenado en forma ascendente.

    >> sorteoentre(5,1,15)
    ans = 2 4 6 7 8
    >> sorteoentre(5,16,30)
    ans = 16 19 22 25 26

    No use las funciones definidas en MATLAB.

    Rubrica: Definición de función (5 puntos), generar vector no repetidos (5 puntos), vector ordenado (5 puntos)


    propuesta: s2Eva_IT2013_T2 Una Tabla de Bingo con arreglos