انجمنهای فارسی اوبونتو
تازه کار => انجمن تازهکاران => نویسنده: ostad_ccna در 23 بهمن 1393، 01:21 بظ
-
سلام
من میخواستم بدونم چطور میتونم عملیات جمع ضرب تقسیم تفریق و سایر عملیات محاسباتی اعداد را در ترمینال انجام بدهم؟!آیاپیش نیاز خاصی باید اضافه شود لطفا بصورت کامل توضیح دهید. :)
-
در گنو/ لینوکس نرم افزار های محاسباتی زیادی وجود دارند که تحت ترمینال هم قابل استفاده اند برای مثال : gnu octave ، maxima ، R و حتی شبیه سازهایی مثل calculix و open foam
-
این یه راه ساده:
echo 'expression' | bc
که به جای expression باید عبارت محاسباتی رو نوشت.
یکی از گزینههای جالب میتونه پایتون باشه که بهصورت پیشفرض روی همهی توزیعها وجود داره.
-
با پایتون (:
-
bc ماشین حساب دم دستی و خوبیه . در کد زیر خروجی bc را به sed انتقال دادم و sed ابتدای هر خط جواب کلمه Result رو اضافه می کنه . این جوری کد ما خوانا تر می شه . خط هایی که با Result شروع نمی شن دستورها یا عبارتهای محاسباتی شما هستند و باید خودتون وارد کنید . وقتی کار شما با bc تموم شد کلید CTRL+D را فشار دهید تا از محیط bc خارج بشید.
$ bc | sed 's/^/Result: /'
10-2
Result: 8
10+6
Result: 16
10*4
Result: 40
10^3
Result: 1000
10%3
Result: 1
10/4
Result: 2
scale=2
10/4
Result: 2.50
من با shell script زیر برای خودم ماشین حساب ساختم و توی فایلی به نام ibc ذخیره کرده ام و خیلی هم ازش راضیم !! :
#!/bin/bash
# open an xterm with bc inside it!
xterm -bg maroon -bd green -bw 10 -title "BC" -geometry 50x30+50+50 -e "bc -q"
-
من پایتون رو پیشنهاد میدم
شل پایتون رو باز میکنید و
print 2*2
-
من پایتون رو پیشنهاد میدم
شل پایتون رو باز میکنید و
print 2*2
حتا به print هم نیازی نیست. همون 2*2 کافیه
-
من پایتون رو پیشنهاد میدم
شل پایتون رو باز میکنید و
print 2*2
شل پایتون کار رو راه می اندازه و همچنین شل ruby و شاید شل های دیگه ای که من اطلاع ندارم ، ولی اینها ابزارهایی نیستند که برای این کار درست شده باشن ( ولی این کار رو انجام می دن ) . bc واقعا ماشین حسابه .
================================
توضیح اضافه :
در فلسفه برنامه نویسی یونیکس هر برنامه باید فقط و فقط یک کار رو انجام بده . مثلا ریچی ، کرنیگان و تامسون پدران سیستم عامل یونیکس با cat -n مشکل دارن . این دستور که دستور cat با سوییچ n- هست هر خط و شماره خط را نمایش می دهد . اینها می گن که دستور cat فقط برای نمایشه نه شماره گذاری خطوط . کار شماره گذاری برای دستور nl است . یعنی می گن باید اینجوری بنویسیم :
cat file | nl
و باز هم معتقدن که قدرت یونیکس نه از یک برنامه بلکه از تلفیق چند برنامه خودش رو نشون می ده . پس به جای این که برنامه ای بنویسم که همه کار بکنه و فقط یکبار به کار بیاد بهتره یک برنامه بنویسیم که فقط یک کار کنه ولی در موارد بسیار زیادی به کار بیاد .
-
با تشکر از تمامی دوستانم تجربه جدیدی را به من منتقل کردید.
-
البته حواست باشه از پایتون ۳ استفاده کنی، یا اگه از پایتون ۲ استفاده میکنی، جواب ۲/۳ رو تست کن ببین چی جواب میده.
توی پایتون ۲ باید اینجوری تقسیم کنی
2./3
-
من با shell script زیر برای خودم ماشین حساب ساختم و توی فایلی به نام ibc ذخیره کرده ام و خیلی هم ازش راضیم !! :
#!/bin/bash
# open an xterm with bc inside it!
xterm -bg maroon -bd green -bw 10 -title "BC" -geometry 50x30+50+50 -e "bc -q"
چطوری انجامش بدم این Shell Script رو؟
bc واقعا عالی بود.
از Python چطور باید استفاده کنم؟
ممنون
-
من با shell script زیر برای خودم ماشین حساب ساختم و توی فایلی به نام ibc ذخیره کرده ام و خیلی هم ازش راضیم !! :
#!/bin/bash
# open an xterm with bc inside it!
xterm -bg maroon -bd green -bw 10 -title "BC" -geometry 50x30+50+50 -e "bc -q"
چطوری انجامش بدم این Shell Script رو؟
bc واقعا عالی بود.
از Python چطور باید استفاده کنم؟
ممنون
محتوای باکس را در یک فایل مثلا به نام ibc ذخیره کنید و بعد توی ترمینال برید به دایرکتوری که فایل ibc را ذخیره کرده اید . توی خط فرمان بزنید :
$ chmod 755 ibc
تا فایل را اجرایی کنید و بعد باز هم توی خط فرمان بزنید :
$ ./ibc
-
البته اگر که کار پیچیده ای نمی خوای بکنی خود بش محاسبات ساده را انجام می ده
echo $((4/2))
2
echo $((4*2))
8
echo $((4**2))
16
-
من با shell script زیر برای خودم ماشین حساب ساختم و توی فایلی به نام ibc ذخیره کرده ام و خیلی هم ازش راضیم !! :
#!/bin/bash
# open an xterm with bc inside it!
xterm -bg maroon -bd green -bw 10 -title "BC" -geometry 50x30+50+50 -e "bc -q"
چطوری انجامش بدم این Shell Script رو؟
bc واقعا عالی بود.
از Python چطور باید استفاده کنم؟
ممنون
یه اسکریپت برای پایتون:
#!/usr/bin/python
import sys
argument = sys.argv
expression = argument[1]
whole = 'print ' + str(expression)
exec(whole)
کافیه به برنامه دسترسی اجرایی بدی و عبارت محاسباتی رو بعد از اسم برنامه وارد کنی مثلا:
myCal (12.5*3)**2
البته این یه اسکریپت خیلی ساده هست و میتونی کاملترش کنی، اگرم سرچ کنی احتمالا بتونی چیزهای خوبی گیر بیاری.
-
Geek عزیز :
*فرمایشات شما رو به روش آقای محسن صفری در فایل ibc ذخیره کنم (میشه لطفا ریز ترش کنی؟) من هنوز با نحوه عملکرد پیتون و روش اجرایش مشکل دارم.
آیا تکه کدی که قرار دادید هم به همین زبان است؟ به چه روشی امکان توسعه آن در صورت نیاز را دارم.
ممنون
-
Geek عزیز :
*فرمایشات شما رو به روش آقای محسن صفری در فایل ibc ذخیره کنم (میشه لطفا ریز ترش کنی؟) من هنوز با نحوه عملکرد پیتون و روش اجرایش مشکل دارم.
آیا تکه کدی که قرار دادید هم به زبان است؟ به چه روشی امکان توسعه آن در صورت نیاز را دارم.
ممنون
شما کافیه کد رو با نرمافزاری مثل gedit یا nano توی یه فایل متنی ساده با هر اسمی مثلا myCal ذخیره کنی بعد در پوشهی خانگی خودت ctrl+h رو فشار بده تا فایلها و دایرکتوریهای مخفی نمایان بشن حالا یه پوشه بساز که با نقطه شروع بشه (با هر اسمی که دلت میخواد) بعد فایل اسکریپت مورد نظر رو توی این پوشه کپی کن. حالا توی همون پوشهی خونگی خودت دنبال فایل .bashrc بگرد و قطعه کد زیر رو توش کپی بگیر:
PATH=$PATH':/home/username/directory'
که بهجای username باید نامکاربری خودت و بهجای directory باید اسم همون دایرکتوری که در مرحلهی پیش ساختی (با نقطه شروع شده) رو قرار بدی.
حالا کافیه که توی ترمینال مثلا بنویسی:
myCal 2.5/2
در آخر هم دوباره ctrl+h رو فشار بده که فایلها مخفی بشن.