s2Eva_IIT2004_T3 Reciclar vasos

Ejercicio: 2daEva_IIT2004_T3 Reciclar vasos

Propuesta de solución en Python: py_pdf, también en versión matlab: m_pdf

Lazo mientras-repita

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# 2Eva_IIT2004_T3 Reciclar vasos
# Solucion propuesta para 1ra Eval. sin Funciones

# INGRESO
n = int(input('Cuantos vasos usados:'))
factor = int(input('nuevos/reciclado:'))

# PROCEDIMIENTO
total=0
while (n>=factor):
    reciclado = n//factor
    sobra = n%factor
    total = total + reciclado
    n = reciclado + sobra

# SALIDA
print('total reciclados: ', total)

Lazo repita-hasta

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# 2Eva_IIT2004_T3 Reciclar vasos
# Solucion propuesta para 1ra Eval. sin Funciones

# INGRESO
n = int(input('Cuantos vasos usados:'))
factor = int(input('nuevos/reciclado:'))

# PROCEDIMIENTO
total = 0
while not(n<factor):
    reciclado = n//factor
    sobra = n%factor
    total = total + reciclado
    n = reciclado + sobra

# SALIDA
print('total reciclados: ', total)

resultado del algoritmo

Cuantos vasos usados:70
nuevos/reciclado:4
total reciclados:  23
>>>
Cuantos vasos usados:7000
nuevos/reciclado:4
total reciclados:  2333
>>>

s2Eva_IT2005_T3 Adivina palabra (ahorcado)

Ejercicio: 2Eva_IT2005_T3 Adivina palabra (ahorcado)

Propuesta de solución en Python:

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# 2Eva_IT2005_T3 Adivina palabra
# Tema 3. Adivina la palabra, Ahorcado

def esvocal(caracter):
    caracter = caracter.upper()
    vocales = 'AEIOU'
    n = len(vocales)
    encontre = 0
    i = 0
    while not(i>=n):
        if (caracter == vocales[i]):
            encontre = 1
        i = i + 1
    return(encontre)

def convertir(palabra):
    cadena = ''
    n = len(palabra)
    i = 0
    while not(i>=n):
        cadena = cadena + str(i+1)
        i = i + 1
    return(cadena)

# Juego
# INGRESO
palabra = input('palabra: ')
m = len(palabra)
while not(m<=9):
    palabra = input(' palabra de hasta 9 letras: ')
    m = len(palabra)

# PROCEDIMIENTO
palabra  = palabra.upper()
ahorcado = convertir(palabra)
falla    = 0
maxfalla = m
j = 0
while not(j>=m or falla==maxfalla):
    
    cual = esvocal(palabra[j])
    if (cual==1):
        texto = ' es vocal'
    else:
        texto = ' es consonante'
    
    indicar = 'la letra '+str(j+1) + texto
    pregunta = indicar + ', una letra: '
    print('ahorcado :',ahorcado)
    print('las fallas: ', falla)
    
    unaletra = input(pregunta)
    
    unaletra = unaletra.upper()
    if (unaletra==palabra[j]):
        mensaje = ' **** adivinaste...!'
        j = j + 1
        nueva=palabra[0:j]+ahorcado[j:]
        ahorcado = nueva
    else:
        mensaje = ' ....fallaste ja ja...'
        falla = falla + 1
        
    print(mensaje)

resultado del algoritmo

palabra: conocimiento
 palabra de hasta 9 letras: sabiduria
ahorcado : 123456789
las fallas:  0
la letra 1 es consonante, una letra: p
 ....fallaste ja ja...
ahorcado : 123456789
las fallas:  1
la letra 1 es consonante, una letra: m
 ....fallaste ja ja...
ahorcado : 123456789
las fallas:  2
la letra 1 es consonante, una letra: s
 **** adivinaste...!
ahorcado : S23456789
las fallas:  2
la letra 2 es vocal, una letra: a
 **** adivinaste...!
ahorcado : SA3456789
las fallas:  2
la letra 3 es consonante, una letra: B
 **** adivinaste...!
ahorcado : SAB456789
las fallas:  2
la letra 4 es vocal, una letra: i
 **** adivinaste...!
ahorcado : SABI56789
las fallas:  2
la letra 5 es consonante, una letra: c
 ....fallaste ja ja...
ahorcado : SABI56789
las fallas:  3
la letra 5 es consonante, una letra: d
 **** adivinaste...!
ahorcado : SABID6789
las fallas:  3
la letra 6 es vocal, una letra: e
 ....fallaste ja ja...
ahorcado : SABID6789
las fallas:  4
la letra 6 es vocal, una letra: o
 ....fallaste ja ja...
ahorcado : SABID6789
las fallas:  5
la letra 6 es vocal, una letra: u
 **** adivinaste...!
ahorcado : SABIDU789
las fallas:  5
la letra 7 es consonante, una letra: r
 **** adivinaste...!
ahorcado : SABIDUR89
las fallas:  5
la letra 8 es vocal, una letra: i
 **** adivinaste...!
ahorcado : SABIDURI9
las fallas:  5
la letra 9 es vocal, una letra: a
 **** adivinaste...!
>>> 

s2Eva_IT2005_T4 Registrar mejores calificaciones

Ejercicio: 2Eva_IT2005_T4 Registrar mejores calificaciones

Propuesta de solución en Python: py_pdf, también en versión matlab: m_pdf

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# 2Eva_IT2005_T4 Registrar mejores calificaciones
# propuesta: edelros@espol.edu.ec

# Se usará menú y diccionario para cada registro
# Tarea: opcion 4 con nota mas alta y mas baja
# Tarea: aumentar opciones para grabar o leer archivo
# Tarea: Se puede hacer también con listas y sin menu

lista = []
suma = 0

opcion = '0'
while not(opcion=='5'):
    print('1. Ingresar registro')
    print('2. Ingresar ponderaciones')
    print('3. Calcular calificaciones')
    print('4. Mostrar lista y extremos')
    print('5. Salir')
    
    opcion = input('-cual opcion: ')
    
    if (opcion=='1'):
        print('REGISTRO ******')
        nombre   = input('nombre:  ')
        leccion  = int(input('leccion:  '))
        proyecto = int(input('proyecto: '))
        examen   = int(input('examen:   '))
        estudiante = {'nombre':nombre,
                      'leccion':leccion,
                      'proyecto':proyecto,
                      'examen':examen,
                      'calif':0}
        lista.append(estudiante)
        
    elif (opcion=='2'):
        print('PONDERACION')
        pondlecc = int(input('% leccion:  '))
        pondproy = int(input('% proyecto: '))
        pondexam = int(input('% examen:   '))
        suma = pondlecc + pondproy + pondexam
        while not(suma==100):
            print('ponderación no suma 100')
            pondlecc = int(input('% leccion:  '))
            pondproy = int(input('% proyecto: '))
            pondexam = int(input('% examen:   '))
            suma = pondlecc + pondproy + pondexam
        
    elif (opcion=='3'):
        print('CALCULAR')
        tamano = len(lista)
        if (suma==100):
            for i in range(0,tamano,1):
                suma = lista[i]['leccion']*pondlecc
                suma = suma + lista[i]['proyecto']*pondproy
                suma = suma + lista[i]['examen']*pondexam
                prom = suma/100
                lista[i]['calif'] = prom
            print('Recalculadas las notas, proceder a mostrar')
        else:
            print('** las ponderaciones no son validas **')
            print('** volver a opcion de ponderaciones **')
        
    elif (opcion=='4'):
        print('LISTA')
        tamano = len(lista)
        print('nombre, leccion, proyecto, examen, calif')
        for i in range(0,tamano,1):
            texto = lista[i]['nombre'] + ', ' + str(lista[i]['leccion'])
            texto = texto + ', '+str(lista[i]['proyecto'])
            texto = texto + ', ' + str(lista[i]['examen'])
            texto = texto +', '+str(lista[i]['calif']) 
            print(texto)

    elif (opcion=='5'):
        print('Gracias por usar el software...')

    else:
        print('** NO es una opcion disponible **')

resultado de algoritmo

1. Ingresar registro
2. Ingresar ponderaciones
3. Calcular calificaciones
4. Mostrar lista y extremos
5. Salir
-cual opcion: 1
REGISTRO ******
nombre:  juan
leccion:  50
proyecto: 70
examen:   80
1. Ingresar registro
2. Ingresar ponderaciones
3. Calcular calificaciones
4. Mostrar lista y extremos
5. Salir
-cual opcion: 1
REGISTRO ******
nombre:  Maria
leccion:  70
proyecto: 60
examen:   90
1. Ingresar registro
2. Ingresar ponderaciones
3. Calcular calificaciones
4. Mostrar lista y extremos
5. Salir
-cual opcion: 2
PONDERACION
% leccion:  30
% proyecto: 20
% examen:   50
1. Ingresar registro
2. Ingresar ponderaciones
3. Calcular calificaciones
4. Mostrar lista y extremos
5. Salir
-cual opcion: 3
CALCULAR
Recalculadas las notas, proceder a mostrar
1. Ingresar registro
2. Ingresar ponderaciones
3. Calcular calificaciones
4. Mostrar lista y extremos
5. Salir
-cual opcion: 4
LISTA
nombre, leccion, proyecto, examen, calif
juan, 50, 70, 80, 69.0
Maria, 70, 60, 90, 78.0
1. Ingresar registro
2. Ingresar ponderaciones
3. Calcular calificaciones
4. Mostrar lista y extremos
5. Salir
-cual opcion: 5
Gracias por usar el software...
>>> 

s2Eva_IT2006_T1 Donaciones defensa civil

Ejercicio: 2Eva_IT2006_T1 Donaciones defensa civil

Propuesta de solución en Python: py_pdf, también en versión matlab: m_pdf

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# 2Eva_IT2006_T1 Donaciones defensa civil
# Propuesta: edelros@espol.edu.ec
# Nombre Donante, teléfono, Tipo Donación, Cantidad

donacion = []
opcion = 0
while not(opcion==5):
    
    print('1. Registro de donacion')
    print('2. Donantes por tipo')
    print('3. Unidades por tipo')
    print('4. Guardar archivo')
    print('5. Salir')
    
    opcion = int(input('cual opcion: '))

    if (opcion==1):
        print('REGISTRA DONACION')
        nombre   = input('nombre: ')
        telefono = input('telefono: ')
        print(' tipo: 1.alimentos 2.medicina 3.dinero')
        tipo     = int(input('tipo : '))
        cantidad = float(input('cantidad: '))
        donacion.append([nombre,telefono,
                         tipo,cantidad])

    elif (opcion==2):
        print('DONANTES POR TIPO')
        m = len(donacion)
        qalimento = 0
        qmedicina = 0
        qdinero   = 0
        for i in range(0,m,1):
            if (donacion[i][2]==1):
                qalimento = qalimento + 1
            if (donacion[i][2]==2):
                qmedicina = qmedicina + 1
            if (donacion[i][2]==3):
                qdinero = qdinero + 1
        print('donantes alimento: ' + str(qalimento))
        print('donantes medicina: ' + str(qmedicina))
        print('donantes dinero:   ' + str(qdinero))
            
    elif (opcion==3):
        print('UNIDADES POR TIPO')
        m = len(donacion)
        salimento = 0.0
        smedicina = 0.0
        sdinero   = 0.0
        for i in range(0,m,1):
            if (donacion[i][2]==1):
                salimento = salimento+donacion[i][3]
            if (donacion[i][2]==2):
                smedicina = smedicina+donacion[i][3]
            if (donacion[i][2]==3):
                sdinero = sdinero+donacion[i][3]
        print('cantidad de alimento: '+str(salimento))
        print('cantidad medicina: '+str(smedicina))
        print('cantidad dinero:   '+str(sdinero))
        
    elif (opcion==4):
        print('Guardar')
        nombrearchivo = input('nombre archivo: ')
        archivo = open(nombrearchivo+'.txt','w')
        m = len(donacion)
        for i in range(0,m,1):
            registro = str(donacion[i][0])+','+str(donacion[i][1])
            registro = registro + ',' + str(donacion[i][2])
            registro = registro + ',' + str(donacion[i][3])+'\n'
            archivo.write(registro)
        archivo.close()
        
    elif (opcion==5):
        print('Gracias por usar el software')
    else:
        print('** opcion no existe **')

resultado del algoritmo

1. Registro de donacion
2. Donantes por tipo
3. Unidades por tipo
4. Guardar archivo
5. Salir
cual opcion: 1
REGISTRA DONACION
nombre: Juan
telefono: 123
 tipo: 1.alimentos 2.medicina 3.dinero
tipo : 1
cantidad: 30
1. Registro de donacion
2. Donantes por tipo
3. Unidades por tipo
4. Guardar archivo
5. Salir
cual opcion: 2
DONANTES POR TIPO
donantes alimento: 1
donantes medicina: 0
donantes dinero:   0
1. Registro de donacion
2. Donantes por tipo
3. Unidades por tipo
4. Guardar archivo
5. Salir
cual opcion: 3
UNIDADES POR TIPO
cantidad de alimento: 30.0
cantidad medicina: 0.0
cantidad dinero:   0.0
1. Registro de donacion
2. Donantes por tipo
3. Unidades por tipo
4. Guardar archivo
5. Salir
cual opcion: 4
Guardar
nombre archivo: donante
1. Registro de donacion
2. Donantes por tipo
3. Unidades por tipo
4. Guardar archivo
5. Salir
cual opcion: 5
Gracias por usar el software
>>> 

s2Eva_IT2005_T1 Completar cadena con padright

Ejercicio: 2Eva_IT2005_T1 Completar cadena con padright

Propuesta de solución en Python: py_pdf, también en versión matlab: m_pdf

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# 2Eva_IT2005_T1 Completar cadena con padright
# Propuesta: edelros@espol.edu.ec

def padright(mensaje,caracter,n):
    t = len(mensaje)
    z = mensaje
    siguiente = t + 1
    for i in range(siguiente,n,1):
        z = z + caracter
    return (z)

prueba de la función, luego de ejecutar algoritmo

>>> padright('Hola mundo','-',20)
'Hola mundo---------'
>>>