یه ماشین حساب نه چندان خسته ولی خیلی کوچیک که با پایتون کار میکنه و از همون شل میشه اجراش کرد.
این ماشینه سعی میکنه نمودار هم بکشه گاهی.
در حال حاضر نصاب نداره و دستی باید برنامه رو (نصب و ) اجرا کنید!
برای استفاده ازش کتابخانه های numpy
و matplotlib
رو نصب کنید.
بعدش این ریپوزیتوری رو کلون کنید.
git clone 'https://github.com/ekm507/shellcalc.git'
میتونید به شکل inline از این استفاده کنید. یعنی این شکلی استفاده کنید:
python pycalc.py "MATH EXPRESSION"
مثلا:
python pycalc.py '3*sin(4*pi) + sqrt(6) + 1'
که در خروجی پاسخ عبارت رو مینویسه
یا مثلا:
python pycalc.py "y = sin(x) + 1"
که سعی میکنه یک نمودار ترسیم کنه.
یا میتونید برنامه رو اجرا کنید تا ورودی رو از stdin بگیره. طبیعتا میتونید از pipeline هم استفاده کنید.
نتیجه چیزی شبیه این باید باشه: (البته ممکنه به خاطر نسخه برنامه تفاوت داشته باشه. این راهنما خیلی هم به روز نیست!)
> python pycalc.py
wellcome to shellcalc!
1+2*6
13
3+9
12
y=sin(x)
اگر بعد از معادله تگ round
رو استفاده کنید، پاسخ نهایی به شکل عدد صحیح خواهد بود.
python pycalc.py "10 * pi" round
برای این که رسم نمودار از نقطه x=a
شروع بشه اینطوری بنویسید: (به جای a عدد بگذارید)
python pycalc.py "y = sinc(x)" from a
برای این که رسم این نمودار به نقطه x=b
ختم بشه اینطوری بنویسید:
python pycalc.py "y = sin(x) + 1" to b
برای این که رزولوشن منحنی رو مشخص کنید روی x اینطوری بنویسید:
python pycalc.py "y = sin(x) + 1" step 0.01
ویژگی دیگری که میتونید با نمودار امتحان کنید تگ fft
است. باهاش میتونید تبدیل فوریه تابع رو مشاهده کنید.
python pycalc.py "y = sinc(x) ** 2" fft
نکته ریاضی: برای افزایش رزولوشن در حوزه فرکانس باید گستره رو در حوزه زمان بیشتر کنید.
تبدیل معکوس فوریه هم ممکنه.
از آرگومان ifft
استفاده کنید.
python pycalc.py "y = sinc(x)" ifft
اگر میخواید انتگرال منحنی رسم بشه، از سوییچ int
یا integral
استفاده کنید.
اگر میخواید مشتق منحنی رسم بشه، از سوییچ derivative
یا d
یا deriv
استفاده کنید.
اگر میخواهید محور x و y هم رسم بشه از سرییچ zero
یا z
استفاده کنید.
آپشن xkcd
رو هم امتحان کنید!
python pycalc.py "y = sin(x) + 1" from -4 to 4 step 0.01 xkcd
میتونید بعدش هم با یه alias
براش یه میونبر درست کنید. مثل این:
alias calc=/usr/bin/python Foo/Boo/pycalc.py
همچنین میتونید این دستور رو به اون فایل rc شل اضافه کنید
مثلا من که zsh استفاده میکنم این رو به ته فایل ~/.zshrc
اضافه کردهم.
که بعدش میشه خیلی ساده تر استفادهش کرد. مثلا:
calc 'sin(6 * pi) - 3'
نکته اصلی توسعه این برنامه اینه که استفاده ازش باید تا میشه ساده باشه.
کارهایی که فعلا لازمه انجام بشه:
-
یه چند تا چیز هم چاپ کنه مثل برنامه های عادی شل. مثلا
usage
و اینا
و خطاهای خودش رو چاپ کنه به جای خطاهای پایتون. -
اضافه کردن امکان نصب و آپدیت
-
برطرف کردن مساله اعداد مختلط در مخاسبه معکوس تبدیل فوریه
اگر تغییری چیزی دادید پول ریکوئست بدید ثواب داره.
همین دیگه خوش باشید.
هوم