Autor: Edison Del Rosario

  • 3Eva_IT2002_T2 Determinar primo permutable

    Mejoramiento I Término 2002 - 2003. Septiembre 24, 2002 /ICM00794

    Tema 2. Se dice que un número de dos cifras es primo permutable si al intercambiar sus cifras sigue siendo primo.

    Ejemplos:
     37 es primo y 73 es primo
     17 es primo y 71 es primo
     19 es primo y 91 no es primo, no es primo permutable
     etc.

    a) Escriba una función para determinar si un número es primo.

    b) Use esta función en un programa que seleccione aleatoriamente números de dos cifras hasta encontrar un número primo permutable.

    Sugerencia: Para cada número generado separe los dígitos y obtenga el número con las cifras intercambiadas. Llame dos veces a la función indicada y termine cuando ambos números sean primos.

  • 3Eva_IT2002_T1 Triunfos, empates y derrotas por Goles

    Mejoramiento I Término 2002 - 2003. Septiembre 24, 2002 /ICM00794

    Tema 1. Diez equipos de la liga Inter– barrial identificados con los números 1, 2, 3, ... , 10, participaron en un campeonato de fútbol en la modalidad todos contra todos.

    Los goles anotados en cada encuentro se registraron en el siguiente cuadro:

    Goles(F,C) 1 2 3 4 ... 10
    1 0 4 2 1 ...
    2 5 0 3 2 ...
    3 0 2 0 1 ...
    4 1 0 2 0 ...
    ... ... ... ... ...
    10 0
    Se puede ver por ejemplo que:
    El equipo 1 marcó 
        4 goles al equipo 2,
        2 goles al equipo 3,
        1 gol al equipo 4 etc.
    El equipo 2 marcó
        5 goles al equipo1,
        3 goles al equipo 3,
        2 al equipo 4, etc.

    Escriba un programa en C que:

    a. Lea el cuadro de goles en un arreglo de dos dimensiones y

    b. muestre para cada equipo la cantidad de triunfos, empates y derrotas,

    c. así como la diferencia entre el total de goles marcados y el total de goles recibidos.


    goles = np.array([[0,4,2,1],
                      [5,0,3,2],
                      [0,2,0,1],
                      [1,0,2,0]])
    
  • s3Eva_IT2002_T1 Triunfos, empates y derrotas por Goles

    Ejercicio: 3Eva_IT2002_T1 Triunfos, empates y derrotas por Goles

    Instrucciones en Python

    explicación en video:

    Algoritmo en Python

    # 3Eva_IT2002_T1 Triunfos, empates y derrotas por Goles
    import numpy as np
    
    # INGRESO
    goles = np.array([[0,4,2,1],
                      [5,0,3,2],
                      [0,2,0,1],
                      [1,0,2,0]])
    
    # PROCEDIMIENTO
    tamano = np.shape(goles)
    n = tamano[0]
    m = tamano[1]
    triunfos = np.zeros(shape=(n,m),dtype=int)
    ttriunfos = np.zeros(n,dtype=int)
    # calcular los triunfos
    i = 0
    while not(i>=n):
        j = 0
        while not(j>=m):
            if (goles[i,j] > goles[j,i]):
                triunfos[i,j] = 1
                triunfos[j,i] = 0
            j = j + 1
        i = i + 1
    # calcular total de triunfos
    i = 0
    while not(i>=n):
        j = 0
        while not(j>=m):
            ttriunfos[i] = ttriunfos[i] + triunfos[i,j]
            j = j + 1
        i = i + 1
    
    # calcular empates
    empates = np.zeros(shape=(n,m),dtype=int)
    tempates = np.zeros(n,dtype=int)
    i = 0
    while not(i>=n):
        j = 0
        while not(j>=m):
            if (goles[i,j] == goles[j,i]) and (i!=j):
                empates[i,j] = 1
                empates[j,i] = 1
            j = j + 1
        i = i + 1
    # calcular total de empates
    i = 0
    while not(i>=n):
        j = 0
        while not(j>=m):
            tempates[i] = tempates[i] + empates[i,j]
            j = j + 1
        i = i + 1
    
    # Derrotas
    derrotas = (n-1)*np.ones(n,dtype=int)
    derrotas = derrotas - ttriunfos - tempates
    
    # SALIDA
    print(triunfos)
    print(' triunfos por equipo: ')
    print(ttriunfos)
    print(empates)
    print(' empates por equipo:')
    print(tempates)
    print(' derrotas por equipo:')
    print(derrotas)
    
  • 3Eva_IT2000_T3 Archivo con socios del club

    Mejoramiento I Término 2000 - 2001 /ICM00794

    Tema 3. Escriba un programa que permita manejar un archivo mediante los siguientes procedimientos:

    a) Ingrese los datos de los socios de un club en un archivo tipo texto, en los que se registra:

    Número de membresía (entero), 
    género (m ó f), 
    Edad (real), 
    Nombre (20 caracteres)

    b) Liste los números y nombres de los miembros del club cuya edad está entre 20 y 30 años y son del sexo femenino.

    c) Cuando ya funcione el segundo programa, agregue las instrucciones necesarias para que el computador elija aleatoriamente un socio para entregarle un premio. Muestre el nombre del socio ganador.

    Rúbrica: Literal a (10 puntos), literal b (8 puntos), literal c (7 puntos)

  • 3Eva_IT2000_T2 Matriz: puntos por goles en campeonato

    Mejoramiento I Término 2000 – 2001. Septiembre 24, 2000 /ICM00794

    Tema 2. En un campeonato de fútbol intervienen n equipos, siendo n un dato entero menor que 10.

    Cada equipo juega contra todos los demás equipos y los goles anotados en cada encuentro han sido almacenados en una matriz nxn como se indica en la tabla ejemplo:

    Goles(f,c)
    1 2 3 4 5 ...
    1 0 3 1 2 1 ...
    2 1 0 3 2 3 ...
    3 0 2 0 1 1 ...
    4 1 0 2 0 1 ...
    5 3 4 1 2 0
    ... ... ... ... ... ... 0
    El equipo 1 marco 3 goles al equipo 2,
       1 gol al equipo 3, etc.
    El equipo 2 marco 1 gol al equipo 1,
        2 goles al equipo 3, etc.

    Lea la matriz y determine cuantos puntos tiene cada equipo. Los puntos asignados son: empate 1, triunfo 3 , derrota 0.


    Se adjunta la matriz en python para el ejercicio en forma de un arreglo de 5x5:

    goles = np.array(
           [[0, 3, 1, 2, 1],
            [1, 0, 3, 2, 3],
            [0, 2, 0, 1, 1],
            [1, 0, 2, 0, 1],
            [3, 4, 1, 2, 0]] )
  • s3Eva_IT2000_T2 Matriz: puntos por goles en campeonato

    Ejercicio: 3Eva_IT2000_T2 Matriz: puntos por goles en campeonato

    Desarrollado en Python a partir el ejercicio 3Eva_IT2002_T1 Triunfos, empates y derrotas por Golesf

    goles=np.array([[0, 3, 1, 2, 1],
                    [1, 0, 3, 2, 3],
                    [0, 2, 0, 1, 1],
                    [1, 0, 2, 0, 1],
                    [3, 4, 1, 2, 0]])
    

    complementando la solución del ejercicio de triunfos empates y derrotas se obtiene para los datos ingresados:

     triunfos por equipo: 
    [3 2 0 1 3]
     empates por equipo:
    [0 0 1 0 1]
     derrotas por equipo:
    [1 2 3 3 0]
    puntos por equipo:
    [ 9  6  1  3 10]
    >>> 
    

    Algoritmo en Python

    # 3Eva_IT2000_T2 Matriz: puntos por goles en campeonato
    import numpy as np
    
    # INGRESO
    goles=np.array([[0, 3, 1, 2, 1],
                    [1, 0, 3, 2, 3],
                    [0, 2, 0, 1, 1],
                    [1, 0, 2, 0, 1],
                    [3, 4, 1, 2, 0]])
    
    # PROCEDIMIENTO
    tamano = np.shape(goles)
    n = tamano[0]
    m = tamano[1]
    triunfos = np.zeros(shape=(n,m),dtype=int)
    ttriunfos = np.zeros(n,dtype=int)
    # calcular los triunfos
    i = 0
    while not(i>=n):
        j = 0
        while not(j>=m):
            if (goles[i,j] > goles[j,i]):
                triunfos[i,j] = 1
                triunfos[j,i] = 0
            j = j + 1
        i = i + 1
    # calcular total de triunfos
    i = 0
    while not(i>=n):
        j = 0
        while not(j>=m):
            ttriunfos[i] = ttriunfos[i] + triunfos[i,j]
            j = j + 1
        i = i + 1
    
    # calcular empates
    empates = np.zeros(shape=(n,m),dtype=int)
    tempates = np.zeros(n,dtype=int)
    i = 0
    while not(i>=n):
        j = 0
        while not(j>=m):
            if (goles[i,j] == goles[j,i]) and (i!=j):
                empates[i,j] = 1
                empates[j,i] = 1
            j = j + 1
        i = i + 1
    # calcular total de empates
    i = 0
    while not(i>=n):
        j = 0
        while not(j>=m):
            tempates[i] = tempates[i] + empates[i,j]
            j = j + 1
        i = i + 1
    
    # Derrotas
    derrotas = (n-1)*np.ones(n,dtype=int)
    derrotas = derrotas - ttriunfos - tempates
    
    # puntos totales
    puntos_triunfos = ttriunfos*3
    puntos_empates  = tempates*1
    puntos = puntos_triunfos+puntos_empates 
    
    # SALIDA
    print(triunfos)
    print(' triunfos por equipo: ')
    print(ttriunfos)
    print(' empates por equipo:')
    print(tempates)
    print(' derrotas por equipo:')
    print(derrotas)
    print('puntos por equipo:')
    print(puntos)
    
  • 3Eva_IT2000_T1 Validar caracteres tipo numérico

    Mejoramiento I Término 2000 - 2001. Septiembre 24, 2000 /ICM00794

    Tema 1.
    a) Escriba una función esnumero(caracter) que permita ingresar y validar un caracter numérico.

    b) Escriba una función tresdigitos(numero) que permita ingresar un número de exactamente 3 dígitos entre 100 y 999, haciendo uso de la función anterior.


    Ejemplo:

    >>> esnumero('a')
    'no es numerico'
    >>> esnumero('1')
    True
    >>> esnumero('15')
    'varios caracteres'
    >>> 
    
    >>> tresdigitos('12a')
    0
    >>> tresdigitos('123')
    1
    
  • s3Eva_IT2000_T1 Validar caracteres tipo numérico

    Ejercicio: 3Eva_IT2000_T1 Validar caracteres tipo numérico

    Resultado esperado realizando la función de usuario

    >>> esnumero('a')
    'no es numerico'
    >>> esnumero('1')
    True
    >>> esnumero('15')
    'varios caracteres'
    >>> 
    
    >>> tresdigitos('12a')
    0
    >>> tresdigitos('123')
    1
    

    Algoritmo en Python

    # 3Eva_IT2000_T1 Validar caracteres tipo numérico
    
    def esnumero(caracter):
        numeros = ['0','1','2','3','4','5','6','7','8','9']
        n = len(caracter)
        if n == 1:
            esnumerico = 'no es numerico'
            enlista = caracter in numeros
            if enlista ==1:
                esnumerico = enlista
        else:
            esnumerico = 'varios caracteres'
        return(esnumerico)
    
    def tresdigitos(cadena):
        n = len(cadena)
        revisa = 0
        for i in range(0,n,1):
            if esnumero(cadena[i])==1:
                revisa =  revisa + 1
        sontres= 0
        if revisa ==3 and n==3:
            sontres = 1
        return(sontres)
    
  • 2Eva_IIT2012_T4 Elecciones directiva FCNM

    2da Evaluación II Término 2012-2013, Enero 29, 2013 /ICM00794

    Tema 4 (30 puntos) La Facultad de Ciencias Naturales y Matemáticas (FCNM) se conforma de tres departamentos: Física, Química y Matemáticas.

    Para elegir el Consejo Directivo de la FCNM se requieren seleccionar cuatro profesores entre los candidatos por votación en base a las siguientes reglas:

    • El candidato(a) que obtenga la mayor cantidad de votos.
    • Un candidato(a) de cada uno de los tres departamentos que obtenga la mayor cantidad de votos.

    Existen dos candidatos por cada departamento identificados por un número entero (ver tabla ejemplo b).

    Escriba un programa para la selección del Consejo Directivo siguiendo los procesos de votación y selección.

    a) Proceso de Votación:
    Para cada votante se debe realizar:

    a.1. Ingreso y validación de papeleta.- Se llena un vector papeleta con los números de 4 candidatos.
    Se valida que cada voto en la papeleta sea único y que correspondan a un candidato, sino se la descarta y se llena de nuevo.
    Puede usar la función unicorango() del tema anterior.

    a.2. Registro del voto.- la papeleta valida se añadirá al vector que contiene todos los votos del proceso.

    Ejemplo a.1 :
     >> unicorango(papeleta,6)
     ans=1

    si la papeleta es:

    i papeleta(i)
    1 1
    2 2
    3 4
    4 5
    a.2. Registra voto

    j voto(j)
    1 2
    2 4
    3 5
    4 6
    5 1
    6 2
    7 4
    8 5
    ... ...

    b) Proceso de selección:
    Consiste en realizar el conteo de votos por candidato, usando el vector voto.
    Puede usar la función contando() del tema anterior.
    Luego muestre los seleccionados conforme a las reglas especificadas.

    c) Muestre los seleccionados.

    Nota: El tema no considera la posibilidad de votos blancos o nulos.
    Para declarar un arreglo vacío: voto=[ ];

    Ejemplo b)
    Dep. Candidato conteo más votos Selecc.
    / Dep.
    Física 1 25 1
    2 29 2
    Química 3 23 3
    4 2
    Matemáticas 5 24 5
    6 13
    candidatos seleccionados: 1, 2, 3, 5

    Referencia: Convocatoria elecciones FCNM-ESPOL-2013.  www.espol.edu.ec/tribunal/

    Rubrica: literal a.1 (5 puntos), literal a.2 (10 puntos), uso correcto de las funciones (5 puntos), literal c. (10 puntos)

  • 2Eva_IIT2012_T3 Contar y validar único en rango

    2da Evaluación II Término 2012-2013, Enero 29, 2013 /ICM00794

    Tema 3 (20 puntos)
    a) Escriba una función contando(vector, n), que reciba un vector de números enteros y cuente el número de veces que se encuentra cada número en el rango entre 1 y n. Los números fuera de rango se descartan del conteo.

    m
     i 1 2 3 4 5 6 7 8
     vector[i] 2 4 5 6 1 2 4 5
    Ejemplo: contando(vector,6)
     n
     k 1 2 3 4 5 6
     cuenta[k] 1 2 0 2 2 1

    b) Realice una función unicorango(vector, n), que muestre si los números en el vector no son repetidos y se encuentran en el rango entre 1 y n.

    Ejemplos:
    >>vector= [1 2 4 5 ]
     >> unicorango(vector,6)
     ans=1
    >>vector= [ 1 4 4 7 ]
     >> unicorango(vector,6)
     ans=0

    Rúbrica: Definición de funciones (5 puntos), contadores (5 puntos), validación de únicos (5 puntos), validación de rango (5 puntos).