-
Notifications
You must be signed in to change notification settings - Fork 1
/
Calculadora.py
206 lines (183 loc) · 6.12 KB
/
Calculadora.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
import math
import sys
import time
import random
import re
from config import DelayTimeVar
def CambiarDelayVar():
new_delay = int(input("Ingrese nuevo valor de espera: "))
# Update the imported DelayTimeVar with the new value
DelayTimeVar = new_delay
return DelayTimeVar
def sumar():
numero1suma = obtener_numero("Primer número")
numero2suma = obtener_numero("Segundo número")
resultado = numero1suma + numero2suma
sys.stdout.write("El resultado es: ")
print(resultado)
time.sleep(DelayTimeVar)
# Función para calcular la resta de dos números
def restar():
numero1resta = obtener_numero("Primer número")
numero2resta = obtener_numero("Segundo número")
resultado = numero1resta - numero2resta
sys.stdout.write("El resultado es: ")
print(resultado)
time.sleep(DelayTimeVar)
# Función para calcular la multiplicación de dos números
def multiplicar():
numero1multiplicar = obtener_numero("Primer número")
numero2multiplicar = obtener_numero("Segundo número")
resultado = numero1multiplicar * numero2multiplicar
sys.stdout.write("El resultado es: ")
print(resultado)
time.sleep(DelayTimeVar)
# Función para calcular la división de dos números
def dividir():
numero1dividir = obtener_numero("Primer número")
numero2dividir = obtener_numero("Segundo número")
if numero2dividir == 0:
print("No se puede dividir por cero.")
return
resultado = numero1dividir / numero2dividir
sys.stdout.write("El resultado es: ")
print(resultado)
time.sleep(DelayTimeVar)
# Función para calcular la raíz cuadrada de un número
def raizcuadrada():
raiz = obtener_numero("Número para sacarle la raíz cuadrada")
if raiz < 0:
print("No se puede calcular la raíz cuadrada de un número negativo.")
return
raizresultado = math.sqrt(raiz)
sys.stdout.write("El resultado es: ")
print(raizresultado)
time.sleep(DelayTimeVar)
# Función para calcular la longitud de una circunferencia
def circunferencia():
radio = obtener_numero("Radio de la circunferencia")
if radio < 0:
print("El radio no puede ser negativo.")
return
pi = math.pi
longitud = 2 * pi * radio
print("Longitud de la circunferencia:", longitud)
time.sleep(DelayTimeVar)
# Función para calcular la potencia de un número
def elevar():
numero1elevar = obtener_numero("Base")
numero2elevar = obtener_numero("Exponente")
resultado = math.pow(numero1elevar, numero2elevar)
sys.stdout.write("El resultado es: ")
print(resultado)
time.sleep(DelayTimeVar)
# Función para calcular el coseno de un número
def coseno():
cost = obtener_numero("Número para sacarle el coseno")
cosresultado = math.cos(cost)
sys.stdout.write("El resultado es: ")
print(cosresultado)
time.sleep(DelayTimeVar)
# Función para convertir de radianes a grados
def radianes():
rads = obtener_numero("Número para convertir de radianes a grados")
radresultado = math.degrees(rads)
sys.stdout.write("El resultado es: ")
print(radresultado)
# Función para convertir de grados a radianes
def grados():
grads = obtener_numero("Número para convertir de grados a radianes")
gradres = math.radians(grads)
sys.stdout.write("El resultado es: ")
print(gradres)
# Función para mostrar el valor de pi
def npi():
print("El valor de pi es:", math.pi)
time.sleep(DelayTimeVar)
# Función para mostrar el valor de e
def enum():
print("El valor de e es:", math.e)
time.sleep(DelayTimeVar)
# Función para calcular el número Fibonacci de un número
def fib(n):
if n < 2:
return n
else:
# fn = fn-1 + fn-2
return fib(n-1) + fib(n-2)
# Función para mostrar el número Fibonacci de un número
def fib_menu():
fibnum = int(input("Número Fibonacci: "))
print("El resultado es:", fib(fibnum))
time.sleep(DelayTimeVar)
def factorial():
numero = obtener_numero("Número para obtener el factorial: ")
factorial = 1
i = 1
while (i <= numero):
factorial = factorial * i
i = i + 1
print ("El factorial de " + str(numero) + " es " + str(factorial))
time.sleep(DelayTimeVar)
# Función para obtener un número
def obtener_numero(mensaje):
while True:
valor = input(mensaje + ": ")
if not valor.replace(".", "", 1).isdigit():
print("Valor no válido. Ingrese el valor nuevamente.")
else:
return float(valor)
def calcmenu():
while True:
print("\n¿Qué operación desea realizar?")
print("0. Cambiar tiempo de espera")
print("1. Sumar")
print("2. Restar")
print("3. Multiplicar")
print("4. Dividir")
print("5. Raíz Cuadrada")
print("6. Longitud de la Circunferencia")
print("7. Elevar a la Potencia")
print("8. Coseno")
print("9. Convertir a Radianes")
print("10. Convertir a Grados")
print("11. Mostrar el valor de Pi")
print("12. Mostrar el valor de e")
print("13. Calcular el número Fibonacci")
print("14. Calcular el factorial de un número")
print("15. Volver al menú anterior")
operation = input("Ingrese su opción: ")
if operation == '0':\
CambiarDelayVar()
elif operation == '1':
sumar()
elif operation == '2':
restar()
elif operation == '3':
multiplicar()
elif operation == '4':
dividir()
elif operation == '5':
raizcuadrada()
elif operation == '6':
circunferencia()
elif operation == '7':
elevar()
elif operation == '8':
coseno()
elif operation == '9':
radianes()
elif operation == '10':
grados()
elif operation == '11':
npi()
elif operation == '12':
enum()
elif operation == '13':
fib_menu()
elif operation == '14':
factorial()
elif operation == '15':
break
else:
print("Opción inválida. Intente nuevamente.")