Lainos / Ofin UNIX: expr

Oruko

expr - Ṣe ayẹwo ohun ikosile

Atọkasi

expr arg ? arg arg ... ?

Awọn ile-iṣẹ ipari (fifi awọn alatọ sọtọ laarin wọn), ṣe ayẹwo abajade bi ọrọ Tcl, o si pada iye naa. Awọn oniṣẹ gba laaye ni awọn gbolohun TC jẹ apakan ti awọn oniṣilẹṣẹ ti o gba laaye ni awọn ọrọ C, ati pe wọn ni itumo kanna ati iṣaaju bi awọn oniṣẹ C onibara. Awọn ifarahan fẹrẹ jẹ nigbagbogbo awọn esi awọn nọmba (awọn nọmba alaiṣẹ tabi awọn oju-omi afẹfẹ). Fun apẹrẹ, ọrọ naa

pari 8.2 + 6

ṣe ayẹwo si 14.2. Awọn gbolohun Tcl yatọ si awọn ọrọ C ni ọna ti awọn oṣiṣẹ ti wa ni pato. Bakannaa, awọn gbolohun TC ṣe atilẹyin awọn iṣẹ-ṣiṣe ti kii-nọmba ati awọn afiwe okun.

Awọn iṣẹ

Iwọn ọrọ Tcl jẹ apapo awọn oniṣẹ, awọn oniṣẹ, ati awọn iyọọda. A le lo aaye funfun larin awọn oniṣẹ ati awọn oniṣẹ ati awọn iyọọda; a ko bikita nipasẹ awọn itọnisọna ikosile naa. Ni ibiti o ti ṣee ṣe, awọn iṣẹ ti wa ni tumọ bi awọn nọmba nọmba. Awọn iye iṣepọ le ti wa ni pato ni eleemewa (idajọ deede), ni octal (ti o ba jẹ pe akọsilẹ akọkọ ti iṣaṣẹ jẹ 0 ), tabi ni hexadecimal (ti o ba jẹ pe awọn akọsilẹ meji akọkọ ti iṣakoso naa jẹ 0x ). Ti iṣẹ-iṣowo ko ni ọkan ninu awọn ọna kika odidi ti o fun ni loke, lẹhin naa o ṣe itọju bi nọmba ti o fẹfo loju omi ti o ba ṣeeṣe. Awọn nọmba ifilọlẹ-omi ni a le sọ ni eyikeyi ninu awọn ọna ti a gba nipasẹ olutọju CSI ti o ni ibamu pẹlu ANSI (ayafi awọn fifun F , F , l , ati L yoo ko ni idasilẹ ni ọpọlọpọ awọn fifi sori ẹrọ). Fún àpẹrẹ, gbogbo àwọn tí ó tẹ léyí jẹ àwọn ìfẹnukò àfidánfójú-àfihàn: 2.1, 3., 6e4, 7.91e + 16. Ti ko ba si itumọ ọrọ kan ti ṣee ṣe, lẹhinna o ti fi iṣakoso silẹ bi okun (ati pe awọn oniṣẹ ti o lopin le wulo fun rẹ).

A le ṣe apejuwe awọn iṣẹ ni eyikeyi ninu awọn ọna wọnyi:

[1]

Gẹgẹbi iye nomba, boya nọmba alaidi tabi ojuami lile.

[2]

Gẹgẹbi iyọtọ Tcl, lilo iṣiro idiyele ti oṣuwọn . Iwọn ayípadà naa yoo ṣee lo gẹgẹbi iṣeduro iṣowo.

[3]

Bi okun ti a fi sinu awọn fifun-meji. Parser ọrọ naa yoo ṣe fifọ, iyipada, ati awọn ipinnu aṣẹ lori alaye laarin awọn oṣuwọn, ati lo iye ti o niyejade gẹgẹbi iṣeduro

[4]

Gẹgẹbi okun ti a pa ni awọn àmúró. Awọn ohun kikọ silẹ laarin akọmọ atẹka ati ami asomọ to sunmọ julọ yoo ṣee lo gẹgẹbi iṣeduro laisi eyikeyi awọn substitutions.

[5]

Gẹgẹbi aṣẹ TC ti o wa ninu awọn biraketi. Awọn pipaṣẹ naa yoo paṣẹ ati pe a yoo lo esi rẹ gẹgẹbi iṣeduro.

[6]

Gẹgẹ bi iṣẹ-ṣiṣe mathematiki ti awọn ariyanjiyan ni eyikeyi awọn fọọmu ti o wa loke fun awọn iṣẹ-ṣiṣe, bi ẹṣẹ ($ x) . Wo isalẹ fun akojọ awọn iṣẹ ti a ṣetan.

Nibo awọn iyipada ti o wa loke (fun apẹẹrẹ inu awọn gbolohun asọ), wọn ṣe nipasẹ awọn itọnisọna ọrọ naa. Sibẹsibẹ, igbasilẹ afikun ti ayipada le ti tẹlẹ ti ṣe nipasẹ parser aṣẹ ṣaaju ki a to pe ero isise oro. Gẹgẹbi a ti sọrọ ni isalẹ, o maa n dara julọ lati ṣafikun awọn ẹdun ni awọn àmúró lati daabobo fifa aṣẹ lati ṣe awọn atunṣe lori awọn akoonu.

Fun awọn apeere diẹ ninu awọn iṣọrọ ti o rọrun, ṣebi pe iyipada kan ni iye 3 ati iyipada b ni iye 6. Nigbana ni aṣẹ ni apa osi ti ila kọọkan ni isalẹ yoo gbe ọja ni apa ọtun ti ila:

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

Awọn oniṣẹ

Awọn oniṣẹ iṣakoso ti wa ni akojọ si isalẹ, ti a ṣe akojọpọ ni ilọsiwaju isinku ti iṣaaju:

- + ~!

Unary minus, unary plus, bit-wise NOT, logical NOT. Kò si ọkan ninu awọn ẹrọ wọnyi ti a le lo si awọn iṣẹ iṣakoso okun, ati pe ọlọgbọn ti o niiṣe KO le ṣee lo nikan si awọn nọmba gbogbo.

* /%

Pupọ, pin, iyokù. Kò si ọkan ninu awọn ẹrọ wọnyi ti a le lo si awọn iṣakoso okun, ati awọn iyokuro le ṣee lo nikan si awọn nọmba gbogbo. Awọn iyokù yoo nigbagbogbo ni ami kanna bi olupin ati iyatọ to kere ju alapin.

+ -

Fi kun ati yọkuro. Wulo fun eyikeyi awọn ẹrọ ti o ṣiṣẹ.

<< >>

Osi apa osi ati ọtún. Wulo fun awọn iṣẹ-ṣiṣe nọmba oni-nọmba nikan. Iyọkuro ọtun kan nigbagbogbo n ṣe ifibọ si bit bit.

<> <=> =

Boolean kere, tobi, kere ju tabi dogba, ati tobi ju tabi dogba. Olupese kọọkan nmu 1 ti ipo naa ba jẹ otitọ, 0 bibẹkọ. Awọn oniṣẹ wọnyi le ṣee lo si awọn gbolohun bii awọn iṣẹ-ṣiṣe nọmba, ninu eyi ti a ṣe lo apejuwe okun awọ.

==! =

Boolean dogba ati ki o ko dogba. Olupese kọọkan nmu abajade odo / abajade. Wulo fun awọn oniruuru iṣakoso.

&

Ogbon ọlọgbọn ATI. Wulo fun awọn iṣẹ-ṣiṣe nọmba oni-nọmba nikan.

^

Ọgbọn iyasọtọ TABI. Wulo fun awọn iṣẹ-ṣiṣe nọmba oni-nọmba nikan.

|

Ọgbọn ọlọgbọn TABI. Wulo fun awọn iṣẹ-ṣiṣe nọmba oni-nọmba nikan.

&&

Igbonwa ATI. Ṣe abajade 1 kan ti o ba jẹ pe awọn oṣiṣẹ mejeeji jẹ ti kii-odo, 0 bibẹkọ. Wulo fun bulu ati nomba (awọn nọmba kan tabi oju-omifoju) awọn iṣẹ nikan.

||

Imoye TABI. Ṣe abajade 0 kan ti o ba jẹ pe awọn oṣiṣẹ mejeeji jẹ odo, bibẹkọ. Wulo fun bulu ati nomba (awọn nọmba kan tabi oju-omifoju) awọn iṣẹ nikan.

x ? y : z

Ti-lẹhinna-miiran, bi C. Ti x ba ṣe ayẹwo si kii kii-odo, lẹhinna abajade ni iye ti y . Bibẹkọ ti, abajade ni iye ti z . Iṣẹ iṣakoso x gbọdọ ni iye-iye kan.

Wo Ilana C fun alaye diẹ sii lori awọn esi ti oniṣowo kọọkan ṣe. Gbogbo awọn alakoso alakomeji ẹgbẹ ni ẹgbẹ osi-si-ọtun laarin ipo iṣaaju kanna. Fun apẹẹrẹ, aṣẹ naa

expr 4 * 2 <7

pada 0.

Awọn && , || , ati ?: awọn oniṣẹ ti ni '' imọran idaniloju ', gẹgẹ bi C, eyi ti o tumọ si pe awọn ẹrọ ti a ko ṣe ayẹwo bi wọn ko ba nilo lati pinnu abajade. Fun apẹẹrẹ, ninu aṣẹ

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

nikan ọkan ninu [a] tabi [b] yoo wa ni iṣiro, da lori iye ti $ v . Ṣe akiyesi, sibẹsibẹ, pe otitọ ni otitọ nikan bi gbogbo ikosile ti wa ni pipa ni awọn àmúró; bibẹkọ, oluṣakoso Tcl yoo ṣe ayẹwo awọn mejeeji [a] ati [b] ṣaaju ki o to ṣafihan aṣẹ aṣẹ naa.

Awọn iṣẹ Math

Tcl ṣe atilẹyin awọn iṣẹ mathematiki wọnyi ni awọn expressions:

abs cosh log sqrt acos double log10 srand asin exp pow tan atan floor rand tanh atan2 fmod round ceil hypot sin cos int sinh

abs ( arg )

Pada iye idiyele ti arg . Arg le jẹ boya nọmba kan tabi ojuami lile, ati abajade ti pada ni fọọmu kanna.

acos ( arg )

Pada ẹran-ara arc ti arg , ni awọn ibiti o ti wa [0, pi]. Arg yẹ ki o wa ni ibiti o wa [-1,1].

asin ( arg )

Pada arc sine ti arg , ni awin [-pi / 2, pi / 2] radians. Arg yẹ ki o wa ni ibiti o wa [-1,1].

atan ( arg )

Pada abajade arc ti arg , ni awin [-pi / 2, pi / 2].

atan2 ( x, y )

Pada idaniloju arc ti y / x , ni awọn ibiti o ti wa [-pi, pi]. x ati y ko le jẹ pe 0.

ceil ( arg )

Pada iye iye nọmba ti o kere ju kere ju arg .

cos ( arg )

Pada ẹyin ẹyin ti arg , ti a ṣe iwọnwọn ti o wa ni radians.

cosh ( arg )

Pada awọn awọ-ẹda hyperbolic ti arg . Ti abajade naa yoo fa ibanujẹ, a ti pada si aṣiṣe.

ė ( arg )

Ti o ba jẹ pe arg jẹ iye iṣan omi, yoo pada ni arg , bibẹkọ ti o ba yipada si arunfo ki o pada si iye iyipada.

exp ( arg )

Pada awọn ohun-elo ti arg , ti a sọ bi e ** arg . Ti abajade naa yoo fa ibanujẹ, a ti pada si aṣiṣe.

pakà ( arg )

Pada iye ti o pọ julọ ti ko tobi ju arg .

fmod ( x, y )

Pada oju-omi-omi ti o ku ninu pipin x nipa y . Ti y jẹ 0, aṣiṣe kan ti pada.

akosile ( x, y )

Ni ibamu pẹlu ipari ti ẹsun ti a fi nronu ti o ni ọtun ( x * x + y * y ).

int ( arg )

Ti arg jẹ nọmba odidi kan, pada arg , bibẹkọ ti yi pada si arig si odidi nipasẹ truncation ati ki o pada ni iye iyipada.

log ( arg )

Pada adarọ-aye adayeba ti arg . Arg gbọdọ jẹ iye ti o dara.

log10 ( arg )

Pada ipilẹ 10 ti ile-iṣẹ arg . Arg gbọdọ jẹ iye ti o dara.

pow ( x, y )

N ṣe iyeye iye ti x gbe si agbara y . Ti x jẹ odi, y gbọdọ jẹ nọmba odidi kan.

irin-ajo ()

Pada nọmba oju omi kan lati odo si kere ju ọkan tabi, ni awọn ọrọ mathematiki, ibiti o wa [0,1]. Irugbin ba wa lati inu aawọ inu ẹrọ ti ẹrọ naa tabi a le ṣeto itọnisọna pẹlu iṣẹ isinmi.

yika ( arg )

Ti arg jẹ nọmba odidi kan, pada arg , bibẹkọ ti yi pada si arig si odidi nipasẹ yika ati ki o pada si iye iyipada.

ese ( arg )

Pada sine ti arg , ti a dawọn ninu awọn radians.

sin ( arg )

Pada ẹda aparuku ti arg . Ti abajade naa yoo fa ibanujẹ, a ti pada si aṣiṣe.

sqrt ( arg )

Pada root root ti arg . Arg gbọdọ jẹ ti kii-odi.

srand ( arg )

Orukọ, eyi ti o gbọdọ jẹ nọmba odidi, ni a lo lati tun awọn irugbin naa fun monomono nọmba nọmba. Pada nọmba alẹ akọkọ lati iru irugbin. Olukọni kọọkan ni awọn irugbin tirẹ.

tan ( arg )

Pada idaniloju ti agbọn , ti a da ni awọn radians.

tanh ( arg )

Pada tangenti hyperbolic ti arg .

Ni afikun si iṣẹ wọnyi ti a ti yan tẹlẹ, awọn ohun elo le ṣokasi awọn afikun awọn iṣẹ nipa lilo Tcl_CreateMathFunc ().

Awọn oriṣiriṣi, Isanku, ati Iboju

Gbogbo awọn iṣiro inu ti o wa pẹlu awọn odidi odidi ni a ṣe pẹlu pipẹ C deede , ati gbogbo awọn iṣiro inu inu eyiti o wa ni oju-omi oju-omi ti a ṣe pẹlu awọn nọmba C lẹẹmeji . Nigbati o ba nyi okun pada si oju-omi-omi, o ti ṣabọ omiran ti o jẹ pe o ni esi ni aṣiṣe Tcl kan. Fun iyipada si odidi lati okun, iwo ti ipadasẹjẹ da lori ihuwasi ti diẹ ninu awọn ọna ṣiṣe ni awọn ile-iwe C agbegbe, nitorina o yẹ ki o ṣe alaibẹru. Ni eyikeyi idiyele, idapo wiwa ati wiwa aarin ko ni ri gbogbo igba fun awọn abajade agbedemeji. Oju-omi ti o ṣokunkun ati balẹ ti wa ni wiwa si iwọn ti o ni atilẹyin nipasẹ awọn ohun elo, eyi ti o jẹ otitọ julọ.

Iyipada laarin awọn apẹrẹ ti inu fun nọmba aladidi, oju-omi-oju-ojuami, ati awọn iṣakoso okun ni a ṣe laifọwọyi bi o ba nilo. Fun awọn iširo iṣiro, a nlo awọn nọmba gbogboogbo titi di igba ti a ti ṣe nọmba nọmba ti omifofo-omi, lẹhinna ti a lo oju-omi oju omi. Fun apere,

expr 5/4

pada 1, lakoko ti

expr 5 / 4.0 expr 5 / ([okun gigun "abcd"] + 0.0)

mejeeji pada 1.25. Awọn iye iṣiro ti o fẹrẹẹtọ nigbagbogbo wa ni pada pẹlu kan '` . '' tabi ohun e ki won kii yoo dabi awọn nọmba nọmba. Fun apere,

expr 20.0 / 5.0

pada 4.0 , kii ṣe 4 .

Awọn isẹ ti okun

Awọn igun okun le ṣee lo bi awọn iṣẹ ti awọn oniṣẹ iṣeduro, botilẹjẹpe oluwadi akọsilẹ n gbiyanju lati ṣe awọn afiwe bi wiwa tabi oju-omi-omi nigbati o le ṣe. Ti ọkan ninu awọn oṣiṣẹ ti lafiwe jẹ okun kan ati ekeji ni iye-iye kan, iṣẹ iṣan ti a ti yipada pada si okun ti o n lo awọn alaye C- sprintf specifier % d fun awọn odidi ati % g fun awọn iye iye-omi. Fun apẹẹrẹ, awọn ofin

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

mejeeji pada 1. Ti iṣafihan akọkọ ti ṣe pẹlu lilo lafiwe apapọ, ati awọn keji ti wa ni ṣiṣe pẹlu lilo lafiwe awọ lẹhin ti o ṣe iyipada iṣẹlẹ keji si okun 18 . Nitori iṣeduro Tcl lati ṣe abojuto awọn iye bi awọn nọmba ni gbogbo igba ti o ba ṣee ṣe, kii ṣe gbogbo igba ti o dara lati lo awọn oniṣẹ bi == nigbati o ba fẹ iyatọ laini ati awọn iye ti awọn oṣiṣẹ naa le jẹ alailẹgbẹ; o dara julọ ni awọn igba wọnyi lati lo pipaṣẹ okun ni dipo.

Awọn Imudani Siseṣe

Pa awọn ẹlomiran kuro ni àmúró fun iyara to dara julọ ati awọn ohun elo ipamọ diẹ. Eyi fi aaye gba koodu Ttekoti Tcl lati ṣafọ koodu ti o dara julọ.

Gẹgẹbi a ti sọ loke, awọn gbolohun a rọpo lẹmeji: lẹẹkan nipasẹ Tarsipa ati lẹẹkan nipasẹ aṣẹ aṣẹ naa. Fun apẹẹrẹ, awọn ofin

ṣeto a 3 ṣeto b {$ a + 2} expr $ b * 4

pada 11, kii ṣe ọpọ ti 4. Eleyi jẹ nitori pe Tcl parser yoo paarọ $ a + 2 fun ayípadà b , lẹhinna aṣẹ aṣẹ yoo ṣe ayẹwo awọn ọrọ $ a + 2 * 4 .

Ọpọlọpọ awọn gbolohun ọrọ ko nilo iyipo awọn iyipo keji. Boya wọn ti pa mọ ni àmúró tabi, bi ko ba ṣe bẹ, iyipada wọn ati awọn ipinnu aṣẹ fun awọn nọmba tabi awọn gbolohun ti ko fun ara wọn ni awọn substitution. Sibẹsibẹ, nitori awọn ọrọ diẹ ti a ko ni iṣeduro nilo awọn iyipo meji ti awọn iyipada, awọn olutọpa bytecode gbọdọ fi awọn ilana afikun sii lati mu ipo yii. O nilo awọn koodu ti o niyelori fun awọn ọrọ ti a ko ni ayẹwo ti o ni awọn ipinnu aṣẹ. Awọn ifihan wọnyi gbọdọ wa ni imuse nipasẹ fifi koodu titun sii ni igbakugba ti a ba pa ikosile naa.

Oro koko

atokasi, irọlẹ , afiwe, ikosile, iṣeduro ibajẹ

Pataki: Lo pipaṣẹ eniyan ( % eniyan ) lati wo bi o ṣe nlo aṣẹ kan lori kọmputa rẹ.