الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

plycalculator

بدأه ahmed_youssef في 4 أكتوبر 2011 · 0 رد · 755 مشاهدة · في لغة Python
مشاركة: واتساب X فيسبوك تيليجرام
#1

السلام عليكم

مشروع آلة حاسبة مبني بإستخدام PLY -وهو مشروع مشابه ل lex لل lexical analysis ول yacc لعمل ال parsers - لأشرحه لأحد الأصدقاء

عموما المتوفر فيها التالي

1- إمكانية تعريف متغيرات عن طريق

let variable = value

2- إمكانية تعريف الثوابت (لاتتغير خلال الكود) من خلال

const CONSTNAME ~ value

3- تكامل مع دوال وثوابت مكتبة math في بايثون

4- توفير دوال showvars, showconsts, showfuncs لعرض المتغيرات والثوابت والدوال المتاحة للإستخدام

5- يتم استدعاء الدوال كالتالي

call funcname(arg0, arg1, arg2, ... )

الكود متوفر هنا

https://bitbucket.org/xmonader/plycalculator

مثال على جلسة في plycalc

[ahmed@localhost plycalculator]$ python plycalc.py 
Generating LALR tables
plycalc> call showvars
{}
plycalc> call showfuncs
{'help': <function help at 0x1aa81b8>, 'showvars': <function showvars at 0x1aa80c8>, 'fsum': <built-in function fsum>, 'cosh': <built-in function cosh>, 'ldexp': <built-in function ldexp>, 'hypot': <built-in function hypot>, 'acosh': <built-in function acosh>, 'tan': <built-in function tan>, 'asin': <built-in function asin>, 'isnan': <built-in function isnan>, 'log': <built-in function log>, 'fabs': <built-in function fabs>, 'atan2': <built-in function atan2>, 'showfuncs': <function showfuncs at 0x1aa8230>, 'atanh': <built-in function atanh>, 'modf': <built-in function modf>, 'sqrt': <built-in function sqrt>, 'lgamma': <built-in function lgamma>, 'frexp': <built-in function frexp>, 'degrees': <built-in function degrees>, 'pow': <built-in function pow>, 'log10': <built-in function log10>, 'sin': <built-in function sin>, 'asinh': <built-in function asinh>, 'fmod': <built-in function fmod>, 'atan': <built-in function atan>, 'factorial': <built-in function factorial>, 'copysign': <built-in function copysign>, 'expm1': <built-in function expm1>, 'ceil': <built-in function ceil>, 'isinf': <built-in function isinf>, 'sinh': <built-in function sinh>, 'trunc': <built-in function trunc>, 'cos': <built-in function cos>, 'tanh': <built-in function tanh>, 'floor': <built-in function floor>, 'radians': <built-in function radians>, 'showconsts': <function showconsts at 0x1aa8140>, 'erf': <built-in function erf>, 'erfc': <built-in function erfc>, 'exp': <built-in function exp>, 'acos': <built-in function acos>, 'log1p': <built-in function log1p>, 'gamma': <built-in function gamma>}
plycalc> call showconsts
{'PI': Decimal('3.141592653589793115997963468544185161590576171875'), 'E': Decimal('2.718281828459045090795598298427648842334747314453125')}
plycalc> let x = 4 
None
plycalc> showvars
showvars
plycalc> call showvars
{'x': Decimal('4')}
plycalc> x + 2
6
plycalc> const LANDAREA ~ 150
None
plycalc> call showconsts
{'LANDAREA': Decimal('150'), 'PI': Decimal('3.141592653589793115997963468544185161590576171875'), 'E': Decimal('2.718281828459045090795598298427648842334747314453125')}
plycalc> LANDAREA * x
600
plycalc> call factorial(5)
120
plycalc> call pow(2,4)
16.0

تم تعديل هذه المشاركة بواسطة ahmed_youssef في 4 أكتوبر 2011 في 11:53

2
(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader