def read_op():
iput = input("Выберите операцию: 1 - простые операции, 2 - расширенные опереции, 3 - тригонометрические действия с градусами, 4 - перевод в другую систему исчисления")
while not('1' <= iput <= '4'):
print('Неверный ввод')
iput = input("Выберите операцию: 1 - простые операции, 2 - расширенные опереции, 3 - sin, cos для градусов, 4 - перевод в другую систему исчисления")
return int(iput)
def extended_op():
import math
print("Выберите операцию: 1 - возведение в степень, 2 - остаток от деления, 3 - нахождение корня")
vib = input()
while not('1' <= vib <= '3'):
print('Неверный ввод')
vib = input("Выберите операцию: 1 - возведение в степень, 2 - остаток от деления, 3 - нахождение корня")
vib = int(vib)
if vib == 1:
print ("Введите число")
value = input()
while not(value.isdigit()):
print('Неверный ввод')
value = input("Введите число")
value = int(value)
print ("введите степень")
stepen = input()
while not(stepen.isdigit()):
print('Неверный ввод')
stepen = input("Введите число")
stepen = int(stepen)
print (value ** stepen)
elif vib == 2:
print("Введите число 1")
value1 = input()
while not (value1.isdigit()):
print('Неверный ввод')
value1 = input("Введите число 1")
value1 = int(value1)
print("Введите число 2")
value2 = input()
while not (value2.isdigit()):
print('Неверный ввод')
value2 = input("Введите число 2")
value2 = int(value2)
if value2 == 0:
print ("На ноль делить нельзя")
else:
print (value1 % value2)
else:
print("Введите число")
value = input()
while not (value.isdigit()):
print('Неверный ввод')
value = input("Введите число")
value = int(value)
print (math.sqrt(value))
def calc_degrees():
import math
print("Введите: 1 - sin(), 2 - cos()")
vib = input()
while not('1' <= vib <= '2'):
print('Неверный ввод')
print("Введите: 1 - sin(), 2 - cos()")
vib = input()
vib = int(vib)
print("Введите угол в градусах")
angle = input()
while not(angle.isdigit()):
print('Неверный ввод')
angle = input("Введите угол в градусах")
angle = int(angle)
if vib == 1:
print(math.sin(angle / 360 * math.pi * 2))
else:
print(math.cos(angle / 360 * math.pi * 2))
def calc_simple():
print('Введите первое число:')
a = input()
while not (a.isdigit()):
print('Неверный ввод')
a = input("Введите число")
a = int(a)
print('Введите второе число:')
b = input()
while not (b.isdigit()):
print('Неверный ввод')
b = input("Введите число")
b = int(b)
v = input('Введите операцию:')
while v != '+' and v != '-' and v != '*' and v != '/':
print('неверный ввод')
v = input('Введите операцию:')
if v == '+':
r = a + b
if v == '-':
r = a - b
if v == '/':
if b == 0:
print('на ноль делить нельзя')
return 0
r = float(a / b)
if v == '*':
r = a * b
print('Результат =', r)
def calc_10_2():
print('Введите число в 10-ной системе счисления:')
a = input()
if a.isdigit():
n = int(a)
b = ''
while n > 0:
b = str(n % 2) + b
n = n // 2
print('Число ', a, ' в двоичной системе = ', b)
else:
print("Вы ввели число некорректно. Введите число еще раз: ")
calc_10_2()
def calc_10_16():
print("Введите число:")
num = input()
from_base = 10
to_base = 16
if isinstance(num, str):
n = int(num, from_base)
else:
n = int(num)
alphabet = "0123456789ABCDEF"
if n < to_base:
print(alphabet[n])
else:
b = ''
z = 0
x = ''
while n >= to_base:
z = n // 16
x = n % 16
b = alphabet[x] + b
n = n // 16
b = alphabet[n] + b
print('Число в 16-ной системе счисления: ', b)
def menu_notation():
n = input('''
1. Перевод 10СИ -> 2СИ;
2. Перевод 10CB -> 16СИ;
Введите действие:
''')
if n.isdigit():
if int(n) == 1:
calc_10_2()
elif int(n) == 2:
calc_10_16()
else:
print('Вы должны ввести числа 1 или 2!', end='')
menu_notation()
else:
print('Вы должны ввести ЧИСЛА 1 или 2!', end='')
menu_notation()
def menu_calc():
tmp = 1
while tmp == 1:
operation = read_op()
if operation == 1:
calc_simple()
elif operation == 2:
extended_op()
elif operation == 3:
calc_degrees()
else:
menu_notation()
print('Введите: 1 - чтобы продолжить работу, 2 - чтобы вернуться')
tmp = input()
while not('1' <= tmp <= '2'):
print('неверный ввод')
print('Введите: 1 - чтобы продолжить работу, 2 - чтобы вернуться')
tmp = input()
tmp = int(tmp)