Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт мар 29, 2024 04:48

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - o! задачка! преобразование числа в римскую цифру.
Автор Сообщение
  Заголовок сообщения:   Ответить с цитатой
Печатает "правильные" римские числа, но так как символа подчеркивания сверху я сделать не могу, то
начиная с числа 4000 "правильности" не достичь.

Код:
0 VALUE SMD

: SYM. \ SM --
  S" IVXLCDM" DROP SMD + + C@ EMIT ;

: DIG.  \ DIG SM --
  TO SMD 5 /MOD OVER 4 =
  IF 0 SYM. IF 2 SYM. ELSE 1 SYM.  THEN DROP
  ELSE  IF 1 SYM. THEN 0 ?DO 0 SYM. LOOP THEN ;

: ROME. \ N --
  1000 /MOD 6 DIG. 100 /MOD 4 DIG. 10 /MOD 2 DIG. 0 DIG. ;

3949 ROME.

log
Код:
MMMCMXLIX
Ok
Сообщение Добавлено: Ср мар 17, 2010 14:46
  Заголовок сообщения:   Ответить с цитатой
провакационное решение (детям не показывать!)
<pre>
\ получаем количество циферек (вот до чего доводит нежелание создавать нормальную позиционную систему!)
: ?# ( u n char --> u )
>L BEGIN DDUP 1 - > WHILE
TUCK - SWAP
L@ KEEP
REPEAT L> DDROP ;

\ ленивый вариант!!!
: >rome ( u --> )
<| 1000 [CHAR] M ?#
500 [CHAR] D ?#
100 [CHAR] C ?#
50 [CHAR] L ?#
10 [CHAR] X ?#
5 [CHAR] V ?#
1 [CHAR] I ?#
DROP |> TYPE ;
</pre>

вообще, интересно, что Римляне догадались систему сделать позиционной (мое решение нет), только подошли к решению своеобразно.
Но тут у меня есть подозрение, что так они боролись с "пузырями", то есть с банкирами. Попробуй написать милиард в римской системе!.. Вот пользовалсь бы США римской системой - не пришлось бы выдумывать "зеленые ростки" ;)
Сообщение Добавлено: Ср мар 17, 2010 10:34
  Заголовок сообщения:   Ответить с цитатой
WingLion писал(а):
a с неоднозначностью что делать?
90=XC или 90=LXL ?

49=IL или 49=XLIX ?

и т.д. и т.п.

Выбирайте более короткий вариант.
Сообщение Добавлено: Ср мар 17, 2010 08:44
  Заголовок сообщения:   Ответить с цитатой
a с неоднозначностью что делать?
90=XC или 90=LXL ?

49=IL или 49=XLIX ?

и т.д. и т.п.
Сообщение Добавлено: Ср мар 17, 2010 07:59
  Заголовок сообщения:   Ответить с цитатой
: 1 ." I" ;
: 2 ." II" ;
: 3 ." III" ;
: 4 ." IV" ;
: 5 ." V" ;
...
..
...
: 65536 ."..........

надо беречь ресурсы мозга за счёт коипьютерных "мозгов".
Сообщение Добавлено: Ср мар 17, 2010 07:20
  Заголовок сообщения:   Ответить с цитатой
доп. информация: Броуди, Способ мышления - Форт, глава 4.
Заодно и поучиться можно... ;)
Сообщение Добавлено: Ср мар 17, 2010 01:42
  Заголовок сообщения:   Ответить с цитатой
жалко, что в интернете ответ отыскивается за пару кликов.
Сообщение Добавлено: Вт мар 16, 2010 22:52
  Заголовок сообщения:   Ответить с цитатой
интел всех переплюнула, пентиум 2010 года сделала в середине 90-х годов и назвала без ложной скромности Pentium-MMX
Сообщение Добавлено: Вт мар 16, 2010 22:14
  Заголовок сообщения:   Ответить с цитатой
WingLion писал(а):
Ограничение - число не более 65536 (16 разрядов).
Где искать правила преобразования - сам не знаю.

I - 1
V - 5
X - 10
L - 50
C - 100
D - 500
M = 1000

Сначала пишутся тысячи и сотни, а затем - десятки и единицы. Есть и некоторые правила.Если большая цифра стоит перед меньшей, то они складываются (принцип сложения), если же меньшая - перед большей, то меньшая вычитается из большей (принцип вычитания).

Одна черта сверху означает умножение всего числа на 1000. Но в типографи черта сверху применяется редко из-за сложности набора.

Примеры

Число 26 = XXVI
Число 1987 = MCMLXXXVII

Чтобы лучше запомнить буквы в римских цифрах в русском языке существует правило мнемоники, которое звучит так:
Мы Дарим Сочные Лимоны, Хватит Всем Их.
Сообщение Добавлено: Вт мар 16, 2010 22:05
  Заголовок сообщения:  o! задачка! преобразование числа в римскую цифру.  Ответить с цитатой
Написать слово, которое из числа на стеке печатает его "римской цифрой".
Ограничение - число не более 65536 (16 разрядов).
Где искать правила преобразования - сам не знаю.
Сообщение Добавлено: Вт мар 16, 2010 21:55

Часовой пояс: UTC + 3 часа [ Летнее время ]


cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB