تحويل من الأرقام الرومانيّة

صورة ahnaqsh
أرسل من قبل ahnaqsh في الثلاثاء, 2007/12/04 - 4:47am.

هدول برنامجين بيحولو من النظام الروماني لتمثيل الأعداد للنظام العشري, واحد منهم مكتوب بلغة سي++ و التاني بلغة بايثون. البرنامج بيطلب من المستخدم إدخال عدد بالصيغة الرومانيّة, و بعدين بيحولو إلى عدد عشري و بيعرضه. طريقة التحويل بسيطة, و هي إنو نبدا بالنتيجة = 0, بعدين نضيف أول عنصر, و نقارن التاني معو, إذا كان التاني مساوي أو أصغر بنضيفو على النتيجة, أمّا إذا أصغر منطرح النتيجة منّو. يا ريت تخبروني بملاحظاتكم. البرنامج بلغة سي++, البرنامج بلغة بايثون.

_____

ملاحظة: برنامج سي++ أطول و متعب أكثر و ما لقيت طريقة بسيطة للتحويل بين capital letter و small letter بسي++. (إذا أحد خبراء هي اللغة بيعرف طريقة يا ريت يذكرها). Wink

ملاحظة ثانية: هادا برنامج مشابه بس بلغة اخرى, عجبني حجمه الصغير مع إني ما فهمتو. Smile


خيارات عرض التعليقات

اختر طريقتك المفضلة لعرض التعليقات و اضغط "حفظ الإعدادات" لتفعيل تغييراتك.
صورة ahnaqsh
أرسل من قبل ahnaqsh في الثلاثاء, 2007/12/04 - 6:38pm.

طلع معي اليوم إنو البرنامجين فيّن فسفسة (ترجمة bug) متعلقة بطريقة التحويل.. :-(


صورة en.karam1989
أرسل من قبل en.karam1989 في الثلاثاء, 2007/12/04 - 11:25pm.

بما أنو الشغلة صارت وصارت
بدنا شي حدا يشرحلنا طريقة العد الرومانية


صورة ridaa78
أرسل من قبل ridaa78 في الأربعاء, 2007/12/05 - 12:36am.

كتب en.karam1989:
بما أنو الشغلة صارت وصارت
بدنا شي حدا يشرحلنا طريقة العد الرومانية

من ويكيبيديا، الموسوعة الحرة

من اساليب كتابة الأعداد قديما الطريقة الرومانية ، وهي ببساطة تقوم على التعبير عن ارقام معينة برسوم معينة كانت في باديء الأمر تقوم على رسم عدد من الخطوط العامودية المتجاورة ، فمثلا:III تعبر عن العدد ثلاثة ، ولما كانت الحاجة للتعبير عن اعداد كبيرة ستؤدي إلى رسم عدد كبير من الخطوط التي سيصعب عدّها ، فكان ان عبر عن ان بعض الاعداد برسوم اخرى فاصبح :

I يعبر عن العدد واحد.
V يعبر عن العدد 5.
X يعبر عن العدد 10.
L تعبر عن العدد 50.
C تعبر عن العدد 100.
D تعبر عن العدد 500.
M تعبر عن العدد 1000.
فالعدد 1952 يكتب MDCDLII والعدد 487 يكتب CDLXXXVII والعدد 4 يكتب IV والعدد 6 يكتب VI. يلاحظ كيف ان كتابة هذه الارقام طويلة وتقود إلى الخطأ وكتابة رقم كبير بأستخدامها سيتكون من عدد ضخم من الرسوم.

وهناك خلاف حول كون رسوم هذه الأرقام هي احرف تدل على اسماء هذه الارقام ، فالبعض يقول بذلك ويدلل عليه بان C و M تقابل كلمتي Centum و Mille اي مئة و الف ، بينما يرى فريق آخر ان هذا محض صدفة كون ذلك لا ينطبق على الارقام الرومانية الاخرى.

والعمليات الحسابية المتداولة اليوم شبه مستحيلة باستخدام الأرقام الرومانية وذلك لغياب الخانات.


صورة Rasha.88
أرسل من قبل Rasha.88 في الخميس, 2007/12/06 - 9:08pm.

كتب ahnaqsh:

. البرنامج بلغة سي++, البرنامج بلغة بايثون.

_____

ملاحظة: برنامج سي++ أطول و متعب أكثر و ما لقيت طريقة بسيطة للتحويل بين capital letter و small letter بسي++.

ملاحظة ثانية: هادا برنامج مشابه بس بلغة اخرى, Smile

في تابع جاهز بالc++ إسمو toupper بحول منsmall letter ل capital letter والتابع tolower بحول بالعكس ما بعرف إذا هيك بتقصدولا شي تاني؟؟


صورة foaad
أرسل من قبل foaad في الجمعة, 2007/12/07 - 2:19am.

بالمناسبة
كأنو في غلط بالخوارزمية لأنو XIV لازم تطلع 14 مو -6 Smile


صورة en.karam1989
أرسل من قبل en.karam1989 في الجمعة, 2007/12/07 - 3:33pm.

مشكور أخي رضا
ولو أني كنت مفكر هي الأرقام اللاتينية بس سيدي
كسبنا معرفة


صورة ahnaqsh
أرسل من قبل ahnaqsh في الجمعة, 2007/12/07 - 9:13pm.

-Rasha.88

شكرا على المعلومة. Smile التحويل بيضل متعب, لإنو حتّى مع to upper ما منختصرها كتير.

for (int i; i < mystring.size(), i++)
{
mystring[i] = toupper(mystring[i]);
}

-Foaad

سبحان الله. هادا نفس المثال اللي جربتو و طلع غلط. Smile
عموما هادا البرنامج بعد التعديل, خبّرني برأيك. :-)


صورة abo_jan
أرسل من قبل abo_jan في الأحد, 2007/12/09 - 5:19pm.

عادي قريت مبارح هيك شي بكتاب دلفي عندي اياه وفيو كتير شغلات حلوة بس كأنهن كانو كاتبين كتير عن الطريقة


صورة ahnaqsh
أرسل من قبل ahnaqsh في الثلاثاء, 2007/12/11 - 5:47am.

بتصور هي الطريقة ممكن تحسينها و إختصارها أكتر من هيك بمنيح.

كتب abojan:
قريت مبارح هيك شي بكتاب دلفي

طيّب لو سمحت ممكن تخبّرني شو إسمو الكتاب, و موجود منّو نسخة e-copy ولّا لأ؟

___

من باب الملاحظة, شقفة الكود بتع التحويل لـcapital letters مع toupper كان لازم يكون فيها int i = 0. Embarassed


صورة abo_jan
أرسل من قبل abo_jan في الأحد, 2008/01/20 - 2:13am.

الكتاب كان مأخود من موقع www.swissdelphicenter.com على ما اذكر
بس بتذكر انو الطريقة كانت كتير طويلة و معتة


صورة ahnaqsh
أرسل من قبل ahnaqsh في الجمعة, 2008/01/25 - 9:21pm.

شكرا كتير  abo_jan, بس ما لقيت على الموقع المذكور إلّا التحويل من عدد إلى رقم روماني, مو العكس. Smile