Advertisement
Lavig

Практична робота №15

May 1st, 2023 (edited)
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.05 KB | None | 0 0
  1. def skip():
  2.     print("_" * 60)
  3.     print("_" * 60)
  4. skip()
  5. # Перше завдання
  6. mas = ['байт', 'принтер', 'процесор', 'монітор']
  7. n = len(mas)
  8. c = str(input("\033[52;1;118mВведіть термін: \033[0m").lower())
  9. per = False
  10. l = 0
  11. p = n - 1
  12. while (l <= p) and (not per):
  13.     if mas[l] == c:
  14.         i = l
  15.         per = True
  16.     elif mas[p] == c:
  17.         i = p
  18.         per = True
  19.     else:
  20.         i = int((l + p) / 2)
  21.         if mas[i] == c:
  22.             per = True
  23.         elif c > mas[i]:
  24.             l = i + 1
  25.         else:
  26.             p = i - 1
  27. if per:
  28.     print("\033[92;1mВведений термін знаходиться на позиції", i, '\033[0m')
  29. else:
  30.     print("\033[95mВведений термін відсутній у масиві\033[0m")
  31. skip()
  32. # Друге завдання
  33. dict = {1: "раз", 2: "рази", 3: "рази", 4: "рази", 5: "разів", 6: "разів", 7: "разів", 8: "разів", 9: "разів"}
  34. while True:
  35.     number = input("\033[52;1;118mВведіть будь-яке ціле число від 5 до 13 (включно): \033[0m")
  36.     try:
  37.         number = float(number)
  38.     except:
  39.         print("\033[31mВведене значення не є числом. Спробуйте ввести інше значення!\033[0m")
  40.         continue
  41.     is_num = number.is_integer()
  42.     if is_num == False:
  43.         print("\033[31mВведене число не є цілим. Спробуйте ввести інше число!\033[0m")
  44.         continue
  45.     if number < 5 or number > 13:
  46.         print("\033[31mВведене число не входить в діапазон від 5 до 13. Спробуйте ввести інше число!\033[0m")
  47.         continue
  48.     array = [13, 7, 6, 7, 9, 7, 6, 5]
  49.     length = len(array)
  50.     k = 0
  51.     for i in range(length):
  52.         if array[i] == number:
  53.             k = k + 1
  54.     if k > 0:
  55.         print("\033[32mВведене число зустрічається у масиві", k, dict[k], '\033[0m')
  56.     else:
  57.         print("\033[36;5;118mВведене число не зустрічається у масиві\033[0m")
  58.     break
  59. skip()
  60. # Третє завдання
  61. stations = ["Бурштинська ТЕС", "Вуглегірська ТЕС", "Добротворська ТЕС", "Запорізька ТЕС", "Зміївська ТЕС", "Зуївська ТЕС", "Криворізька ТЕС", "Курахівська ТЕС", "Ладижинська ТЕС", "Луганська ТЕС", "Миронівська ТЕС", "Придніпровська ТЕС", "Слов'янська ТЕС", "Старобешівська ТЕС", "Трипільська ТЕС"]
  62. power = [2334, 3600, 510, 2850, 2200, 1270, 2256, 1527, 1800, 1220, 275, 1195, 800, 2010, 1080]
  63. pairs = zip(power, stations)
  64. sorted_pairs = sorted(pairs, reverse = True)
  65. sorted_power, sorted_stations = zip(*sorted_pairs)
  66. stations_number = len(sorted_stations)
  67. first_letter_count = 0
  68. for i in stations:
  69.     if i[0] == "З":
  70.         first_letter_count += 1
  71. print("\033[52;1;118mСписок електростанцій України\033[0m".rjust(47))
  72. for i in range(stations_number):
  73.     print(f"{i+1}. {stations[i]}")
  74. print('\nВ Україні існує', stations_number, 'електростанцій. З них', first_letter_count, 'електростанції починаються на букву "З". Трипільська електростанція знаходиться на', (stations.index("Трипільська ТЕС")+1), "місці за алфавітом та на", (sorted_stations.index("Трипільська ТЕС")+1), "місці за потужністю.")
  75. while True:
  76.     choice = input("""\n\033[52;1;118mВиберіть дію, яку потрібно виконати:\033[0m
  77. 1 – Вивести список електростанцій за потужністю
  78. 2 – Подивитися додаткову інформацію про одну з електростанцій
  79. 3 – Завершити програму
  80. """)
  81.     if choice == "1" or choice == "Вивести список електростанцій за потужністю" or choice == "1 –  Вивести список електростанцій за потужністю":
  82.         print("\033[52;1;118mСписок електростанцій України за потужністю \033[0m".rjust(62))
  83.         for i in range(stations_number):
  84.             print(f"{i+1}. {sorted_stations[i]} - {sorted_power[i]} МВт")
  85.         continue
  86.     if choice == "2" or choice == "Подивитися додаткову інформацію про одну з електростанцій" or choice == "2 – Подивитися додаткову інформацію про одну з електростанцій":
  87.         while True:
  88.             station_name = input("\n\033[52;1;118mВведіть назву однієї з електростанції зі списку вище, про яку ви хочете подивитися додаткову інформацію: \033[0m")
  89.             try:
  90.                 station_index = sorted_stations.index(station_name)
  91.             except:
  92.                 print("\033[31mВи неправильно ввели назву електростанції. Спробуйте ще раз!\033[0m")
  93.                 continue
  94.             print(f"\n{station_name} знаходиться на {stations.index(station_name) + 1} місці за алфавітом та на {sorted_stations.index(station_name) + 1} місці за потужністю. Її потужність становить {sorted_power[sorted_stations.index(station_name)]} МВт.")
  95.             break
  96.         continue
  97.     if choice == "3" or choice == "Завершити програму" or choice == "3 – Завершити програму":
  98.         break
  99.     else:
  100.         print("\033[31mВи ввели неправильне число. Спробуйте ще раз!\033[0m")
  101.         continue
  102. skip()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement