Autor: Edison Del Rosario

  • 3Eva_IIT2011~T3 Archivos de profesores y estudiantes en seminarios

    3ra Evaluación II Término 2011-2012, Febrero 2012 /FIEC

    Tema 3. (20 puntos) Suponga que una empresa de capacitación necesita hacer un programa en C que lleve el control sobre los estudiantes registrados en los seminarios que ofrece.

    Considere que la información de los profesores y estudiantes se encuentran almacenados en dos archivos diferentes con el siguiente formato:

    profesores.dat
    CEDULA,NOMBRE,APELLIDO

    A continuación un ejemplo:

    profesores.dat 
    0956789023,Julio,Soto
    1032874567,Luis,Pezo
    0921121984,Vanessa,Yanez
    ...

    y para los estudiantes:

    estudiantes.dat
    CEDULA,NOMBRE,APELLIDO,CODIGO_PARALELO_REGISTRADO
    

    con datos de ejemplo:

    estudiantes.dat
    1098265372,Javier,Uquillas,1
    0876324532,Eduardo,Cedeño,1
    0732234432,Luis,Caceres,5
    ...
    

    Implemente:

    a. El procedimiento void muestraInfoProfesor(FILE *f,char *ced), que recibe un puntero al archivo “profesores.dat” y una cadena de caracteres con el numero de cédula de un profesor. Esta función debe buscar en el archivo el profesor mediante el número de cédula y mostrar en pantalla su nombre y apellido.

    b. El procedimiento void muestraEstudiantes(FILE *f,int paralelo), que recibe un puntero al archivo “estudiantes.dat” y el paralelo del cual desea listar los estudiantes. El listado debe mostrar el Apellido seguido del nombre del estudiante, uno debajo de otro.

  • 3Eva_IIT2011~T2 Función para problema de las 8 torres

    3ra Evaluación II Término 2011-2012, Febrero 2012 /FIEC

    Tema 2. (20 puntos) El Problema de Torres es un pasatiempo en el que se colocan ocho torres en un tablero de ajedrez sin que estas se amenacen.

    La torre amenaza a aquellas piezas que se encuentren en su misma fila o columna.

    En la matriz las torres están representadas por el 1 y los espacios vacios por el 0.

    1
    1
    1
    1
    1
    1
    1
    1

    A Ud. Se le ha solicitado implementar:

    La función int tableroValido(int Tablero[8][8]) la cual indica si el tablero es válido o no verificando que no existe ninguna torre que este amenazando a otra. Para el caso de ser válido retorna 1 sino 0.

  • 3Eva_IIT2011~T1 funcion sustituye caracteres iguales entre dos cadenas

    3ra Evaluación II Término 2011-2012, Febrero 2012 /FIEC

    Tema 1. (20 puntos) Escriba el procedimiento, void SustituyeChars(char *c1, char *c2) que dadas dos cadenas, sustituya de la primera con asteriscos, todos los caracteres que coincidan con la segunda.

    Ejemplo: Primera cadena: "Hola mundo"
    Segunda cadena: "leo"
    Resultado: "H**a mund*"
  • 3Eva_IIT2011_T3 Anexo de gastos para el SRI

    3ra Evaluación II Término 2011-2012, Febrero 14, 2012 /ICM00794

    Tema 3. (40 puntos) Al final de cada año, se debe presentar al SRI el Anexo de los “Deducibles de Gastos personales”, que es un formulario que muestra la información de los facturas por los conceptos de:

    (1) Vivienda, (2) Educación, (3) Salud, (4) Vestimenta y (5) Alimentación.
    La información por factura que se registra se muestra a continuación:

    Anexo
    Mes Factura RUC Razon Social Valor sin IVA Concepto
    Enero 006- 024- 000073706 0990004196- 001 Corporación El Rosado S.A. $50.00 (5) Alimentación
    Enero 083- 013- 000053392 1790016919- 001 Corporación Favorita $40.00 (5) Alimentación
    Febrero 094- 002- 000105141 1790710319- 001 Farmacias y Comisariatos de Medicinas $25.00 (3) Salud
    ... ... ... ... ... ...

    Realice un programa para gestionar los datos para el Anexo de Gastos Personales acorde al siguiente menú:

    1. Registrar Factura. – Ingresa los datos de la factura para el Anexo.
    2. Gastos por mes.- Presenta el total de gastos deducibles por mes.
    3. Gastos por concepto.- Muestra el Valor total de gastos por concepto.
    4. Calcula Deducibles.- Muestra los datos de valores a deducir en el año acorde a las siguientes reglas:
      -El total de gastos por deducir tiene un máximo de $9000, sin importar si lo registrado es mayor.
      -El total deducible por cada concepto tiene un máximo de $3000, exceptuando Salud, siempre que el total de gastos no exceda el máximo deducible.
    5. Salir

    Rúbrica: Menú (5 puntos), definición y uso de estructura datos (5 puntos), caso 1 (5 puntos), caso 2 (10puntos), caso 3 (5 puntos), caso 4 aplicando reglas (10 puntos).

  • 3Eva_IIT2011_T2 Registrar gastos en viaje por automóvil

    3ra Evaluación II Término 2011-2012, Febrero 14, 2012 /ICM00794

    Tema 2. (30 puntos) Juan y Pedro deciden separadamente recorrer en auto varias ciudades quedándose un día en cada una, arbol decision ejemplo

    al siguiente día cada uno decide ir por la izquierda o derecha lanzando una moneda, hasta encontrar un punto en que ya no se pueda continuar (marcado por 0 en la tabla).

    Los posibles recorridos por carretera se representan en la tabla, indicando:

    • el valor de gastos por estadía en una ciudad,
    • el número de la siguiente ciudad que se visitaría si se sigue en la dirección izquierda o derecha.
    Ciudad Gastos Izquierda Derecha
    1 200 3 2
    2 150 4 5
    3 70 7 4
    4 140 7 6
    5 90 6 0
    6 300 7 0
    7 50 0 0

    Realice un programa que permita simular el viaje de Juan y el de Pedro, ingresando la tabla y al final muestre:

    a) el recorrido realizado por Juan y Pedro en arreglos,
    b) el total de gastos por estadía por cada el recorrido,
    c) quién visitó mas ciudades y,
    d) quién gastó menos en su recorrido.

    Rúbrica: Ingreso de datos (5 puntos), arreglos de Recorridos (15 puntos), literal b) (5 puntos), literal c) y d) (5 puntos).

  • s3Eva_IIT2011_T2 Registrar gastos en viaje por automóvil

    Ejercicio: 3Eva_IIT2011_T2 Registrar gastos en viaje por automóvil

    Algoritmo en Python

    # 3ra Evaluacion II Term 2011
    # Tema 2. Recorridos Juan y Pedro
    import random as rnd
    
    # INGRESO
    n = int(input('Ingrese cantidad de ciudades: '))
    gasto = [0]
    izquierda = [0]
    derecha = [0]
    for i in range(1,n+1,1):
        print("Ciudad: ", i)
        ungasto = int(input('Gastos en ciudad: '))
        ciudad_izq = int(input('Ciudad izquierda: '))
        ciudad_der = int(input('Ciudad  derecha: '))
        gasto.append(ungasto)
        izquierda.append(ciudad_izq)
        derecha.append(ciudad_der)
    
    # PROCEDIMIENTO
    # Viaje de Juan
    dia    = 1
    visita = 1
    costojuan = 0
    rutajuan  = []
    while not(visita==0):
        rutajuan.append(visita)
        costojuan = costojuan + gasto[visita]
        direccion = int(rnd.random()*2)+1
        if direccion == 1:
            visita = izquierda[visita]
        else:
            visita = derecha[visita]
        dia = dia+1
    diasjuan = dia-1
    
    
    # Viaje de Pedro
    dia    = 1
    visita = 1
    costopedro = 0
    rutapedro  = []
    while not(visita==0):
        rutapedro.append(visita)
        costopedro = costopedro + gasto[visita]
        direccion  = int(rnd.random()*2)+1
        if direccion == 1:
            visita = izquierda[visita]
        else:
            visita = derecha[visita]
        dia = dia+1
    diaspedro = dia-1
    
    # SALIDA
    print('Recorrido de Juan: ', rutajuan)
    print('Costo de Juan: ', costojuan)
    print('Recorrido de Pedro: ', rutapedro)
    print('Costo de Pedro: ', costopedro)
    
    if diasjuan>diaspedro:
        print('Juan visitó más ciudades')
    else:
        print('Pedro visitó más ciudades')
    
    if costojuan<costopedro:
        print('Juan tuvo el viaje más barato')
    else:
        print('Pedro tuvo el viaje más barato')
    

    Resultado del algoritmo

    RESTART: D:/CCPG1001Ejemplos/RutasJuanPedro.py 
    Ingrese cantidad de ciudades: 7
    Ciudad:  1
    Gastos en ciudad: 200
    Ciudad izquierda: 3
    Ciudad  derecha: 2
    Ciudad:  2
    Gastos en ciudad: 150
    Ciudad izquierda: 4
    Ciudad  derecha: 5
    Ciudad:  3
    Gastos en ciudad: 70
    Ciudad izquierda: 7
    Ciudad  derecha: 4
    Ciudad:  4
    Gastos en ciudad: 140
    Ciudad izquierda: 7
    Ciudad  derecha: 6
    Ciudad:  5
    Gastos en ciudad: 90
    Ciudad izquierda: 6
    Ciudad  derecha: 0
    Ciudad:  6
    Gastos en ciudad: 300
    Ciudad izquierda: 7
    Ciudad  derecha: 0
    Ciudad:  7
    Gastos en ciudad: 50
    Ciudad izquierda: 0
    Ciudad  derecha: 0
    Recorrido de Juan:  [1, 2, 4, 6]
    Costo de Juan:  790
    Recorrido de Pedro:  [1, 3, 7]
    Costo de Pedro:  320
    Juan visitó más ciudades
    Pedro tuvo el viaje más barato
    >>> 
    
  • 3Eva_IIT2011_T1 Generar números 1800-nombre

    3ra Evaluación II Término 2011-2012, Febrero 14, 2012 /ICM00794

    Tema 1 (30 puntos). Las empresas para recibir llamadas de servicio al cliente pueden solicitar se les asigne números telefónicos 1800-nombre de tal forma se facilite recordarlo para su marcación en el teclado telefónico.

     

    El número asignado será 1800 seguido de seis dígitos que se obtienen de las letras marcadas en el teclado de un teléfono convencional mostrado en la figura.

    CocaCola
    1800- 262226
    Cinemark
    1800- 246362

    a) Realice una función teclaletra(letra), que permita convertir una letra a su respectivo dígito de un teclado telefónico:

    Ejemplo:
    >>> teclaletra('K')
    5

    b) Realice un programa que permita ingresar el nombre de la empresa y muestre el número telefónico 1800-nombre que el fue asignado.

    Nota: Por facilidad, convierta todas las letras a mayúsculas con upper(texto);

    Rúbrica: Definición de Función (5puntos), Conversión letra a tecla (10 puntos), Manejo de caracteres (10 puntos), Programa integrado (5 puntos)

  • s3Eva_IIT2011_T1 Generar números 1800-nombre

    Ejercicio: 3Eva_IIT2011_T1 Generar números 1800-nombre

    resultados obtenidos

    >>> teclaletra('K')
    5
    

    Algoritmo en Python

    # 3Eva_IIT2011_T1 Generar números 1800-nombre
    
    def teclaletra(letra):
        letras = ['ABC','DEF','GHI',
                  'JKL','MNO','PQRS',
                  'TUV','WXYZ']
        tecla = [2,3,4,5,6,7,8,9]
        n = len(letras)
        equivale = 0
        for i in range(0,n,1):
            if letra in letras[i]:
                equivale = tecla[i]
        return(equivale)
        
    # Tarea, desarrollar literal b
    
  • 3Eva_IT2011_T4 Sortear casos para jueces

    3ra Evaluación I Término 2011-2012, Septiembre 13, 2011 /ICM00794

    Tema 4 (30 puntos). El “Consejo de la Judicatura” para asignar casos a jueces realiza la tarea mediante sorteo.

    Actualmente el Consejo está formado por 11 jueces (identificados numéricamente) distribuido en las siguientes áreas mostradas en la tabla:

    Área Tipo de Área Jueces
    1 Penal 1 al 4
    2 Civil 5 al 8
    3 Laboral, Tránsito y Niñez 9 al 11

    Cada caso se debe clasificar de acuerdo al área mostrada en la tabla, dependiendo del área se asigna aleatoriamente el juez correspondiente.
    Elabore un programa para procesar la asignación de jueces en los diferentes casos.

    Primero ingrese para cada caso su clasificación (Penal, Civil, Laboral o Tránsito o niñez), luego dependiendo de la clasificación realice la asignación aleatoria del juez. Finalmente presente un reporte de la cantidad de casos asignados a cada área.

    Rúbrica: Ingreso de casos (5 puntos), sorteo de jueces (10 puntos), listado casos por área (15 puntos)

  • 3Eva_IT2011_T3 Calcular comisiones por servicio técnico

    3ra Evaluación I Término 2011-2012, Septiembre 13, 2011 /ICM00794

    Tema 3 (30 puntos). Una empresa brinda cuatro tipos de servicio técnico con costos de 25, 50, 100 y 150 dólares respectivamente. La empresa dispone de n técnicos, que perciben una comisión del 5% sobre la tarifa del servicio realizado.
    Al final del mes se obtiene la tabla de servicios prestados por técnico.

    Tabla de Servicios:
    Servicio 1 2 3 4
    Precio $25 $50 $100 $150

    Realice un menú que permita:

    1. Ingresar lista. Registra los Servicios prestados por técnico en el mes.
    2. Total Facturado. Calcula y muestra el total de dinero facturado por la empresa.
    3. Comisiones. Calcula y muestra las comisiones obtenidas por técnico.
    4. Servicio Estrella. Muestra el servicio el más requerido.
    5. Técnico del Mes. Busca y muestra el técnico que ganó la mayor comisión
    6. Salir.

    Nota: Para el tema 2, puede utilizar la función del tema anterior para calcular la matriz de facturación.

    Ejemplo:
    Servicios Prestados Serv 01 Serv 02 Serv 03 Serv 04 . Comisión
    Técnico 1 2 1 2 3 37.50
    Técnico 2 3 1 0 2 21.25
    Técnico 3 2 2 1 1 20.00
    Técnico 4 1 0 0 3 23.75
    ... ... ... ... ...
    Técnico n 3 5 1 1 28.75
    • Total Recaudación: $2.625
    • Servicio Estrella: Servicio 1
    • Técnico del Mes: 1
    • Técnico menos productivo: 3

    Rúbrica: Menú (5 puntos), cálculo de recaudación (10 puntos), desarrollar los ítems del 3 al 5 del menú (5 puntos).