Autor: Edison Del Rosario

  • s3Eva_IT2004_T1 Buscar número al lanzar el dado

    Ejercicio: 3Eva_IT2004_T1 Buscar número al lanzar el dado

    resultado para la función del enunciado

    >>> al_fin(2,7)
    2
    >>> al_fin(2,7)
    12
    >>> al_fin(2,7)
    5
    >>> 
    

    Tarea, realizar el programa requerido en el enunciado usando la función al_fin(n,k)

    Algoritmo en Python

    # 3Eva_IT2004_T1 Buscar número al lanzar el dado
    import random as rnd
    
    def al_fin(n,k):
        veces = 0
        exitos = 0
        while exitos == 0:
            aleatorio = int(rnd.random()*6)+1
            if aleatorio == n:
                exitos = exitos+1
            veces = veces + 1
        return(veces) 
    
    # Tarea, realizar el programa requerido
    
  • 3Eva_IIIT2003_T4 Informes notas de estudiantes

    Mejoramiento III Término 2003 – 2004. Abril, 2004 /ICM00794

    Tema 4. Escriba un programa en C/C++ que usando una estructura almacene en un archivo  los datos de los estudiantes de Fundamentos de Computación.

    El archivo se denomina ‘estud.dat’, en el disco ‘C:\’ con la siguiente forma:

    nombre (20 caracteres), edad (entero), nota parcial (entero entre 0 y 100), nota final (entero entre 0 y 100).

    Una vez ingresados los datos, presente un menú que permita:

    a. Listar los estudiantes con promedio mayor a 80.
    b. Cuántos estudiantes pasaron con los exámenes parcial y final (promedio mayor o igual que 60).
    c. Muestre los nombres de los estudiantes con una edad menor a 18 años
    d. Salir
  • s3Eva_IIIT2003_T4 Informes notas de estudiantes

    Ejercicio: 3Eva_IIIT2003_T4 Informes notas de estudiantes

    Propuesta de solución en Python:

    # ICM00794-Fundamentos de Computación - FCNM-ESPOL
    # 3Eva_IIIT2003_T4 Informes notas de estudiantes
    
    # INGRESO
    estudiantes = []
    n = int(input('cupo: '))
    i = 0
    while not(i>=n):
        nom = input('nombre: ')
        eda = int(input('edad: '))
        gen = input(' genero m/f: ')
        while not(gen=='f' or gen=='m'):
            print(' genero f o m ')
            gen = input('genero: ')
        
        par = int(input('parcial: '))
        while not(par>=0 and par<=100):
            print(' nota son [0,100] ')
            par = int(input('parcial: '))
            
        fin = int(input('final: '))
        while not(fin>=0 and fin<=100):
            print(' nota son [0,100] ')
            fin = int(input('final: '))
            
        registro = {'nombre':nom,
                    'edad':eda,
                    'genero':gen,
                    'parcial':par,
                    'final':fin}
        estudiantes.append(registro)
        i = i+1
    
    # ingresa sin extension '.txt'
    narchivo = input('nombre del archivo: ')
    narchivo = narchivo + '.txt'
    
    # PROCEDIMIENTO
    # Guarda el archivo con datos estudiantes
    n =  len(estudiantes)
    archivo = open(narchivo, 'w')
    i = 0
    while not(i>=n):
        nom = estudiantes[i]['nombre']
        eda = estudiantes[i]['edad']
        gen = estudiantes[i]['genero']
        par = estudiantes[i]['parcial']
        fin = estudiantes[i]['final']
        linea = nom +','+str(eda)+','+gen
        linea = linea + ',' + str(par)
        linea = linea + ',' + str(fin) + '\n'
        archivo.write(linea)
        i = i + 1
    
    archivo.close()
    
    # SALIDA
    print(estudiantes)
    

    resultado del algoritmo

    upo: 5
    nombre: Juan
    edad: 19
     genero m/f: m
    parcial: 65
    final: 40
    nombre: Maria
    edad: 18
     genero m/f: f
    parcial: 70
    final: 80
    nombre: Ana
    edad: 19
     genero m/f: f
    parcial: 90
    final: 92
    nombre: Juan
    edad: 20
     genero m/f: m
    parcial: 40
    final: 80
    nombre: Rosa
    edad: 18
     genero m/f: f
    parcial: 80
    final: 85
    nombre del archivo: calificaciones
    [{'nombre': 'Juan', 'edad': 19, 'genero': 'm',
      'parcial': 65, 'final': 40},
     {'nombre': 'Maria', 'edad': 18, 'genero': 'f',
      'parcial': 70, 'final': 80},
     {'nombre': 'Ana', 'edad': 19, 'genero': 'f',
      'parcial': 90, 'final': 92},
     {'nombre': 'Juan', 'edad': 20, 'genero': 'm',
      'parcial': 40, 'final': 80},
     {'nombre': 'Rosa', 'edad': 18, 'genero': 'f',
      'parcial': 80, 'final': 85}]
    >>> 
    
    
  • 3Eva_IIIT2003_T3 Sumatoria en forma recursiva

    Mejoramiento III Término 2003 – 2004. Abril, 2004 /ICM00794

    Tema 3. Escriba una función RECURSIVA, denominada SumaElem(), que reciba como parámetros un arreglo de enteros y su dimensión, luego procese y devuelva la suma de los elementos del arreglo.

    Escriba un programa en C/C++ que almacene en un arreglo los 100 primeros números naturales, que llame a función SumaElem() para calcular la suma de dichos números y que muestre el resultado por pantalla.

  • 3Eva_IIIT2003_T2 Socios del club por género

    Mejoramiento III Término 2003 – 2004. Abril, 2004 /ICM00794

    Tema 2. Dispone de tres vectores que contienen el nombre, el género y la edad de cada uno de los miembros de un club juvenil. Los valores de género: masculino y femenino se representan por su inicial mediante ‘M‘ y ‘F‘ respectivamente.

    Escriba un programa en C/C++ que usando un menú realice lo siguiente:

    a) Ingrese el nombre, el género y la edad de cada uno de los miembros del club. El ingreso finaliza cuando el usuario ya no desea seguir ingresando más datos (se deberá hacer una pregunta pertinente luego del ingreso de un miembro).

    b) Genere dos nuevos vectores, denominados HOMBRES y MUJERES, los cuales deberán contener los nombres de todos los varones y de todas las damas, respectivamente.

    c) Muestre por pantalla los nombres de los integrantes con la menor edad en el club.


    Ejemplo de ejercicio en Python

    un nombre:  Maria
    genero M/F: F
    edad:   18
    finalizar 0/1:0
    un nombre:  Pedro
    genero M/F: M
    edad:   19
    finalizar 0/1:0
    un nombre:  Ana
    genero M/F: F
    edad:   19
    finalizar 0/1:0
    un nombre:  Juan
    genero M/F: M
    edad:   20
    finalizar 0/1:1
    hombres:  ['Pedro', 'Juan']
    mujeres:  ['Maria', 'Ana']
    >>> 
    
  • s3Eva_IIIT2003_T2 Socios del club por género

    Ejercicio: 3Eva_IIIT2003_T2 Separar lista socios club por género

    Para el ingreso de datos se inicializan tres listas en vacío.

    nombre = [] 
    genero = [] 
    edad = []

    Se preguntan datos que se añaden a cada lista, siempre que la bandera finalizado sea cero.

    Tarea por realizar en el bloque de ingreso: validar el género ingresado 'm' o 'f'

    La selección de datos se realiza en un bloque de procedimiento, revisando la lista de género. Con la variable género se añaden los nombres a las listas que correspondan a hombres o mujeres.

    El resultado se muestra en pantalla.

    Algoritmo en Python

    # ICM00794-Fundamentos de Computación - FCNM-ESPOL
    # 3Eva_IIIT2003_T2 Separar lista socios club por género
    
    # INGRESO
    nombre = []
    genero = []
    edad   = []
    finalizado = 0
    while (finalizado == 0):
        unnombre = input('un nombre:  ')
        ungenero = input('genero M/F: ')
        unaedad =  int(input('edad:   '))
        finalizado = int(input('finalizar 0/1:'))
    
        # añade datos a la lista
        nombre.append(unnombre)
        genero.append(ungenero)
        edad.append(unaedad)
    
    # PROCEDIMIENTO
    n = len(nombre)
    hombres = []
    mujeres = []
    i = 0
    while not(i>=n):
        if (genero[i]=='M'):
            hombres.append(nombre[i])
        if (genero[i]=='F'):
            mujeres.append(nombre[i])
        i = i + 1
    
    # SALIDA
    print('hombres: ',hombres)
    print('mujeres: ',mujeres)
    
    

    resultado del algoritmo

    un nombre:  Maria
    genero M/F: F
    edad:   18
    finalizar 0/1:0
    un nombre:  Pedro
    genero M/F: M
    edad:   19
    finalizar 0/1:0
    un nombre:  Ana
    genero M/F: F
    edad:   19
    finalizar 0/1:0
    un nombre:  Juan
    genero M/F: M
    edad:   20
    finalizar 0/1:1
    hombres:  ['Pedro', 'Juan']
    mujeres:  ['Maria', 'Ana']
    >>> 
    
    
  • 3Eva_IIIT2003_T1 Funciones lógicas pyq y poq

    Mejoramiento III Término 2003 – 2004. Abril, 2004 /ICM00794

    Tema 1. Analice las dos siguientes formas de expresiones lógicas:

    a. (p ∧ q)
    b. (p ∨ q)

    donde p y q son variables proposicionales que pueden tomar los valores 0 ó 1.

    Escriba una función denominada pyq() y otra función denominada poq(), que reciban 2 variables proposicionales como parámetros y devuelvan un 1 si la expresión lógica respectiva es verdadera o 0 si es falsa.

    Escriba un programa en C/C++ que reciba valores para p y q y use las funciones anteriores para evaluar las siguientes expresiones:

    1. (p ∧ q) ∨ (p ∧ q)
    2. p ∨ (p ∧ q)
  • s3Eva_IIIT2003_T1 Funciones lógicas pyq y poq

    Ejercicio: 3Eva_IIIT2003_T1 Funciones lógicas pyq y poq

    Propuesta de solución en Python, se desarrollan dos partes: funciones y programa

    Las funciones se incorporan al bloque de inicio.
    El programa sigue los bloques de ingreso, procedimiento y salida

    Algoritmo en Python

    # ICM00794-Fundamentos de Computación - FCNM-ESPOL
    # 3Eva_IIIT2003_T1 Funciones lógicas pyq y poq
    
    def pyq(p,q):
        
        # validar
        resultado = -1
        if (p==0 or p==1):
            if (q==0 or q==1):
                resultado = p*q
        return(resultado)
    
    def poq(p,q):
        
        # validar
        resultado = -1
        if (p==0 or p==1):
            if (q==0 or q==1):
                resultado = p+q
                if resultado>1:
                    resultado = 1
        return(resultado)
    
    # PROGRAMA
    
    # INGRESO
    p = int(input('p: '))
    q = int(input('q: '))
    
    # PROCEDIMIENTO
    respuesta1 = poq(pyq(p,q), pyq(p,q))
    respuesta2 = poq(p, pyq(p,q))
    
    # SALIDA
    print('(p ∧ q) ∨ (p ∧ q): ', respuesta1)
    print('p ∨ (p ∧ q): ', respuesta2)
    

    resultado del algoritmo

    p: 1
    q: 1
    (p ∧ q) ∨ (p ∧ q):  1
    p ∨ (p ∧ q):  1
    >>> 
    p: 1
    q: 0
    (p ∧ q) ∨ (p ∧ q):  0
    p ∨ (p ∧ q):  1
    >>> 
    p: 0
    q: 1
    (p ∧ q) ∨ (p ∧ q):  0
    p ∨ (p ∧ q):  0
    >>> 
    
  • 3Eva_IT2003_T6 Prueba de escritorio, algoritmo

    Mejoramiento I Término 2003 - 2004. Septiembre 16, 2003 /ICM00794

    Nota.- En este examen deben desarrollarse un total de 4 temas. El desarrollo de los temas 1, 2 y 3 es obligatorio. UD. puede seleccionar un solo tema de entre los restantes (4, 5 o 6). Cada tema tiene igual ponderación (25%).

    Tema 6. Dado el siguiente fragmento de programa:

    float A[5]={1,2,4,6,8};
    int i;
    float *p;
    for (i=0;i<5;i++){
        p=&A[i];
        *p=*p+i;
    }

    ¿Cuál es el contenido del vector A[] luego de ejecutar dicha secuencia de instrucciones?

     A[]
     i
     p

  • 3Eva_IT2003_T5 Calcular área de f(x) por Montecarlo

    Mejoramiento I Término 2003 - 2004. Septiembre 16, 2003 /ICM00794

    Nota.- En este examen deben desarrollarse un total de 4 temas. El desarrollo de los temas 1, 2 y 3 es obligatorio. UD. puede seleccionar un solo tema de entre los restantes (4, 5 o 6). Cada tema tiene igual ponderación (25%).

    Tema 5. El área bajo la curva de una función f puede estimarse mediante el método de Montecarlo, que consiste en lo siguiente:

    • Establecer un rectángulo tal que x Є [a,b]; y Є [0,d], tal que y=f(x)
    • Generar un numero n de puntos aleatorios tal que a<x<b, 0<y<d.
    • Indicar cuántos de estos puntos caen bajo la curva y=f(x)
    • El área bajo la curva puede estimarse mediante la relación:
    \frac{\text{Area bajo la curva}}{\text{Area bajo el rectangulo}} = \frac{\text{numero de puntos bajo la curva}}{n}

    Escriba un programa en C/C++ que lea las dimensiones a, b, d de la posición del rectángulo, genere aleatoriamente n pares ordenados dentro de ese rectángulo e indique cuántos puntos están bajo la curva y=f(x)=xe-(x/2) en el intervalo [0,2]