snezhanavasileozvjsv
25.02.2023 17:54

При каких условиях целесообразно использовать подпрограммы?

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
alenagerasimov1
10.02.2023 20:48

Число 113: для него прямой, обратный и дополнительный коды совпадают, так как оно положительное.

113(10)=01110001(2)

Число (-36):

Прямой код: 36(10)=00100100(2)

Обратный код (код, в котором меняем 0 на 1, а 1 на 0 в прямом коде):

-36(10) - обратный код 11011011(2)

Дополнительный код (к младшему разряду обратного кода прибавляем 1):

-36(10) - дополнительный код 11011100(2) - это число -36 в доп.коде

Сложим 113+(-36) в двоичных кодах:

01110001(2)+11011100(2)=1 0100 1101(2). Старшую единицу отбрасываем, получаем:

01001101(2)=77(10)

Проверим: 113-36=77 в десятичной с/с

0,0(0 оценок)
Ответ:
томара80
31.08.2021 18:53

class WordConstructor:

   def __init__(self, number):

       self.number = number

   def vocab(self, number, args=None):

       if number == 1:

           return "Один"

       elif number == 0:

           return "Ноль"

       elif number == 2 and args:

           return "Две"

       elif number == 2:

           return "Два"

       elif number == 3:

           return "Три"

       elif number == 4 and args:

           return "Четыр"

       elif number == 4:

           return "Четыре"

       elif number == 5:

           return "Пять"

       elif number == 6:

           return "Шесть"

       elif number == 7:

           return "Семь"

       elif number == 8:

           return "Восемь"

       elif number == 9:

           return "Девять"

       elif number == 10:

           return "Десять"

       elif number == 11:

           return "Одиннадцать"

       elif number == 12:

           return "Двенадцать"

       elif number == 'suf.nadcat':

           return "надцать"

       elif number == 'suf.dcat':

           return "дцать"

       elif number == "suf.yat":

           return "десят"

       elif number == "suf.ok":

           return "ок"

       elif number == 90:

           return "Девяносто"

       elif number == 100:

           return "Сто"

       elif number == 'suf.sot':

           return "сот"

   def get_num_from_number(self, number, pos):

       return int(str(number)[pos])

   def construct(self):

       if self.number < 13:

           print(self.vocab(self.number))

       elif self.number < 20:

           if self.number == 14:

               print(self.vocab(int(str(self.number)[1]), args=True) + self.vocab("suf.nadcat"))

           else:

               print(self.vocab(int(str(self.number)[1]), args=True).replace("ь", "") + self.vocab("suf.nadcat"))

       elif self.number < 100:

           first = self.get_num_from_number(self.number, 0)

           second = self.get_num_from_number(self.number, 1)

           if second == 0:

               if first == 4:

                   print("Сор" + self.vocab("suf.ok"))

               elif first < 5:

                   print(self.vocab(first, args=True) + self.vocab("suf.dcat"))

               elif first < 9:

                   print(self.vocab(first) + self.vocab("suf.yat"))

               elif first == 9:

                   print(self.vocab(self.number))

               else:

                   print(self.vocab(first, args=True) + self.vocab("suf.dcat"))

           else:

               if first == 4:

                   print("Сор" + self.vocab("suf.ok") + " " + self.vocab(second).lower())

               elif first < 5:

                   print(self.vocab(first, args=True) + self.vocab("suf.dcat") + " " + self.vocab(second).lower())

               elif first < 9:

                   print(self.vocab(first) + self.vocab("suf.yat") + " " + self.vocab(second).lower())

               elif first == 9:

                   print(self.vocab(self.number - second) + " " + self.vocab(second).lower())

               else:

                   print(self.vocab(first, args=True) + self.vocab("suf.dcat") + " " + self.vocab(second).lower())

       elif self.number < 1000:

           zero = self.get_num_from_number(self.number, 0)

           first = self.get_num_from_number(self.number, 1)

           second = self.get_num_from_number(self.number, 2)

           if second == 0 and first == 0:

               if zero == 4:

                   print(self.vocab(zero) + self.vocab(100).lower())

               elif zero == 2:

                   print("Двести")

               elif zero == 3:

                   print(self.vocab(zero) + self.vocab(100).lower().replace("о", "а"))

               elif zero == 1:

                   print(self.vocab(100))

               elif zero <= 9:

                   print(self.vocab(zero) + self.vocab('suf.sot').lower())

for i in range(0, 1000):

   a = WordConstructor(i)

   a.construct()

Код очень нетривиален и не оптимизорован. Работает с 0-100 числами и может еще 200, 300...

Дальше с >100 писать мне очень лень, уж простите.

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота