لینکس / یونیسی کمان: expr

نام

expr - ایک اظہار کا اندازہ کریں

مطمئن

expr arg آرک آرک ... ؟

Concatenates arg ((ان کے درمیان جداکار خالی جگہیں شامل)، نتیجہ Tcl اظہار کے طور پر کا اندازہ کرتا ہے، اور قیمت واپس. Tcl اظہار میں اجازت دینے والی آپریٹرز سی اظہار میں اجازت دینے والی آپریٹرز کا سب سے کم ذہن ہیں، اور ان کے اسی سی سی اور اسی طرح مطابقت رکھتے ہیں جو اسی سی آپریٹرز ہیں. اظہار تقریبا عددی نتائج (اندرونی یا فلوٹنگ نقطہ اقدار) حاصل کرتے ہیں. مثال کے طور پر، اظہار

8.2 فیصد 6

14.2 کی تشخیص جس طرح آپریٹنگ کی وضاحت کی جاتی ہے اس میں اس کے اظہار میں Tcl اظہار کا فرق ہے. اس کے علاوہ، Tcl اظہار ایک غیر عددی آپریٹنگ اور تار موازنہ کی حمایت کرتا ہے.

چلاتا ہے

ایک Tcl اظہار آپریٹرز، آپریٹرز، اور قارئین کے ایک مجموعہ پر مشتمل ہے. آپریٹرز اور آپریٹرز اور قارئین کے درمیان سفید جگہ استعمال کیا جا سکتا ہے؛ یہ اظہار کے ہدایات کی طرف سے نظر انداز کیا جاتا ہے. جہاں ممکن ہو، کام مکمل طور پر عدد اقدار کے طور پر تفسیر کی جاتی ہے. عددی اقدار کو ڈیشلی (معمولی کیس) میں مخصوص کیا جا سکتا ہے، آکٹل میں (اگر آپریٹنگ کا پہلا کردار 0 ہے )، یا ہیکسڈاسیکیٹ میں (اگر آپریٹنگ کے پہلے دو حروف 0x ہیں ). اگر اوپر اوپر دی گئی ایک انوگر فارمیٹس میں سے ایک آپریٹر نہیں ہے، تو ممکن ہے کہ اگر یہ ممکن ہو تو فلوٹنگ نقطہ نمبر کے طور پر کیا جائے. این ایس ایس ایس-مطابق سی سی کمپائلر کی طرف سے قبول کردہ کسی بھی طریقوں میں فلوٹنگ پوائنٹس کی تعداد کی وضاحت کی جاسکتی ہے (اس کے علاوہ کہ، F ، F ، L ، اور L suffixes زیادہ سے زیادہ تنصیبات میں اجازت نہیں دی جائے گی). مثال کے طور پر، مندرجہ ذیل سبھی درست سچل نقطہ نمبر ہیں: 2.1، 3.، 6e4، 7.91e + 16. اگر کوئی عددی تشریح ممکن نہیں ہے تو، ایک آپریٹنگ ایک تار کے طور پر چھوڑ دیا جاتا ہے (اور آپریٹرز کا صرف ایک محدود سیٹ اس پر لاگو کیا جا سکتا ہے).

مندرجہ ذیل طریقوں میں آپریٹنگ کی وضاحت کی جا سکتی ہے:

[1]

ایک عددی قدر کے طور پر، یا تو مکمل طور پر یا سچل نقطہ.

[2]

ایک Tcl متغیر کے طور پر، معیاری $ نوشن کا استعمال کرتے ہوئے. متغیر کی قیمت کو آپریٹنگ کے طور پر استعمال کیا جائے گا.

[3]

ڈبل دائرے میں منسلک ایک تار کے طور پر. اظہار پیزر کو حوالہ جات کے درمیان معلومات پر بیکسلاش، متغیر اور کمانڈ متبادلات انجام دے گا، اور نتیجے میں قیمت کا استعمال آپریٹنگ کے طور پر کرے گا.

[4]

بروسیں میں منسلک ایک تار کے طور پر. کھلی کڑا اور مماثلت کے قریبی کڑا کے درمیان حروف کسی بھی متبادل کے بغیر آپریٹنگ کے طور پر استعمال کیا جائے گا.

[5]

ایک Tcl کمانڈ کے طور پر بریکٹ میں منسلک ہے. کمانڈر کو پھانسی دی جائے گی اور اس کا نتیجہ آپریٹنگ کے طور پر استعمال کیا جائے گا.

[6]

ایک ریاضیاتی فنکشن کے طور پر جن کے دلائل آپ کے اوپر اوپر ($ x) جیسے کاموں کے کسی بھی شکل میں ہیں. واضح افعال کی فہرست کے لئے ذیل میں ملاحظہ کریں.

جہاں متبادلات اوپر واقع ہوتے ہیں (مثلا حوالہ شدہ تار کے اندر اندر)، وہ اظہار کے ہدایات کی طرف سے کارکردگی کا مظاہرہ کرتے ہیں. تاہم، اظہار پروسیسر کو بلایا گیا تھا اس سے پہلے، متبادل کی ایک اضافی پرت کو پہلے ہی کمانڈ پیرس کی طرف سے پیش کیا جا سکتا ہے. جیسا کہ ذیل میں بات چیت کی گئی ہے، عام طور پر بصیرت میں اظہارات کو منسلک کرنے کے لئے سب سے بہتر ہوتا ہے تاکہ مواد پر متبادل عوامل سے کمانڈ پیرس کو روک سکے.

سادہ اظہار کے کچھ مثالیں کے لئے، متغیر ایک قیمت 3 ہے اور متغیر ب قدر ہے 6. پھر نیچے لائن میں سے ہر ایک کے بائیں جانب کی کمانڈ لائن کے دائیں جانب قیمت پیدا کرے گی:

expr 3.1 + $ a6.1 expr 2 + "$ a. $ b" 5.6 expr 4 * [llength "6 2"] 8 expr {{word one} <"word $ a"} 0

آپریٹرز

درست آپریٹرز ذیل میں درج کیے گئے ہیں، مثال کے طور پر کم سے کم آرڈر میں شامل ہیں:

+ ~!

Unary مائنس، unary پلس، تھوڑا سا نہیں، منطقی نہیں. ان میں سے کسی بھی آپریٹنگ سٹرنگ آپریٹرز پر لاگو نہیں کیا جاسکتا ہے، اور تھوڑی دیر سے صرف انباقوں کو لاگو نہیں کیا جا سکتا.

* /٪

ضرب، تقسیم، باقی. ان میں سے کسی بھی آپریٹنگ سٹرنگ آپریٹرز پر لاگو نہیں کیا جاسکتا ہے، اور باقی صرف انباق کو صرف لاگو کیا جا سکتا ہے. باقی ہمیشہ کے طور پر ویزا اور تقسیم کے مقابلے میں ایک مکمل قدر کے طور پر ایک ہی علامت پڑے گا.

+ -

شامل کریں اور کم کریں. کسی بھی عددی آپریٹنگ کے لئے درست.

<< >>

بائیں اور دائیں شفٹ اکیلیٹر صرف کام کرنے کے لئے درست ہے. ایک صحیح تبدیلی ہمیشہ نشانیوں کی تھوڑی پروپیگنڈے کرتا ہے.

<> <=> =

Boolean کم، زیادہ سے زیادہ، سے کم یا برابر، اور زیادہ سے زیادہ یا برابر. ہر آپریٹر 1 پیدا کرتا ہے اگر شرط درست ہے، 0 دوسری صورت میں. یہ آپریٹرز کو تار کے ساتھ ساتھ عددی کاموں پر بھی لاگو کیا جا سکتا ہے، جس میں کیس کا سٹرنگ مقابلے استعمال ہوتا ہے.

==! =

بلین برابر اور برابر نہیں. ہر آپریٹر ایک صفر / ایک نتیجہ پیدا کرتا ہے. تمام آپریٹنگ کی اقسام کے لئے درست.

&

بٹ وار اور. اکیلیٹر صرف کام کرنے کے لئے درست ہے.

^

بٹ وار خصوصی یا. اکیلیٹر صرف کام کرنے کے لئے درست ہے.

|

بٹ وار یا. اکیلیٹر صرف کام کرنے کے لئے درست ہے.

&&

منطقی اور. ایک 1 نتیجہ پیدا کرتا ہے اگر دونوں آپریٹرز غیر صفر ہیں، 0 دوسری صورت میں. بیلیان اور عددی کے لئے درست (اندرونی یا فلوٹنگ پوائنٹ) صرف کام کرتا ہے.

||

منطقی یا. 0 نتائج پیدا کرتا ہے اگر دونوں آپریٹنگ صفر ہیں، 1 دوسری صورت میں. بیلیان اور عددی کے لئے درست (اندرونی یا فلوٹنگ پوائنٹ) صرف کام کرتا ہے.

ایکس ؟ y : z

تو پھر، جیسے، سی. اگر ایکس ایکس صفر کی تشخیص کرتا ہے، تو نتیجہ Y کی قیمت ہے. ورنہ، نتیجہ ز کی قدر ہے. ایکس آپریٹنگ کو ایک عددی قدر ہونا ضروری ہے.

ہر آپریٹر کی طرف سے تیار کردہ نتائج پر مزید تفصیلات کے لئے سی دستی دیکھیں. تمام بائنری آپریٹرز گروپ ایک ہی مثال کے طور پر بائیں طرف دائیں. مثال کے طور پر، کمانڈ

expr 4 * 2 <7

واپسی 0

&& ، || ، اور ؟: آپریٹرز کو `` سست تشخیص 'کے طور پر، جیسا کہ سی میں، جس کا مطلب یہ ہے کہ کاموں کا اندازہ نہیں کیا جاتا ہے کہ اگر وہ نتائج کا تعین کرنے کی ضرورت نہیں ہے. مثال کے طور پر، کمانڈ میں

expr {$ v؟ [a]: [b]}

$ ایک کی قیمت پر منحصر ہے، اصل میں [الف ] یا [ب] میں سے صرف ایک کا جائزہ لیا جائے گا. نوٹ، تاہم، یہ صرف سچ ہے اگر پوری اظہار برعکس میں منسلک ہے؛ دوسری صورت میں، Tcl پارسر کو expr کمانڈر سے پہلے [الف] اور [ب] دونوں کا جائزہ لیں گے.

ریاضی کام

تخیل میں مندرجہ ذیل ریاضیاتی افعال کی حمایت کرتا ہے.

abs کیش لاگ sq sqrt ایکٹو ڈبل لاگ 10 srand کے طور پر توسیع پاؤ ٹین پر فین رینڈ ٹین ATAN2 fmod راؤنڈ چھت hypot گناہ کے طور پر int گناہ h

abs ( arg )

آرک کا مطلق قدر واپس کرتا ہے. ارجن ہو یا تو عدد یا سچل نقطہ ہو، اور نتیجہ اسی شکل میں واپس آ گیا ہے.

acos ( arg )

رینج [0، پی] رادیوں میں آرک کا آرک کاسٹین واپس آتا ہے. ارج رینج [-1،1] میں ہونا چاہئے.

عین ( آرٹ )

رینج [آرپی / 2، پی / 2] radians میں آرک کی آرک کا واپس لوٹاتا ہے. ارج رینج [-1،1] میں ہونا چاہئے.

atan ( arg )

رینج [آرپی / 2، پی / 2] radians میں آرک کے آرک ٹیننٹنٹ کو واپس کرتا ہے.

atan2 ( x، y )

[/pi، pi] radians میں، y / x کے آرک ٹینٹنٹ واپس. ایکس اور Y دونوں نہیں ہو سکتا 0.

چھت ( آرٹ )

سب سے چھوٹی انوگر کی قیمت کو آرک سے کم نہیں کرتا ہے.

کوس ( آرٹ )

ریڈیوں میں ماپا، آرک کا کاسمین واپس.

کوش ( آرٹ )

آرک کے ہائیپربلک کاسمین واپس. اگر نتیجہ بہاؤ کا سبب بن جائے گا، تو ایک غلطی واپس آگئی ہے.

ڈبل ( آرٹ )

اگر آرٹ ایک سچل قدر ہے تو، واپسی کا استقبال کرتا ہے ، دوسری صورت میں طول و عرض کو مسترد کرتا ہے اور تبدیل شدہ قیمت واپس کرتا ہے.

اضافی ( آرٹ )

اے آر ** کے طور پر وضاحت کی آرک کی توسیع، واپس. اگر نتیجہ بہاؤ کا سبب بن جائے گا، تو ایک غلطی واپس آگئی ہے.

منزل ( آرٹ )

دلیل سے زیادہ نہیں سب سے بڑا لازمی قدر واپس.

fmod ( x، y )

ایکس کے وی ڈویژن کے سچل نقطہ باقی کو واپس کرتا ہے. اگر Y 0 ہے، تو ایک غلطی واپس آگئی ہے.

hypot ( x، y )

دائیں زاویہ مثلث کے ہایپوٹینج کی لمبائی کا موازنہ کرتا ہے ( x * x + y * y ).

int ( arg )

اگر آرٹ ایک انوگر قدر ہے، تو واپسی کا ارادہ رکھتا ہے، دوسری صورت میں ٹرانزیکشن کی طرف سے انضمام میں دل کو بدلتا ہے اور تبدیل شدہ قیمت واپس کرتا ہے.

لاگ ( آرٹ )

دل کی قدرتی لاگت واپس. ارج ایک مثبت قدر ہونا ضروری ہے.

لاگ 10 ( آرٹ )

دل کی بنیاد 10 لاگت کو واپس کرتا ہے. ارج ایک مثبت قدر ہونا ضروری ہے.

پاؤ ( x، y )

اقتدار y کے لئے اٹھائے جانے والے ایکس کی قیمت کا موازنہ کرتا ہے. اگر ایکس منفی ہے، تو آپ کو لازمی طور پر قدر ہونا ضروری ہے.

رینڈ ()

صفر سے ایک قطع نظر پوائنٹ نمبر صفر سے کم سے کم یا ریاضیاتی شرائط، رینج [0،1] میں. بیج مشین کی اندرونی گھڑی سے آتا ہے یا اس کے علاوہ srand کی تقریب کے ساتھ دستی مقرر کی جا سکتی ہے.

راؤنڈ ( آرٹ )

اگر آرٹ ایک انوگر قدر ہے، تو واپسی کا ارادہ رکھتا ہے، دوسری صورت میں راؤنڈنگ کی طرف سے انباج میں دل کو بدلتا ہے اور تبدیل شدہ قیمت واپس کرتا ہے.

گناہ ( آرٹ )

ریڈیوں میں ماپا، سائن کے آرک واپس.

گناہ

دل کی ہائپربولک سنک واپس کرتا ہے. اگر نتیجہ بہاؤ کا سبب بن جائے گا، تو ایک غلطی واپس آگئی ہے.

sqrt ( arg )

آرک کا مربع جڑ واپس آتا ہے. ارج غیر منفی ہونا ضروری ہے.

srand ( arg )

آرک ، جو لازمی طور پر ہونا چاہئے، بے ترتیب تعداد جنریٹر کے لئے بیج ری سیٹ کرنے کے لئے استعمال کیا جاتا ہے. اس بیج سے پہلے بے ترتیب نمبر واپس لیتا ہے. ہر ترجمان اپنے اپنے بیج میں ہے.

ٹین ( آرٹ )

ریڈیوں میں ماپا، آرک کے ٹینگنٹ واپس.

تنہ ( آرٹ )

آرک کے ہائپربلک ٹینگنٹ واپس آتی ہے.

ان پیش وضاحتی افعال کے علاوہ، ایپلی کیشنز Tcl_CreateMathFunc () کے ذریعے اضافی افعال کی وضاحت کرسکتے ہیں.

اقسام، بہاؤ، اور صحت سے متعلق

تمام اندرونی computations شامل انٹیگرز سی قسم کی لمبائی کے ساتھ کئے جاتے ہیں، اور فلوٹنگ پوائنٹ میں شامل تمام اندرونی computations سی قسم ڈبل کے ساتھ کیا جاتا ہے. جب ٹول کو سچل پوائنٹ میں تبدیل کرتے ہیں، تو انحصار کے بہاؤ کا پتہ چلتا ہے اور Tcl غلطی کے نتیجے میں ہوتا ہے. سٹرنگ سے انوزر میں تبادلوں کے لۓ، اوور بہاؤ کا پتہ مقامی سی لائبریری میں کچھ معمولوں کے رویے پر منحصر ہے، لہذا اسے ناقابل اعتبار تصور ہونا چاہئے. کسی بھی صورت میں، مکمل طور پر انٹرفیس کے نتائج کے لئے عارضی طور پر انوکر بہاؤ اور بہاؤ کو عام طور پر معلوم نہیں کیا جاتا ہے. فلوٹنگ نقطہ اوور بہاؤ اور نیچے بہاؤ ہارڈ ویئر کی طرف سے حمایت کی ڈگری کو پتہ چلا ہے، جو عام طور پر بہت قابل اعتماد ہے.

لازمی طور پر انوگر، سچل نقطہ، اور سٹرنگ آپریٹنگ کے لئے اندرونی نمائندگی کے درمیان تبادلوں کو خود کار طریقے سے کیا جاتا ہے. ریاضی سازوسامان کے لئے، اشارے استعمال کیے جاتے ہیں جب تک کہ کچھ سچل پوائنٹ نمبر متعارف کرایا جاتا ہے، جس کے بعد فلوٹنگ پوائنٹ استعمال کیا جاتا ہے. مثال کے طور پر،

expr 5/4

واپسی 1، جبکہ

expr 5 / 4.0 expr 5 / ([تار کی لمبائی "abcd"] + 0.0)

دونوں کی واپسی 1.25 ہے. فلوٹنگ نقطہ اقدار ہمیشہ `` کے ساتھ واپس آ گئے ہیں . '' یا ایک ایسا ہے کہ وہ اندرونی اقدار کی طرح نظر نہیں آئے گا. مثال کے طور پر،

expr 20.0 / 5.0

واپسی 4.0 ، نہیں 4 .

سٹرنگ آپریشنز

سٹرنگ اقدار کو مقابلے کے آپریٹرز کے چلانے کے طور پر استعمال کیا جا سکتا ہے، اگرچہ اظہار تشخیص کا موازنہ کرنے کی کوشش کرتا ہے تو یہ انٹیگر یا فلوٹنگ پوائنٹ کے طور پر کر سکتا ہے. اگر ایک موازنہ کے آپریٹنگ میں سے ایک ایک تار ہے اور دوسرے میں ایک عددی قدر ہے، تو عددی آپریانڈ کو ایک سری لنٹ کی شکل کے مطابق مقرر کر دیا جاتا ہے، جس میں اشارے اور ٪ g کے لئے فلوٹنگ پوائنٹس کے لئے استعمال ہوتا ہے. مثال کے طور پر، حکم

expr {"0x03"> "2"} expr {"0y" <"0x12"}

واپسی دونوں 1. سب سے پہلے موازنہ انٹیگر مقابلے کا استعمال کرتے ہوئے کیا جاتا ہے، اور دوسرا آپریٹنگ کا استعمال کرتے ہوئے کیا جاتا ہے کے بعد دوسرے آپریٹنگ کو تار 18 میں تبدیل کیا جاتا ہے. جب ممکن ہو تو نمبروں کے لحاظ سے قیمتوں کے علاج کے لۓ Tcl کی رجحان کی وجہ سے، یہ عام طور پر آپریٹر استعمال کرنے کا اچھا خیال نہیں ہے جیسے == جب آپ واقعی سٹرنگ مقابلے چاہتے ہیں اور آپریٹنگ کے اقدار کو خودمختار بنایا جا سکتا ہے؛ ان صورتوں میں یہ بجائے سٹرنگ کمانڈ استعمال کرنے کے لئے بہتر ہے.

کارکردگی کے بارے میں غور و فکر

بہترین رفتار اور سب سے چھوٹی اسٹوریج کی ضروریات کے لئے بہادروں میں اظہار بیان کریں. یہ بہترین کوڈ پیدا کرنے کے لئے Tcl bytecode کمپائلر کی اجازت دیتا ہے.

جیسا کہ اوپر بیان کیا گیا ہے، اظہار دو بار متبادل ہے: ایک بار Tcl پارسر کی طرف سے اور ایک بار Expr کمانڈ کی طرف سے. مثال کے طور پر، حکم

3 سیٹ b {$ a + 2} expr $ b * 4 مقرر کریں

واپسی 11، ایک سے زیادہ نہیں 4. یہ ہے کیونکہ Tcl پیسر پہلے سے متغیر بی کے لئے ایک $ 2 متبادل کرے گا، پھر Expr کمانڈ اظہار ایک + 2 * 4 کا اندازہ کرے گا.

سب سے زیادہ اظہارات متبادلات کے دوسرا دور کی ضرورت نہیں ہے. یا تو وہ بہادروں میں منسلک ہوتے ہیں یا نہیں، اگر نہیں، ان متغیر اور کمانڈ کے متبادل متبادل نمبر یا تار پیدا ہوتے ہیں جو خود کو متبادلات کی ضرورت نہیں ہوتی ہیں. تاہم، کیونکہ کچھ غیر منقطع اظہارات متبادل طریقے سے دو گولوں کی ضرورت ہوتی ہیں، اسکے ذریعے بائیکڈوڈ کنکولیٹر کو اس صورت حال کو سنبھالنے کے لئے اضافی ہدایات عائد کرنا ضروری ہے. سب سے زیادہ مہنگی کوڈ ضروری ہے کہ غیر منقولہ اظہار کے لۓ کمانڈ متبادلات شامل ہوں. یہ اظہار ہر وقت جب اعزاز پذیر ہو جاتا ہے تو نئے کوڈ پیدا کرکے لاگو کرنا لازمی ہے.

مطلوبہ الفاظ

ریاضی، بولیان ، موازنہ، اظہار، فجی مقابلے

اہم: انسان کے کمانڈر ( ٪ انسان ) کا استعمال کریں کہ کس طرح کمانڈ آپ کے مخصوص کمپیوٹر پر استعمال کیا جاتا ہے.