ലിനക്സ് / യൂണിക്സ് കമാൻഡ്: expr

പേര്

expr - ഒരു എക്സ്പ്രഷൻ വിലയിരുത്തുക

സംഗ്രഹം

expr arg ? ആർഗ് ആർഗ് ?

ആർഗിന്റെ (അവയ്ക്കിടയിൽ വിഭജന ഇടങ്ങൾ കൂട്ടിച്ചേർക്കുന്നു) ബന്ധിപ്പിക്കുന്നു, ഒരു ടിക്ക് എക്സ്പ്രഷനായി ഫലത്തെ വിലയിരുത്തുകയും മൂല്യം മടക്കുകയും ചെയ്യുന്നു. Tcl എക്സ്പ്രഷനുകളിൽ അനുവദിക്കുന്ന ഓപ്പറേറ്റർമാർ, C എക്സ്പ്രഷനുകളിൽ അനുവദിച്ചിട്ടുള്ള ഓപ്പറേറ്ററുകളുടെ ഒരു ഉപസെറ്റാണ്, മാത്രമല്ല അവയ്ക്ക് അനുയോജ്യമായ C ഓപ്പറേറ്റർമാർക്ക് സമാനമായ അർത്ഥവും മുൻഗണനയുമുണ്ട്. ആശയങ്ങൾ മിക്കവാറും എല്ലായ്പ്പോഴും സംഖ്യാ ഫലങ്ങൾ (പൂർണ്ണസംഖ്യ അല്ലെങ്കിൽ ഫ്ലോട്ടിംഗ്-പോയിന്റ് മൂല്യങ്ങൾ) നൽകുന്നു. ഉദാഹരണമായി, പദപ്രയോഗം

expr 8.2 + 6

14.2 ലേക്ക് മൂല്യനിർണ്ണയം ചെയ്യുന്നു. എക്സിക്യുട്ടികൾ നിർദ്ദേശിക്കുന്നത് നിർദ്ദേശങ്ങളനുസരിച്ച് വ്യത്യസ്തമാണ്. കൂടാതെ, Tcl എക്സ്പ്രഷനുകൾ നോൺ-അക്കമിൻഡഡ് ഓപ്പറൻഡുകളും സ്ട്രിങ് താരതമ്യങ്ങളും പിന്തുണയ്ക്കുന്നു.

പ്രവർത്തിക്കുന്നു

ഒരു Tcl എക്സ്പ്രഷനാണ് ഓപ്പറ, ഓപ്പറേറ്റർമാർ, പാരന്തസിസ് എന്നിവയുടെ സംയോജനമാണ്. Operands, operators, parentheses എന്നിവയ്ക്കിടയിൽ വൈറ്റ് സ്പേസ് ഉപയോഗിക്കാം. അത് നിർദ്ദേശങ്ങളുടെ നിർദേശങ്ങളാൽ അവഗണിക്കും. സാധ്യമെങ്കിൽ, ഓപ്പറന്റുകൾ ഇന്ഡക്സ് മൂല്യങ്ങളായി വ്യാഖ്യമാക്കപ്പെടും. ഒക്ടൽ മൂല്യങ്ങളിൽ ഡെസിമൽ മൂല്യങ്ങൾ വ്യക്തമാക്കാം. (ഓപ്പററിന്റെ ആദ്യ പ്രതീകം 0 ആണെങ്കിൽ ) അല്ലെങ്കിൽ ഹെക്സാഡെസിമലിൽ (ഓപ്പറേഷന്റെ ആദ്യത്തെ രണ്ട് പ്രതീകങ്ങൾ 0x ആണെങ്കിൽ). ഒരു ഓപ്പറന്റ് മുകളിൽ കൊടുത്തിട്ടുള്ള പൂർണ്ണസംഖ്യകളിലൊന്നിന് ഇല്ലെങ്കിൽ, അത് സാധ്യമാണെങ്കിൽ അതിനെ ഫ്ലോട്ടിംഗ്-പോയിന്റ് നമ്പറായി പരിഗണിക്കും. ഒരു ആൻസി-കംപ്ലയർ സി കമ്പൈലർ സ്വീകരിച്ച ഏതെങ്കിലും വഴികളിൽ ഫ്ലോട്ടിങ് പോയിന്റ് നമ്പറുകൾ നൽകാം. ( എഫ് , എഫ് , എൽ , ഫി ഫിക്സുകൾ എന്നിവ മിക്ക ഇൻസ്റ്റാളേഷനുകളിലും അനുവദനീയമല്ല). ഉദാഹരണത്തിന്, സാധ്യമായ ഫ്ലോട്ടിംഗ്-പോയിന്റ് നമ്പറുകൾ താഴെ പറയുന്നു: 2.1, 3., 6e4, 7.91e + 16. ഒരു സാംഖിക വ്യാഖ്യാനമോ സാധ്യമല്ലെങ്കിൽ, ഒരു ഓപ്പറന്റ് സ്ട്രിംഗ് ആയി ശേഷിക്കുന്നു (പരിമിതമായ ഒരു ഓപ്പറേറ്റർമാർക്ക് മാത്രമേ ഇത് ബാധകമാക്കാവൂ).

ഓപ്പറേഡുകൾ ഇനിപ്പറയുന്ന ഏതെങ്കിലും മാർഗങ്ങളിൽ വ്യക്തമാക്കിയിരിക്കാം:

[1]

സാംഖിക മൂല്യം പോലെ, പൂർണ്ണസംഖ്യ അല്ലെങ്കിൽ ഫ്ലോട്ടിങ് പോയിന്റ്.

[2]

സ്റ്റാൻഡേർഡ് $ നൊട്ടേഷൻ ഉപയോഗിച്ചുകൊണ്ട് ഒരു Tcl വേരിയബിളായി. വേരിയബിളിന്റെ മൂല്യം ഓപ്പറൺ ആയി ഉപയോഗിക്കും.

[3]

ഒരു സ്ട്രിംഗ് ഇരട്ട-ഉദ്ധരണികളാൽ ഉൾക്കൊള്ളുന്നു. ഉദ്ധരണികൾ പാസ്സ്വേർഡ് ബോട്സ്ലാഷ്, വേരിയബിൾ, ആഡ്സ് ക്വസ്റ്റുകൾ എന്നിവയിൽ വിവരങ്ങൾക്ക് പകരമായാണ് പ്രവർത്തിക്കുക.

[4]

ഒരു സ്ട്രിംഗ് ബ്രെയിസുകളിൽ വലയം ചെയ്തതുപോലെ. തുറന്ന ബ്രേസ്, പൊരുത്തമുള്ള ബ്രേസ് തമ്മിലുള്ള പ്രതീകങ്ങൾ ഏത് പകരം ഉപയോഗിക്കാതെ പ്രവർത്തിക്കുന്നു.

[5]

ഒരു Tcl കമാൻഡ് ബ്രായ്ക്കറ്റിൽ ഉൾപ്പെടുത്തിയിരിയ്ക്കുന്നു. കമാൻഡ് എക്സിക്യൂട്ട് ചെയ്യുകയും അതിന്റെ ഫലം ഓപ്പറന്റ് ആയി ഉപയോഗിക്കുകയും ചെയ്യും.

[6]

ഗണിതശാസ്ത്രപരമായ ഒരു പ്രവർത്തനമെന്ന നിലയിൽ, ( ഉദാഹരണത്തിന്, പാപം ($ x) പോലെയുള്ള operands- ന്റെ ഏതെങ്കിലും തരത്തിലുള്ള ഏതെങ്കിലും വാദഗതികൾ ഉണ്ടായിരിക്കണം. നിർവ്വചിക്കപ്പെട്ട ഫംഗ്ഷനുകളുടെ ഒരു ലിസ്റ്റിനായി താഴെ നോക്കുക.

മുകളിൽ പ്രതിപ്രവർത്തനം നടക്കുന്നെങ്കിൽ (ഉദാ: ഉദ്ധരിച്ച സ്ട്രിങ്ങുകളിൽ), അവ എക്സ്പ്രഷന്റെ നിർദേശങ്ങളാൽ നടപ്പാക്കപ്പെടുന്നു. എന്നിരുന്നാലും, എക്സ്പ്രഷൻ പ്രൊസസ്സർ വിളിക്കുന്നതിന് മുൻപ് ഒരു അധിക പാറ്റേൺ കമാൻഡ് പാർസർ നിർവ്വഹിച്ചിട്ടുണ്ട്. താഴെ പറഞ്ഞിരിക്കുന്നത് പോലെ, സാധാരണ ഗതിയിൽ പാസ്സ്വേർഡ് നിർവചനങ്ങൾ തടയുന്നത് നിർത്തുന്ന കാര്യമാണ്.

ലളിതമായ എക്സ്പ്രഷനുകളുടെ ചില ഉദാഹരണങ്ങൾക്കായി, മൂല്യം 3-ഉം വേരിയബിൾ ബി -മൂല്യം 6-ഉം ഉണ്ടെന്ന് കരുതുക. അതിനുശേഷം താഴെയുള്ള ഓരോ വരിയിലേയും ഇടതുവശത്തുള്ള കമാൻഡിന്റെ വര

expr 3.1 + $ a6.1 expr 2 + "$ a. $ b" 5.6 expr 4 * [നീളം "6 2"] 8 expr {{word one} <"വാക്ക് $ a"} 0

ഓപ്പറേറ്റർമാർ

സാധുതയുള്ള ഓപ്പറേറ്റർമാർ താഴെ പട്ടികപ്പെടുത്തിയിരിക്കുന്നു, മുൻഗണനയുടെ ക്രമം അനുസരിച്ച് ഗ്രൂപ്പുചെയ്യപ്പെടുന്നു:

- + ~!

Unary minus, unary പ്ലസ്, ബിറ്റ് വിജ്ഞാനം അല്ല, ലോജിക്കൽ അല്ല. ഈ ഓപ്പറേറ്റുകളിൽ ഒന്നും സ്ട്രിംഗ് ഓപ്പറാൻസിലേക്ക് പ്രയോഗിക്കില്ല, കൂടാതെ ബിറ്റ് ജ്ഞാനികൾ NOT പൂർണ്ണസംഖ്യകളിൽ മാത്രം പ്രയോഗിക്കപ്പെടാം.

* /%

ഗുണിക്കുക, വിഭജിക്കുക, ബാക്കി. ഈ ഓപ്പറേറ്റുകളിൽ ഒന്നും സ്ട്രിംഗ് ഓപ്പറാൻസിലേക്ക് പ്രയോഗിക്കില്ല, ബാക്കിയുള്ളവ പൂർണ്ണസംഖ്യകളിൽ മാത്രം പ്രയോഗിക്കപ്പെടാം. ബാക്കിയുള്ളവർ എപ്പോഴും വിഭജിക്കുന്നതിനേക്കാൾ വിഭജിച്ചിരിക്കുന്നതിനേക്കാൾ ഒരേ ഒരു ചിഹ്നമാണ്.

+ -

കൂട്ടിച്ചേർക്കുക. ഏത് സംഖ്യാ ഓപ്പറൻഡുകൾക്കും സാധുവാണ്.

<< >>

ഇടത് വലത് ഷിഫ്റ്റ്. പൂർണ്ണസംഖ്യകൾക്ക് മാത്രം സാധുതയുള്ളത്. ഒരു വലത് ഷിഫ്റ്റ് എല്ലായ്പ്പോഴും ചിഹ്നത്തെ പ്രചരിപ്പിക്കുന്നു.

<> <=> =

ബൂളിയൻ കുറവ്, വലിയ, കുറവോ തുല്യമോ, കൂടാതെ വലുത് അല്ലെങ്കിൽ തുല്യമാണ്. കൺഡിഷൻ true ആണെങ്കിൽ ഓരോ ഓപ്പറേറ്ററും 1 ഉത്പാദിപ്പിക്കുന്നു. ഈ ഓപ്പറേറ്റർമാർ സ്ട്രിംഗുകളിലേക്കും അക്കങ്ങളുള്ള പ്രയോഗങ്ങളിലേക്കും പ്രയോഗിച്ചേക്കാം, അതിൽ സ്റ്റിർ താരതമ്യം താരതമ്യം ചെയ്യുന്നു.

==! =

ബൂളിയൻ തുല്യനും തുല്യമല്ല. ഓരോ ഓപ്പറേറ്റർക്കും ഒരു പൂജ്യം / ഒരു ഫലം നൽകുന്നു. എല്ലാ ഓപ്പറാൻഡ് തരങ്ങൾക്കും സാധുവാണ്.

&

ബിറ്റ് വിദ് പൂർണ്ണസംഖ്യകൾക്ക് മാത്രം സാധുതയുള്ളത്.

^

ബിറ്റ് വിജ്ഞാനിക എക്സ്ക്ലൂസീവ് അല്ലെങ്കിൽ. പൂർണ്ണസംഖ്യകൾക്ക് മാത്രം സാധുതയുള്ളത്.

|

ബിറ്റ് വിജ്ഞാനം അല്ലെങ്കിൽ. പൂർണ്ണസംഖ്യകൾക്ക് മാത്രം സാധുതയുള്ളത്.

&&

ലോജിക്കൽ കൂടാതെ. രണ്ട് ഓപ്പററുകളും പൂജ്യം അല്ലാത്തതാണെങ്കിൽ ഒരു 0 ഫലം ഉണ്ടാക്കുന്നു. പൂജ്യത്തിനും സംഖ്യകൾക്കും (പൂർണ്ണസംഖ്യകൾ അല്ലെങ്കിൽ ഫ്ലോട്ടിംഗ്-പോയിന്റ്) മാത്രമേ സാധിക്കൂ.

||

ലോജിക്കൽ OR. രണ്ട് ഓപ്പറേറ്റുകളും പൂജ്യമാണെങ്കിൽ ഒരു 0 ഫലം ഉണ്ടാക്കുന്നു. പൂജ്യത്തിനും സംഖ്യകൾക്കും (പൂർണ്ണസംഖ്യകൾ അല്ലെങ്കിൽ ഫ്ലോട്ടിംഗ്-പോയിന്റ്) മാത്രമേ സാധിക്കൂ.

x ? y : z

ഇല്ലെങ്കിൽ, മറ്റൊന്നു് സി യിൽ പോലെ. X പൂജ്യം അല്ലാത്ത മൂല്യനിർണ്ണയം എങ്കിൽ, y യുടെ മൂല്യം. അല്ലെങ്കിൽ, z ന്റെ വിലയാണ് ഫലം. X ഓപ്പറേഡിന് ഒരു സാംഖിക മൂല്യം ഉണ്ടായിരിക്കണം.

ഓരോ ഓപ്പറേറ്റർ നിർമ്മിച്ച ഫലത്തേയും കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾക്കായി മാനുവൽ കാണുക. ബൈനറി ഓപ്പറേറ്റർമാരുടെ എല്ലാ ഗ്രൂപ്പുകളും ഒരേ മുൻഗണന തലത്തിൽ ഇടത് നിന്ന് വലത്തേക്ക്. ഉദാഹരണത്തിനു്, കമാൻഡ്

expr 4 * 2 <7

തിരികെ നൽകുന്നു 0.

&& , || , പിന്നെ?: ഓപ്പറേറ്റർമാർക്ക് "സോഷ്യലിസ്റ്റ് മൂല്യനിർണ്ണയം", സി യിൽ പോലെ തന്നെ ഉണ്ട്, അതിനർത്ഥം ഫലമായി നിർണയിക്കാനാവശ്യമായ ആവശ്യമില്ലെങ്കിൽ ഓപ്പറേറ്റുകൾ പരിശോധിക്കില്ല എന്നാണ്. ഉദാഹരണമായി, കമാൻഡിൽ

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

$ a ൻറെ മൂല്യം അനുസരിച്ച്, [a] അല്ലെങ്കിൽ [b] ൽ ഒന്ന് മാത്രമേ വിലയിരുത്തപ്പെടുകയുള്ളൂ. എന്നിരുന്നാലും, മുഴുവൻ പദപ്രയോഗവും ബ്രെയ്സുകളിൽ ഘടിപ്പിച്ചിട്ടുണ്ടെങ്കിൽ മാത്രമേ ഇത് സത്യമാകൂ; അല്ലാത്തപക്ഷം, Tcl പാഴ്സർ expr കമാൻഡിനെ വിളിക്കുന്നതിന് മുമ്പ് [a] , b എന്നിവയെ വിലയിരുത്തും.

ഗണിത ഫങ്ഷനുകൾ

എക്സ്ക്ലൂഷനുകളിലെ ഇനിപ്പറയുന്ന ഗണിത മണ്ഡലങ്ങളെ Tcl പിന്തുണയ്ക്കുന്നു:

അസ് cosh ലോഗ് sqrt acos ഇരട്ട log10 srand asin exp pow tan tan tan tanh atan2 fmod round ceil ഹൈപോട്ട് sin cos int sinh

അബ്സ് ( ആർഗ )

ആർഗിന്റെ സമ്പൂർണ്ണ മൂല്യം നൽകുന്നു. ആർഗ് പൂർണ്ണസംഖ്യ അല്ലെങ്കിൽ ഫ്ലോട്ടിങ് പോയിന്റ് ആകാം, കൂടാതെ ഫലം അതേ രൂപത്തിൽ തന്നെ നൽകാം.

അകോസ് ( ആർഗ )

റേ , [0, pi] റേഡിയനിൽ ആർഗിന്റെ കോസിൻ നൽകുന്നു. ആർഗിന്റെ ശ്രേണിയിൽ ആയിരിക്കണം [-1,1].

asin ( arg )

ആർഗിന്റെ ആർക്ക് സെയ്ൻ, ശ്രേണിയിൽ [-pi / 2, pi / 2] റേഡിയൻ നൽകുന്നു. ആർഗിന്റെ ശ്രേണിയിൽ ആയിരിക്കണം [-1,1].

atan ( arg )

ആർഗിന്റെ arc tangent, [-pi / 2, pi / 2] റേഡിയൻസിൽ നൽകുന്നു.

atan2 ( x, y )

പരിധിയിലുള്ള [-pi, pi] റേഡിയറുകളിൽ, y / x ന്റെ ആർക്ക് ടാൻസെന്റ് നൽകുന്നു. x ഉം y ഉം രണ്ടും ഒന്നുമല്ല.

സെയിൽ (ആർഗ )

ആർഗിനേക്കാൾ കുറവ് അല്ലെങ്കിൽ ഏറ്റവും ചെറിയ പൂർണ്ണസംഖ്യ മൂല്യം നൽകുന്നു.

cos ( ആർഗ് )

റേഡിയനിൽ അളന്ന ആർഗിന്റെ cosine നൽകുന്നു.

cosh ( ആർഗ )

ആർഗിന്റെ ഹൈപ്പർബോളിക് കോസൈൻ നൽകുന്നു. ഫലം ഒരു ഓവർഫ്ലോ ഉണ്ടാക്കുകയാണെങ്കിൽ, ഒരു പിശക് നേരിട്ടു.

ഇരട്ട ( ആർഗ )

Argut ഒരു floating മൂല്യം ആണെങ്കിൽ, arg നൽകുന്നു തിരികെ, അല്ലെങ്കിൽ float ലേക്ക് പരിവർത്തനം പരിവർത്തനം മൂല്യം മാറ്റുന്നു.

exp ( ആർഗ )

E ** ആജ്ഞ എന്ന് നിർവ്വചിച്ച ആർഗിന്റെ ഘടകം നൽകുന്നു. ഫലം ഒരു ഓവർഫ്ലോ ഉണ്ടാക്കുകയാണെങ്കിൽ, ഒരു പിശക് നേരിട്ടു.

നില ( ആർഗ )

ആർഗിനേക്കാൾ വലുതല്ലാത്ത വലിയ സംഗ്രഹ മൂല്യം നൽകുന്നു.

fmod ( x, y )

Y യ്ക്ക് ഭിന്നക-പോയിന്റ് ബാക്കിയുളള ഭാഗം y നൽകുന്നു . Y 0 ആണെങ്കിൽ ഒരു പിശക് നേരിട്ടു.

ഹൈപോട്ട് ( x, y )

വലതു ത്രികോണ ( x * x + y * y ) ന്റെ ഹൈപോടെനൂസിൻറെ അളവ് കണക്കുകൂട്ടുന്നു .

int ( ആർഗ )

ഒരു പൂർണ്ണസംഖ്യയാണെങ്കിൽ, ആർഗിന് വീണ്ടും നൽകും, അല്ലാത്തപക്ഷം സംഖ്യയെ ട്രൂങ്കേഷനിലൂടെ പരിവർത്തനം ചെയ്ത് പരിവർത്തനം ചെയ്ത മൂല്യം നൽകുന്നു.

ലോഗ് ( ആർഗ )

ആർഗിന്റെ സ്വാഭാവിക ലോഗരിതം നൽകുന്നു. Arg ഒരു പോസിറ്റീവ് മൂല്യമായിരിക്കണം.

log10 (ആർഗ )

ആർഗിന്റെ അടിസ്ഥാന 10 ലോഗരിതം നൽകുന്നു. Arg ഒരു പോസിറ്റീവ് മൂല്യമായിരിക്കണം.

പോ ( x, y )

X യ്ക്ക് പവർ യ്ക്ക് കൂട്ടിയ മൂല്യം കണക്കാക്കുന്നു. X നെഗറ്റീവ് ആണെങ്കിൽ, y ഒരു പൂർണ്ണസംഖ്യയായിരിക്കണം.

റാൻഡ് ()

പൂജ്യത്തിൽ നിന്ന് ഒരു ഫ്ലോട്ടിംഗ് പോയിന്റ് നമ്പർ ഒന്ന് മാത്രമായി, അല്ലെങ്കിൽ ഗണിത പദങ്ങളിൽ, പരിധി [0,1] നൽകുന്നു. മെഷന്റെ ആന്തരിക ക്ലോക്കുകളിൽ നിന്നാണ് ഈ വിത്ത് വരുന്നത്.

റൗണ്ട് ( ആർഗ )

ഒരു പൂർണ്ണസംഖ്യയാണെങ്കിൽ, ആർഗിന് വീണ്ടും നൽകും, കൂടാതെ റൗണ്ടിംഗ് ഉപയോഗിച്ച് പൂർണ്ണസംഖ്യയായി ആർഗമാക്കി മാറ്റുകയും പരിവർത്തനം ചെയ്ത മൂല്യം നൽകുകയും ചെയ്യുന്നു.

പാപം ( ആർഗ )

റേഡിയനിൽ അളന്ന ആർഗിന്റെ സൈൻ കാണിക്കുന്നു.

പാപഗ്രന്ഥം

ആർഗിന്റെ ഹൈപ്പർബോളിക്ക് സൈൻ നൽകുന്നു. ഫലം ഒരു ഓവർഫ്ലോ ഉണ്ടാക്കുകയാണെങ്കിൽ, ഒരു പിശക് നേരിട്ടു.

sqrt ( ആർഗ )

ആർഗിന്റെ സ്ക്വയർ റൂട്ട് നൽകുന്നു. ആർഗൻ നെഗറ്റീവ് ആയിരിക്കണം.

srand (ആർഗ )

ഒരു പൂർണ്ണസംഖ്യയായിരിക്കണം argm , റാൻഡം നമ്പർ ജനറേറ്റർക്കുള്ള സീഡ് പുനക്രമീകരിക്കാൻ ഉപയോഗിക്കുന്നു. ആ സീഡിൽ നിന്നും ആദ്യ റാൻഡം നമ്പർ നൽകുന്നു. ഓരോ വ്യാഖ്യാനത്തിനും ഓരോ വിത്തുണ്ട്.

ടാൻ ( ആർഗ )

റേഡിയൻസിൽ കണക്കാക്കിയ ആർഗിന്റെ tangent നൽകുന്നു.

ടാൻ ( ആർഗ് )

ആർഗിന്റെ ഹൈപ്പർബോളിക് ടാൻജെന്റ് നൽകുന്നു.

മുൻകൂട്ടി തയ്യാറാക്കിയ ഈ ഫങ്ഷനുകൾ കൂടാതെ, ആപ്ലിക്കേഷനുകൾ Tcl_CreateMathFunc () ഉപയോഗിച്ച് കൂടുതൽ പ്രവർത്തനങ്ങളെ നിർവചിച്ചേക്കാം.

തരങ്ങൾ, ഓവർഫ്ലോ, പ്രിസിഷൻ

സി തരത്തിലുള്ള പൂർണ്ണസംഖ്യകൾ ഉൾപ്പെടുന്ന എല്ലാ ഇന്റേണൽ കംപ്യൂട്ടിങുകളും സി ടൈപ്പ് നീളമുള്ളതാണ് , കൂടാതെ ഫ്ലോട്ടിങ് പോയിന്റും ഉൾപ്പെടുന്ന എല്ലാ ഇന്റേണൽ കംപ്യൂട്ടിങുകളും സി ടൈപ്പ് ഡബിൾ ഉപയോഗിച്ച് നടത്തുന്നു . ഒരു സ്ട്രിംഗ് ഫ്ലോട്ടിംഗ് പോയിന്റിലേക്ക് പരിവർത്തനം ചെയ്യുമ്പോൾ, ഘടനാപരമായ ഓവർഫ്ലോ കണ്ടുപിടിക്കുകയും ഒരു Tcl പിശക് സംഭവിക്കുകയും ചെയ്യുന്നു. സ്ട്രിംഗിൽ നിന്നും ഇന്റിജറിലേക്ക് പരിവർത്തനം ചെയ്യുന്നതിനായി, ഓവർഫ്ലോ കണ്ടുപിടിക്കുന്നത് പ്രാദേശിക സി ലൈബ്രറിയിലെ ചില പ്രോഗ്രാമുകളുടെ സ്വഭാവത്തെ ആശ്രയിച്ചിരിക്കുന്നു, അതിനാൽ അത് വിശ്വസനീയമല്ലാത്തതായി കണക്കാക്കണം. ഏത് സാഹചര്യത്തിലും, ഇൻറഗ്രേറ്റർ ഓവർഫ്ലോ ആൻഡ് ഫൗണ്ടേഷൻ ഇന്റർമീഡിയറ്റ് ഫലങ്ങൾക്കു പൊതുവേ വിശ്വസനീയമല്ല. ഫ്ലോട്ടിംഗ്-പോയിന്റ് ഓവർഫ്ലോ ആൻഡ് ഫൗണ്ടേഷൻ ഹാർഡ്വെയർ പിന്തുണയ്ക്കുന്ന ബിരുദം കണ്ടെത്തിയിരിക്കുന്നു, സാധാരണയായി അത് വളരെ വിശ്വസനീയമാണ്.

ഇന്റഗ്രർ, ഫ്ലോട്ടിങ് പോയിന്റ്, സ്ട്രിംഗ് ഓപ്പറന്റുകൾ എന്നിവയ്ക്കായുള്ള ആന്തരിക പ്രതീകങ്ങൾക്കിടയിൽ പരിവർത്തനം സ്വപ്രേരിതമായി ആവശ്യമാണ്. ഗണിത കണക്കുകൾക്കായി, ചില ഫ്ലോട്ടിംഗ്-പോയിന്റ് സംഖ്യകൾ അവതരിപ്പിക്കപ്പെടുന്നതുവരെ പൂർണ്ണസംഖ്യകൾ ഉപയോഗിക്കപ്പെടും, അതിനുശേഷം ഫ്ലോട്ടിങ് പോയിന്റ് ഉപയോഗിക്കപ്പെടുന്നു. ഉദാഹരണത്തിന്,

expr 5/4

1, എപ്പോൾ തിരിക്കുന്നു

expr 5 / 4.0 expr 5 / ([സ്ട്രിംഗ് ദൈർഘ്യം "abcd"] + 0.0)

ഇരുവരും 1.25 മടങ്ങ്. ഫ്ലോട്ടിങ്-പോയിന്റ് മൂല്യങ്ങൾ എല്ലായ്പ്പോഴും `` ഉപയോഗിച്ച് നൽകപ്പെടും . '' അല്ലെങ്കിൽ ഒരു ഇ e അവ പൂർണ്ണസംഖ്യകളായി കാണപ്പെടില്ല. ഉദാഹരണത്തിന്,

expr 20.0 / 5.0

4.0 അല്ല, 4 അല്ല.

സ്ട്രിംഗ് ഓപ്പറേഷൻസ്

താരതമ്യ ഓപ്പറേറ്റർമാരുടെ ഓപ്പറന്റായി സ്ട്രിങ് മൂല്യങ്ങൾ ഉപയോഗിക്കാറുണ്ട്, എന്നാൽ എക്സ്പ്രഷൻ മൂല്യനിർണ്ണയക്കാരൻ പൂർണ്ണസംഖ്യകളോ അല്ലെങ്കിൽ ഫ്ലോട്ടിങ് പോയിന്റോ ആയി താരതമ്യം ചെയ്യുമ്പോൾ അതിനെ താരതമ്യം ചെയ്യാൻ ശ്രമിക്കുന്നു. ഒരു താരതമ്യത്തിന്റെ ഒപ്ഷനുകൾ ഒരു സ്ട്രിംഗ് ആണെങ്കിൽ മറ്റൊന്ന് സംഖ്യാ മൂല്യം ഉണ്ട് എങ്കിൽ, സംഖ്യാസിദ്ധാന്തം പൂർണ്ണമായും സി സ്പൈൻഎഫ് ഫോർമാറ്റ് സ്പെസിഫയർ % d ഉപയോഗിച്ച് ഫ്രിഡ്-പോയിന്റ് മൂല്യങ്ങൾക്കായി % g ഒരു സ്ട്രിംഗ് ആയി പരിവർത്തനം ചെയ്യപ്പെടും. ഉദാഹരണത്തിനു്, കമാൻഡുകൾ

expr {"0x03"> "2"} എക്സ്പ്രസ് {"0" "<" 0x12 "}

രണ്ടും ഒന്നാമത്തേത് 1. ആദ്യ താരതമ്യചിഹ്നം ഇൻറഗ്രേൺ താരതമ്യവും, രണ്ടാമത്തെ ഓപ്പറന്റ് സ്ട്രിങ് 18 ആയി പരിവർത്തനത്തിനുശേഷമുള്ള രണ്ടാമത്തെ സ്ട്രിങ് താരതമ്യവും ഉപയോഗിച്ച് നടത്തുന്നു. മൂല്യങ്ങൾ എപ്പോഴൊക്കെ സംഖ്യകളായി കണക്കാക്കാം എന്നതിനെക്കുറിച്ചാണ് Tcl ൻറെ പ്രവണത കാരണം, == നിങ്ങൾക്ക് ശരിക്കും താരതമ്യശുദ്ധി വേണമെന്ന് ആവശ്യമുള്ള ഓപ്പറേറ്റർമാരുടേയും ഓപ്പറേറ്റിന്റെ മൂല്യങ്ങൾ ഏകപക്ഷീയമായിട്ടും ഉപയോഗിക്കാൻ നല്ല ആശയമല്ല. പകരം, സ്ട്രിങ് ആജ്ഞ ഉപയോഗിക്കുന്പോൾ ഇവയിൽ കൂടുതൽ മികച്ചതാകുന്നു.

പ്രകടന പരിഗണനകൾ

മികച്ച വേഗതയ്ക്കും ചെറിയ സ്റ്റോറേജ് ആവശ്യങ്ങൾക്കും ബ്രേക്കുകളിലെ എൻകോലോ എക്സോസ്കൾ. ഇത് Tcl ബൈറ്റ്കോഡ് കമ്പൈലർ മികച്ച കോഡ് സൃഷ്ടിക്കാൻ അനുവദിക്കുന്നു.

മുകളിൽ സൂചിപ്പിച്ചതുപോലെ, എക്സ്പ്രഷനുകൾ രണ്ടുതവണ മാറ്റി സ്ഥാപിക്കും: ഒരിക്കൽ ടിസിഎൽ പാഴ്സറുപയോഗിച്ചോ പുറകോട്ട് കമാൻഡ് ഉപയോഗിച്ച് ഒരിക്കൽ. ഉദാഹരണത്തിനു്, കമാൻഡുകൾ

ഒരു സെറ്റ് b + $ a + 2} expr $ b * 4 സെറ്റ് ചെയ്യുക

11, മറിച്ച് 4 ന്റെ ഗുണിതമല്ല. കാരണം, ടിക് പാസർ ആദ്യം വേരിയബിൾ b ന് $ a + 2 പകരം കൊടുക്കുന്നു, അപ്പോൾ expr കമാൻഡ് എക്സ്പ്രെഷൻ $ a + 2 * 4 മൂല്യനിർണ്ണയം ചെയ്യും.

മിക്ക പദപ്രയോഗങ്ങളും ഒരു രണ്ടാം റൗണ്ട് പകരം വയ്ക്കില്ല. ഒന്നുകിൽ അവർ ബ്രേക്കുകളോ അല്ലെങ്കിൽ അല്ലെങ്കിലോ, അവയുടെ വേരിയബിളും ആജ്ഞയും പകരം വയ്ക്കുന്നത് നമ്പറുകൾ അല്ലെങ്കിൽ സ്ട്രിംഗുകൾക്ക് പകരം വയ്ക്കാൻ ആവശ്യമില്ലാത്ത സംഖ്യകളാണ്. എന്നിരുന്നാലും, കുറച്ച് മാറ്റമില്ലാത്ത എക്സ്പ്രഷനുകൾ പകരം രണ്ടു റൗണ്ടുകൾ വേണമെങ്കിൽ ബൈറ്റോകോഡ് കമ്പൈലർ ഈ സാഹചര്യത്തെ കൈകാര്യം ചെയ്യുന്നതിന് അധിക നിർദ്ദേശങ്ങൾ നൽകണം. കമാൻഡ് പകരം വയ്ക്കാവുന്ന എക്സ്ക്ലൂഷനുകൾക്ക് ഏറ്റവും ചെലവേറിയ കോഡ് ആവശ്യമാണ്. എക്സ്പ്രഷൻ എക്സിക്യൂട്ട് ചെയ്യുന്ന ഓരോ സമയത്തും പുതിയ കോഡ് നിർമ്മിച്ചുകൊണ്ട് ഈ എക്സ്പ്രഷനുകൾ നടപ്പിലാക്കണം.

കീവേഡുകൾ

ഗണിത, ബൂളിയൻ , താരതമ്യവിനിമയം, എക്സ്പ്രഷൻ, മങ്ങിയ താരതമ്യം

പ്രധാനപ്പെട്ടതു്: നിങ്ങളുടെ കംപ്യൂട്ടറിൽ എങ്ങനെയാണ് കമാൻഡ് ഉപയോഗിക്കേണ്ടത് എന്ന് കാണുവാൻ man command ( % man ) ഉപയോഗിക്കുക.