Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2008, 02:05   #11
gred
Пока ещё
Форумчанин
 
Аватар для gred
 
Регистрация: 26.02.2008
Сообщений: 116
По умолчанию

Тя походу глучит
-должно быть не StrToInt(N[3]), а StrToInt(N[4]) уже? -
мы проверяем 3 символ если он 1 тогда выводим одинадцать двенадцать...
если нет идём дальше в 3 символ записываем двадцать тридцать....
Я мегапрограммер потерявший память.
Если кому помог, поставте '+' я буду благодарен
gred вне форума Ответить с цитированием
Старый 31.03.2008, 02:07   #12
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Для того чтоб понять зачем это, нужно смотреть весь блок If Then Else:

Код:
If N[3] = '1' Then   
  Begin   
     Case StrToInt(N[3]) of  
      1 : Write(Rus(('одинадцать ')));   
      2 : Write(Rus(('двенадцать ')));   
      3 : Write(Rus(('тринадцать ')));   
      4 : Write(Rus(('четырнадцать ')));   
      5 : Write(Rus(('пятнадцать ')));   
     End;   
  End   
Else   
  Begin   
    Case StrToInt(N[3]) of  
      2 : Write(Rus(('двадцать ')));   
      3 : Write(Rus(('традцать ')));   
      4 : Write(Rus(('сорок ')));   
      5 : Write(Rus(('пятьдесят ')));   
     End;   
  
     Case StrToInt(N[4]) of  
      2 : Write(Rus(('два ')));   
      3 : Write(Rus(('три ')));   
      4 : Write(Rus(('четыре ')));   
      5 : Write(Rus(('пять ')));   
     End;   
  End;   
  
End.
Тут мы обрабатываем две последнии цифры четырёхзначного числа. Это как несложно догадаться двузначное число, которое имеет некоторую особенность:
Цифры с 10 по 19 являются целыми словами, а не составными.
Например:
Десять, Одиннадцать, Двенадцать, ..... , Девятнадцать.
Затем с 20 по 99 идут составные:
Двадцать, Двадцать один, Двадцать два.

Ну так вот смысл этого куска кода и заключается в правильной обработке двузначного числа.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 31.03.2008, 22:14   #13
Valter
Пользователь
 
Регистрация: 29.03.2008
Сообщений: 51
По умолчанию

Цитата:
Сообщение от Карась Посмотреть сообщение
Тут мы обрабатываем две последнии цифры четырёхзначного числа. Это как несложно догадаться двузначное число, которое имеет некоторую особенность...
Это понятно.
Я имел в виду вот что:
Код:
If N[3] = '1' Then   
  Begin   
     Case StrToInt(N[3]) of  
      1 : Write(Rus(('одинадцать ')));   
      2 : Write(Rus(('двенадцать ')));   
      3 : Write(Rus(('тринадцать ')));   
      4 : Write(Rus(('четырнадцать ')));   
      5 : Write(Rus(('пятнадцать ')));   
     End;
Допустим, число 1914. Первые две: "тысяча" и "девятсот" ты определил в предыдущих блоках. Далее идет 1. Это N[3]. Входим поэтому в блок if N[3]='1'. Далее мы должны смотреть уже не N[3], а N[4] в операторе Case, чтобы понять, что это 'одиннадцать', "двенадцать" и т.д. А у тебя в первом case снова N[3]. Я доступно объясняю?))
Valter вне форума Ответить с цитированием
Старый 31.03.2008, 22:24   #14
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

to Valter
Я молча ставлю +1... Действительно, ошибся.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание графиков(например декартов лист) DUMOH Компоненты Delphi 10 21.12.2008 23:10
Как печатать в верхней подстроке в Delphi например 2 в квадрате Moel Общие вопросы Delphi 3 19.06.2008 15:30
игра про карты например (дурак) alex@x Gamedev - cоздание игр: Unity, OpenGL, DirectX 2 06.12.2007 15:53
как наклонить метку (Label) с текстом, например, на 45 грудусов? krem Компоненты Delphi 2 09.05.2007 19:20
как сделать в memo строку не 256 символов, а 1024 например. Alar Компоненты Delphi 0 29.10.2006 18:46