Ordú Linux / Unix: expr

Ainm

expr - Measúnú a dhéanamh ar léiriú

Achoimre

expr arg ? arg arg ... ?

Déanann concatenates arg (ag cur spásanna deighilte eatarthu), meastóireacht ar an toradh mar léiriú Tcl, agus déanann sé an luach ar ais. Is fo-thacar de na hoibreoirí a cheadaítear i sainmhínithe C iad na hoibreoirí a cheadaítear in abairtí Tcl, agus tá an bhrí chéanna agus an tosaíocht céanna acu mar na hoibreoirí C comhfhreagracha. Tá torthaí uimhriúla beagnach i gcónaí ag léirithe (luachanna slánuimhir nó pointe snámhphointe). Mar shampla, an abairt

expr 8.2 + 6

meastóireacht ar 14.2. Tá difríochtaí Tcl éagsúil ó abairtí C ar an mbealach a shonraítear na operands. Chomh maith leis sin, tacú le sainmhínithe Tcl oibríochtaí neamhchláiriúla agus comparáidí teaghrán.

Oibríochtaí

Is éard atá i léiriú Tcl meascán de oibríochtaí, oibreoirí, agus braibíní. Is féidir spás bán a úsáid idir na gníomhairí agus na hoibreoirí agus na lúibíní; neamhaird ag treoracha an abairt. Nuair is féidir, déantar oibríochtaí a léiriú mar luachanna slánuimhreacha. Is féidir luachanna iomlána a shonrú i deachúil (an gnáth-chás), in octal (má tá an chéad ghné den operand 0 ), nó i hexadecimal (más 0x ) an chéad dá charachtar den operand. Mura bhfuil ceann de na formáidí slánuimhir thuas tugtha ag operand, ansin déileálfar leis mar uimhirphointe snámh má tá sé indéanta. Féadfar uimhreacha pointe snámh a shonrú in aon cheann de na bealaí a nglacann leantóir CIM-chomhlíontach ANSI (ach amháin nach gceadófar na hiarmhéideanna f , F , l , agus L sa chuid is mó de na suiteálacha). Mar shampla, is iad na nithe seo a leanas gach ceann díobh seo a leanas: 2.1, 3., 6e4, 7.91e + 16. Mura bhfuil aon léirmhíniú uimhriúil ann, déantar operand a fhágáil mar shraith (agus ní féidir ach sraith teoranta oibreoirí a chur i bhfeidhm air).

Féadfar oibríochtaí a shonrú in aon cheann de na bealaí seo a leanas:

[1]

Mar luach uimhriúil, ceachtar slánuimhir nó pointe snámh.

[2]

Mar athraitheach Tcl, ag baint úsáide as nóta caighdeánach $ . Úsáidfear luach an athróg mar an operand.

[3]

Mar theaghrán atá faoi iamh i Sleachta dúbailte. Déanfaidh an pearsanra abairt backslash, variable, agus substitutions an t-ordú ar an eolas idir na Sleachta agus an luach mar thoradh air sin a úsáid mar an operand

[4]

Mar theaghlach atá ceangailte i bracáin. Bainfear úsáid as na carachtair idir an brace oscailte agus an dlúthdhioscaí meaitseála mar an operand gan aon substitutions.

[5]

Mar ordú Tcl atá ceangailte i lúibíní. Déanfar an t-ordú a fhorghníomhú agus bainfear úsáid as an toradh mar an operand.

[6]

Mar fheidhm matamaiticiúil a bhfuil aon cheann de na foirmeacha thuas ar a gcuid argóintí le haghaidh oibriúcháin, mar shampla sin ($ x) . Féach thíos le haghaidh liosta de na feidhmeanna sainithe.

Nuair a tharlaíonn substaintí thuas (m.sh. teaghráin atá luaite), déantar iad a threorú ag treoracha an abairt. Mar sin féin, d'fhéadfadh an scáileán ordú ciseal breise ionadú a dhéanamh sula dtugtar glaoch ar an bpróiseálaí focal. Mar a phléitear thíos, is fearr is gnách luachanna a chur in iúl i braces chun cosc ​​a chur ar an mbreiseoir ordú ó chur in ionad substaintí ar an ábhar.

I gcás roinnt samplaí de abairtí simplí, is dócha go bhfuil luach ag an athróg ar luach 3 agus tá luach 6. ag an athróg b . Ansin, cuirfidh an t-ordú ar thaobh clé gach ceann de na línte thíos an luach ar an taobh deas den líne:

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

Oibreoirí

Tá na hoibreoirí bailí liostaithe thíos, grúpaithe in ord tosaíochta a laghdú:

- + ~!

Unary minus, unary plus, giotán NACH, loighciúil NACH. Ní fhéadfar aon cheann de na hobairniúcháin seo a chur i bhfeidhm maidir le gníomhairí teaghrán, agus ní féidir NACH giotán a chur i bhfeidhm ach amháin ar shlánuimhreacha.

* /%

Iolraigh, roinnt, fágtha. Ní fhéadfar aon cheann de na hobairniúcháin seo a chur i bhfeidhm maidir le gníomhairí teaghrán, agus ní fhéadfar an chuid eile a chur i bhfeidhm ach amháin maidir le slánuimhreacha. Beidh an comhartha céanna ag an gcuid eile i gcónaí leis an rannán agus luach iomlán níos lú ná an rannóg.

+ -

Cuir agus tarraing. Bailí le haghaidh aon oibríochtaí uimhriúla.

<< >>

Aistriú clé agus ceart. Bailí le haghaidh operands slánuimhir amháin. Cuireann aistriú ceart an ghiotán comharthaí i gcónaí.

<> <=> =

Boole níos lú, níos mó, níos lú ná nó cothrom, agus níos mó ná nó cothrom. Táirgeann gach oibreoir 1 má tá an coinníoll fíor, 0 ar shlí eile. Féadfar na hoibreoirí seo a chur i bhfeidhm maidir le teaghráin chomh maith le hoibríochtaí uimhriúla, agus sa chás ina n-úsáidtear comparáid teaghrán.

==! =

Boole comhionann agus ní comhionann. Táirgeann aon oibreoir toradh náid / amháin. Bailí do gach cineál operand.

&

Giotán-ciallmhar AGUS. Bailí le haghaidh operands slánuimhir amháin.

^

NÓ eisiatach giotánmhar. Bailí le haghaidh operands slánuimhir amháin.

|

Níos ciallmhar NÓ. Bailí le haghaidh operands slánuimhir amháin.

&&

Loighciúil AGUS. Léiríonn toradh 1 má tá an dá operands neamh-nialas, 0 ar shlí eile. Bailí i gcomhair oibríochtaí boolean agus uimhriúla (slánuimhir nó pointe snámhphointe) amháin.

||

NÓ loighciúil. Léiríonn 0 toradh má tá an dá oibríocht náid, 1 ar shlí eile. Bailí i gcomhair oibríochtaí boolean agus uimhriúla (slánuimhir nó pointe snámhphointe) amháin.

x ? y : z

Más rud é-ansin, mar atá i C. Má mheasann x go neamh-nialas, ansin is é an toradh luach y . Seachas sin, is é an toradh luach z . Ní mór go mbeadh luach uimhriúil ag an operand x .

Féach an lámhleabhar C le haghaidh tuilleadh sonraí ar na torthaí a tháirgeann gach oibreoir. Gach grúpa oibreoirí dénártha ar chlé go deas laistigh den leibhéal tosaíochta céanna. Mar shampla, an t-ordú

nocht 4 * 2 <7

tuairisceáin 0.

An && , || , agus?: tá `` meastóireacht leisciúil '' ag oibreoirí, díreach mar atá i C, rud a chiallaíonn nach ndéantar oibríochtaí a mheas mura bhfuil gá leo chun an toradh a chinneadh. Mar shampla, san ordú

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

ní dhéanfar ach ceann amháin de [a][b] a mheas i ndáiríre, ag brath ar luach $ v . Tabhair faoi deara, áfach, go bhfuil sé seo fíor ach amháin má tá an abairt iomlán faoi iamh i bracáin; ar shlí eile, déanfaidh an parscóir Tcl measúnú [a] agus [b] araon sula nglacfaidh sí isteach ar an ordú expr .

Feidhmeanna Math

Tcl tacaíonn na feidhmeanna matamaiticiúla seo a leanas i bhfocail:

logáil le háireamh agus logáil isteach i dteannta an oiread sin agus beidh an t- aonad ag gabháil leis an bpróiseas seo,

abs ( arg )

Tuairisceáin luach iomlán arg . D'fhéadfaí argóint nó snámhphointe a bheith ann, agus déantar an toradh a chur ar ais san fhoirm chéanna.

acos ( arg )

Tuairisceann an cosine stua de arg , sa raon [0, pi] radians. Ba chóir go mbeadh Arg sa raon [-1,1].

asin ( arg )

Tuairisceáin an t-sciath stua arg , sa radians [-pi / 2, pi / 2]. Ba chóir go mbeadh Arg sa raon [-1,1].

atan ( arg )

Tuairisceáin tangú stua arg arg , sa radians raon [-pi / 2, pi / 2].

atan2 ( x, y )

Tuairisceáin tangú stua y / x , sa raon [-pi, pi] radians. Ní féidir x agus y 0 a bheith acu araon.

ceil ( arg )

Tuairisceáin an luach slánuimhir is lú nach lú ná arg .

cos ( arg )

Tuairisceann an cosine arg , a thomhas i radians.

cosh ( arg )

Tuairisceán ar an cosine hipearbóbach de arg . Más rud é go dtarlódh an toradh le maolú, cuirfear earráid ar ais.

dúbailte ( arg )

Más rud é go bhfuil luach snámh ann le arg , déanann sé tuairisceán ar argóint , déanann sé arg argóint go snámh agus cuireann sé an luach comhshó ar ais.

exp ( arg )

Tuairisceáin neamhspleácha arg , a shainmhínítear mar e ** arg . Más rud é go dtarlódh an toradh le maolú, cuirfear earráid ar ais.

urlár ( arg )

Tuairisceáin an luach lárnach is mó nach mó ná arg .

fmod ( x, y )

Fágann an chuid eile den roinn snámh de roinn x by y . Má tá 0, cuirtear earráid ar ais.

hypot ( x, y )

Ríomhaíonn fad an triantáin dhronuilleogach ( x * x + y * y ).

int ( arg )

Más rud é go bhfuil luach slánuimhir ag arg , déanann sé tuairisceán argóint , athraíonn sé arg a shlánuimhir trí thruncáil agus déanann sé tuairisceán ar an luach comhshó.

logáil ( arg )

Tuairisceáin logarithm nádúrtha arg . Caithfidh Arg a bheith ina luach dearfach.

log10 ( arg )

Tuairisceán an logarithm bonn 10 de arg . Caithfidh Arg a bheith ina luach dearfach.

pow ( x, y )

Ríomhtar luach x a ardaíodh don chumhacht y . Má tá x diúltach, ní mór go mbeadh luach slánuimhir ann.

rand ()

Tuairisceann uimhir phointe snámha ó nialas go dtí níos lú ná ceann amháin nó, i dtéarmaí matamaitice, an raon [0,1). Tagann an síol as clog inmheánach an mheaisín nó is féidir lámhleabhar a shocrú leis an sraith fheidhm.

babhta ( arg )

Más rud é go bhfuil luach slánuimhir ag arg , déanann sé tuairisceán argóint , athraíonn sé sin arg le slánuimhir tríd an luach comhshó a bhailiú agus a thuairisceán.

sin ( arg )

Tuairisceann an sine arg , a thomhas i radians.

sinh ( arg )

Tuairisceáin an sine hyperbolic of arg . Más rud é go dtarlódh an toradh le maolú, cuirfear earráid ar ais.

sqrt ( arg )

Tuairisceáin fréamh cearnach arg . Ní mór Arg a bheith neamhdhiúltach.

srand ( arg )

Úsáidtear an arg , a chaithfidh a bheith ina slánuimhir, chun an síol a athshocrú don ghineadóir uimhir randamach. Tuairisceáin an chéad uimhir randamach ón síol sin. Tá a síol féin ag gach ateangaire.

tan ( arg )

Tuairisceann tadhlaí arg , a thomhaistear i radians.

tanh ( arg )

Tuairisceáin tadhlaí hipebóbach arg .

Chomh maith leis na feidhmeanna réamhshainithe seo, féadfaidh iarratais feidhmeanna breise a shainiú ag baint úsáide as Tcl_CreateMathFunc ().

Cineálacha, Overflow, agus Beachtas

Déantar gach ríomhaireacht inmheánach a bhaineann le slánuimhreacha leis an gcineál C ar fad , agus déantar gach ríomh inmheánach lena mbaineann pointe snámh leis an gcineál dúbailte C. Nuair a dhéantar téad a thiontú go pointe snámh, braitheann sreabhadh eispéirteach agus cuireann sé earráid Tcl mar thoradh air. Maidir le comhshó go slánuimhir ó teaghrán, braitheann an t-eis-sreabhadh ar iompar roinnt gnáthaimh sa leabharlann áitiúil C, agus mar sin níor chóir a mheas mar neamh-iontaofa. In aon chás, ní aimsítear go hiontaofa le haghaidh torthaí idirmheánacha go hiontaofa thar lear agus lasmuigh den sreabhadh. Braitheann an-sreabhadh agus eas-sreabhadh pointe snámh ar an leibhéal a thacaíonn na crua-earraí, agus is iontaofa í go ginearálta.

Déantar comhshó i measc uiríll inmheánacha maidir le slánuimhir, pointe snámh, agus oibríochtaí teaghrán a dhéanamh de réir mar is gá. Le haghaidh ríomhaireacht uimhríochta, úsáidtear slánuimhreacha go dtí go dtabharfar isteach roinnt pointe snámhphointe, agus ina dhiaidh sin úsáidtear pointe snámh. Mar shampla,

expr 5/4

tuairisceáin 1, fad

expr 5 / 4.0 expr 5 / ([fad teaghrán "abcd"] + 0.0)

an dá thuairisceán 1.25. Cuirtear luachanna pointe snámh ar ais i gcónaí le `` . '' nó e ionas nach mbeidh siad cosúil le luachanna slánuimhreacha. Mar shampla,

expr 20.0 / 5.0

tuairisceáin 4.0 , ní 4 .

Oibríochtaí Teaghlaigh

Is féidir luachanna teorainneacha a úsáid mar oibriúcháin na n-oibreoirí comparáide, cé go bhfuil an meastóir cainte ag iarraidh comparáidí a dhéanamh mar pháipéar slánuimhir nó snámh nuair is féidir é. Más rud é go bhfuil ceann de na operandaí comparáide le sreang agus go bhfuil luach uimhriúil ag an taobh eile, déantar an operand uimhriúil a thiontú ar ais go sreang ag baint úsáide as an sainchomhad C sprintf formáid % d le haghaidh slánuimhreacha agus % g do luachanna pointe snámh. Mar shampla, na horduithe

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

an dá tuairisceán 1. Déantar an chéad chomparáid trí úsáid a bhaint as comparáid iomlán, agus déantar an dara ceann trí úsáid a bhaint as comparáid teaghrán tar éis an dara operand a thiontú go dtí an teaghrán 18 . Mar gheall ar chlaonadh Tcl chun luachanna a chóireáil mar uimhreacha nuair is féidir, níl sé mar smaoineamh maith ann go n-úsáidfeadh oibreoirí == nuair is mian leat comparáid idir teaghrán agus gur féidir luachanna na n-oibríochtaí a bheith treallach; tá sé níos fearr sna cásanna seo an t-ordú teaghrán a úsáid ina ionad.

Breithnithe Feidhmíochta

Cealaigh abairtí i bracáin chun an luas is fearr agus na ceanglais stórála is lú. Ligeann sé seo an t-imreoir Tcl bytecode chun an cód is fearr a ghiniúint.

Mar a luadh thuas, cuirtear abairtí in ionad dhá uair: uair amháin ag an parscóir Tcl agus uair amháin ag an ordú nochta . Mar shampla, na horduithe

Socraigh 3 sraith b {$ a + 2} expr $ b * 4

tuairisceán 11, ní iolra de 4. Is é seo toisc go ndéanfaidh an parscóir Tcl in ionad $ a + 2 don athróg b , ansin déanfaidh an t-ordú expr measúnú ar an abairt $ a + 2 * 4 .

Ní gá an dara babhta de na hinstitiúidí a bheith ag teastáil. Tá ceachtar acu faoi iamh i bracáin nó, más rud é nach bhfuil, tá a n-ionaid athróg agus athsholáthair ordú uimhreacha nó teaghráin ag teastáil nach n-iarrann substaintí iad féin. Mar sin féin, toisc go bhfuil dhá bhabhta d'fhostuithe ag teastáil ó abairtí neamhbhréagtha, ní mór don tiomsaitheoir byteanna treoracha breise a scaoileadh chun an staid seo a láimhseáil. Tá an cód is costasaí ag teastáil le haghaidh abairtí neamhráite a bhfuil substaintí ordú ann. Ní mór na habairtí sin a chur chun feidhme trí chód nua a ghiniúint gach uair a dhéantar an abairt a chur chun feidhme.

Keywords

uimhríocht, boolean , comparáid, léiriú, comparáid dhochrach

Tábhachtach: Bain úsáid as an ordú fear ( % man ) chun a fheiceáil conas a úsáidtear ordú ar do ríomhaire ar leith.