Важная информация
Показано с 1 по 3 из 3

Тема: Сформировать по числовому заданию даты (число,месяц) ее словесную форму с учетом падежей

  1. #1 Сформировать по числовому заданию даты (число,месяц) ее словесную форму с учетом падежей 
    Новичок
    Регистрация
    29.05.2011
    Сообщений
    2
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Условие

    Сформировать по числовому заданию даты (число,месяц) ее словесную форму с учетом падежей.
    Например: 21.12 Родительный падеж - "двадцать первого декабря".
    Ответить с цитированием  
     

  2. #2  
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,219
    Сказал(а) спасибо
    302
    Поблагодарили 176 раз(а) в 144 сообщениях
    Записей в блоге
    5
    Вот то, что мне удалось написать. Программка работает не всегда верно! Тоесть для строго определенных падежей, месяцев и чисел будет выдаваться неверные ответы. Заметьте это. В великом и могучем русском слишком много исключений из правил - например по дательному падежу (кому-чему) - январЮ, ФевралЮ, МартУ, апрелЮ, маЮ, июнЮ, августУ, сентябрЮ и.т.п. Какие то из них я попытался отловить. некоторые остались. Нужно, пожалуй вводить таблицы по окончаниям для КАЖДОГО из падежей и месяцев свои - тогда можно будет избавиться от этого. Или хотя бы почитать соответствующую литературу по этому вопросу - возможно тогда подправлю
    Еще - код получился довольно грязный - не спорю - однако для тест-версии сойдет.
    Код qbasic:
    [Ссылки могут видеть только зарегистрированные пользователи. ] Day [Ссылки могут видеть только зарегистрированные пользователи. ] [Ссылки могут видеть только зарегистрированные пользователи. ]
    [Ссылки могут видеть только зарегистрированные пользователи. ] Month [Ссылки могут видеть только зарегистрированные пользователи. ] [Ссылки могут видеть только зарегистрированные пользователи. ]
    [Ссылки могут видеть только зарегистрированные пользователи. ] SCase [Ссылки могут видеть только зарегистрированные пользователи. ] [Ссылки могут видеть только зарегистрированные пользователи. ]
    [Ссылки могут видеть только зарегистрированные пользователи. ] I [Ссылки могут видеть только зарегистрированные пользователи. ] [Ссылки могут видеть только зарегистрированные пользователи. ]
    [Ссылки могут видеть только зарегистрированные пользователи. ] Tex$
    [Ссылки могут видеть только зарегистрированные пользователи. ] CaseEnd$(6) 'Окончания для числа
    CaseEnd$(1) = "ое"
    CaseEnd$(2) = "ого"
    CaseEnd$(3) = "ому"
    CaseEnd$(4) = "ое"
    CaseEnd$(5) = "ым"
    CaseEnd$(6) = "ом"
    [Ссылки могут видеть только зарегистрированные пользователи. ] CaseNum$(31)   'Начала чисел
    CaseNum$(1) = "перв"
    CaseNum$(2) = "втор"
    CaseNum$(3) = "треть"
    CaseNum$(4) = "четверт"
    CaseNum$(5) = "пят"
    CaseNum$(6) = "шест"
    CaseNum$(7) = "седьм"
    CaseNum$(8) = "восьм"
    CaseNum$(9) = "девят"
    CaseNum$(10) = "десят"
    CaseNum$(11) = "одинадцат"
    CaseNum$(12) = "двенадцат"
    CaseNum$(13) = "тринадцат"
    CaseNum$(14) = "четырнадцат"
    CaseNum$(15) = "пятнадцат"
    CaseNum$(16) = "шеснадцат"
    CaseNum$(17) = "семнадцат"
    CaseNum$(18) = "восемнадцат"
    CaseNum$(19) = "девятнадцат"
    CaseNum$(20) = "двадцат"
    CaseNum$(30) = "тридцат"
    CaseNum$(31) = "тридцать перв"
    [Ссылки могут видеть только зарегистрированные пользователи. ] Mon$(12)
    Mon$(1) = "январ"
    Mon$(2) = "Феврал"
    Mon$(3) = "март"
    Mon$(4) = "апрел"
    Mon$(5) = "ма"
    Mon$(6) = "июн"
    Mon$(7) = "июл"
    Mon$(8) = "август"
    Mon$(9) = "сентябр"
    Mon$(10) = "октябр"
    Mon$(11) = "ноябр"
    Mon$(12) = "декабр"
    [Ссылки могут видеть только зарегистрированные пользователи. ] MonEnd$(6)
    MonEnd$(1) = "я"
    MonEnd$(2) = "я"
    MonEnd$(3) = "ю"
    MonEnd$(4) = "я"
    MonEnd$(5) = "я"
    MonEnd$(6) = "я"
     
    DO
        [Ссылки могут видеть только зарегистрированные пользователи. ] "Day: ", Day
    LOOP UNTIL Day > 0 [Ссылки могут видеть только зарегистрированные пользователи. ] Day <= 31
    DO
        [Ссылки могут видеть только зарегистрированные пользователи. ] "Month: ", Month
    LOOP UNTIL Month > 0 [Ссылки могут видеть только зарегистрированные пользователи. ] Month <= 12
    DO
        [Ссылки могут видеть только зарегистрированные пользователи. ] "Case: [1..6]", SCase
    LOOP UNTIL SCase > 0 [Ссылки могут видеть только зарегистрированные пользователи. ] SCase <= 6
    Tex$ = ""
    IF Day = 3 [Ссылки могут видеть только зарегистрированные пользователи. ] Day = 23 THEN
        SELECT CASE SCase
            CASE 1
                Tex$ = Tex$ + CaseNum$(Day) + "е "
            CASE 2
                Tex$ = Tex$ + CaseNum$(Day) + "его "
            CASE 3
                Tex$ = Tex$ + CaseNum$(Day) + "ему "
            CASE 4
                Tex$ = Tex$ + CaseNum$(Day) + "е "
            CASE 5
                Tex$ = Tex$ + CaseNum$(Day) + "ем "
            CASE 6
                Tex$ = Tex$ + CaseNum$(Day) + "ем "
        [Ссылки могут видеть только зарегистрированные пользователи. ] SELECT
        IF Day = 23 THEN Tex$ = "двадцать " + Tex$
    ELSE
        IF Day > 20 [Ссылки могут видеть только зарегистрированные пользователи. ] Day < 30 THEN
            Tex$ = Tex$ + "Двадцать " + CaseNum$(Day - 20) + CaseEnd$(SCase) + " "
        ELSE
            Tex$ = Tex$ + CaseNum$(Day) + CaseEnd$(SCase) + " "
        [Ссылки могут видеть только зарегистрированные пользователи. ] IF
    [Ссылки могут видеть только зарегистрированные пользователи. ] IF
    IF SCase = 3 THEN
        SELECT CASE Month
            CASE 3, 8
                Tex$ = Tex$ + Mon$(Month) + "у"
            CASE ELSE
                Tex$ = Tex$ + Mon$(Month) + MonEnd$(SCase)
        [Ссылки могут видеть только зарегистрированные пользователи. ] SELECT
    ELSE
        Tex$ = Tex$ + Mon$(Month) + MonEnd$(SCase)
    [Ссылки могут видеть только зарегистрированные пользователи. ] IF
    [Ссылки могут видеть только зарегистрированные пользователи. ] Tex$
    Последний раз редактировалось Абадябер; 29.05.2011 в 23:25.
    Дружба-магия-радость!
    Ответить с цитированием  
     

  3. #3  
    Новичок
    Регистрация
    29.05.2011
    Сообщений
    2
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Большое спасибо, буду думать! =)
    Ответить с цитированием  
     

Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 8
    Последнее сообщение: 30.10.2011, 11:29
  2. Ответов: 4
    Последнее сообщение: 19.04.2011, 10:06
  3. Ответов: 5
    Последнее сообщение: 17.04.2011, 00:30
  4. Ответов: 11
    Последнее сообщение: 25.12.2010, 02:33
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •