s2Eva_IIT2009_T3 Controlar saldos prepago

Ejercicio: 2Eva_IIT2009_T3 Controlar saldos prepago

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

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# 2Eva_IIT2009_T3 Controlar saldos prepago
# Propuesta: edelros@espol.edu.ec
# Registrar números de celular con listas

celular  = []
saldo    = []
mensajes = []

opcion = 0
while not(opcion==4):

    print('1. Ingresar equipo')
    print('2. Recargar saldo')
    print('3. transferir saldo')
    print('4. Salir')
    opcion = int(input('cual opcion: '))
    
    if (opcion==1):
        print('INGRESAR equipo')
        numero = input('numero celular:')
        celular.append(numero)
        saldo.append(0)
        mensajes.append(0)
        m = len(saldo)-1
        texto = str(celular[m])+' '+str(saldo[m])
        texto = texto +' '+str(mensajes[m])
        print(texto)

    elif (opcion==2):
        print('RECARGAR')
        numero   = input('numero celular: ')
        cantidad = input('    cantidad: ')

        # Busca el numero de celular
        m = len(saldo)
        encontre = -1
        i = 0
        while (i<m and encontre==-1):
            if (celular[i]==numero):
                encontre = i
            i = i + 1
            
        # si lo encuentra aumenta el saldo
        if (encontre>=0):
            saldo[encontre] = int(saldo[encontre]) + int(cantidad)
            print(encontre)
            texto = str(celular[encontre])+' '+str(saldo[encontre])
            texto = texto + ' ' + str(mensajes[encontre])
            print(texto)
        else:
            print('numero no registrado')
            
    elif (opcion==3):
        print('TRANSFERIR')
        donante  = input('numero donante : ')
        receptor = input('numero receptor: ')
        cantidad = input('       cantidad: ')

        # Busca el numero de celular donante
        m = len(saldo)
        encontreA = -1
        i = 0
        while (i<m and encontreA==-1):
            if (celular[i]==donante):
                encontreA = i
            i = i + 1
        # Busca el numero de celular receptor
        m = len(saldo)
        encontreB = -1
        i = 0
        while (i<m and encontreB==-1):
            if (celular[i]==receptor):
                encontreB = i
            i = i + 1
            
        #revisa condiciones para transferir
        condicion = encontreA>=0 and encontreB>=0 
        condicion = condicion and int(saldo[encontreA])>=int(cantidad)
        if condicion:
            saldo[encontreA] = int(saldo[encontreA])-int(cantidad)
            saldo[encontreB] = int(saldo[encontreB])+int(cantidad)
            print('saldo transferido: '+str(cantidad))
        else:
            if (encontreA==-1):
                print('no existe registro de donante:')
            if (encontreB==-1):
                print('no existe registro de receptor:')
        
    elif (opcion==4):
        print('Gracias por usar el software')
    else:
        print('opción no disponible..!')

resultado del algoritmo

1. Ingresar equipo
2. Recargar saldo
3. transferir saldo
4. Salir
cual opcion: 1
INGRESAR equipo
numero celular:987
987 0 0
1. Ingresar equipo
2. Recargar saldo
3. transferir saldo
4. Salir
cual opcion: 1
INGRESAR equipo
numero celular:876
876 0 0
1. Ingresar equipo
2. Recargar saldo
3. transferir saldo
4. Salir
cual opcion: 2
RECARGAR
numero celular: 987
    cantidad: 5
0
987 5 0
1. Ingresar equipo
2. Recargar saldo
3. transferir saldo
4. Salir
cual opcion: 2
RECARGAR
numero celular: 876
    cantidad: 1
1
876 1 0
1. Ingresar equipo
2. Recargar saldo
3. transferir saldo
4. Salir
cual opcion: 3
TRANSFERIR
numero donante : 987
numero receptor: 876
       cantidad: 3
saldo transferido: 3
1. Ingresar equipo
2. Recargar saldo
3. transferir saldo
4. Salir
cual opcion: 4
Gracias por usar el software
>>>