Advertisement
Guest User

Untitled

a guest
Nov 17th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 17.92 KB | None | 0 0
  1. confg = ["0", "1", "11", "111", "1111", "11111"]
  2.  
  3. #Клавиатура
  4. def keyboard_chose(text,a1,a2,a3,a4,b1,b2,b3,b4,c1,c2,c3,c4,d1,d2,d3,d4,e1,e2,e3,e4,f1,f2,f3,f4,g1,g2,g3,g4,h1,h2,h3,h4):
  5.     while True:
  6.         print(text)
  7.         print("1 - следующая страница, 2 - "+a1+", 3 - "+a2+", 4 - "+a3+", 5 - "+a4+", 0 - выход")
  8.         keyboard_sub_menu = input("\nkeyboard@: ")
  9.         if keyboard_sub_menu == confg[0]: break
  10.         if keyboard_sub_menu == confg[2]:
  11.             if a1 == "Пробел":
  12.                 text += " "
  13.             else:
  14.                 text += a1
  15.         if keyboard_sub_menu == confg[3]:
  16.             if a2 == "Удаление последнего символа":
  17.                 text = text[:-1]
  18.             else:
  19.                 text += a2
  20.         if keyboard_sub_menu == confg[4]:
  21.             if a3 == "Перенос строки":
  22.                 text += "\n"
  23.             else:
  24.                 text += a3
  25.         if keyboard_sub_menu == confg[5]: text += a4
  26.         if keyboard_sub_menu == confg[1]:
  27.             print("1 - следующая страница, 2 - "+b1+", 3 - "+b2+", 4 - "+b3+", 5 - "+b4+", 0 - выход")
  28.             keyboard_sub_menu = input("\nkeyboard@: ")
  29.             if keyboard_sub_menu == confg[0]: break
  30.             if keyboard_sub_menu == confg[2]: text += b1
  31.             if keyboard_sub_menu == confg[3]: text += b2
  32.             if keyboard_sub_menu == confg[4]: text += b3
  33.             if keyboard_sub_menu == confg[5]: text += b4
  34.             if keyboard_sub_menu == confg[1]:
  35.                 print("1 - следующая страница, 2 - "+c1+", 3 - "+c2+", 4 - "+c3+", 5 - "+c4+", 0 - выход")
  36.                 keyboard_sub_menu = input("\nkeyboard@: ")
  37.                 if keyboard_sub_menu == confg[0]: break
  38.                 if keyboard_sub_menu == confg[2]: text += c1
  39.                 if keyboard_sub_menu == confg[3]: text += c2
  40.                 if keyboard_sub_menu == confg[4]: text += c3
  41.                 if keyboard_sub_menu == confg[5]: text += c4
  42.                 if keyboard_sub_menu == confg[1]:
  43.                     print("1 - следующая страница, 2 - "+d1+" 3 - "+d2+", 4 - "+d3+", 5 - "+d4+", 0 - выход")
  44.                     keyboard_sub_menu = input("\nkeyboard@: ")
  45.                     if keyboard_sub_menu == confg[0]: break
  46.                     if keyboard_sub_menu == confg[2]: text += d1
  47.                     if keyboard_sub_menu == confg[3]: text += d2
  48.                     if keyboard_sub_menu == confg[4]: text += d3
  49.                     if keyboard_sub_menu == confg[5]: text += d4
  50.                     if keyboard_sub_menu == confg[1]:
  51.                         print("1 - следующая страница, 2 - "+e1+", 3 - "+e2+", 4 - "+e3+", 5 - "+e4+", 0 - выход")
  52.                         keyboard_sub_menu = input("\nkeyboard@: ")
  53.                         if keyboard_sub_menu == confg[0]: break
  54.                         if keyboard_sub_menu == confg[2]: text += e1
  55.                         if keyboard_sub_menu == confg[3]: text += e2
  56.                         if keyboard_sub_menu == confg[4]: text += e3
  57.                         if keyboard_sub_menu == confg[5]: text += e4
  58.                         if keyboard_sub_menu == confg[1]:
  59.                             print("1 - следующая страница, 2 - "+f1+", 3 - "+f2+", 4 - "+f3+", 5 - "+f4+", 0 - выход")
  60.                             keyboard_sub_menu = input("\nkeyboard@: ")
  61.                             if keyboard_sub_menu == confg[0]: break
  62.                             if keyboard_sub_menu == confg[2]: text += f1
  63.                             if keyboard_sub_menu == confg[3]: text += f2
  64.                             if keyboard_sub_menu == confg[4]: text += f3
  65.                             if keyboard_sub_menu == confg[5]: text += f4
  66.                             if keyboard_sub_menu == confg[1]:
  67.                                 print("1 - следующая страница, 2 - "+g1+", 3 - "+g2+", 4 - "+g3+", 5 - "+g4+", 0 - выход")
  68.                                 keyboard_sub_menu = input("\nkeyboard@: ")
  69.                                 if keyboard_sub_menu == confg[0]: break
  70.                                 if keyboard_sub_menu == confg[2]: text += g1
  71.                                 if keyboard_sub_menu == confg[3]: text += g2
  72.                                 if keyboard_sub_menu == confg[4]: text += g3
  73.                                 if keyboard_sub_menu == confg[5]: text += g4
  74.                                 if keyboard_sub_menu == confg[1]:
  75.                                     print("1 - следующая страница, 2 - "+h1+", 3 - "+h2+", 4 - "+h3+", 5 - "+h4+", 0 - выход")
  76.                                     keyboard_sub_menu = input("\nkeyboard@: ")
  77.                                     if keyboard_sub_menu == confg[0]: break
  78.                                     if keyboard_sub_menu == confg[2]: text += h1
  79.                                     if keyboard_sub_menu == confg[3]: text += h2
  80.                                     if keyboard_sub_menu == confg[4]: text += h3
  81.                                     if keyboard_sub_menu == confg[5]: text += h4
  82.     return text
  83.    
  84.    
  85. def keyboard(text):
  86.     while True:
  87.         print("\n" + text + "\n")
  88.         print("1 - Русский язык, 2 - Английский язык, 3 - цифры и знаки, 4 - Операции над текстом, 0 - Подтвердить")
  89.         keyboard_menu = input('\nkeyboard@: ')
  90.         # о а е и н !с т р л !в п у к !м д я ь !ы з б г! ш ч й ж !ю х щ ц !ф э ъ ё!
  91.         if keyboard_menu == confg[0]: break
  92.         if keyboard_menu == confg[1]: text = keyboard_chose(text, "о", "а", "е", "и", "н", "с", "т", "р", "л", "в", "п", "у", "к", "м", "д", "я", "ь", "ы", "з", "б", "г", "ш", "ч", "й", "ж", "ю", "х", "щ", "ц", "ф", "э", "ъ")
  93.         if keyboard_menu == confg[2]: text = keyboard_chose(text, "e", "a", "o", "i", "d", "h", "n", "r", "s", "t", "u", "y", "c", "f", "g", "l", "m", "w", "b", "k", "p", "q", "x", "z", "v", "j", "", "", "", "", "", "")
  94. #e, a, o, i,\ d, h, n, r, \s, t, u, y, \c, f, g, l, \m, w, b, k, \p, q, x, z\v,j.
  95.        
  96.         if keyboard_menu == confg[3]: text = keyboard_chose(text, "Пробел", ".", ",", "!", "?", "-", ":", ";", "1", "2", "3", "4", "5", "6", "7", "8", "9", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "")
  97.        
  98.         if keyboard_menu == confg[4]: text = keyboard_chose(text, "Пробел", "Удаление последнего символа", "Перенос строки", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "")
  99.        
  100.     return text
  101. #Клавиатура
  102.  
  103. #Калькулятор
  104. import fractions
  105. import math
  106.  
  107. calc_confg = [9.80666, 0.5]
  108.  
  109. calc_a = 0
  110. calc_b = 0
  111. calc_mode = "+"
  112. calc_sum = 0
  113.  
  114. def calc_screen():
  115.     print("\n" + str(calc_a) + " " + calc_mode + " " + str(calc_b) + " = " + str(calc_sum))
  116.  
  117. def calc_int(a, x):
  118.     while True:
  119.         print("\n" + a + " = " + str(x) + "\n1 - +, 2 - -; 3 - /, 4 - *, 5 - следующая страница, 0 - выход")
  120.         calc_int_menu = input("calc@: ")
  121.        
  122.         # Сложение
  123.         while calc_int_menu == confg[1]:
  124.             print("\n" + a + " = " + str(x) + "\n1 - +1, 2 - +5; 3 - +10, 4 - +50, 5 - +100, 0 - выход")
  125.             calc_int_sub_menu = input("calc@: ")
  126.             if calc_int_sub_menu == confg[1]: x += 1
  127.             if calc_int_sub_menu == confg[2]: x += 5
  128.             if calc_int_sub_menu == confg[3]: x += 10
  129.             if calc_int_sub_menu == confg[4]: x += 50
  130.             if calc_int_sub_menu == confg[5]: x += 100
  131.             if calc_int_sub_menu == confg[0]: break
  132.            
  133.         #вычитание
  134.         while calc_int_menu == confg[2]:
  135.             print("\n" + a + " = " + str(x) + "\n1 - -1, 2 - -5; 3 - -10, 4 - -50, 5 - -100, 0 - выход")
  136.             calc_int_sub_menu = input("calc@: ")
  137.             if calc_int_sub_menu == confg[1]: x -= 1
  138.             if calc_int_sub_menu == confg[2]: x -= 5
  139.             if calc_int_sub_menu == confg[3]: x -= 10
  140.             if calc_int_sub_menu == confg[4]: x -= 50
  141.             if calc_int_sub_menu == confg[5]: x -= 100
  142.             if calc_int_sub_menu == confg[0]: break
  143.        
  144.         #деление
  145.         while calc_int_menu == confg[3]:
  146.             print("\n" + a + " = " + str(x) + "\n1 - /10, 2 - /100; 3 - /1000, 0 - выход")
  147.             calc_int_sub_menu = input("calc@: ")
  148.             if calc_int_sub_menu == confg[1]: x /= 10
  149.             if calc_int_sub_menu == confg[2]: x /= 100
  150.             if calc_int_sub_menu == confg[3]: x /= 1000
  151.             if calc_int_sub_menu == confg[0]: break
  152.            
  153.             #умножение
  154.         while calc_int_menu == confg[4]:
  155.             print("\n" + a + " = " + str(x) + "\n1 - *-1, 2 - *10; 3 - *100, 4 - *0, 0 - выход")
  156.             calc_int_sub_menu = input("calc@: ")
  157.             if calc_int_sub_menu == confg[1]: x *= -1
  158.             if calc_int_sub_menu == confg[2]: x *= 10
  159.             if calc_int_sub_menu == confg[3]: x *= 100
  160.             if calc_int_sub_menu == confg[4]: x *= 0
  161.             if calc_int_sub_menu == confg[0]: break
  162.            
  163.         if calc_int_menu == confg[5]:
  164.             print("\n" + a + " = " + str(x) + "\n1 - пи, 2 - е; 3 - гравитационная постоянная")
  165.             calc_int_sub_menu = input("calc@: ")
  166.             if calc_int_sub_menu == confg[1]: x = 3.1415926
  167.             if calc_int_sub_menu == confg[2]: x = 2.718281
  168.             if calc_int_sub_menu == confg[3]: x = 6.67e-11
  169.        
  170.         if calc_int_menu == confg[0]: break
  171.     return x
  172.    
  173. def calc_chose():
  174.     print("1 - +, 2 - -, 3 - *, 4 - /, 5 - следующая страница")
  175.     calc_chose_menu = input("calc@: ")
  176.     if calc_chose_menu == confg[1]: calc_mode = "+"
  177.     if calc_chose_menu == confg[2]: calc_mode = "-"
  178.     if calc_chose_menu == confg[3]: calc_mode = "*"
  179.     if calc_chose_menu == confg[4]: calc_mode = "/"
  180.     if calc_chose_menu == confg[5]:
  181.         print("1 - степень, 2 - корень, 3 - синус, 4 - косинус, 5 - следующая страница")
  182.         calc_chose_menu = input("calc@: ")
  183.         if calc_chose_menu == confg[1]: calc_mode = "ст"
  184.         if calc_chose_menu == confg[2]: calc_mode = "кк"
  185.         if calc_chose_menu == confg[3]: calc_mode = "sin"
  186.         if calc_chose_menu == confg[4]: calc_mode = "cos"
  187.         if calc_chose_menu == confg[5]:
  188.             print("1 - логарифм, 2 - факториал, 3 - тангенс")
  189.             calc_chose_menu = input("calc@: ")
  190.             if calc_chose_menu == confg[1]: calc_mode = "log"
  191.             if calc_chose_menu == confg[2]: calc_mode = "fac"
  192.             if calc_chose_menu == confg[3]: calc_mode = "tan"
  193.     return calc_mode
  194.    
  195. def calc_func_chose():
  196.     print("1 - конвертация, 2 - падение, 3 - площадь многоугольника")
  197.     calc_func_chose_menu = input("\ncalc@: ")
  198.     if calc_func_chose_menu == confg[1]:
  199.         print("1 - (a) м/с -> км/ч, 2 - (b) км/ч -> м/с")
  200.         calc_func_chose_sub_menu = input("\ncalc@: ")
  201.         if calc_func_chose_sub_menu == confg[1]: calc_mode = "м/с -> км/ч"
  202.         if calc_func_chose_sub_menu == confg[2]: calc_mode = "км/ч -> м/с"
  203.     if calc_func_chose_menu == confg[2]:
  204.         print("\ng = " + str(calc_confg[0]) + "\nВы можете его изменить в пункте переноса результата\n\n1 - (fall1) Расстояние, пройденное телом за время падения (a), зная конечную скорость (b)\n2 - (fall2) Расстояние, пройденное телом за время падения(a), зная ускорение свободного падения\n3 - (fall3) Скорость тела, в конце падения, зная ускорение свободного падения и время(a)\n4 - (fall4) Скорость тела, в конце падения, зная ускорение свободного падения и высоту (a)")
  205.         calc_func_chose_sub_menu = input("\ncalc@: ")
  206.         if calc_func_chose_sub_menu == confg[1]: calc_mode = "fall1"
  207.         if calc_func_chose_sub_menu == confg[2]: calc_mode = "fall2"
  208.         if calc_func_chose_sub_menu == confg[3]: calc_mode = "fall3"
  209.         if calc_func_chose_sub_menu == confg[4]: calc_mode = "fall4"
  210.     if calc_func_chose_menu == confg[3]:
  211.         print("Размер стороны клетки "+ str(calc_confg[1]) + " см площадь " + str(calc_confg[1] ** 2) + " см²\nРазмер клетки вы можете изменить в пункте переноса переменных\n\nПлощадь многоугольника на клетчатой бумаге по соприкосновения периметром пересечения клеток (a) и внутиенним точкам (b)")
  212.         calc_mode = "sq"
  213.     return calc_mode
  214. #Калькулятор
  215.  
  216. #Brainfuck
  217. import os
  218.  
  219. bf_code = ""
  220. bf_adrs = ""
  221.  
  222. if not os.path.isdir("programs"):
  223.    os.makedirs("programs")
  224.  
  225. def bf_block(code):
  226.     opened = []
  227.     blocks = {}
  228.     for i in range(len(code)):
  229.         if code[i] == '[':
  230.             opened.append(i)
  231.         elif code[i] == ']':
  232.             blocks[i] = opened[-1]
  233.             blocks[opened.pop()] = i
  234.     return blocks
  235.  
  236. def bf_parse(code):
  237.     return ''.join(c for c in code if c in '><+-.,[]')
  238.  
  239. def bf_run(code):
  240.     code = bf_parse(code)
  241.     x = i = 0
  242.     bf = {0: 0}
  243.     blocks = bf_block(code)
  244.     l = len(code)
  245.     while i < l:
  246.         sym = code[i]
  247.         if sym == '>':
  248.             x += 1
  249.             bf.setdefault(x, 0)
  250.         elif sym == '<':
  251.             x -= 1
  252.         elif sym == '+':
  253.             bf[x] += 1
  254.         elif sym == '-':
  255.             bf[x] -= 1
  256.         elif sym == '.':
  257.             print(chr(bf[x]), end='')
  258.         elif sym == ',':
  259.             bf[x] = int(input('Input: '))
  260.         elif sym == '[':
  261.             if not bf[x]: i = blocks[i]
  262.         elif sym == ']':
  263.             if bf[x]: i = blocks[i]
  264.         i += 1
  265.  
  266. def bf_edit(code):
  267.     while True:
  268.         print(code + "\n\n1 - Следующая страница, 2 - +, 3 - -, 4 - >, 5 - <, 0 - выход")
  269.         bf_edit_menu = input("\nbf@: ")
  270.         if bf_edit_menu == confg[2]: code += "+"
  271.         if bf_edit_menu == confg[3]: code += "-"
  272.         if bf_edit_menu == confg[4]: code += ">"
  273.         if bf_edit_menu == confg[5]: code += "<"
  274.         if bf_edit_menu == confg[0]: break
  275.         while bf_edit_menu == confg[1]:
  276.             print(code + "\n\n1 - . 2 - , 3 - [, 4 - ], 5 - убрать последний символ, 0 - прошлая страница")
  277.             bf_edit_sub_menu = input("\nbf@: ")
  278.             if bf_edit_sub_menu == confg[1]: code += "."
  279.             if bf_edit_sub_menu == confg[2]: code += ","
  280.             if bf_edit_sub_menu == confg[3]: code += "["
  281.             if bf_edit_sub_menu == confg[4]: code += "]"
  282.             if bf_edit_sub_menu == confg[5]: code = code[:-1]
  283.             if bf_edit_sub_menu == confg[0]: bf_edit_menu = "0"
  284.     return code
  285. #Brainfuck
  286.  
  287. #Читалка
  288. read_text = ""
  289. read_adrs = ""
  290. if not os.path.isdir("files"):
  291.    os.makedirs("files")
  292. #Читалка
  293.  
  294. #------------------------------------------#
  295. print("PhysicalOS")
  296.  
  297. print("\nВведите 1 для помощи")
  298. while True:
  299.     menu = input("\n@: ")
  300.     if menu == confg[1]:
  301.         print("Build 17.11.19\n\n1 - меню помощи\n2 - калькулятор\n3 - Brainfuck IDE\n4 - Читалка")
  302.     elif menu == confg[2]:
  303.         #калькулятор
  304.        
  305.         print("\nКалькулятор\n")
  306.         while True:
  307.             if calc_mode == "+": calc_sum = calc_a + calc_b
  308.             if calc_mode == "-": calc_sum = calc_a - calc_b
  309.             if calc_mode == "*": calc_sum = calc_a * calc_b
  310.             if calc_mode == "/":
  311.                 if calc_b == 0: calc_b = 1
  312.                 calc_sum = calc_a / calc_b
  313.             if calc_mode == "ст": calc_sum = calc_a ** calc_b
  314.             if calc_mode == "кк":
  315.                 if calc_b == 0: calc_b = 1
  316.                 calc_sum = calc_a ** fractions.Fraction(1, calc_b)
  317.             if calc_mode == "sin": calc_sum = math.sin(calc_a)
  318.             if calc_mode == "cos": calc_sum = math.cos(calc_a)
  319.             if calc_mode == "log": calc_sum = math.log(calc_a, calc_b)
  320.             if calc_mode == "fac": calc_sum = math.factorial(calc_a)
  321.             if calc_mode == "tan": calc_sum = math.tan(calc_a)
  322.             if calc_mode == "м/с -> км/ч": calc_sum = calc_a * 3.6
  323.             if calc_mode == "км/ч -> м/с": calc_sum = calc_a / 3.6
  324.             if calc_mode == "fall1": calc_sum = (calc_b * calc_a) / 2
  325.             if calc_mode == "fall2": calc_sum = (calc_confg[0] * (calc_a ** 2)) / 2
  326.             if calc_mode == "fall3": calc_sum = calc_confg[0] * calc_a
  327.             if calc_mode == "fall4": calc_sum = (2 * calc_confg[0] * calc_a) ** 0.5
  328.             if calc_mode == "sq": calc_sum = (calc_confg[1] ** 2) * (calc_b+(calc_a/2)-1)
  329.            
  330.             calc_screen()
  331.             calc_menu = input("\ncalc@: ")
  332.             if calc_menu == confg[0]: break
  333.             elif calc_menu == confg[1]: calc_a = calc_int("a", calc_a)
  334.             elif calc_menu == confg[2]: calc_b = calc_int("b", calc_b)
  335.             elif calc_menu == confg[3]: calc_mode = calc_chose()
  336.             elif calc_menu == confg[4]: calc_mode = calc_func_chose()
  337.             elif calc_menu == confg[5]:
  338.                 print("Введите, в какую переменную вы хотите внести результат\n1 = a; 2 = b; 3 = как ускорение свободного падения; 4 = как сторону клетки")
  339.                 calc_menu = input("\ncalc@: ")
  340.                 if calc_menu == confg[1]: calc_a = calc_sum
  341.                 if calc_menu == confg[2]: calc_b = calc_sum
  342.                 if calc_menu == confg[3]: calc_confg[0] = calc_sum
  343.                 if calc_menu == confg[4]: calc_confg[1] = calc_sum 
  344.         #Калькулятор
  345.     #Brainfuck
  346.     elif menu == confg[3]:
  347.         print("Brainfuck IDE\n")
  348.         while True:
  349.             print(bf_code + "\n\n1 - Редактировать, 2 - Выполнить, 3 - Сохранить, 4 - Загрузить")
  350.             bf_menu = input("\nbf@: ")
  351.             if bf_menu == confg[0]: break
  352.             elif bf_menu == confg[1]: bf_code = bf_edit(bf_code)
  353.             elif bf_menu == confg[2]: bf_run(bf_code)
  354.             elif bf_menu == confg[3]:
  355.                 print("Введите название программы: ")
  356.                 bf_adrs = keyboard(bf_adrs)
  357. #               bf_adrs = "programs/" + bf_adrs + ".bf"
  358.                 f = open("programs/" + bf_adrs + ".bf", "w")
  359.                 f.write(bf_code)
  360.                 f.close()
  361. #               bf_adrs = ""
  362.             elif bf_menu == confg[4]:
  363.                 print("Все программы " + str(os.listdir("programs/")) + "\nВведите название программы: ")
  364.                 bf_adrs = keyboard(bf_adrs)
  365. #               bf_adrs = "programs/" + bf_adrs + ".bf"
  366.                 if os.path.isfile("programs/" + bf_adrs + ".bf") == 1:
  367.                     f = open("programs/" + bf_adrs + ".bf", "r")
  368.                     bf_code = f.read()
  369.                     f.close()
  370. #                   bf_adrs = ""
  371.     elif menu == confg[4]:
  372.         print("Чтение текстов\n")
  373.         while True:
  374.             print("\n" + read_text + "\n")
  375.             print("1 - Редактировать, 2 - Загрузить, 3 - Сохранить, 0 - Выход")
  376.             read_menu = input("\nread@: ")
  377.             if read_menu == confg[0]: break
  378.             if read_menu == confg[1]: read_text = keyboard(read_text)
  379.             if read_menu == confg[2]:
  380.                 print("Все файлы " + str(os.listdir("files/")) + "\nВведите название файла (с расширением): ")
  381.                 read_adrs = keyboard(read_adrs)
  382.                 if os.path.isfile("files/" + read_adrs) == 1:
  383.                     f = open("files/"+read_adrs, "r")
  384.                     read_text = f.read()
  385.                     f.close()
  386.             if read_menu == confg[3]:
  387.                 print("Все файлы " + str(os.listdir("files/")) + "\nВведите название файла (с расширением): ")
  388.                 read_adrs = keyboard(read_adrs)
  389.                 f = open("files/" + read_adrs, "w")
  390.                 f.write(read_text)
  391.                 f.close()
  392.                
  393.     else:
  394.         print("Введите 1 для помощи")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement