• Труп Васи Доброго © (19.11.08 15:19) [0]
    Совсем плохой стал. Чую что дело простое, но ручник никак не отключается. Хочу создать тип данных для денег. Застрял на том, как определить тип с определёнными значениями целых чисел (для номиналов купюр)??? По логике надо перечислимый тип делать, но там нельзя в качестве значений числа ставить. Мысли отсутствуют. Кто пнёт в нужную сторону?
  • MBo © (19.11.08 15:26) [1]
    Цель какая?
    Какие действия, операции предполагаются?
  • Григорьев Антон © (19.11.08 15:26) [2]

    > По логике надо перечислимый тип делать, но там нельзя в
    > качестве значений числа ставить

    Давно уже можно. В D7 точно можно
  • Труп Васи Доброго © (19.11.08 15:31) [3]
    > Давно уже можно. В D7 точно можно

    У меня как раз D7 и нифига не можно :( [Error] : Identifier expected but number found

    > Цель какая?
    > Какие действия, операции предполагаются?

    сделать программу расчёта купюр для выдачи сдачи.
  • oxffff © (19.11.08 15:34) [4]

    > Труп Васи Доброго ©   (19.11.08 15:31) [3]


    OrdType=(MoneyA=1,MoneyB=2,MoneyC=3);
  • oxffff © (19.11.08 15:34) [5]

    > сделать программу расчёта купюр для выдачи сдачи.


    Бабки разные?
  • Труп Васи Доброго © (19.11.08 15:40) [6]
    > OrdType=(MoneyA=1,MoneyB=2,MoneyC=3);

    Так я уже сделал, не очень удобно, да и как то "криврвато" смотрится маскировать целое число за идентификатором.
    Потом надо будет всякие лишние ORDы лепить, чтобы номинал узнать и на количество множить.
    Блин, неужели нельзя просто создать ограниченный тип из десяти интеджеров???

    > Бабки разные?

    Ну а где ты видел одинаковые бабки? Они же разного номинала.
  • Труп Васи Доброго © (19.11.08 15:40) [7]
    > OrdType=(MoneyA=1,MoneyB=2,MoneyC=3);

    Так я уже сделал, не очень удобно, да и как то "криврвато" смотрится маскировать целое число за идентификатором.
    Потом надо будет всякие лишние ORDы лепить, чтобы номинал узнать и на количество множить.
    Блин, неужели нельзя просто создать ограниченный тип из десяти интеджеров???

    > Бабки разные?

    Ну а где ты видел одинаковые бабки? Они же разного номинала.
  • oxffff © (19.11.08 15:41) [8]

    > Труп Васи Доброго ©   (19.11.08 15:40) [6]


    type A=1..10;
  • oxffff © (19.11.08 15:43) [9]

    > Ну а где ты видел одинаковые бабки? Они же разного номинала.


    Я имею ввиду конвертацию одной валюты в другую.
    С дальнейшим намеком на Tcustomvariant.
    Либо на запись с операторами.
  • Труп Васи Доброго © (19.11.08 15:46) [10]
    > type A=1..10;

    Ты где видел такие номиналы от 1 до 10???
    Мне не надо 1..10, чтобы потом по номеру где то выискивать какому номиналу соответсвует №4 или 5. Хотелось бы иметь тип с набором значений например для рубля TRubl = (5000, 1000, 500, 100, 50, 10, 5, 2, 1); Вот что надо! Но так нельзя.
  • Труп Васи Доброго © (19.11.08 15:55) [11]
    Вот ведь облом! Похоже на самом деле не получится так сделать :( Жаль, подстрелили простую идею на взлёте. Придётся городить всякие (м1=5000, м2=1000 и т.д.
  • han_malign © (19.11.08 16:04) [12]

    > TRubl = (5000, 1000, 500, 100, 50, 10, 5, 2, 1); Вот что надо! Но так нельзя.

    - интересно, а к какому типу тогда будет относиться TRubl(1000)+TRubl(1)?
  • Рамиль © (19.11.08 16:07) [13]
    Сделай класс и не мучайся.
  • han_malign © (19.11.08 16:10) [14]

    > всякие (м1=5000, м2=1000 и т.д.

    с ручника снимись
    const RublCoins: array[TRuNominals]of integer = (,,)

    а лучше вообще как входной параметр в виде открытого массива
  • Anatoly Podgoretsky © (19.11.08 16:39) [15]
    > Труп Васи Доброго  (19.11.2008 15:40:06)  [6]

    Ты не понял, ты замени цифирь OrdType=(otРубль=1,otПятак=5,otЧервонец=10);
Есть новые Нет новых   [134446   +31][b:0][p:0.001]