Advertisement
Sivoha

calc

Feb 28th, 2020
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 8.11 KB | None | 0 0
  1. import math
  2.  
  3. b = int()
  4. c = int()
  5. d = int()
  6. b1 = int()
  7. c1 = int()
  8. f = int()
  9. e = int()
  10.  
  11. def zerodiv(c):
  12.     while (c == 0):
  13.         print('Делить на ноль нельзя! Введи корректное число: ')
  14.         c = indigit()
  15.     return c
  16. def incorrect(f):
  17.     while (f <= 0):
  18.         print('Введите корректное значение')
  19.         f = indigit()
  20.     return f
  21. def indigit():
  22.     while True:
  23.         try:
  24.             d = float(input())
  25.         except ValueError:
  26.             print('Введите корректное значение:')
  27.         else:
  28.             return d
  29.             break
  30. def plus():
  31.         print('Введите первое число: ')
  32.         b = indigit()
  33.         print('Введите второе число: ')
  34.         c = indigit()
  35.         return b + c
  36. def minus():
  37.     print('Введите первое число: ')
  38.     b = indigit()
  39.     print('Введите второе число: ')
  40.     c = indigit()
  41.     return b - c
  42. def mult():
  43.     print('Введите первое число: ')
  44.     b = indigit()
  45.     print('Введите второе число: ')
  46.     c = indigit()
  47.     return b * c
  48. def divis():
  49.     print('Введите первое число: ')
  50.     b = indigit()
  51.     print('Введите второе число: ')
  52.     c = indigit()
  53.     if (c == 0):
  54.         c = zerodiv(c)
  55.     return b / c
  56. def div():
  57.     print('Введите первое число: ')
  58.     b = indigit()
  59.     print('Введите второе число: ')
  60.     c = indigit()
  61.     if (c == 0):
  62.         c = zerodiv(c)
  63.     return b // c
  64. def mod():
  65.     print('Введите первое число: ')
  66.     b = indigit()
  67.     print('Введите второе число: ')
  68.     c = indigit()
  69.     if (c == 0):
  70.         c = zerodiv(c)
  71.     return b % c
  72. def pow():
  73.     print('Введите число: ')
  74.     b = indigit()
  75.     print('Введите нужную степень: ')
  76.     c = indigit()
  77.     return b ** c
  78. def sqrt():
  79.     print('Введите число: ')
  80.     b = indigit()
  81.     if (b < 0):
  82.         while (b < 0):
  83.             print('Вычесть квадратный корень из отрицательного числа нельзя! Введи корректное число: ')
  84.             b = indigit()
  85.     return b ** 0.5
  86. def nod():
  87.     print('Введите первое число: ')
  88.     b = indigit()
  89.     print('Введите второе число: ')
  90.     c = indigit()
  91.     while (b != c):
  92.         if (b > c):
  93.             b -= c
  94.         else:
  95.             c -= b
  96.     return b
  97. def nok():
  98.     print('Введите первое число: ')
  99.     b = indigit()
  100.     print('Введите второе число: ')
  101.     c = indigit()
  102.     b1 = b
  103.     c1 = c
  104.     while (b1 != c1):
  105.         if (b1 > c1):
  106.             b1 -= c1
  107.         else:
  108.             c1 -= b1
  109.     return b * c / b1
  110. def triangle():
  111.     print('Введите длину первой стороны: ')
  112.     b = indigit()
  113.     if (b <= 0):
  114.         f = b
  115.         incorrect(f)
  116.     print('Введите длину второй стороны: ')
  117.     c = indigit()
  118.     if (c <= 0):
  119.         f = c
  120.         incorrect(f)
  121.     print('Введите длину третьей стороны: ')
  122.     d = indigit()
  123.     if (d <= 0):
  124.         f = d
  125.         incorrect(f)
  126.     if (b ** 2 + c ** 2 == d ** 2):
  127.         e = 'прямоугольный'
  128.     elif  (b ** 2 + c ** 2 > d ** 2):
  129.         e = 'остроугольный'
  130.     elif (b ** 2 + c ** 2 < d ** 2):
  131.         e = 'тупоугольный'
  132.     else:
  133.         e = 'не существует'
  134.     return e
  135. def pifagor():
  136.     print('Длину чего вам нужно найти?\n'
  137.           '1) Гипотенузы\n'
  138.           '2) Неизвестного катета')
  139.     a = indigit()
  140.     if (a == 1):
  141.         print('Введите длину первого катета:')
  142.         b = indigit()
  143.         if (b <= 0):
  144.             f = b
  145.             incorrect(f)
  146.         print('Введите длину второго катета:')
  147.         c = indigit()
  148.         if (c <= 0):
  149.             f = c
  150.             incorrect(f)
  151.         d = (b ** 2 + c ** 2) ** 0.5
  152.     elif (a == 2):
  153.         print('Введите длину известного катета:')
  154.         b = indigit()
  155.         if (b <= 0):
  156.             f = b
  157.             incorrect(f)
  158.         print('Введите длину гипотенузы:')
  159.         c = indigit()
  160.         if (c <= 0):
  161.             f = c
  162.             incorrect(f)
  163.         d = (c ** 2 - b ** 2) ** 0.5
  164.     return d
  165. def geron():
  166.     print('Введите длину первой стороны:')
  167.     b = indigit()
  168.     if (b <= 0):
  169.         f = b
  170.         incorrect(f)
  171.     print('Введите длину второй стороны:')
  172.     c = indigit()
  173.     if (c <= 0):
  174.         f = c
  175.         incorrect(f)
  176.     print('Введите длину третьей стороны:')
  177.     d = indigit()
  178.     if (d <= 0):
  179.         f = d
  180.         incorrect(f)
  181.     f = (b + c + d) / 2
  182.     return (f * (f - b) * (f - c) * (f * d)) ** 0.5
  183. def cos():
  184.     print('Введите длину первой стороны:')
  185.     b = indigit()
  186.     if (b <= 0):
  187.         f = b
  188.         incorrect(f)
  189.     print('Введите длину второй стороны:')
  190.     c = indigit()
  191.     if (c <= 0):
  192.         f = c
  193.         incorrect(f)
  194.     print('Введите величину угла между сторонами:')
  195.     d = indigit()
  196.     if (d <= 0):
  197.         f = d
  198.         incorrect(f)
  199.     return (b ** 2 + c ** 2 - 2 * b * c * math.cos(math.radians(d))) ** 0.5
  200.  
  201.  
  202. print('калькулятор by сивоха')
  203. while True:
  204.     print('1) Сложение\n'
  205.           '2) Вычитание\n'
  206.           '3) Умножение\n'
  207.           '4) Деление\n'
  208.           '5) Получить целую часть от деления\n'
  209.           '6) Получить остаток от деления\n'
  210.           '7) Возведение числа в степень\n'
  211.           '8) Получить квадратный корень из числа\n'
  212.           '9) Вычислить НОД двух чисел\n'
  213.           '10) Вычислить НОК двух чисел\n'
  214.           '11) Определить вид треугольника\n'
  215.           '12) Найти длину неизвестной стороны прямоугольного треугольника\n'
  216.           '13) Вычислить площадь треугольника, имея 3 стороны\n'
  217.           '14) Найти длину неизвестной стороны, имея 2 стороны и угол между ними\n'
  218.           '15) Выйти из калькулятора\n'
  219.           'Вам требуется: ')
  220.     a = indigit()
  221.     if (a == 1):
  222.         print ('Сумма чисел равна:', plus())
  223.     elif (a == 2):
  224.         print('Разность чисел равна:', minus())
  225.     elif (a == 3):
  226.         print('Произведение чисел равно:', mult())
  227.     elif (a == 4):
  228.         print('Частное чисел равно:', divis())
  229.     elif (a == 5):
  230.         print('Целая часть от деления равна:', div())
  231.     elif (a == 6):
  232.         print('Остаток от деления равен:', mod())
  233.     elif (a == 7):
  234.         print('Полученное число:', pow())
  235.     elif (a == 8):
  236.         print('Квадратный корень числа равен:', sqrt())
  237.     elif (a == 9):
  238.         print('НОД чисел равен:', nod())
  239.     elif (a == 10):
  240.         print('НОК чисел равен:', nok())
  241.     elif (a == 11):
  242.         print('Ваш треугольник', triangle())
  243.     elif (a == 12):
  244.         print('Длина неизвестной стороны равна:', pifagor())
  245.     elif (a == 13):
  246.         print('Площадь треугольника равна:', geron())
  247.     elif (a == 14):
  248.         print('Длина неизвестной стороны равна:', cos())
  249.     elif (a == 15):
  250.         print('До встречи!')
  251.         break
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement