Предмет: Информатика, автор: katusasmian

Виконати завдання
Створить програму котра дозволить писати слово порцій відповідно до правил української мови. Одна порція, дві три чотири порції 56789 порцій. Крім того нехай окрема друкується гривні та копійки. Знову ж з правильне написання в словах рядку чотири гривні але 9 гривень. Раджу додати команду if .


grigorylevic: python?
katusasmian: да

Ответы

Автор ответа: UseDark
0

def ukrainian_number_to_words(number):

   units = ['', 'один', 'два', 'три', 'чотири', 'п\'ять', 'шість', 'сім', 'вісім', 'дев\'ять']

   teens = ['десять', 'одинадцять', 'дванадцять', 'тринадцять', 'чотирнадцять', 'п\'ятнадцять', 'шістнадцять', 'сімнадцять', 'вісімнадцять', 'дев\'ятнадцять']

   tens = ['', '', 'двадцять', 'тридцять', 'сорок', 'п\'ятдесят', 'шістдесят', 'сімдесят', 'вісімдесят', 'дев\'яносто']

   hundreds = ['', 'сто', 'двісті', 'триста', 'чотириста', 'п\'ятсот', 'шістсот', 'сімсот', 'вісімсот', 'дев\'ятсот']

   thousands = ['тисяча', 'тисячі', 'тисяч']

   millions = ['мільйон', 'мільйони', 'мільйонів']

   if number < 0 or number >= 1000000000:

       return 'непідтримуване число'

   if number == 0:

       return 'нуль'

   words = []

   millions_digit = number // 1000000

   if millions_digit > 0:

       words.append(ukrainian_number_to_words(millions_digit) + ' ' + millions[2])

       number %= 1000000

   thousands_digit = number // 1000

   if thousands_digit > 0:

       words.append(ukrainian_number_to_words(thousands_digit) + ' ' + thousands[2])

       number %= 1000

   if number > 0:

       if number >= 100:

           words.append(hundreds[number // 100])

           number %= 100

       if number >= 10 and number <= 19:

           words.append(teens[number % 10])

       else:

           if number >= 20:

               words.append(tens[number // 10])

               number %= 10

           if number >= 1 and number <= 9:

               words.append(units[number])

   return ' '.join(words)

def print_money(amount):

   hryvnia = amount // 1

   kopiika = round((amount - hryvnia) * 100)

   hryvnia_word = ukrainian_number_to_words(hryvnia)

   if hryvnia == 1:

       hryvnia_word += ' гривня'

   elif hryvnia >= 2 and hryvnia <= 4:

       hryvnia_word += ' гривні'

   else:

       hryvnia_word += ' гривень'

   kopiika_word = str(kopiika)

   if kopiika == 1:

       kopiika_word += ' копійка'

   elif kopiika >= 2 and kopiika <= 4:

       kopiika_word += ' копійки'

   else:

       kopiika_word += ' копійок'

   print(hryvnia_word + ' ' + kopiika_word)

   portion_word = 'порція'

   if hryvnia >= 2 and hryvnia <= 4:

       portion_word += 'и'

   elif hryvnia >= 5:

       portion_word += 'ій'

   print('1 ' + portion_word)

   for i in range(2, 5):

       print(str(i) + ' ' + portion_word + 'и')

   for i in range(5, 10):

       print(str(i) + ' ' + portion_word)

Похожие вопросы
Предмет: История, автор: arturkuzya28082010