Реферат на тему:
Римские цифры — цифры, использовавшиеся древними римлянами в своей непозиционной системе счисления.
Натуральные числа записываются при помощи повторения этих цифр. При этом, если большая цифра стоит перед меньшей, то они складываются (принцип сложения), если же меньшая — перед большей, то меньшая вычитается из большей (принцип вычитания). Последнее правило применяется только во избежание четырёхкратного повторения одной и той же цифры.
Римские цифры появились за 500 лет до нашей эры у этрусков.
Часы-куранты Спасской башни
римские цифры
1 | I | лат. unus |
5 | V | лат. quinque |
10 | X | лат. decem |
50 | L | лат. quinquaginta |
100 | C | лат. centum |
500 | D | лат. quingenti |
1000 | M | лат. mille |
В русском языке для закрепления в памяти буквенных обозначений цифр в порядке убывания существуют мнемонические правила:
Мы Dарим Сочные Lимоны, Хватит Vсем Iх.
Mы Dаем Cоветы Lишь Xорошо Vоспитанным Iндивидуумам
Соответственно M, D, C, L, X, V, I
0 | - | |
4 | IV | до XIX века - IIII |
8 | VIII | |
9 | IX | |
31 | XXXI | |
46 | XLVI | |
99 | XCIX | |
583 | DLXXXIII | |
888 | DCCCLXXXVIII | от 1 до 1000 — самое длинное |
1668 | MDCLXVIII | |
1989 | MCMLXXXIX | |
2009 | MMIX | |
2010 | MMX | |
2011 | MMXI | |
3999 | MMMCMXCIX | |
5000 | ↁ | |
10000 | ↂ |
Для правильной записи больших чисел римскими цифрами необходимо сначала записать число тысяч, затем сотен, затем десятков и, наконец, единиц.
Пример: число 1988. Одна тысяча M, девять сотен CM, восемь десятков LXXX, восемь единиц VIII. Запишем их вместе: MCMLXXXVIII.
Довольно часто, чтобы выделить числа в тексте, над ними рисовали черту: LXIV. Иногда черту рисовали и сверху, и снизу: XXXII — в частности, так принято выделять римские цифры в русском рукописном тексте (в типографском наборе это не используют из-за технической сложности). У других авторов черта сверху могла обозначать увеличение значения цифры в 1000 раз: VM = 6000.
Часы марки Tissot с традиционным написанием «IIII»
Существует «сокращённый способ» для записи больших чисел, таких как 1999. Он не рекомендуется, но иногда используется для упрощения. Отличие состоит в том, что для уменьшения цифры слева от неё может писаться любая цифра:
Повсеместно записывать число «четыре» как «IV» стали только в XIX веке, до этого наиболее часто употреблялась запись «IIII». Однако запись «IV» можно встретить уже в документах манускрипта «Forme of Cury», датируемых 1390 годом. На циферблатах часов в большинстве случаев традиционно используется «IIII» вместо «IV», главным образом, по эстетическим соображениям: такое написание обеспечивает визуальную симметрию с цифрами «VIII» на противоположной стороне, а перевёрнутую «IV» прочесть труднее, чем «IIII».
Другая версия
Для записи целых чисел в римской нумерации используются семь основных чисел:
При этом некоторые из цифр (I, X, C, M) могут повторяться, но не более трех раз, таким образом с их помощью можно записать любое целое число не более 3999 (MMMCMXCIX). В ранние периоды существовали знаки для обозначения бо́льших цифр — 5000, 10000, 50000 и 100000 (тогда максимальное число по упомянутому правилу равно 399999). При записи чисел в римской системе счисления меньшая цифра может стоять справа от большей; в этом случае она прибавляется к ней. Например, число 283 по-римски записывается как CCLXXXIII, то есть 200+50+30+3=283. Здесь цифра, изображающая сотню, повторена два раза, а цифры, изображающие соответственно десяток и единицу, повторены по три раза.
Меньшая цифра может быть записана и слева от большей, тогда ее следует вычесть из большей. В этом случае повторения меньшей цифры не допускаются. По-римски число 94 будет XCIV=100-10+5-1=94 — так называемое «правило вычитания» (появилось в эпоху поздней античности, а до этого римляне писали число 4 как IIII, а число 40 — как XXXX). Существует шесть вариантов использования «правила вычитания»:
Необходимо отметить, что другие способы «вычитания» не допустимы; так, число 99 должно быть записано как XCIX, но не как IC. Однако, в наши дни в некоторых случаях используется и упрощенная запись римских чисел: например, в программе Microsoft Excel при преобразовании арабских цифр в римские при помощи функции «РИМСКОЕ()» можно использовать несколько видов представления чисел, от классического до сильно упрощенного (так, число 499 может быть записано как CDXCIX, LDVLIV, XDIX, VDIV или ID).
С помощью римских цифр можно записывать и большие числа. Для этого над теми цифрами, которые обозначают тысячи, ставится черта, а над цифрами, которые обозначают миллионы, — двойная черта. Например, число 123123 будет выглядеть так:
CXXIIICXXIII
А миллион как I, но только не с одной, а с двумя чертами во главе.
В русском языке римские цифры используются в следующих случаях:
В других языках сфера применения римских цифр может иметь особенности, например, в западных странах римскими цифрами иногда записывается номер года.
Стандарт Юникода рекомендует использовать для представления римских цифр обычные латинские буквы.[1] Тем не менее стандарт включает также специальные символы для римских цифр как часть Числовых форм (англ. Number Forms)[2] в области знаков с кодами с U+2160 по U+2188. Например, MCMLXXXVIII может быть представлено в форме ⅯⅭⅯⅬⅩⅩⅩⅧ. Этот диапазон включает как строчные, так и прописные цифры от 1 (Ⅰ или I) до 12 (Ⅻ или XII), в том числе и комбинированные глифы для составных чисел, таких как 8 (Ⅷ или VIII), главным образом для обеспечения совместимости с восточноазиатскими наборами символов в таких промышленных стандартах, как JIS X 0213, где эти символы определены. Комбинированные глифы используются для представления чисел, которые ранее составлялись из отдельных символов (например, Ⅻ вместо его представления как Ⅹ и Ⅱ). В дополнение к этому, глифы существуют для архаичных[2] форм записи чисел 1000, 5000, 10 000, большой обратной C (Ɔ), поздней формы записи 6 (ↅ, похожей на греческую стигму: Ϛ), ранней формы записи числа 50 (ↆ, похожей на стрелку, указывающую вниз ↓⫝⊥[3]), 50 000, и 100 000. Следует отметить, что маленькая обратная c, ↄ не включена в символы римских цифр, но включена в стандарт Юникод как прописная клавдиева буква Ↄ.
Ⅰ2160 | Ⅱ2161 | Ⅲ2162 | Ⅳ2163 | Ⅴ2164 | Ⅵ2165 | Ⅶ2166 | Ⅷ2167 | Ⅸ2168 | Ⅹ2169 | Ⅺ216A | Ⅻ216B | Ⅼ216C | Ⅽ216D | Ⅾ216E | Ⅿ216F |
ⅰ2170 | ⅱ2171 | ⅲ2172 | ⅳ2173 | ⅴ2174 | ⅵ2175 | ⅶ2176 | ⅷ2177 | ⅸ2178 | ⅹ2179 | ⅺ217A | ⅻ217B | ⅼ217C | ⅽ217D | ⅾ217E | ⅿ217F |
ↀ2180 | ↁ2181 | ↂ2182 | Ↄ | ↄ | ↄ | ↄ | ↄ | ↄ |
Отображение всех этих символов требует наличия программного обеспечения, поддерживающего стандарт Юникод, и шрифта, содержащего соответствующие этим символам глифы.
Регулярное выражение для проверки римских цифр — '^(?i)M{0,3}(D?C{0,3}|C[DM])(L?X{0,3}|X[LC])(V?I{0,3}|I[VX])$'.
Для преобразования чисел, записанных арабскими цифрами, в римские, используются специальные функции. Например, в русской версии Microsoft Excel для этого существует функция РИМСКОЕ(аргумент), в английской версии Microsoft Excel и в любой версии OpenOffice.org Calc эта функция называется ROMAN(аргумент).
Функции преобразования на JavaScript
var arab = [1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000]; var roman = ['I','IV','V','IX','X','XL','L','XC','C','CD','D','CM','M']; function arabToRoman(number) { if(!number) return ''; var ret = ''; var i = arab.length - 1; while(number > 0) { if(number >= arab[i]) { ret += roman[i]; number -= arab[i]; } else { i--; } } return ret; } function romanToArab(str) { str = str.toUpperCase(); var ret = 0; var i = arab.length - 1; var pos = 0; while(i >= 0 && pos < str.length ) { if(str.substr(pos, roman[i].length) == roman[i]) { ret += arab[i]; pos += roman[i].length; } else { i--; } } return ret; }Аналогичные функции на Си (C89):
#include <string.h> const int arabar[] = { 1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000}; const char *romanar[] = { "I", "IV", "V", "IX", "X", "XL", "L", "XC", "C", "CD", "D", "CM", "M"}; char *arab2roman(unsigned short int arab) { static char roman[80]; const int m = sizeof(arabar)/sizeof(int)-1, arabmax=arabar[m]; const char romanmax=romanar[m][0]; int i, n; if(!arab) { *roman=0; return roman; } i=0; while(arab>arabmax) { roman[i++] = romanmax; arab -= arabmax; } n=m; while(arab > 0) { if(arab >= arabar[n]) { roman[i++] = romanar[n][0]; if(n&1) roman[i++] = romanar[n][1]; arab -= arabar[n]; } else n--; } roman[i]=0; return roman; } unsigned short int roman2arab(char *roman) { const int m = sizeof(arabar)/sizeof(int)-1; unsigned short int arab; int len, n, i, pir; len=strlen(roman); arab=0; n=m; i=0; while(n >= 0 && i < len) { pir=n&1; if(roman[i] == romanar[n][0] && (!pir || roman[i+1] == romanar[n][1])) { arab += arabar[n]; i += 1+pir; } else n--; } return arab; }Программа перевода арабских цифр в римские и наоборот[5]
type str2 = string[2]; const Rims : array[1..14] of str2 = ('M','CM','D','CD','C','XC','L','XL','X','IX','V','IV','I',' '); Arab : array[1..14] of integer = (1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1, 0); var N, NI, I, J : integer; S : string; function Arab2Rim(N : integer) : string; var S : string; I : integer; begin S := ''; I:=1; while N > 0 do begin while Arab[I]<=N do begin S := S + Rims[I]; N := N - Arab[I] end; I:=I+1 end; Arab2Rim := S end; function Rim2Arab (S:string) : integer; var I, N : integer; begin I:=1; N := 0; while S<>'' do begin while Rims[I] = Copy(S, 1, Length(Rims[I]) ) do begin S := Copy( S, 1+Length(Rims[I]), 255); N := N + Arab[I] end; I:=I+1 end; Rim2Arab := N end; begin WriteLn('Перевод из арабских цифр в римские. 1999 B_SA'); { Write('Введите число для преобразования:'); ReadLn(N);} for NI := 26 to 46 do WriteLn(NI,' = ',Arab2Rim(NI),' обратно ', Rim2Arab( Arab2Rim(NI) )); end.Функция преобразования арабского числа в римское на Pascal[6]
function Arab2Roman(arab:integer):string; var i:integer; d:integer; arab_str:string; arab_len:integer; begin Result := ''; arab_str := IntToStr(arab); arab_len := Length(arab_str); for i := 0 to arab_len-1 do begin d := StrToInt(String(arab_str[arab_len-i])); if (d+1) mod 5 = 0 then Result := Copy('IXCM', 1+i, 1) + Copy('VXLCDM', i*2 + (d+1) div 5, 1) + Result else Result := Copy('VLD', 1+i, d div 5) + Copy('IIIXXXCCCMMM', 1+i*3, d mod 5) + Result; end; end;Отличительной особенностью данного алгоритма является то, что в нем не используются массивы (если, конечно, не считать строку массивом символов).
Функция преобразования арабского числа в римское на BASIC (самый краткий код)[7]
10 INPUT "АРАБСКОЕ ЧИСЛО: "; А$ 20 FOR I=0 TO LEN(A$)-1 30 X=VAL(MID$(A$,LEN(A$)-I,1)) 40 IF X=4 OR X=9 THEN B$=MID$("IXCM",I+1,1)+MID$("VXLCDM",I*2+(X+1)/5,1)+B$ 50 IF X<4 THEN B$=MID$("IIIXXXCCCMMM",1+I*3,X)+B$ ELSE IF X>4 AND X<9 THEN B$=MID$("VLD",I+1,1)+MID$("IIIXXXCCCMMM",1+I*3,X-5)+B$ 60 NEXT I 70 PRINT "РИМСКОЕ ЧИСЛО: "; B$Функция преобразования арабского числа (в данном случае 1999) в римское на XPath
string-join( for $num in (1999) return ( ('','M','MM','MMM')[($num idiv 1000) mod 10+1], ('','C','CC','CCC','CD','D','DC','DCC','DCCC','CM')[($num idiv 100) mod 10+1], ('','X','XX','XXX','XL','L','LX','LXX','LXXX','XC')[($num idiv 10) mod 10+1], ('','I','II','III','IV','V','VI','VII','VIII','IX')[$num mod 10+1] ), '')Техническое примечание: Из-за технических ограничений некоторые браузеры не могут показывать спецсимволы, используемые в этой статье. Такие символы могут быть отображены в виде квадратиков, вопросительных знаков или других бессмысленных символов в зависимости от вашего веб-браузера, операционной системы и набора установленных шрифтов. Даже если ваш браузер способен интерпретировать UTF-8 и вы установили шрифт, поддерживающий большой диапазон Юникода, например Code2000, Arial Unicode MS, Lucida Sans Unicode или один из свободных шрифтов Unicode, — вам, возможно, придётся использовать другой браузер, поскольку возможности браузеров в этой области часто различаются.
скачатьДанный реферат составлен на основе статьи из русской Википедии. Синхронизация выполнена 10.07.11 04:39:12Похожие рефераты: Цифры, Арабские цифры, Японские цифры, Кириллические цифры, Цифры Сучжоу, Минускульные цифры, Чувашские цифры, Китайские цифры, Цифры майя.Категории: Системы счисления, Цифры.
Текст доступен по лицензии Creative Commons Attribution-ShareAlike.www.wreferat.baza-referat.ru
Римская система нумерации с помощью букв была распространена в Древнем Риме и Европе на протяжении двух тысяч лет. Только в позднем средневековье ее сменила более удобная для вычислений десятичная система цифр, заимствованная у арабов (1,2,3,4,5…).
Но, до сих пор римскими цифрами обозначаются даты на монументах, время на часах и (в англо-американской типографической традиции) страницы книжных предисловий, размеры одежды, главы монографий и учебников. Кроме того, в русском языке римскими цифрами принято обозначать порядковые числительные. Система Римских цифр в настоящее время применяется при обозначения веков (XV век и т.д.), годов н. э. (MCMLXXVII т. д.) и месяцев при указании дат (например, 1. V.1975), в исторических памятниках права как номера статей (Каролина и др)
Для обозначения чисел применялось 7 букв латинского алфавита (первая буква слов – пять, десять, пятьдесят, сто, пятьсот, тысяча):
I = 1, V = 5, X = 10, L = 50, C = 100, D = 500, M = 1000
С (100) -это первая буква латинского слова centum (сто)
а М - (1000) - на первую букву слова mille (тысяча).
Что же касается знака D (500), то он представлял собой половину знака Ф (1000)
Знак V (5) является верхней половиной знака Х (10)
Промежуточные числа образовывались путем прибавления нескольких букв справа или слева. Сначала пишутся тысячи и сотни, затем десятки и единицы. Таким образом, число 24 пишется как XXIV
Натуральные числа записываются при помощи повторения этих цифр.
При этом, если большая цифра стоит перед меньшей, то они складываются (принцип сложения), если же меньшая - перед большей, то меньшая вычитается из большей (принцип вычитания).
Другими словами - если знак, обозначающий меньшее число, стоит справа от знака, обозначающего большее число, то меньшее прибавляют к большему; если слева - то вычитают: VI - 6, т.е. 5+1 IV - 4, т.е. 5-1 LX - 60, т.е. 50+10 XL - 40, т.е. 50-10 CX - 110, т.е.100+10 XC - 90, т.е. 100-10 MDCCCXII - 1812, т.е. 1000+500+100+100+100+10+1+1
Последнее правило применяется только во избежание четырёхкратного повторения одной и той же цифры. Во избежание 4-х кратного повторения число 3999 записывается как MMMIM.
Возможно различное обозначение одного и того же числа. Так, число 80 можно представить как LXXX (50+10+10+10) и как XXC(100-20).
Например, I, Х, С ставятся соответственно перед Х, С, М для обозначения 9, 90, 900 или перед V, L, D для обозначения 4, 40, 400.
Например, VI = 5+1 = 6, IV = 5 - 1 = 4 (вместо IIII).
XIX = 10 + 10 - 1 = 19 (вместо XVIIII),
XL = 50 - 10 =40 (вместо XXXX),
XXXIII = 10 + 10 + 10 + 1 + 1 + 1 = 33 и т.д.
Римские цифры | |||||||
I | 1 | XI | 11 | XXX | 30 | CD | 400 |
II | 2 | XII | 12 | XL | 40 | D | 500 |
III | 3 | XIII | 13 | L | 50 | DC | 600 |
IV | 4 | XIV | 14 | LX | 60 | DCC | 700 |
V | 5 | XV | 15 | LXX | 70 | DCCC | 800 |
VI | 6 | XVI | 16 | LXXX | 80 | CM | 900 |
VII | 7 | XVII | 17 | XC | 90 | M | 1000 |
VIII | 8 | XVIII | 18 | C | 100 | MM | 2000 |
IX | 9 | XIX | 19 | CC | 200 | MMM | 3000 |
X | 10 | XX | 20 | CCC | 300 |
Примеры:
|
Примечание:
Основные римские цифры: I(1) - unus (унус) II(2) - duo (дуо) III(3) - tres (трэс) IV(4) - quattuor (кваттуор) V(5) - quinque (квинквэ) VI(6) - sex (сэкс) VII (7) - septem (сэптэм) VIII (8) - octo (окто) IX (9) - novem (новэм) X (10) - decem (дэцем) и т.д. XX (20) - viginti (вигинти) XXI (21) - unus et viginti или viginti unus XXII (22) - duo et viginti или viginti duo и т.д. XXVIII (28) - duodetriginta (дуодэтригинта) XXIX (29) - undetriginta (ундэтригинта) XXX (30) - triginta (тригинта) XL (40) - quadraginta (квадрагинта) L (50) - quinquaginta (квинквагинта) LX (60) - sexaginta (сэксагинта) LXX (70) - septuaginta (сэптуагинта) LXXX (80) - octoginta (октогинтна) XC (90) - nonaginta (нонагинта) C (100) - centum (центум) CC (200) - ducenti (дуценти) CCC (300) - trecenti (трэценти) CD (400) - quadrigenti (квадригэнти) D (500) - quingenti (квингэнти) DC (600) - sexcenti (сэксценти) DCC (700) - septigenti (сэптигэнти) DCCC(800) - octingenti (октигенти) CM (DCCCC) (900) - nongenti (нонгэнти) M (1000) - mille (милле) MM (2000) - duo milia (дуо милиа) V (5000) - quinque milia (квинквэ милиа) X (10000) - decem milia (дэцем милиа) XX (20000) - viginti milia (вигинти милиа) C (1000000) - centum milia (центум милиа) XI (1000000) - decies centena milia (дэциэс центэна милиа)"
studfiles.net
Римские цифры. 5 класс
Цель :
узнать о древней системе счисления.
научиться читать римские цифры
Задачи:
познакомиться с историей римской нумерации и римскими цифрами;
научиться записывать римские цифры и выполнять с ними элементарные арифметические действия;
Римские цифры.
Среди множества иероглифических систем счисления, которые существовали в разные времена у разных народов, только одна используется до сих пор. Эти цифры встречаются на циферблатах часов, фронтонах старинных и современных зданий, памятниках, страницах книг. Речь идет о римской системе счисления.
Римским цифрам около 2,5 тыс. лет. Как читать римские цифры?
Каждая римская цифра имеет своё числовое значение, а для получения какого-то числа, его просто набирают из этих цифр. Известный ряд римских цифр: I=1, V=5, X=10, L=50, C=100, D=500, M=1000.
Для закрепления в памяти буквенных обозначений цифр в порядке убывания существует мнемоническое правило:
Мы Дарим Сочные Лимоны, Хватит Всем И ещё останется.
Соответственно M, D, C, L, X, V, I
Правило записи римских чисел гласит: « Если большая цифра стоит перед меньшей, то они складываются, если же меньшая стоит перед большей, то меньшая вычитается из большей».
В наши дни любую из римских цифр запрещается записывать в одном числе более трёх раз подряд. ( V1111)
Эта таблица позволяет обозначить любое число от 1 до 3999. Вот как будет выглядеть число 3999- МММСМХС1Х.
История римских цифр.
У многих народов для обозначения числа 1 применялся один и тот же символ - вертикальная чёрточка. Это самое древнее число в истории человечества. Оно возникло из простой черты на земле, из зарубки на дереве или кости.
8. При решении задач, составлении краткой записи мы тоже используем римские цифры.
9. При решении задач, составлении краткой записи мы тоже используем римские.
10. В русском языке римскими цифрами принято обозначать порядковые числительные цифры.
11. Например, в западных странах римскими цифрами иногда записывается номер года.
Проблемная задача. Слайд 10.
Ответ: Здание Одесского оперного театра строилось с тысяча ВОСЕМЬСОТ восемьдесят четвертого по тысяча ВОСЕМЬСОТ восемьдесят седьмой год.
IV . Занимательные задачи
1.Разделите на бумаге число двенадцать пополам так, чтобы половина этого числа была семь.
Ответ:
VI . Занимательные задачи
Как записать число 275748? Римляне поступали просто: CCLXXVmDCCXLVIII. Буква m показывает, что число, стоящее впереди нее, выражает количество тысяч в данном числе.
Задание 3. Запишите арабскими цифрами числа:
XXVIII = 28,
XXXIX = 39,
CCCXCVII = 397,
MDCCCXVIII = 1818.
Задание 4. .
Задание 5.
Задание 7.
Задание 8.
При помощи счетных палочек (карандашей или спичек ) записать примеры
1. VI – IV= IX
Переложите 1 палочку так, чтобы равенство стало верным. (V + IV =IX)
2. VI + IV =XII
Переложите 1 палочку так, чтобы равенство стало верным. (VII + IV = XI)
3. V= VIII + I
Переложи 2 палочки так, чтобы равенство было верным. (VI = VIII – II)
Задание 9.
Задание 10.
Сосчитайте:
LХХIV - ХLVII = ...
CCMII - CCDI = ...
MMDCXLVIII - MMDXXLIV = ...
Решение.
Чтобы перевести цифры в обычную систему исчисления, необходимы знания о римских цифрах:
LХХIV = 74
ХLVII = 47
CCMII = 802
CCDI = 301
MMDCXLVIII = 2648
MMDXXLIV = 2534
Теперь выполним действие:
74 - 47 = 27
802 - 301 = 501
2648 - 2534 = 114
Переведём результат в римские числа:
27 = XXVII
501 = DI
114 = CXIV
Ответ :
LХХIV - ХLVII = XXVII
CCMII - CCDI = DI
MMDCXLVIII - MMDXXLIV = CXIV
Задание 10 .
Какое число римляне написали на здании храма ?
2. Сколько чисел по правилам римской нумерации можно записать с помощью цифр I; V; X?
3. Используя римскую систему записи чисел, запишите год своего рождения.
4.Переложи одну палочку так, чтобы выражение имело верное значение
VI + I = V
IX - I = X
X + III =XI
VI - IV = IX
вывод.
Итак, мы сегодня говорили о римских цифрах. Мы узнали историю возникновения римских цифр, где в наше время ещё можно встретить римские числа. Также научились записывать большие числа с помощью римских цифр, рассмотрели занимательные задачи.
литература:
Глейзер Г.И. История математики в школе. – Москва: «Просвещение»,1981.
Энциклопедия для детей. - М.: Аванта, 1998.
Игнатьев Е.И. В царстве смекалки. - М., 1994.
http://ru.wikipedia.org/wiki/%D0%E8%EC%F1%EA%E8%E5_%F6%E8%F4%F0%FB
Фото «Часы – куранты Спасской башни» http://t0.gstatic.com/images?q=tbn:ANd9GcShEhodjJtzrsEGbA-7WOvAKMCReu0RN3SUuEPa7C-26UQwsCAi9A
Рисунок «Жесты» http://t3.gstatic.com/images?q=tbn:ANd9GcQ8zQO3SfqDIrhgXHt5OndP2AigkvVy0toMFO3_61SKFdX9rBGPqSjJ2yAe
Рисунок «Часы» http://t3.gstatic.com/images?q=tbn:ANd9GcQOnCoWNVoF40dGcdhPd-s8NxT3MfqNh5cwUlXr6mmwV1T3FNPok3DSjas
Рисунок «Глобус» http://t2.gstatic.com/images?q=tbn:ANd9GcTRK2sB4hy263n-gANw3lF4WKevnqgsgyo4yGru3H5RDWJELKGh20PfHQ
Фото «Монета» http://t3.gstatic.com/images?q=tbn:ANd9GcQi1wGb4djSQBUYX_NOvT_OV0QzGJpSwjdAPZUuKWLusSehwrteSho1Cw
Рисунок «Первые школы» http://laginlib.org.ua/blog/wp-content/uploads/2011/09/%D0%B4%D1%80%D0%B5%D0%B2%D0%BD%D1%8F%D1%8F-%D0%B3%D1%80%D0%B5%D1%86%D0%B8%D1%8F.jpg
Фото «Здание Волжской академии водного транспорта» http://fotki.yandex.ru/users/apashenko/view/152409/
Рисунок «Римские цифры» http://t0.gstatic.com/images?q=tbn:ANd9GcQ97vyr86M5mf9mySXrq7p4FnWG-JS0UOJozKgDwz1_tz7kiNR-
Рисунок «Цифра 4» http://abrosait.ru/wp-content/uploads/2010/03/4.jpg
Рисунок «Римские цифры! Эх, посчитаем!» http://proza.ru/pics/2010/01/28/1195.jpg
http://www.vneuroka.ru/matmir/zadacha.php?cat=1&num=12&sub=4
Рисунок «They used to count with I, V, X, D, C, L & Ms. Roman numerals» http://activerain.com/image_store/uploads/7/8/4/6/3/ar13319501136487.png
Фото «Здание Одесского оперного театра» http://images-6.moifoto.ru/big/1/690/2888907gmg.jpg?1354381401
Рисунок «Дети» http://www.ahtme.edu.ee/files/4b/image/3.gif
Рисунок «Умножение 123 на 165» http://hotcooltop.com/image268.jpg
Рисунок «Смайл» http://img-fotki.yandex.ru/get/5818/137686494.0/0_72e39_333c6662_L
Фото «А.С. Пушкин» http://im8-tub-ru.yandex.net/i?id=489666275-33-72
Фото «А. Герцен» http://fra.1september.ru/2009/20/russes_herzen.jpg
Фото «А. Блок» http://im6-tub-ru.yandex.net/i?id=16653850-19-72
Олимпиадные задания по математике 5-8 классы.( 500 нестандартных задач для проведения конкурсов и олимпиад. Развитие творческой сущности учащихся). / автор-составитель Н.В.Заболотнева.- Волгоград: Учитель, 2006.
infourok.ru
Реферат на тему:
Римские цифры — цифры, использовавшиеся древними римлянами в своей непозиционной системе счисления.
Натуральные числа записываются при помощи повторения этих цифр. При этом, если большая цифра стоит перед меньшей, то они складываются (принцип сложения), если же меньшая — перед большей, то меньшая вычитается из большей (принцип вычитания). Последнее правило применяется только во избежание четырёхкратного повторения одной и той же цифры.
Римские цифры появились за 500 лет до нашей эры у этрусков.
Часы-куранты Спасской башни
римские цифры
1 | I | лат. unus |
5 | V | лат. quinque |
10 | X | лат. decem |
50 | L | лат. quinquaginta |
100 | C | лат. centum |
500 | D | лат. quingenti |
1000 | M | лат. mille |
В русском языке для закрепления в памяти буквенных обозначений цифр в порядке убывания существуют мнемонические правила:
Мы Dарим Сочные Lимоны, Хватит Vсем Iх.
Mы Dаем Cоветы Lишь Xорошо Vоспитанным Iндивидуумам
Соответственно M, D, C, L, X, V, I
0 | - | |
4 | IV | до XIX века - IIII |
8 | VIII | |
9 | IX | |
31 | XXXI | |
46 | XLVI | |
99 | XCIX | |
583 | DLXXXIII | |
888 | DCCCLXXXVIII | от 1 до 1000 — самое длинное |
1668 | MDCLXVIII | |
1989 | MCMLXXXIX | |
2009 | MMIX | |
2010 | MMX | |
2011 | MMXI | |
3999 | MMMCMXCIX | |
5000 | ↁ | |
10000 | ↂ |
Для правильной записи больших чисел римскими цифрами необходимо сначала записать число тысяч, затем сотен, затем десятков и, наконец, единиц.
Пример: число 1988. Одна тысяча M, девять сотен CM, восемь десятков LXXX, восемь единиц VIII. Запишем их вместе: MCMLXXXVIII.
Довольно часто, чтобы выделить числа в тексте, над ними рисовали черту: LXIV. Иногда черту рисовали и сверху, и снизу: XXXII — в частности, так принято выделять римские цифры в русском рукописном тексте (в типографском наборе это не используют из-за технической сложности). У других авторов черта сверху могла обозначать увеличение значения цифры в 1000 раз: VM = 6000.
Часы марки Tissot с традиционным написанием «IIII»
Существует «сокращённый способ» для записи больших чисел, таких как 1999. Он не рекомендуется, но иногда используется для упрощения. Отличие состоит в том, что для уменьшения цифры слева от неё может писаться любая цифра:
Повсеместно записывать число «четыре» как «IV» стали только в XIX веке, до этого наиболее часто употреблялась запись «IIII». Однако запись «IV» можно встретить уже в документах манускрипта «Forme of Cury», датируемых 1390 годом. На циферблатах часов в большинстве случаев традиционно используется «IIII» вместо «IV», главным образом, по эстетическим соображениям: такое написание обеспечивает визуальную симметрию с цифрами «VIII» на противоположной стороне, а перевёрнутую «IV» прочесть труднее, чем «IIII».
Другая версия
Для записи целых чисел в римской нумерации используются семь основных чисел:
При этом некоторые из цифр (I, X, C, M) могут повторяться, но не более трех раз, таким образом с их помощью можно записать любое целое число не более 3999 (MMMCMXCIX). В ранние периоды существовали знаки для обозначения бо́льших цифр — 5000, 10000, 50000 и 100000 (тогда максимальное число по упомянутому правилу равно 399999). При записи чисел в римской системе счисления меньшая цифра может стоять справа от большей; в этом случае она прибавляется к ней. Например, число 283 по-римски записывается как CCLXXXIII, то есть 200+50+30+3=283. Здесь цифра, изображающая сотню, повторена два раза, а цифры, изображающие соответственно десяток и единицу, повторены по три раза.
Меньшая цифра может быть записана и слева от большей, тогда ее следует вычесть из большей. В этом случае повторения меньшей цифры не допускаются. По-римски число 94 будет XCIV=100-10+5-1=94 — так называемое «правило вычитания» (появилось в эпоху поздней античности, а до этого римляне писали число 4 как IIII, а число 40 — как XXXX). Существует шесть вариантов использования «правила вычитания»:
Необходимо отметить, что другие способы «вычитания» не допустимы; так, число 99 должно быть записано как XCIX, но не как IC. Однако, в наши дни в некоторых случаях используется и упрощенная запись римских чисел: например, в программе Microsoft Excel при преобразовании арабских цифр в римские при помощи функции «РИМСКОЕ()» можно использовать несколько видов представления чисел, от классического до сильно упрощенного (так, число 499 может быть записано как CDXCIX, LDVLIV, XDIX, VDIV или ID).
С помощью римских цифр можно записывать и большие числа. Для этого над теми цифрами, которые обозначают тысячи, ставится черта, а над цифрами, которые обозначают миллионы, — двойная черта. Например, число 123123 будет выглядеть так:
CXXIIICXXIII
А миллион как I, но только не с одной, а с двумя чертами во главе.
В русском языке римские цифры используются в следующих случаях:
В других языках сфера применения римских цифр может иметь особенности, например, в западных странах римскими цифрами иногда записывается номер года.
Стандарт Юникода рекомендует использовать для представления римских цифр обычные латинские буквы.[1] Тем не менее стандарт включает также специальные символы для римских цифр как часть Числовых форм (англ. Number Forms)[2] в области знаков с кодами с U+2160 по U+2188. Например, MCMLXXXVIII может быть представлено в форме ⅯⅭⅯⅬⅩⅩⅩⅧ. Этот диапазон включает как строчные, так и прописные цифры от 1 (Ⅰ или I) до 12 (Ⅻ или XII), в том числе и комбинированные глифы для составных чисел, таких как 8 (Ⅷ или VIII), главным образом для обеспечения совместимости с восточноазиатскими наборами символов в таких промышленных стандартах, как JIS X 0213, где эти символы определены. Комбинированные глифы используются для представления чисел, которые ранее составлялись из отдельных символов (например, Ⅻ вместо его представления как Ⅹ и Ⅱ). В дополнение к этому, глифы существуют для архаичных[2] форм записи чисел 1000, 5000, 10 000, большой обратной C (Ɔ), поздней формы записи 6 (ↅ, похожей на греческую стигму: Ϛ), ранней формы записи числа 50 (ↆ, похожей на стрелку, указывающую вниз ↓⫝⊥[3]), 50 000, и 100 000. Следует отметить, что маленькая обратная c, ↄ не включена в символы римских цифр, но включена в стандарт Юникод как прописная клавдиева буква Ↄ.
Ⅰ2160 | Ⅱ2161 | Ⅲ2162 | Ⅳ2163 | Ⅴ2164 | Ⅵ2165 | Ⅶ2166 | Ⅷ2167 | Ⅸ2168 | Ⅹ2169 | Ⅺ216A | Ⅻ216B | Ⅼ216C | Ⅽ216D | Ⅾ216E | Ⅿ216F |
ⅰ2170 | ⅱ2171 | ⅲ2172 | ⅳ2173 | ⅴ2174 | ⅵ2175 | ⅶ2176 | ⅷ2177 | ⅸ2178 | ⅹ2179 | ⅺ217A | ⅻ217B | ⅼ217C | ⅽ217D | ⅾ217E | ⅿ217F |
ↀ2180 | ↁ2181 | ↂ2182 | Ↄ | ↄ | ↄ | ↄ | ↄ | ↄ |
Отображение всех этих символов требует наличия программного обеспечения, поддерживающего стандарт Юникод, и шрифта, содержащего соответствующие этим символам глифы.
Регулярное выражение для проверки римских цифр — '^(?i)M{0,3}(D?C{0,3}|C[DM])(L?X{0,3}|X[LC])(V?I{0,3}|I[VX])$'.
Для преобразования чисел, записанных арабскими цифрами, в римские, используются специальные функции. Например, в русской версии Microsoft Excel для этого существует функция РИМСКОЕ(аргумент), в английской версии Microsoft Excel и в любой версии OpenOffice.org Calc эта функция называется ROMAN(аргумент).
Функции преобразования на JavaScript
var arab = [1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000]; var roman = ['I','IV','V','IX','X','XL','L','XC','C','CD','D','CM','M']; function arabToRoman(number) { if(!number) return ''; var ret = ''; var i = arab.length - 1; while(number > 0) { if(number >= arab[i]) { ret += roman[i]; number -= arab[i]; } else { i--; } } return ret; } function romanToArab(str) { str = str.toUpperCase(); var ret = 0; var i = arab.length - 1; var pos = 0; while(i >= 0 && pos < str.length ) { if(str.substr(pos, roman[i].length) == roman[i]) { ret += arab[i]; pos += roman[i].length; } else { i--; } } return ret; }Аналогичные функции на Си (C89):
#include <string.h> const int arabar[] = { 1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000}; const char *romanar[] = { "I", "IV", "V", "IX", "X", "XL", "L", "XC", "C", "CD", "D", "CM", "M"}; char *arab2roman(unsigned short int arab) { static char roman[80]; const int m = sizeof(arabar)/sizeof(int)-1, arabmax=arabar[m]; const char romanmax=romanar[m][0]; int i, n; if(!arab) { *roman=0; return roman; } i=0; while(arab>arabmax) { roman[i++] = romanmax; arab -= arabmax; } n=m; while(arab > 0) { if(arab >= arabar[n]) { roman[i++] = romanar[n][0]; if(n&1) roman[i++] = romanar[n][1]; arab -= arabar[n]; } else n--; } roman[i]=0; return roman; } unsigned short int roman2arab(char *roman) { const int m = sizeof(arabar)/sizeof(int)-1; unsigned short int arab; int len, n, i, pir; len=strlen(roman); arab=0; n=m; i=0; while(n >= 0 && i < len) { pir=n&1; if(roman[i] == romanar[n][0] && (!pir || roman[i+1] == romanar[n][1])) { arab += arabar[n]; i += 1+pir; } else n--; } return arab; }Программа перевода арабских цифр в римские и наоборот[5]
type str2 = string[2]; const Rims : array[1..14] of str2 = ('M','CM','D','CD','C','XC','L','XL','X','IX','V','IV','I',' '); Arab : array[1..14] of integer = (1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1, 0); var N, NI, I, J : integer; S : string; function Arab2Rim(N : integer) : string; var S : string; I : integer; begin S := ''; I:=1; while N > 0 do begin while Arab[I]<=N do begin S := S + Rims[I]; N := N - Arab[I] end; I:=I+1 end; Arab2Rim := S end; function Rim2Arab (S:string) : integer; var I, N : integer; begin I:=1; N := 0; while S<>'' do begin while Rims[I] = Copy(S, 1, Length(Rims[I]) ) do begin S := Copy( S, 1+Length(Rims[I]), 255); N := N + Arab[I] end; I:=I+1 end; Rim2Arab := N end; begin WriteLn('Перевод из арабских цифр в римские. 1999 B_SA'); { Write('Введите число для преобразования:'); ReadLn(N);} for NI := 26 to 46 do WriteLn(NI,' = ',Arab2Rim(NI),' обратно ', Rim2Arab( Arab2Rim(NI) )); end.Функция преобразования арабского числа в римское на Pascal[6]
function Arab2Roman(arab:integer):string; var i:integer; d:integer; arab_str:string; arab_len:integer; begin Result := ''; arab_str := IntToStr(arab); arab_len := Length(arab_str); for i := 0 to arab_len-1 do begin d := StrToInt(String(arab_str[arab_len-i])); if (d+1) mod 5 = 0 then Result := Copy('IXCM', 1+i, 1) + Copy('VXLCDM', i*2 + (d+1) div 5, 1) + Result else Result := Copy('VLD', 1+i, d div 5) + Copy('IIIXXXCCCMMM', 1+i*3, d mod 5) + Result; end; end;Отличительной особенностью данного алгоритма является то, что в нем не используются массивы (если, конечно, не считать строку массивом символов).
Функция преобразования арабского числа в римское на BASIC (самый краткий код)[7]
10 INPUT "АРАБСКОЕ ЧИСЛО: "; А$ 20 FOR I=0 TO LEN(A$)-1 30 X=VAL(MID$(A$,LEN(A$)-I,1)) 40 IF X=4 OR X=9 THEN B$=MID$("IXCM",I+1,1)+MID$("VXLCDM",I*2+(X+1)/5,1)+B$ 50 IF X<4 THEN B$=MID$("IIIXXXCCCMMM",1+I*3,X)+B$ ELSE IF X>4 AND X<9 THEN B$=MID$("VLD",I+1,1)+MID$("IIIXXXCCCMMM",1+I*3,X-5)+B$ 60 NEXT I 70 PRINT "РИМСКОЕ ЧИСЛО: "; B$Функция преобразования арабского числа (в данном случае 1999) в римское на XPath
string-join( for $num in (1999) return ( ('','M','MM','MMM')[($num idiv 1000) mod 10+1], ('','C','CC','CCC','CD','D','DC','DCC','DCCC','CM')[($num idiv 100) mod 10+1], ('','X','XX','XXX','XL','L','LX','LXX','LXXX','XC')[($num idiv 10) mod 10+1], ('','I','II','III','IV','V','VI','VII','VIII','IX')[$num mod 10+1] ), '')Техническое примечание: Из-за технических ограничений некоторые браузеры не могут показывать спецсимволы, используемые в этой статье. Такие символы могут быть отображены в виде квадратиков, вопросительных знаков или других бессмысленных символов в зависимости от вашего веб-браузера, операционной системы и набора установленных шрифтов. Даже если ваш браузер способен интерпретировать UTF-8 и вы установили шрифт, поддерживающий большой диапазон Юникода, например Code2000, Arial Unicode MS, Lucida Sans Unicode или один из свободных шрифтов Unicode, — вам, возможно, придётся использовать другой браузер, поскольку возможности браузеров в этой области часто различаются.
скачатьДанный реферат составлен на основе статьи из русской Википедии. Синхронизация выполнена 10.07.11 04:39:12Похожие рефераты: 7 (цифра), 2 (цифра), 0 (цифра), 9 (цифра), 8 (цифра), 1 (цифра), 6 (цифра), 5 (цифра), 4 (цифра).Категории: Системы счисления, Цифры.
Текст доступен по лицензии Creative Commons Attribution-ShareAlike.www.wreferat.baza-referat.ru
Реферат на тему:
Римские цифры — цифры, использовавшиеся древними римлянами в своей непозиционной системе счисления.
Натуральные числа записываются при помощи повторения этих цифр. При этом, если большая цифра стоит перед меньшей, то они складываются (принцип сложения), если же меньшая — перед большей, то меньшая вычитается из большей (принцип вычитания). Последнее правило применяется только во избежание четырёхкратного повторения одной и той же цифры.
Римские цифры появились за 500 лет до нашей эры у этрусков.
Часы-куранты Спасской башни
римские цифры
1 | I | лат. unus |
5 | V | лат. quinque |
10 | X | лат. decem |
50 | L | лат. quinquaginta |
100 | C | лат. centum |
500 | D | лат. quingenti |
1000 | M | лат. mille |
В русском языке для закрепления в памяти буквенных обозначений цифр в порядке убывания существуют мнемонические правила:
Мы Dарим Сочные Lимоны, Хватит Vсем Iх.
Mы Dаем Cоветы Lишь Xорошо Vоспитанным Iндивидуумам
Соответственно M, D, C, L, X, V, I
0 | - | |
4 | IV | до XIX века - IIII |
8 | VIII | |
9 | IX | |
31 | XXXI | |
46 | XLVI | |
99 | XCIX | |
583 | DLXXXIII | |
888 | DCCCLXXXVIII | от 1 до 1000 — самое длинное |
1668 | MDCLXVIII | |
1989 | MCMLXXXIX | |
2009 | MMIX | |
2010 | MMX | |
2011 | MMXI | |
3999 | MMMCMXCIX | |
5000 | ↁ | |
10000 | ↂ |
Для правильной записи больших чисел римскими цифрами необходимо сначала записать число тысяч, затем сотен, затем десятков и, наконец, единиц.
Пример: число 1988. Одна тысяча M, девять сотен CM, восемь десятков LXXX, восемь единиц VIII. Запишем их вместе: MCMLXXXVIII.
Довольно часто, чтобы выделить числа в тексте, над ними рисовали черту: LXIV. Иногда черту рисовали и сверху, и снизу: XXXII — в частности, так принято выделять римские цифры в русском рукописном тексте (в типографском наборе это не используют из-за технической сложности). У других авторов черта сверху могла обозначать увеличение значения цифры в 1000 раз: VM = 6000.
Часы марки Tissot с традиционным написанием «IIII»
Существует «сокращённый способ» для записи больших чисел, таких как 1999. Он не рекомендуется, но иногда используется для упрощения. Отличие состоит в том, что для уменьшения цифры слева от неё может писаться любая цифра:
Повсеместно записывать число «четыре» как «IV» стали только в XIX веке, до этого наиболее часто употреблялась запись «IIII». Однако запись «IV» можно встретить уже в документах манускрипта «Forme of Cury», датируемых 1390 годом. На циферблатах часов в большинстве случаев традиционно используется «IIII» вместо «IV», главным образом, по эстетическим соображениям: такое написание обеспечивает визуальную симметрию с цифрами «VIII» на противоположной стороне, а перевёрнутую «IV» прочесть труднее, чем «IIII».
Другая версия
Для записи целых чисел в римской нумерации используются семь основных чисел:
При этом некоторые из цифр (I, X, C, M) могут повторяться, но не более трех раз, таким образом с их помощью можно записать любое целое число не более 3999 (MMMCMXCIX). В ранние периоды существовали знаки для обозначения бо́льших цифр — 5000, 10000, 50000 и 100000 (тогда максимальное число по упомянутому правилу равно 399999). При записи чисел в римской системе счисления меньшая цифра может стоять справа от большей; в этом случае она прибавляется к ней. Например, число 283 по-римски записывается как CCLXXXIII, то есть 200+50+30+3=283. Здесь цифра, изображающая сотню, повторена два раза, а цифры, изображающие соответственно десяток и единицу, повторены по три раза.
Меньшая цифра может быть записана и слева от большей, тогда ее следует вычесть из большей. В этом случае повторения меньшей цифры не допускаются. По-римски число 94 будет XCIV=100-10+5-1=94 — так называемое «правило вычитания» (появилось в эпоху поздней античности, а до этого римляне писали число 4 как IIII, а число 40 — как XXXX). Существует шесть вариантов использования «правила вычитания»:
Необходимо отметить, что другие способы «вычитания» не допустимы; так, число 99 должно быть записано как XCIX, но не как IC. Однако, в наши дни в некоторых случаях используется и упрощенная запись римских чисел: например, в программе Microsoft Excel при преобразовании арабских цифр в римские при помощи функции «РИМСКОЕ()» можно использовать несколько видов представления чисел, от классического до сильно упрощенного (так, число 499 может быть записано как CDXCIX, LDVLIV, XDIX, VDIV или ID).
С помощью римских цифр можно записывать и большие числа. Для этого над теми цифрами, которые обозначают тысячи, ставится черта, а над цифрами, которые обозначают миллионы, — двойная черта. Например, число 123123 будет выглядеть так:
CXXIIICXXIII
А миллион как I, но только не с одной, а с двумя чертами во главе.
В русском языке римские цифры используются в следующих случаях:
В других языках сфера применения римских цифр может иметь особенности, например, в западных странах римскими цифрами иногда записывается номер года.
Стандарт Юникода рекомендует использовать для представления римских цифр обычные латинские буквы.[1] Тем не менее стандарт включает также специальные символы для римских цифр как часть Числовых форм (англ. Number Forms)[2] в области знаков с кодами с U+2160 по U+2188. Например, MCMLXXXVIII может быть представлено в форме ⅯⅭⅯⅬⅩⅩⅩⅧ. Этот диапазон включает как строчные, так и прописные цифры от 1 (Ⅰ или I) до 12 (Ⅻ или XII), в том числе и комбинированные глифы для составных чисел, таких как 8 (Ⅷ или VIII), главным образом для обеспечения совместимости с восточноазиатскими наборами символов в таких промышленных стандартах, как JIS X 0213, где эти символы определены. Комбинированные глифы используются для представления чисел, которые ранее составлялись из отдельных символов (например, Ⅻ вместо его представления как Ⅹ и Ⅱ). В дополнение к этому, глифы существуют для архаичных[2] форм записи чисел 1000, 5000, 10 000, большой обратной C (Ɔ), поздней формы записи 6 (ↅ, похожей на греческую стигму: Ϛ), ранней формы записи числа 50 (ↆ, похожей на стрелку, указывающую вниз ↓⫝⊥[3]), 50 000, и 100 000. Следует отметить, что маленькая обратная c, ↄ не включена в символы римских цифр, но включена в стандарт Юникод как прописная клавдиева буква Ↄ.
Ⅰ2160 | Ⅱ2161 | Ⅲ2162 | Ⅳ2163 | Ⅴ2164 | Ⅵ2165 | Ⅶ2166 | Ⅷ2167 | Ⅸ2168 | Ⅹ2169 | Ⅺ216A | Ⅻ216B | Ⅼ216C | Ⅽ216D | Ⅾ216E | Ⅿ216F |
ⅰ2170 | ⅱ2171 | ⅲ2172 | ⅳ2173 | ⅴ2174 | ⅵ2175 | ⅶ2176 | ⅷ2177 | ⅸ2178 | ⅹ2179 | ⅺ217A | ⅻ217B | ⅼ217C | ⅽ217D | ⅾ217E | ⅿ217F |
ↀ2180 | ↁ2181 | ↂ2182 | Ↄ | ↄ | ↄ | ↄ | ↄ | ↄ |
Отображение всех этих символов требует наличия программного обеспечения, поддерживающего стандарт Юникод, и шрифта, содержащего соответствующие этим символам глифы.
Регулярное выражение для проверки римских цифр — '^(?i)M{0,3}(D?C{0,3}|C[DM])(L?X{0,3}|X[LC])(V?I{0,3}|I[VX])$'.
Для преобразования чисел, записанных арабскими цифрами, в римские, используются специальные функции. Например, в русской версии Microsoft Excel для этого существует функция РИМСКОЕ(аргумент), в английской версии Microsoft Excel и в любой версии OpenOffice.org Calc эта функция называется ROMAN(аргумент).
Функции преобразования на JavaScript
var arab = [1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000]; var roman = ['I','IV','V','IX','X','XL','L','XC','C','CD','D','CM','M']; function arabToRoman(number) { if(!number) return ''; var ret = ''; var i = arab.length - 1; while(number > 0) { if(number >= arab[i]) { ret += roman[i]; number -= arab[i]; } else { i--; } } return ret; } function romanToArab(str) { str = str.toUpperCase(); var ret = 0; var i = arab.length - 1; var pos = 0; while(i >= 0 && pos < str.length ) { if(str.substr(pos, roman[i].length) == roman[i]) { ret += arab[i]; pos += roman[i].length; } else { i--; } } return ret; }Аналогичные функции на Си (C89):
#include <string.h> const int arabar[] = { 1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000}; const char *romanar[] = { "I", "IV", "V", "IX", "X", "XL", "L", "XC", "C", "CD", "D", "CM", "M"}; char *arab2roman(unsigned short int arab) { static char roman[80]; const int m = sizeof(arabar)/sizeof(int)-1, arabmax=arabar[m]; const char romanmax=romanar[m][0]; int i, n; if(!arab) { *roman=0; return roman; } i=0; while(arab>arabmax) { roman[i++] = romanmax; arab -= arabmax; } n=m; while(arab > 0) { if(arab >= arabar[n]) { roman[i++] = romanar[n][0]; if(n&1) roman[i++] = romanar[n][1]; arab -= arabar[n]; } else n--; } roman[i]=0; return roman; } unsigned short int roman2arab(char *roman) { const int m = sizeof(arabar)/sizeof(int)-1; unsigned short int arab; int len, n, i, pir; len=strlen(roman); arab=0; n=m; i=0; while(n >= 0 && i < len) { pir=n&1; if(roman[i] == romanar[n][0] && (!pir || roman[i+1] == romanar[n][1])) { arab += arabar[n]; i += 1+pir; } else n--; } return arab; }Программа перевода арабских цифр в римские и наоборот[5]
type str2 = string[2]; const Rims : array[1..14] of str2 = ('M','CM','D','CD','C','XC','L','XL','X','IX','V','IV','I',' '); Arab : array[1..14] of integer = (1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1, 0); var N, NI, I, J : integer; S : string; function Arab2Rim(N : integer) : string; var S : string; I : integer; begin S := ''; I:=1; while N > 0 do begin while Arab[I]<=N do begin S := S + Rims[I]; N := N - Arab[I] end; I:=I+1 end; Arab2Rim := S end; function Rim2Arab (S:string) : integer; var I, N : integer; begin I:=1; N := 0; while S<>'' do begin while Rims[I] = Copy(S, 1, Length(Rims[I]) ) do begin S := Copy( S, 1+Length(Rims[I]), 255); N := N + Arab[I] end; I:=I+1 end; Rim2Arab := N end; begin WriteLn('Перевод из арабских цифр в римские. 1999 B_SA'); { Write('Введите число для преобразования:'); ReadLn(N);} for NI := 26 to 46 do WriteLn(NI,' = ',Arab2Rim(NI),' обратно ', Rim2Arab( Arab2Rim(NI) )); end.Функция преобразования арабского числа в римское на Pascal[6]
function Arab2Roman(arab:integer):string; var i:integer; d:integer; arab_str:string; arab_len:integer; begin Result := ''; arab_str := IntToStr(arab); arab_len := Length(arab_str); for i := 0 to arab_len-1 do begin d := StrToInt(String(arab_str[arab_len-i])); if (d+1) mod 5 = 0 then Result := Copy('IXCM', 1+i, 1) + Copy('VXLCDM', i*2 + (d+1) div 5, 1) + Result else Result := Copy('VLD', 1+i, d div 5) + Copy('IIIXXXCCCMMM', 1+i*3, d mod 5) + Result; end; end;Отличительной особенностью данного алгоритма является то, что в нем не используются массивы (если, конечно, не считать строку массивом символов).
Функция преобразования арабского числа в римское на BASIC (самый краткий код)[7]
10 INPUT "АРАБСКОЕ ЧИСЛО: "; А$ 20 FOR I=0 TO LEN(A$)-1 30 X=VAL(MID$(A$,LEN(A$)-I,1)) 40 IF X=4 OR X=9 THEN B$=MID$("IXCM",I+1,1)+MID$("VXLCDM",I*2+(X+1)/5,1)+B$ 50 IF X<4 THEN B$=MID$("IIIXXXCCCMMM",1+I*3,X)+B$ ELSE IF X>4 AND X<9 THEN B$=MID$("VLD",I+1,1)+MID$("IIIXXXCCCMMM",1+I*3,X-5)+B$ 60 NEXT I 70 PRINT "РИМСКОЕ ЧИСЛО: "; B$Функция преобразования арабского числа (в данном случае 1999) в римское на XPath
string-join( for $num in (1999) return ( ('','M','MM','MMM')[($num idiv 1000) mod 10+1], ('','C','CC','CCC','CD','D','DC','DCC','DCCC','CM')[($num idiv 100) mod 10+1], ('','X','XX','XXX','XL','L','LX','LXX','LXXX','XC')[($num idiv 10) mod 10+1], ('','I','II','III','IV','V','VI','VII','VIII','IX')[$num mod 10+1] ), '')Техническое примечание: Из-за технических ограничений некоторые браузеры не могут показывать спецсимволы, используемые в этой статье. Такие символы могут быть отображены в виде квадратиков, вопросительных знаков или других бессмысленных символов в зависимости от вашего веб-браузера, операционной системы и набора установленных шрифтов. Даже если ваш браузер способен интерпретировать UTF-8 и вы установили шрифт, поддерживающий большой диапазон Юникода, например Code2000, Arial Unicode MS, Lucida Sans Unicode или один из свободных шрифтов Unicode, — вам, возможно, придётся использовать другой браузер, поскольку возможности браузеров в этой области часто различаются.
скачатьДанный реферат составлен на основе статьи из русской Википедии. Синхронизация выполнена 10.07.11 04:39:12Похожие рефераты: 7 (цифра), 2 (цифра), 0 (цифра), 9 (цифра), 8 (цифра), 1 (цифра), 6 (цифра), 5 (цифра), 4 (цифра).Категории: Системы счисления, Цифры.
Текст доступен по лицензии Creative Commons Attribution-ShareAlike.wreferat.baza-referat.ru
Реферат на тему:
Римские цифры — цифры, использовавшиеся древними римлянами в своей непозиционной системе счисления.
Натуральные числа записываются при помощи повторения этих цифр. При этом, если большая цифра стоит перед меньшей, то они складываются (принцип сложения), если же меньшая — перед большей, то меньшая вычитается из большей (принцип вычитания). Последнее правило применяется только во избежание четырёхкратного повторения одной и той же цифры.
Римские цифры появились за 500 лет до нашей эры у этрусков.
Часы-куранты Спасской башни
римские цифры
1 | I | лат. unus |
5 | V | лат. quinque |
10 | X | лат. decem |
50 | L | лат. quinquaginta |
100 | C | лат. centum |
500 | D | лат. quingenti |
1000 | M | лат. mille |
В русском языке для закрепления в памяти буквенных обозначений цифр в порядке убывания существуют мнемонические правила:
Мы Dарим Сочные Lимоны, Хватит Vсем Iх.
Mы Dаем Cоветы Lишь Xорошо Vоспитанным Iндивидуумам
Соответственно M, D, C, L, X, V, I
0 | - | |
4 | IV | до XIX века - IIII |
8 | VIII | |
9 | IX | |
31 | XXXI | |
46 | XLVI | |
99 | XCIX | |
583 | DLXXXIII | |
888 | DCCCLXXXVIII | от 1 до 1000 — самое длинное |
1668 | MDCLXVIII | |
1989 | MCMLXXXIX | |
2009 | MMIX | |
2010 | MMX | |
2011 | MMXI | |
3999 | MMMCMXCIX | |
5000 | ↁ | |
10000 | ↂ |
Для правильной записи больших чисел римскими цифрами необходимо сначала записать число тысяч, затем сотен, затем десятков и, наконец, единиц.
Пример: число 1988. Одна тысяча M, девять сотен CM, восемь десятков LXXX, восемь единиц VIII. Запишем их вместе: MCMLXXXVIII.
Довольно часто, чтобы выделить числа в тексте, над ними рисовали черту: LXIV. Иногда черту рисовали и сверху, и снизу: XXXII — в частности, так принято выделять римские цифры в русском рукописном тексте (в типографском наборе это не используют из-за технической сложности). У других авторов черта сверху могла обозначать увеличение значения цифры в 1000 раз: VM = 6000.
Часы марки Tissot с традиционным написанием «IIII»
Существует «сокращённый способ» для записи больших чисел, таких как 1999. Он не рекомендуется, но иногда используется для упрощения. Отличие состоит в том, что для уменьшения цифры слева от неё может писаться любая цифра:
Повсеместно записывать число «четыре» как «IV» стали только в XIX веке, до этого наиболее часто употреблялась запись «IIII». Однако запись «IV» можно встретить уже в документах манускрипта «Forme of Cury», датируемых 1390 годом. На циферблатах часов в большинстве случаев традиционно используется «IIII» вместо «IV», главным образом, по эстетическим соображениям: такое написание обеспечивает визуальную симметрию с цифрами «VIII» на противоположной стороне, а перевёрнутую «IV» прочесть труднее, чем «IIII».
Другая версия
Для записи целых чисел в римской нумерации используются семь основных чисел:
При этом некоторые из цифр (I, X, C, M) могут повторяться, но не более трех раз, таким образом с их помощью можно записать любое целое число не более 3999 (MMMCMXCIX). В ранние периоды существовали знаки для обозначения бо́льших цифр — 5000, 10000, 50000 и 100000 (тогда максимальное число по упомянутому правилу равно 399999). При записи чисел в римской системе счисления меньшая цифра может стоять справа от большей; в этом случае она прибавляется к ней. Например, число 283 по-римски записывается как CCLXXXIII, то есть 200+50+30+3=283. Здесь цифра, изображающая сотню, повторена два раза, а цифры, изображающие соответственно десяток и единицу, повторены по три раза.
Меньшая цифра может быть записана и слева от большей, тогда ее следует вычесть из большей. В этом случае повторения меньшей цифры не допускаются. По-римски число 94 будет XCIV=100-10+5-1=94 — так называемое «правило вычитания» (появилось в эпоху поздней античности, а до этого римляне писали число 4 как IIII, а число 40 — как XXXX). Существует шесть вариантов использования «правила вычитания»:
Необходимо отметить, что другие способы «вычитания» не допустимы; так, число 99 должно быть записано как XCIX, но не как IC. Однако, в наши дни в некоторых случаях используется и упрощенная запись римских чисел: например, в программе Microsoft Excel при преобразовании арабских цифр в римские при помощи функции «РИМСКОЕ()» можно использовать несколько видов представления чисел, от классического до сильно упрощенного (так, число 499 может быть записано как CDXCIX, LDVLIV, XDIX, VDIV или ID).
С помощью римских цифр можно записывать и большие числа. Для этого над теми цифрами, которые обозначают тысячи, ставится черта, а над цифрами, которые обозначают миллионы, — двойная черта. Например, число 123123 будет выглядеть так:
CXXIIICXXIII
А миллион как I, но только не с одной, а с двумя чертами во главе.
В русском языке римские цифры используются в следующих случаях:
В других языках сфера применения римских цифр может иметь особенности, например, в западных странах римскими цифрами иногда записывается номер года.
Стандарт Юникода рекомендует использовать для представления римских цифр обычные латинские буквы.[1] Тем не менее стандарт включает также специальные символы для римских цифр как часть Числовых форм (англ. Number Forms)[2] в области знаков с кодами с U+2160 по U+2188. Например, MCMLXXXVIII может быть представлено в форме ⅯⅭⅯⅬⅩⅩⅩⅧ. Этот диапазон включает как строчные, так и прописные цифры от 1 (Ⅰ или I) до 12 (Ⅻ или XII), в том числе и комбинированные глифы для составных чисел, таких как 8 (Ⅷ или VIII), главным образом для обеспечения совместимости с восточноазиатскими наборами символов в таких промышленных стандартах, как JIS X 0213, где эти символы определены. Комбинированные глифы используются для представления чисел, которые ранее составлялись из отдельных символов (например, Ⅻ вместо его представления как Ⅹ и Ⅱ). В дополнение к этому, глифы существуют для архаичных[2] форм записи чисел 1000, 5000, 10 000, большой обратной C (Ɔ), поздней формы записи 6 (ↅ, похожей на греческую стигму: Ϛ), ранней формы записи числа 50 (ↆ, похожей на стрелку, указывающую вниз ↓⫝⊥[3]), 50 000, и 100 000. Следует отметить, что маленькая обратная c, ↄ не включена в символы римских цифр, но включена в стандарт Юникод как прописная клавдиева буква Ↄ.
Ⅰ2160 | Ⅱ2161 | Ⅲ2162 | Ⅳ2163 | Ⅴ2164 | Ⅵ2165 | Ⅶ2166 | Ⅷ2167 | Ⅸ2168 | Ⅹ2169 | Ⅺ216A | Ⅻ216B | Ⅼ216C | Ⅽ216D | Ⅾ216E | Ⅿ216F |
ⅰ2170 | ⅱ2171 | ⅲ2172 | ⅳ2173 | ⅴ2174 | ⅵ2175 | ⅶ2176 | ⅷ2177 | ⅸ2178 | ⅹ2179 | ⅺ217A | ⅻ217B | ⅼ217C | ⅽ217D | ⅾ217E | ⅿ217F |
ↀ2180 | ↁ2181 | ↂ2182 | Ↄ | ↄ | ↄ | ↄ | ↄ | ↄ |
Отображение всех этих символов требует наличия программного обеспечения, поддерживающего стандарт Юникод, и шрифта, содержащего соответствующие этим символам глифы.
Регулярное выражение для проверки римских цифр — '^(?i)M{0,3}(D?C{0,3}|C[DM])(L?X{0,3}|X[LC])(V?I{0,3}|I[VX])$'.
Для преобразования чисел, записанных арабскими цифрами, в римские, используются специальные функции. Например, в русской версии Microsoft Excel для этого существует функция РИМСКОЕ(аргумент), в английской версии Microsoft Excel и в любой версии OpenOffice.org Calc эта функция называется ROMAN(аргумент).
Функции преобразования на JavaScript
var arab = [1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000]; var roman = ['I','IV','V','IX','X','XL','L','XC','C','CD','D','CM','M']; function arabToRoman(number) { if(!number) return ''; var ret = ''; var i = arab.length - 1; while(number > 0) { if(number >= arab[i]) { ret += roman[i]; number -= arab[i]; } else { i--; } } return ret; } function romanToArab(str) { str = str.toUpperCase(); var ret = 0; var i = arab.length - 1; var pos = 0; while(i >= 0 && pos < str.length ) { if(str.substr(pos, roman[i].length) == roman[i]) { ret += arab[i]; pos += roman[i].length; } else { i--; } } return ret; }Аналогичные функции на Си (C89):
#include <string.h> const int arabar[] = { 1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000}; const char *romanar[] = { "I", "IV", "V", "IX", "X", "XL", "L", "XC", "C", "CD", "D", "CM", "M"}; char *arab2roman(unsigned short int arab) { static char roman[80]; const int m = sizeof(arabar)/sizeof(int)-1, arabmax=arabar[m]; const char romanmax=romanar[m][0]; int i, n; if(!arab) { *roman=0; return roman; } i=0; while(arab>arabmax) { roman[i++] = romanmax; arab -= arabmax; } n=m; while(arab > 0) { if(arab >= arabar[n]) { roman[i++] = romanar[n][0]; if(n&1) roman[i++] = romanar[n][1]; arab -= arabar[n]; } else n--; } roman[i]=0; return roman; } unsigned short int roman2arab(char *roman) { const int m = sizeof(arabar)/sizeof(int)-1; unsigned short int arab; int len, n, i, pir; len=strlen(roman); arab=0; n=m; i=0; while(n >= 0 && i < len) { pir=n&1; if(roman[i] == romanar[n][0] && (!pir || roman[i+1] == romanar[n][1])) { arab += arabar[n]; i += 1+pir; } else n--; } return arab; }Программа перевода арабских цифр в римские и наоборот[5]
type str2 = string[2]; const Rims : array[1..14] of str2 = ('M','CM','D','CD','C','XC','L','XL','X','IX','V','IV','I',' '); Arab : array[1..14] of integer = (1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1, 0); var N, NI, I, J : integer; S : string; function Arab2Rim(N : integer) : string; var S : string; I : integer; begin S := ''; I:=1; while N > 0 do begin while Arab[I]<=N do begin S := S + Rims[I]; N := N - Arab[I] end; I:=I+1 end; Arab2Rim := S end; function Rim2Arab (S:string) : integer; var I, N : integer; begin I:=1; N := 0; while S<>'' do begin while Rims[I] = Copy(S, 1, Length(Rims[I]) ) do begin S := Copy( S, 1+Length(Rims[I]), 255); N := N + Arab[I] end; I:=I+1 end; Rim2Arab := N end; begin WriteLn('Перевод из арабских цифр в римские. 1999 B_SA'); { Write('Введите число для преобразования:'); ReadLn(N);} for NI := 26 to 46 do WriteLn(NI,' = ',Arab2Rim(NI),' обратно ', Rim2Arab( Arab2Rim(NI) )); end.Функция преобразования арабского числа в римское на Pascal[6]
function Arab2Roman(arab:integer):string; var i:integer; d:integer; arab_str:string; arab_len:integer; begin Result := ''; arab_str := IntToStr(arab); arab_len := Length(arab_str); for i := 0 to arab_len-1 do begin d := StrToInt(String(arab_str[arab_len-i])); if (d+1) mod 5 = 0 then Result := Copy('IXCM', 1+i, 1) + Copy('VXLCDM', i*2 + (d+1) div 5, 1) + Result else Result := Copy('VLD', 1+i, d div 5) + Copy('IIIXXXCCCMMM', 1+i*3, d mod 5) + Result; end; end;Отличительной особенностью данного алгоритма является то, что в нем не используются массивы (если, конечно, не считать строку массивом символов).
Функция преобразования арабского числа в римское на BASIC (самый краткий код)[7]
10 INPUT "АРАБСКОЕ ЧИСЛО: "; А$ 20 FOR I=0 TO LEN(A$)-1 30 X=VAL(MID$(A$,LEN(A$)-I,1)) 40 IF X=4 OR X=9 THEN B$=MID$("IXCM",I+1,1)+MID$("VXLCDM",I*2+(X+1)/5,1)+B$ 50 IF X<4 THEN B$=MID$("IIIXXXCCCMMM",1+I*3,X)+B$ ELSE IF X>4 AND X<9 THEN B$=MID$("VLD",I+1,1)+MID$("IIIXXXCCCMMM",1+I*3,X-5)+B$ 60 NEXT I 70 PRINT "РИМСКОЕ ЧИСЛО: "; B$Функция преобразования арабского числа (в данном случае 1999) в римское на XPath
string-join( for $num in (1999) return ( ('','M','MM','MMM')[($num idiv 1000) mod 10+1], ('','C','CC','CCC','CD','D','DC','DCC','DCCC','CM')[($num idiv 100) mod 10+1], ('','X','XX','XXX','XL','L','LX','LXX','LXXX','XC')[($num idiv 10) mod 10+1], ('','I','II','III','IV','V','VI','VII','VIII','IX')[$num mod 10+1] ), '')Техническое примечание: Из-за технических ограничений некоторые браузеры не могут показывать спецсимволы, используемые в этой статье. Такие символы могут быть отображены в виде квадратиков, вопросительных знаков или других бессмысленных символов в зависимости от вашего веб-браузера, операционной системы и набора установленных шрифтов. Даже если ваш браузер способен интерпретировать UTF-8 и вы установили шрифт, поддерживающий большой диапазон Юникода, например Code2000, Arial Unicode MS, Lucida Sans Unicode или один из свободных шрифтов Unicode, — вам, возможно, придётся использовать другой браузер, поскольку возможности браузеров в этой области часто различаются.
скачатьДанный реферат составлен на основе статьи из русской Википедии. Синхронизация выполнена 10.07.11 04:39:12Похожие рефераты: Римские легионы, Римские дороги, Римские колонии, Римские катакомбы, Римские фонтаны, Римские-Корсаковы, Римские цари, Римские войска, Римские холмы.Категории: Системы счисления, Цифры.
Текст доступен по лицензии Creative Commons Attribution-ShareAlike.wreferat.baza-referat.ru
Реферат на тему:
Римские цифры — цифры, использовавшиеся древними римлянами в своей непозиционной системе счисления.
Натуральные числа записываются при помощи повторения этих цифр. При этом, если большая цифра стоит перед меньшей, то они складываются (принцип сложения), если же меньшая — перед большей, то меньшая вычитается из большей (принцип вычитания). Последнее правило применяется только во избежание четырёхкратного повторения одной и той же цифры.
Римские цифры появились за 500 лет до нашей эры у этрусков.
Часы-куранты Спасской башни
римские цифры
1 | I | лат. unus |
5 | V | лат. quinque |
10 | X | лат. decem |
50 | L | лат. quinquaginta |
100 | C | лат. centum |
500 | D | лат. quingenti |
1000 | M | лат. mille |
В русском языке для закрепления в памяти буквенных обозначений цифр в порядке убывания существуют мнемонические правила:
Мы Dарим Сочные Lимоны, Хватит Vсем Iх.
Mы Dаем Cоветы Lишь Xорошо Vоспитанным Iндивидуумам
Соответственно M, D, C, L, X, V, I
0 | - | |
4 | IV | до XIX века - IIII |
8 | VIII | |
9 | IX | |
31 | XXXI | |
46 | XLVI | |
99 | XCIX | |
583 | DLXXXIII | |
888 | DCCCLXXXVIII | от 1 до 1000 — самое длинное |
1668 | MDCLXVIII | |
1989 | MCMLXXXIX | |
2009 | MMIX | |
2010 | MMX | |
2011 | MMXI | |
3999 | MMMCMXCIX | |
5000 | ↁ | |
10000 | ↂ |
Для правильной записи больших чисел римскими цифрами необходимо сначала записать число тысяч, затем сотен, затем десятков и, наконец, единиц.
Пример: число 1988. Одна тысяча M, девять сотен CM, восемь десятков LXXX, восемь единиц VIII. Запишем их вместе: MCMLXXXVIII.
Довольно часто, чтобы выделить числа в тексте, над ними рисовали черту: LXIV. Иногда черту рисовали и сверху, и снизу: XXXII — в частности, так принято выделять римские цифры в русском рукописном тексте (в типографском наборе это не используют из-за технической сложности). У других авторов черта сверху могла обозначать увеличение значения цифры в 1000 раз: VM = 6000.
Часы марки Tissot с традиционным написанием «IIII»
Существует «сокращённый способ» для записи больших чисел, таких как 1999. Он не рекомендуется, но иногда используется для упрощения. Отличие состоит в том, что для уменьшения цифры слева от неё может писаться любая цифра:
Повсеместно записывать число «четыре» как «IV» стали только в XIX веке, до этого наиболее часто употреблялась запись «IIII». Однако запись «IV» можно встретить уже в документах манускрипта «Forme of Cury», датируемых 1390 годом. На циферблатах часов в большинстве случаев традиционно используется «IIII» вместо «IV», главным образом, по эстетическим соображениям: такое написание обеспечивает визуальную симметрию с цифрами «VIII» на противоположной стороне, а перевёрнутую «IV» прочесть труднее, чем «IIII».
Другая версия
Для записи целых чисел в римской нумерации используются семь основных чисел:
При этом некоторые из цифр (I, X, C, M) могут повторяться, но не более трех раз, таким образом с их помощью можно записать любое целое число не более 3999 (MMMCMXCIX). В ранние периоды существовали знаки для обозначения бо́льших цифр — 5000, 10000, 50000 и 100000 (тогда максимальное число по упомянутому правилу равно 399999). При записи чисел в римской системе счисления меньшая цифра может стоять справа от большей; в этом случае она прибавляется к ней. Например, число 283 по-римски записывается как CCLXXXIII, то есть 200+50+30+3=283. Здесь цифра, изображающая сотню, повторена два раза, а цифры, изображающие соответственно десяток и единицу, повторены по три раза.
Меньшая цифра может быть записана и слева от большей, тогда ее следует вычесть из большей. В этом случае повторения меньшей цифры не допускаются. По-римски число 94 будет XCIV=100-10+5-1=94 — так называемое «правило вычитания» (появилось в эпоху поздней античности, а до этого римляне писали число 4 как IIII, а число 40 — как XXXX). Существует шесть вариантов использования «правила вычитания»:
Необходимо отметить, что другие способы «вычитания» не допустимы; так, число 99 должно быть записано как XCIX, но не как IC. Однако, в наши дни в некоторых случаях используется и упрощенная запись римских чисел: например, в программе Microsoft Excel при преобразовании арабских цифр в римские при помощи функции «РИМСКОЕ()» можно использовать несколько видов представления чисел, от классического до сильно упрощенного (так, число 499 может быть записано как CDXCIX, LDVLIV, XDIX, VDIV или ID).
С помощью римских цифр можно записывать и большие числа. Для этого над теми цифрами, которые обозначают тысячи, ставится черта, а над цифрами, которые обозначают миллионы, — двойная черта. Например, число 123123 будет выглядеть так:
CXXIIICXXIII
А миллион как I, но только не с одной, а с двумя чертами во главе.
В русском языке римские цифры используются в следующих случаях:
В других языках сфера применения римских цифр может иметь особенности, например, в западных странах римскими цифрами иногда записывается номер года.
Стандарт Юникода рекомендует использовать для представления римских цифр обычные латинские буквы.[1] Тем не менее стандарт включает также специальные символы для римских цифр как часть Числовых форм (англ. Number Forms)[2] в области знаков с кодами с U+2160 по U+2188. Например, MCMLXXXVIII может быть представлено в форме ⅯⅭⅯⅬⅩⅩⅩⅧ. Этот диапазон включает как строчные, так и прописные цифры от 1 (Ⅰ или I) до 12 (Ⅻ или XII), в том числе и комбинированные глифы для составных чисел, таких как 8 (Ⅷ или VIII), главным образом для обеспечения совместимости с восточноазиатскими наборами символов в таких промышленных стандартах, как JIS X 0213, где эти символы определены. Комбинированные глифы используются для представления чисел, которые ранее составлялись из отдельных символов (например, Ⅻ вместо его представления как Ⅹ и Ⅱ). В дополнение к этому, глифы существуют для архаичных[2] форм записи чисел 1000, 5000, 10 000, большой обратной C (Ɔ), поздней формы записи 6 (ↅ, похожей на греческую стигму: Ϛ), ранней формы записи числа 50 (ↆ, похожей на стрелку, указывающую вниз ↓⫝⊥[3]), 50 000, и 100 000. Следует отметить, что маленькая обратная c, ↄ не включена в символы римских цифр, но включена в стандарт Юникод как прописная клавдиева буква Ↄ.
Ⅰ2160 | Ⅱ2161 | Ⅲ2162 | Ⅳ2163 | Ⅴ2164 | Ⅵ2165 | Ⅶ2166 | Ⅷ2167 | Ⅸ2168 | Ⅹ2169 | Ⅺ216A | Ⅻ216B | Ⅼ216C | Ⅽ216D | Ⅾ216E | Ⅿ216F |
ⅰ2170 | ⅱ2171 | ⅲ2172 | ⅳ2173 | ⅴ2174 | ⅵ2175 | ⅶ2176 | ⅷ2177 | ⅸ2178 | ⅹ2179 | ⅺ217A | ⅻ217B | ⅼ217C | ⅽ217D | ⅾ217E | ⅿ217F |
ↀ2180 | ↁ2181 | ↂ2182 | Ↄ | ↄ | ↄ | ↄ | ↄ | ↄ |
Отображение всех этих символов требует наличия программного обеспечения, поддерживающего стандарт Юникод, и шрифта, содержащего соответствующие этим символам глифы.
Регулярное выражение для проверки римских цифр — '^(?i)M{0,3}(D?C{0,3}|C[DM])(L?X{0,3}|X[LC])(V?I{0,3}|I[VX])$'.
Для преобразования чисел, записанных арабскими цифрами, в римские, используются специальные функции. Например, в русской версии Microsoft Excel для этого существует функция РИМСКОЕ(аргумент), в английской версии Microsoft Excel и в любой версии OpenOffice.org Calc эта функция называется ROMAN(аргумент).
Функции преобразования на JavaScript
var arab = [1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000]; var roman = ['I','IV','V','IX','X','XL','L','XC','C','CD','D','CM','M']; function arabToRoman(number) { if(!number) return ''; var ret = ''; var i = arab.length - 1; while(number > 0) { if(number >= arab[i]) { ret += roman[i]; number -= arab[i]; } else { i--; } } return ret; } function romanToArab(str) { str = str.toUpperCase(); var ret = 0; var i = arab.length - 1; var pos = 0; while(i >= 0 && pos < str.length ) { if(str.substr(pos, roman[i].length) == roman[i]) { ret += arab[i]; pos += roman[i].length; } else { i--; } } return ret; }Аналогичные функции на Си (C89):
#include <string.h> const int arabar[] = { 1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000}; const char *romanar[] = { "I", "IV", "V", "IX", "X", "XL", "L", "XC", "C", "CD", "D", "CM", "M"}; char *arab2roman(unsigned short int arab) { static char roman[80]; const int m = sizeof(arabar)/sizeof(int)-1, arabmax=arabar[m]; const char romanmax=romanar[m][0]; int i, n; if(!arab) { *roman=0; return roman; } i=0; while(arab>arabmax) { roman[i++] = romanmax; arab -= arabmax; } n=m; while(arab > 0) { if(arab >= arabar[n]) { roman[i++] = romanar[n][0]; if(n&1) roman[i++] = romanar[n][1]; arab -= arabar[n]; } else n--; } roman[i]=0; return roman; } unsigned short int roman2arab(char *roman) { const int m = sizeof(arabar)/sizeof(int)-1; unsigned short int arab; int len, n, i, pir; len=strlen(roman); arab=0; n=m; i=0; while(n >= 0 && i < len) { pir=n&1; if(roman[i] == romanar[n][0] && (!pir || roman[i+1] == romanar[n][1])) { arab += arabar[n]; i += 1+pir; } else n--; } return arab; }Программа перевода арабских цифр в римские и наоборот[5]
type str2 = string[2]; const Rims : array[1..14] of str2 = ('M','CM','D','CD','C','XC','L','XL','X','IX','V','IV','I',' '); Arab : array[1..14] of integer = (1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1, 0); var N, NI, I, J : integer; S : string; function Arab2Rim(N : integer) : string; var S : string; I : integer; begin S := ''; I:=1; while N > 0 do begin while Arab[I]<=N do begin S := S + Rims[I]; N := N - Arab[I] end; I:=I+1 end; Arab2Rim := S end; function Rim2Arab (S:string) : integer; var I, N : integer; begin I:=1; N := 0; while S<>'' do begin while Rims[I] = Copy(S, 1, Length(Rims[I]) ) do begin S := Copy( S, 1+Length(Rims[I]), 255); N := N + Arab[I] end; I:=I+1 end; Rim2Arab := N end; begin WriteLn('Перевод из арабских цифр в римские. 1999 B_SA'); { Write('Введите число для преобразования:'); ReadLn(N);} for NI := 26 to 46 do WriteLn(NI,' = ',Arab2Rim(NI),' обратно ', Rim2Arab( Arab2Rim(NI) )); end.Функция преобразования арабского числа в римское на Pascal[6]
function Arab2Roman(arab:integer):string; var i:integer; d:integer; arab_str:string; arab_len:integer; begin Result := ''; arab_str := IntToStr(arab); arab_len := Length(arab_str); for i := 0 to arab_len-1 do begin d := StrToInt(String(arab_str[arab_len-i])); if (d+1) mod 5 = 0 then Result := Copy('IXCM', 1+i, 1) + Copy('VXLCDM', i*2 + (d+1) div 5, 1) + Result else Result := Copy('VLD', 1+i, d div 5) + Copy('IIIXXXCCCMMM', 1+i*3, d mod 5) + Result; end; end;Отличительной особенностью данного алгоритма является то, что в нем не используются массивы (если, конечно, не считать строку массивом символов).
Функция преобразования арабского числа в римское на BASIC (самый краткий код)[7]
10 INPUT "АРАБСКОЕ ЧИСЛО: "; А$ 20 FOR I=0 TO LEN(A$)-1 30 X=VAL(MID$(A$,LEN(A$)-I,1)) 40 IF X=4 OR X=9 THEN B$=MID$("IXCM",I+1,1)+MID$("VXLCDM",I*2+(X+1)/5,1)+B$ 50 IF X<4 THEN B$=MID$("IIIXXXCCCMMM",1+I*3,X)+B$ ELSE IF X>4 AND X<9 THEN B$=MID$("VLD",I+1,1)+MID$("IIIXXXCCCMMM",1+I*3,X-5)+B$ 60 NEXT I 70 PRINT "РИМСКОЕ ЧИСЛО: "; B$Функция преобразования арабского числа (в данном случае 1999) в римское на XPath
string-join( for $num in (1999) return ( ('','M','MM','MMM')[($num idiv 1000) mod 10+1], ('','C','CC','CCC','CD','D','DC','DCC','DCCC','CM')[($num idiv 100) mod 10+1], ('','X','XX','XXX','XL','L','LX','LXX','LXXX','XC')[($num idiv 10) mod 10+1], ('','I','II','III','IV','V','VI','VII','VIII','IX')[$num mod 10+1] ), '')Техническое примечание: Из-за технических ограничений некоторые браузеры не могут показывать спецсимволы, используемые в этой статье. Такие символы могут быть отображены в виде квадратиков, вопросительных знаков или других бессмысленных символов в зависимости от вашего веб-браузера, операционной системы и набора установленных шрифтов. Даже если ваш браузер способен интерпретировать UTF-8 и вы установили шрифт, поддерживающий большой диапазон Юникода, например Code2000, Arial Unicode MS, Lucida Sans Unicode или один из свободных шрифтов Unicode, — вам, возможно, придётся использовать другой браузер, поскольку возможности браузеров в этой области часто различаются.
скачатьДанный реферат составлен на основе статьи из русской Википедии. Синхронизация выполнена 10.07.11 04:39:12Похожие рефераты: Римские легионы, Римские дороги, Римские колонии, Римские катакомбы, Римские фонтаны, Римские-Корсаковы, Римские цари, Римские войска, Римские холмы.Категории: Системы счисления, Цифры.
Текст доступен по лицензии Creative Commons Attribution-ShareAlike.www.wreferat.baza-referat.ru