sábado, 24 de septiembre de 2016

CAJERO AUTOMÁTICO

Autor:

Rafael Fuentealba

Competencia:

Desarrollo de Software (Nivel 1)

Asignatura:

Programación I



Palabras Claves:

Python, Spyder, Cajero, Cuenta rut, Cuenta vista, Cuenta corriente, depósito, transacción, consulta de saldo.



Descripción de la Actividad:

Elabore una solución computacional en Python para simular el funcionamiento de un cajero automático. La situación a simular es un cliente que usa el cajero automático. El usuario tiene 3 cuentas bancarias del mismo banco: como cuenta rut, cuenta corriente, cuenta vista. 

El cajero debe:
  • Permitir el ingreso de una clave de acceso y validarla con la contraseña que haya en el sistema, permitiendo o no el acceso al sistema de cuentas bancarias del usuario. Si la contraseña fuera no válida, se puede reingresar hasta tres veces, después de lo cual si la clave correcta no ha sido ingresada se sale del sistema.
  • Permitir ver los montos de dinero existente en cada cuenta (el saldo de cada cuenta).
  • Mostrar una advertencia al usuario al ingresar a la pantalla principal de opciones si es que en alguna cuenta hubiera un saldo negativo, mencionar en que cuentas se debe dinero y el monto que se debe en total. 
  • Poder realizar transferencias de dinero de una cuenta a otra a petición del usuario. 
  • Permitir realizar giros de una cuenta específica y generar automáticamente la sustracción en el saldo de la cuenta respectiva.
  • Poder realizar un deposito de dinero por buzón por parte del usuario y generar automáticamente incremento en el saldo de la cuenta respectiva
  • Permitir salir del sistema.
  • Permitir trabajar en el cajero automático cuantas veces sea necesario, dejando todas las alternativas de acciones antes vistas accesibles.


Solución:

Para dar solución al problema del cajero automático se elaboró el siguiente programa en lenguaje Python:


# -*- coding: utf-8 -*-
print "-----------------".center(110, " ")
print "CAJERO AUTOMATICO".center(110, " ")
print "-----------------".center(110, " ")
j= raw_input("Presione ENTRAR para comenzar".center(110, " "))
import random
import sys
m=0
clave=1998 #clave de cuentas
limite= 2 #mostrará cuantos intentos van quedando
intentos= 2 #intentos para la condición del while
cuenta_rut= 50000 #saldo cuenta rut
n_cuentarut= 123 #numero de cuenta rut
cuenta_vista= 1500000 #saldo cuenta vista
n_cuentavista= 456 #numero de cuenta vista
cuenta_corriente= random.randint(-9999999999,9999999999) #saldo de cuenta corriente
n_cuentacorr= 789 #numero de cuenta corriente
print"Deslice tarjeta"
print"Digite su clave:\n"
ingreso=int(raw_input(""))

while(intentos>=1):

   # COMPROBACIÓN DE CLAVE
    if ingreso==clave:
        m = 1
        
        print" "
        print"El saldo disponible en cuenta rut es de $" +str(cuenta_rut)
        print"El saldo disponible en cuenta vista es de $"+str(cuenta_vista)
        print"El saldo disponible en cuenta corriente es de $"+str(cuenta_corriente)
        print" "
        if cuenta_rut<0:
            deudarut= cuenta_rut * - 1
            print"Usted tiene un saldo negativo en su cuenta rut, debe un total de $"+str(deudarut)
            print" "
        if cuenta_vista<0:
            deudavista= cuenta_vista * - 1
            print"Usted tiene un saldo negativo en su cuenta vista, debe un total de $"+str(deudavista)
            print" "
        if cuenta_corriente<0:
            deudacorriente= cuenta_corriente * - 1
            print"Usted tiene un saldo neagtivo en su cuenta corriente, debe un total de $"+str(deudacorriente)
            print" "
    
        tipocuenta= int(raw_input("Escoga una cuenta:\n"
                              "1 . Cuenta rut\n"
                              "2 . Cuenta vista\n"
                              "3 . Cuenta corriente\n"
                              "4 . Salir del sistema\n"))
    #SE TRABAJA CON CUENTA RUT
        while tipocuenta == 1: 
            print("Que desea hacer:\n")
            print("1 . Depositar ")
            print("2 . Transferir dinero a otra cuenta ")
            print("3 . Realizar giro ")
            print("4 . Consultar saldo\n")
            tipoaccion= int(raw_input("Escoger accion a realizar:\n"))
            #ESCOGER ACCIÓN A REALIZAR

            #Depósito
            if tipoaccion==1:  
                montodep= int(raw_input("Ingresar monto a depositar:\n"))
                cuenta_rut= cuenta_rut + montodep
                print" "
                print"Accion realizada exitosamente"
                print"Saldo actualizado"
                print"Su nuevo saldo en cuenta rut es de $"+str(cuenta_rut)
                print" "
            #Transferir
            if tipoaccion==2:
                selcuenta1= int(raw_input("Ingresar numero de cuenta a transferir:\n"))
                selmonto1= int(raw_input("Ingresar monto a transferir\n"))
                print" "
                if cuenta_rut==0:
                    print"No se puede ejecutar accion, saldo insuficiente"
                    print" "
                if cuenta_rut<selmonto1:
                    print"No se puede ejecutar accion, saldo insuficiente"
                    print" "
                if cuenta_rut>=selmonto1:
                    print"Accion realizada exitosamente"
                    print" "
                    if selcuenta1==n_cuentavista:
                        n_cuentavista= n_cuentavista + selmonto1
                        print"Saldo actualizado en cuenta vista $"+str(cuenta_vista)
                        cuenta_rut= cuenta_rut - selmonto1
                        print"Saldo restante en cuenta rut es $"+str(cuenta_rut)
                        print" "
                    if selcuenta1==n_cuentacorr:
                        n_cuentacorr= n_cuentacorr + selmonto1
                        print"Saldo actualizado en cuenta corriente $"+str(cuenta_corriente)
                        cuenta_rut= cuenta_rut - selmonto1
                        print"Saldo restante en cuenta rut es $"+str(cuenta_rut)
                        print" "
                
            #Giro
            if tipoaccion==3:
                if cuenta_rut>0:
                    print" "
                    print"Opciones de giro:"
                    print"1 . $5000                      2 . $15000"
                    print"3 . $25000                     4 . $50000"
                    print"5 . Otro monto\n"
                    opcion= int(raw_input("Escoger una opción:\n"))
                    print" "
                    if opcion==1:
                        cuenta_rut= cuenta_rut - 5000
                        print"Accion realizada exitosamente"
                        print"Saldo restante: $"+str(cuenta_rut)
                        print" "
                    if opcion==2:
                        cuenta_rut= cuenta_rut - 15000
                        print"Accion realizada exitosamente"
                        print"Saldo restante: $"+str(cuenta_rut)
                        print" "
                    if opcion==3:
                        cuenta_rut= cuenta_rut - 25000
                        print"Accion realizada exitosamente"
                        print"Saldo restante: $"+str(cuenta_rut)
                        print" "
                    if opcion==4:
                        cuenta_rut= cuenta_rut - 50000
                        print"Accion realizada exitosamente"
                        print"Saldo restante: $"+str(cuenta_rut)
                        print" "
                    if opcion==5:
                        montogirar= int(raw_input("Ingresar otro monto a girar:\n"))
                        print" "
                        if cuenta_rut>=montogirar:
                            print"Accion realizada exitosamente"
                            cuenta_rut= cuenta_rut - montogirar
                            print"Saldo restante en cuenta rut es $"+str(cuenta_rut)
                            print" "
                        else:
                            print"No se puede realizar accion, saldo insuficiente"
                            print" "
                else:
                    print"No es posible realizar el giro, saldo insuficiente"
                    print" "

            #Consultar saldo
            if tipoaccion==4:
                if cuenta_rut<0:
                    print"Usted debe $"+str(cuenta_rut)
                    print" "
                if cuenta_rut>=0:
                    print" "
                    print"Saldo disponible en cuenta rut es $"+str(cuenta_rut)
                    print" "
            
            print"¿Desea realizar otra accion en esta cuenta?"
            print"1 . Si "
            print"2 . No\n"
            otraaccion= int(raw_input("Ingresar opcion:\n"))
            if otraaccion == 1:
                tipocuenta = 1
            if otraaccion == 2:
                print" "
                print("¿Desea salir de la cuenta y trabajar en otra?")
                print" "
                print"Presione 1 para salir de la cuenta"
                print" "
                tecla= int(raw_input("Ingresar opcion:\n"))
                print" "
                tipocuenta= int(raw_input("Escoga una cuenta\n"
                                          "1 . Cuenta rut\n"
                                          "2 . Cuenta vista\n"
                                          "3 . Cuenta corriente\n"
                                          "4 . Salir del sistema\n"))
    
             
        #SE TRABAJA CON CUENTA VISTA
        while tipocuenta == 2: 
            print("Que desea hacer:\n")
            print("1 . Depositar ")
            print("2 . Transferir dinero a otra cuenta ")
            print("3 . Realizar giro ")
            print("4 . Consultar saldo\n")
            tipoaccion= int(raw_input("Escoger accion a realizar:\n"))
            print" "

            #Depósito
            if tipoaccion==1:  
                montodep= int(raw_input("Ingresar monto a depositar:\n"))
                cuenta_vista= cuenta_vista + montodep
                print" "
                print"Accion realizada exitosamente"
                print"Saldo actualizado"
                print"Su nuevo saldo en cuenta vista es de $"+str(cuenta_vista)
                print" "

            #Transferir
            if tipoaccion==2:
                selcuenta2= int(raw_input("Ingresar numero de cuenta a transferir:\n"))
                selmonto2= int(raw_input("Ingresar monto a transferir:\n"))
                print" "
                if cuenta_vista==0:
                    print"No se puede ejecutar accion, saldo insuficiente"
                    print" "
                if cuenta_vista<selmonto2:
                    print"No se puede ejecutar accion, saldo insuficiente"
                    print" "
                if cuenta_vista>=selmonto2:
                    print"Accion realizada exitosamente"
                    print" "
                    if selcuenta2==n_cuentarut:
                        n_cuentarut= n_cuentarut + selmonto2
                        print"Saldo actualizado en cuenta rut $"+str(cuenta_rut)
                        cuenta_vista= cuenta_vista - selmonto2
                        print"Saldo restante en cuenta vista es $"+str(cuenta_vista)
                        print" "
                    if selcuenta2==n_cuentacorr:
                        n_cuentacorr= n_cuentacorr + selmonto2
                        print"Saldo actualizado en cuenta corriente $"+str(cuenta_corriente)
                        cuenta_vista= cuenta_vista - selmonto2
                        print"Saldo restante en cuenta vista es $"+str(cuenta_vista)
                        print" "
            
            #Giro
            if tipoaccion==3:
                if cuenta_vista>0:
                    print" "
                    print"Opciones de giro:"
                    print"1 . $5000                      2 . $15000"
                    print"3 . $25000                     4 . $50000"
                    print"5 . Otro monto\n"
                    opcion= int(raw_input("Escoger una opción:\n"))
                    print" "
                    if opcion==1:
                        cuenta_vista= cuenta_vista - 5000
                        print"Accion realizada exitosamente"
                        print"Saldo restante: $"+str(cuenta_vista)
                        print" "
                    if opcion==2:
                        cuenta_vista= cuenta_vista - 15000
                        print"Accion realizada exitosamente"
                        print"Saldo restante: $"+str(cuenta_vista)
                        print" "
                    if opcion==3:
                        cuenta_vista= cuenta_vista - 25000
                        print"Accion realizada exitosamente"
                        print"Saldo restante: $"+str(cuenta_vista)
                        print" "
                    if opcion==4:
                        cuenta_vista= cuenta_vista - 50000
                        print"Accion realizada exitosamente"
                        print"Saldo restante: $"+str(cuenta_vista)
                        print" "
                    if opcion==5:
                        montogirar= int(raw_input("Ingresar otro monto a girar:\n"))
                        print" "
                        if cuenta_vista>=montogirar:
                            print"Accion realizada exitosamente"
                            cuenta_vista= cuenta_vista - montogirar
                            print"Saldo restante en cuenta vista es $"+str(cuenta_vista)
                            print" "
                        else:
                            print"No se puede realizar accion, saldo insuficiente"
                            print" "
                else:
                    print"No es posible realizar el giro, saldo insuficiente"
                    print" "
        
            #Consultar saldo
            if tipoaccion==4:
                if cuenta_vista<0:
                    print"Usted debe $"+str(cuenta_vista)
                    print" "
                if cuenta_vista>=0:
                    print"Saldo disponible en cuenta vista es $"+str(cuenta_vista)
                    print" "
    
            print"¿Desea realizar otra accion en esta cuenta?"
            print"1 . Si "
            print"2 . No\n"
            otraaccion= int(raw_input("Ingresar opcion:\n"))
            if otraaccion == 1:
                tipocuenta = 2
            if otraaccion == 2:
                print" "
                print("¿Desea salir de la cuenta y trabajar en otra?")
                print" "
                print"Presione 1 para salir de la cuenta"
                print" "
                tecla= int(raw_input("Ingresar opcion:\n"))
                print" "
                tipocuenta= int(raw_input("Escoga una cuenta\n"
                                          "1 . Cuenta rut\n"
                                          "2 . Cuenta vista\n"
                                          "3 . Cuenta corriente\n"
                                          "4 . Salir del sistema\n"))
    
        #SE TRABAJA CON CUENTA CORRIENTE
        while tipocuenta == 3: 
                print("Que desea hacer:\n")
                print("1 . Depositar ")
                print("2 . Transferir dinero a otra cuenta ")
                print("3 . Realizar giro ")
                print("4 . Consultar saldo\n")
                tipoaccion= int(raw_input("Escoger accion a realizar:\n"))
                print" "
    
                #Depósito
                if tipoaccion==1:  
                    montodep= int(raw_input("Ingresar monto a depositar:\n"))
                    cuenta_corriente= cuenta_corriente + montodep
                    print" "
                    print"Accion realizada exitosamente"
                    print"Saldo actualizado"
                    print"Su nuevo saldo en cuenta corriente es de $"+str(cuenta_corriente)
                    print" "

                #Transferir
                if tipoaccion==2:
                    selcuenta3= int(raw_input("Ingresar numero de cuenta a transferir:\n"))
                    selmonto3= int(raw_input("Ingresar monto a transferir:\n"))
                    print" "
                    if cuenta_corriente==0:
                        print"No se puede ejecutar accion, saldo insuficiente"
                        print" "
                    if cuenta_corriente<selmonto3:
                        print"No se puede ejecutar accion, saldo insuficiente"
                        print" "
                    if cuenta_corriente>=selmonto3:
                        print"Accion realizada exitosamente"
                        print" "
                        if selcuenta3==n_cuentarut:
                            n_cuentarut= n_cuentarut + selmonto3
                            print"Saldo actualizado en cuenta rut $"+str(cuenta_rut)
                            cuenta_corriente= cuenta_corriente - selmonto3
                            print"Saldo restante en cuenta corriente es $"+str(cuenta_corriente)
                        if selcuenta3==n_cuentavista:
                            n_cuentavista= n_cuentavista + selmonto3
                            print"Saldo actualizado en cuenta vista $"+str(cuenta_vista)
                            cuenta_corriente= cuenta_corriente - selmonto3
                            print"Saldo restante en cuenta corriente es $"+str(cuenta_corriente)
                            print" "

                #Giro
                if tipoaccion==3:
                    if cuenta_corriente>0:
                        print"Opciones de giro:"
                        print"1 . $5000                      2 . $15000"
                        print"3 . $25000                     4 . $50000"
                        print"5 . Otro monto\n"
                        opcion= int(raw_input("Escoger una opción:\n"))
                        print" "
                        if opcion==1:
                            cuenta_corriente= cuenta_corriente - 5000
                            print"Accion realizada exitosamente"
                            print"Saldo restante: $"+str(cuenta_corriente)
                            print" "
                        if opcion==2:
                            cuenta_corriente= cuenta_corriente - 15000
                            print"Accion realizada exitosamente"
                            print"Saldo restante: $"+str(cuenta_corriente)
                            print" "
                        if opcion==3:
                            cuenta_corriente= cuenta_corriente - 25000
                            print"Accion realizada exitosamente"
                            print"Saldo restante: $"+str(cuenta_corriente)
                            print" "
                        if opcion==4:
                            cuenta_corriente= cuenta_corriente - 50000
                            print"Accion realizada exitosamente"
                            print"Saldo restante: $"+str(cuenta_corriente)
                            print" "
                        if opcion==5:
                            montogirar= int(raw_input("Ingresar otro monto a girar:\n"))
                            print" "
                            if cuenta_corriente>=montogirar:
                                print"Accion realizada exitosamente"
                                cuenta_corriente= cuenta_corriente - montogirar
                                print"Saldo restante en cuenta corriente es $"+str(cuenta_corriente)
                            else:
                                print"No se puede realizar accion, saldo insuficiente"
                                print" "
                    else:
                        print"No es posible realizar el giro, saldo insuficiente"
                        print" "

                #Consultar saldo
                if tipoaccion==4:
                    if cuenta_corriente<0:
                        print"Usted debe $"+str(cuenta_corriente)
                        print" "
                    if cuenta_corriente>=0:
                        print"Saldo disponible en cuenta corriente es $"+str(cuenta_corriente)
                        print" "
    
                print"¿Desea realizar otra accion en esta cuenta?"
                print"1 . Si "
                print"2 . No"
                print" "
                otraaccion= int(raw_input("Ingresar opcion:\n"))
                if otraaccion == 1:
                    tipocuenta = 3
                if otraaccion == 2:
                    print" "
                    print("¿Desea salir de la cuenta y trabajar en otra?")
                    print" "
                    print"Presione 1 para salir de la cuenta"
                    print" "
                    tecla= int(raw_input("Ingresar opcion:\n"))
                    print" "
                    tipocuenta= int(raw_input("Escoga una cuenta\n"
                                              "1 . Cuenta rut\n"
                                              "2 . Cuenta vista\n"
                                              "3 . Cuenta corriente\n"
                                              "4 . Salir del sistema\n"))
        
        if tipocuenta!=4:
            m=1
        if tipocuenta == 4:
            print" "
            print"Que tenga buen día, hasta pronto"
            break
       
    if ingreso != clave:
        print" "
        print"Clave errónea. Intentos restantes:", limite
        print" "
        intentos= intentos - 1
        ingreso= ingreso = int(raw_input("Ingrese denuevo su contaseña:\n"))
        limite= limite - 1
        
        if intentos == 0 and clave!=ingreso:
            print" "            
            print"Clave incorrecta"
            print"Usted ha excedido el número de intentos permitidos"
            print"Su tarjeta ha sido bloqueada"
            print"Por favor contactarse con el banco"
            print" " 
        
        if intentos == 0 and clave == ingreso:
            m=1



Reflexión:

El desarrollo de software es un trabajo muy sofisticado que requiere de bastante concentración, paciencia y por sobre todo inteligencia, puesto que el producto debe funcionar para dar solución a la vida del hombre, utilizándose como una herramienta de ayuda eficaz y confiable. Esta actividad por sí sola detalla aquellos rasgos que he mencionado porque me ha permitido desarrollar en cierta forma la funcionalidad del típico cajero automático. Ciertamente no es un cajero que cumpla con la función total y absoluta que es trabajar con dinero físico, pero sí responde a la mayoría de las acciones que un usuario necesita de este tipo de máquinas o herramientas.

CALVINO Y LA REFORMA

Autor:

Rafael Fuentealba

Competencia:

Comunicación Oral y Escrita (Nivel 1)


Asignatura:

Integración I


Descripción de la Actividad:

Abarcar el tema de Calvino y la Reforma Calvinista haciendo referencia al contexto social en que se presenta, las áreas que abarca y los objetivos que se plantea.

Hipótesis:

La reforma Calvinista hace referencia a un tema de índole religioso en el cual se presentan puntos de cómo la autoridad de Dios pone imposiciones frente a la vida de las personas.

Análisis:

El calvinismo es un sistema de carácter teológico protestante que tiene su enfoque en la vida cristiana, poniendo énfasis en la autoridad de Dios sobre todas las cosas. 

Juan Calvino, quien fue el reformador religioso francés del siglo VXI, comienza a influir en la reforma protestante allá por el año 1536 al momento en que se publica su primera obra "Institución de la Religión Cristiana". Con el paso de los años, Calvino comienza a hacerse popular por sus obras, sus comentarios bíblicos y cartas pastorales en donde explicitaba su pensar, terminando finalmente por ser quien sistematizó muchas de las más importantes doctrinas que forman parte de la teología reformada, y las cuales se expandieron por toda Europa e inclusive llegó a Norteamérica y África.
Dentro de esta teología nacen los llamados "cinco puntos del calvinismo" que son un resumen de las diferencias entre el Calvinismo y el Arminianismo y que en cierta forma explican su pensar; estos puntos son:
  • La  depravación total. Dice que no se refiere a que un hombre es tan malvado como pueda ser, ni menos que el hombre sea capaz de reconocer la voluntad de Dios, mucho menos que sea incapaz de hacer un bien por el prójimo o dar lealtad externa a la adoración de este mismo. Nos dice que el hombre se afectó completamente al momento en que cayó en la tentación en el Huerto del Edén.
  • Elección incondicional: se habla de la dificultad que algunas personas tienen de creer en Dios, una dificultad que no existe al momento de pensar en lo que Dios hizo por los hijos de Israel.
  • Expiación limitada: habla particularmente de la muerte de Cristo en la cruz, se presenta un debate entre tres puntos esenciales: El primero Cristo muere para salvar a todo hombre sin ninguna distinción; el segundo, Cristo muere para salvar a nadie en singular; y el Tercero, Cristo muere para salvar a cierto número.
  • Gracia irresistible: presenta el tema de que los hombres son incapaces de salvarse a sí mismos a causa de su naturaleza caída y que por ello Cristo ha realizado su salvación. De esta forma Dios provee los medios para llamar a los beneficios de esa salvación que él mismo ha procurado.
  • Perseverancia de los santos: este es el distintivo del que cree y pertenece a Cristo, que está perseverando en las cosas de Cristo. La lógica de la salvación que comienza en la mente y propósito de Dios debe terminar en el cumplimiento del propósito de esos a quienes antes conoció; renegar de otros Dioses.


Un punto importante de destacar de esta reforma es lo que planteaba en relación acerca de que toda la vida es religión cristiana. El calvinismo menciona que la bondad y el poder de Dios tiene un libre e ilimitado alcance de actividad; esto quiere decir que Dios obra en todos los aspectos de la existencia del hombre, ya sean en ámbitos espirituales, físicos e intelectuales, público o privado, en la tierra o en el cielo. A partir de esto es posible decir que Dios es visto como el creador, preservador y gobernador de todo, lo que produce una dependencia absoluta de él.

Reflexión:

En el presente es posible distinguir aspectos propios de la reforma Calvinista, que se heredan en las iglesias católicas y no solo en eso, sino que en la vida de cada hombre creyente que estrecha fuertes lazos con Dios. Así mismo es posible ver la libertad de creencia en la sociedad, donde algunos montan su fe en Dios pero no generan un compromiso mayor, mientras que otros tantos reniegan de él y se cobijan bajo sus propias creencias.