Linux / Unix baiko: expr

Anarana

expr - Evaluate a expression

Synopsis

Expr arg ? hevitra arg ... ?

Ny fifanekena dia midika hoe (mampiditra ny sehatra separator eo anelanelan'izy ireo), manombantombana ny vokatra amin'ny endrika Tcl, ary mamerina ny sandany. Ny mpandraharaha nomena amin'ny teny Tcl dia ampahany amin'ireo mpandraharaha azo avela ao amin'ny expression C, ary manana ny dikany sy ny loha-hevitra mitovy amin'izany izy ireo ho an'ny mpandraharaha C. Ny fiteny ampiasaina matetika dia mamoaka ny valim-pifidianana (tarehimarika marimaritra iraisana). Ohatra, ny fanehoan-kevitra

expr 8.2 + 6

manombana ho 14.2. Ny fitenin'ny Tcl dia tsy mitovy amin'ny fomba fiteny C amin'ny fomba iantsoana azy. Fanampin'izany, ny Tcl expressions dia manohana ny sariohatra tsy misy tarehimarika sy ny fampitahana string.

Operands

Ny endriky ny Tcl dia mifangaro karazana opera, mpampiasa, ary fononteny. Ny toerana malalaka dia azo ampiasaina eo amin'ny operand sy ny mpampiasa sy ny fononteny; Tsy raharahian'ny torolalan'ny teny izany. Raha azo atao, dia aseho ho sanda tsy manan-tsahala ny opera. Ny singa madinidinika dia azo faritana amin'ny decimal (ny tranga mahazatra), amin'ny oktal (raha toa ny karazany voalohany amin'ny opera dia 0 ), na hexadecimal (raha toa ny singa roa voalohany amin'ny opera dia 0x ). Raha toa ka tsy manana ny iray amin'ireo endat-forma voalaza etsy ambony ny mpihaino iray, dia raisina ho toy ny lahatahiry midadasika izy raha azo atao izany. Ireo tarehimarika tselatra dia azo faritana amin'ny fomba ofisialy izay ankatoavin'ny ANSI-compliant C compiler (afa-tsy ny f , F , l , ary L suffixes dia tsy avela amin'ny ankamaroan'ny fametrahana). Ohatra, ireto isa manaraka ireto dia isa misy ny isa marina: 2.1, 3., 6e4, 7.91e + 16. Raha tsy misy ny fandikana ny tarehimarika dia azo atao ny mifehy (ary voafetra ny mpandraharaha voafetra ihany).

Ny asa aman-draharaha dia azo faritana amin'ny iray amin'ireto fomba manaraka ireto:

[1]

Amin'ny maha-tarehimarika azy, na tsivalana na tsotsotra.

[2]

Amin'ny alàlan'ny fari-piadidiana Tcl, mampiasa ny fampiasana $ notation. Ny hasarobidin'ny fari-dalany dia ampiasaina amin'ny opera.

[3]

Amin'ny endritsoratra voatokana amin'ny dîner quotes. Ny mpanonta printy dia hamerina mivantana ny baiko, ny fari-piadidiana, ary ny fanoloana baiko amin'ny fampahalalana misy eo amin'ny quotes, ary ampiasao ny lanjany vokarina amin'ny sivana

[4]

Toy ny tady mihidy ao an-kofehy. Ireo karazana eo anelanelan'ny fiantohana misokatra sy ny fiantohana akaiky dia hampiasaina ho sivana tsy misy fanefitra.

[5]

Amin'ny baiko Tcl voahidy ao amin'ny fononteny. Ny baiko dia hovonoina ary ny vokatr'izany dia hampiasaina amin'ny opera.

[6]

Amin'ny endriny matematika izay manana hevitra iray amin'ireo endrika voalaza etsy ambony ireo, toy ny fahotana ($ x) . Jereo eto ambany ny lisitry ny asa voafaritra.

Raha toa ny fisoloana miseho etsy ambony (ohatra ao anatin'io tadidy io), dia tanterahana amin'ny torolalan'ny teny. Na izany aza, dia mety efa nisy ny fanoloana fanampiny ny mpandahatra baiko talohan'ny nantsoina ny processed expression processeur. Araka ny resahina etsy ambany, dia tsara kokoa ny mametraka ny fanehoana an-tariby mba hisorohana ny mpandidy baiko tsy hanao fanoloana amin'ny votoatiny.

Ho an'ny ohatra sasantsasany amin'ny teny tsotra, dia eritrereto hoe ny fari - piainana dia manana ny isa 3 ary ny fari- b b dia manana ny hasarobidy 6. Avy eo, ny baoritra eo ankavia amin'ny andalana tsirairay etsy ambany dia mamoaka ny sandany eo amin'ny ilany ankavanana:

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

mpandraharaha

Ny mpandraharaha manan-kery dia aseho etsy ambany, miaraka amin'ny fihenam-bidy ny loha laharana:

- + ~!

Unary minus, unary plus, bit-wise NOT, logic NOT. Tsy misy na dia iray amin'ireo sanda ireo aza dia azo ampiharina amin'ny opera string, ary ny BIT dia tsy azo ampiharina afa-tsy amin'ny an'ny aterineto.

* /%

Mihamaro, mizara ary mitoetra. Tsy misy na dia iray amin'ireo asa ireo aza dia azo ampiharina amin'ny opera string, ary ny sisa dia azo ampiharina amin'ny inte-karena. Ny sisa dia hanana mari-pametaka mitovy amin'ny fizarazarana sy ny sanda miavaka noho ny fizarazara.

+ -

Manampia ary manàtra. Mandray valim-panontaniana amin'ny lahasa nomerika.

<< >>

Fiovan'ny havia sy ankavanana. Tsy misy afa-tsy amin'ny antsipiriany ihany. Ny fiovana marina dia manely foana ny famantarana famantarana.

<> <=> =

Boolean latsaky ny, lehibe kokoa, latsaky ny na mitovy, ary lehibe kokoa na mitovy. Ny mpandraharaha tsirairay dia mamokatra 1 raha marina ny fepetra, 0 raha tsy izany. Ireo mpandraharaha ireo dia azo ampiharina amin'ny sora-pandehanana ary koa ny lahasa nomerika, ka amin'izany dia hampiasaina ny fampitahana.

==! =

Boolean mitovy sy tsy mitovy. Ny mpandraharaha tsirairay dia mamokatra vokatra zero / iray. Azo antoka amin'ny karazana opera rehetra.

&

Betsaka ary. Tsy misy afa-tsy amin'ny antsipiriany ihany.

^

Bit-wise exclusive OR. Tsy misy afa-tsy amin'ny antsipiriany ihany.

|

Bit-wise OR. Tsy misy afa-tsy amin'ny antsipiriany ihany.

&&

Logical AND. Manome ny vokatra 1 raha toa ka tsy misy ny sanda roa, 0 raha tsy izany. Tsy misy afa-tsy ny boolean sy ny tarehimarika (tsy hita isa).

||

Logical OR. Manome vokatra 0 raha toa ka samy zero ny mpihira roa, 1 raha tsy izany. Tsy misy afa-tsy ny boolean sy ny tarehimarika (tsy hita isa).

x ? y : z

Raha-raha-raha tsy izany, toy ny ao C. Raha mihevitra ny tsy zero ny x , ny vokatra dia ny lanjan'ny y . Raha tsy izany, ny vokatra dia ny lanjan'ny z . Ny singa x dia tsy maintsy manana mari-pamantarana.

Jereo ny boky C raha mila fanazavana bebe kokoa momba ny vokatra naterin'ny mpandraharaha tsirairay. Ireo mpandraharaha binary rehetra dia miorina amin'ny sehatra miankina amin'ny dingana mitovy. Ohatra, ny baiko

Expr 4 * 2 <7

returns 0.

Ny && , || , ary:: ny mpihazakazaka dia manana fanombatombana kamo, tahaka ny ao amin'ny C, izay midika fa tsy azo tsinontsinoina ny sanda raha toa ka tsy ilaina izy ireo hamaritra ny vokatra. Ohatra, ao amin'ny baiko

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

Ny iray amin'ny [[]] na [b] ihany no hotsaraina, arakaraka ny sandan'ny $ v . Mariho anefa fa marina izany raha toa ka asiana an-damina ny fanehoana manontolo; Raha tsy izany, ny tcl parser dia handinika ny [a] sy [b] alohan'ny hiantsoana ny baiko expr .

Math Functions

Tcl dia manohana ireto fepetra matematik manaraka ireto:

Raha ny fanazavana azo, dia misy ny fiaraha- miasan'ny mpitsabo.

abs ( arg )

Mamerina ny hasarobidin'ny arg . Ny Arg dia mety ho marika na marika, ary ny valiny dia averina amin'ny endrika mitovy.

Wiki puzzle.svg

Mamerina ny arc cosine amin'ny arg , ao amin'ny laharana [0, pi] radians. Arg dia tokony ho eo amin'ny laharana [-1,1].

asin ( arg )

Mamerina ny boriborin- tohatra boribory, eo amin'ny faritra [-pi / 2, pi / 2]. Arg dia tokony ho eo amin'ny laharana [-1,1].

atan ( arg )

Mamerina ny arc tangente ny arg , ao anatin'ny faran'ny [radiô / 2, pi / 2] radians.

atan2 ( x, y )

Mamerina ny tangent arque y / x , ao anatin'ny faritra [-pi, pi]. x ary y tsy samy afaka 0.

ceil ( arg )

Mamerina ny lanjany faran'izay kely indrindra tsy latsaky ny arg .

( Ohatra tsy ampy )

Mamerina ny kisendrasendra, izay voamarika amin'ny radians.

( Ohatra tsy ampy )

Mamerina ny tononkalo hyperbolic amin'ny arg . Raha miteraka ny vokatra dia miteraka fahadisoana.

Open book 01.svg Anarana iombonana

Raha toa ny sandan'ny volavolan-drakotra, dia averina indray ny argument , raha tsy izany, dia manova ny heviny mba hivezivezy ary hamerina ny lanjany hiova.

exp ( arg )

Mamerina ny endriky ny arg , voafaritra ho e ** arg . Raha miteraka ny vokatra dia miteraka fahadisoana.

Open book 01.svg Anarana iombonana

Mamerina ny safidy lehibe midadasika kokoa tsy lehibe noho ny arg .

fmod ( x, y )

Mamerina ny sisa tavela amin'ny toeran'ny fizarana x amin'ny y . Raha y ny 0, dia averina ny fahadisoana iray.

hypot ( x, y )

Manasongadina ny halavan'ny hypotenuse amin'ny triatra havanana ( x * x + y * y ).

int ( arg )

Raha ny teny aram-po dia singa iray manontolo, dia averina indray ny argument , raha toa kosa ka mamadika ny argument ho an'ny integer amin'ny fametahana ary mamerina ny sandam-panovana.

Open book 01.svg Anarana iombonana

Mamerina ny logarithm voa-janahary. Arg tsy maintsy misy lanjany tsara.

log10 ( arg )

Mamerina ny logarithm fototra ao arg . Arg tsy maintsy misy lanjany tsara.

pow ( x, y )

Mitondra ny sandan'ny x natsangana tamin'ny hery y . Raha ratsy ny x, dia tsy maintsy ho singa iray tsy manan-tsahala.

Rand ()

Mamerina tarehimarika maromaro avy amin'ny zero mankany amin'ny latsaky ny iray na, amin'ny lafiny matematika, ny laharana [0,1]. Ny voa dia avy amin'ny famantaranandro ao amin'ny milina na mety hametraka torolàlana amin'ny asa srand.

Wiki puzzle.svg

Raha toa ny valiny dia tsy manan-tsahala ny valiny, dia averina indray ny argument , raha tsy izany, dia manova ny toetr'andro amin'ny alàlan'ny boribory ary mamerina ny lanjany hiova.

sin ( arg )

Mamerina ny sainan'ny arg , voamarina amin'ny radians.

sinh ( arg )

Mamerina ny tononkira hyperbolic amin'ny arg . Raha miteraka ny vokatra dia miteraka fahadisoana.

Open book 01.svg Anarana iombonana

Mamerina ny fototry ny arg . Arg tsy maintsy misy tsy manan-kialofana.

srand ( arg )

Ny arg , izay tsy maintsy ho singa iray, dia ampiasaina hamerina ny voa ho an'ilay mpamorona nomerao. Mamerina ny isa nomerao voalohany avy amin'io voa io. Ny mpandika teny tsirairay dia manana ny voa manokana.

tan ( arg )

Mamerina ny tangentin'ny arg , voamarina amin'ny radians.

tanh ( arg )

Mamerina ny tsangambato hyperbolic amin'ny arg .

Ankoatra ireo asa efa voafaritra ireo, ny fampiharana dia afaka mamaritra asa fanampiny mampiasa Tcl_CreateMathFunc ().

Ny karazana, ny fandrobana, ary ny fahamendrehana

Ny kaonty anatiny rehetra mifandray amin'ny vondron'olona dia vita amin'ny halavan'ny C, ary ny karazana anatiny rehetra mifandraika amin'ny teboka dia atao amin'ny karazana C indroa . Rehefa mamadika kofehy mipetaka amin'ny teboka dia hita fa misy ny tondron'ny tontonana ary miteraka fahadisoana Tcl. Ho an'ny fiovan'ny toetoetran'ny tsipika, ny fahitana ny overflow dia miankina amin'ny fitondran-tsavily sasany ao amin'ny trano famakiam-boky C eo an-toerana, ka tokony hajaina ho tsy azo antoka. Na ahoana na ahoana, dia tsy mahagaga loatra ny vokatra azo avy amin'ny solika sy ny etona ambany. Ny fiparitahan'ny tebiteby sy ny etona ambany no hita amin'ny dingana azo avy amin'ny fitaovana, izay azo itokisana tanteraka.

Ny fiovàna eo amin'ny solontenan'ny aterineto ho an'ny singa madinika, fikoropahana, ary fikolokoloana string dia atao araka izay ilaina. Ho an'ny mari-pahaizana momba ny arithmetika, dia ampiasaina ny litera mandra-pampana ny isa maromaro, ary avy eo dia ampiasaina ny teboka. Ohatra,

expr 5/4

Miverina 1, raha

Expr 5 / 4.0 expr 5 / ([longitude string "abcd"] + 0.0)

samy niverina 1.25. Ny sanda milamina dia averina miaraka amin'ny `` . '' na e e mba tsy hijerena sanda sarobidy. Ohatra,

expr 20.0 / 5.0

dia niverina 4.0 , fa tsy 4 .

String Operations

Ny soatoavina torolàlana dia azo ampiasaina ho operandin'ireo mpizara fampitahana, na dia manandrana manao fampitahana aza ny mpanombana miteny raha toa ka afaka. Raha toa ny iray amin'ireo mpizara fampitahana dia fohy ary ny iray dia manana tarehimarika marika, dia naverina hiverina amin'ny tsipika ny opera ny tarehimarika amin'ny fampiasana ny format specifter % C ho an'ny integer ary % g ho an'ny sanda flotable . Ohatra, ny baiko

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

samy mivadika 1. Ny fampitahana voalohany dia atao amin'ny fampitahana fampitahana, ary ny faharoa dia atao amin'ny fampitahana fampitahana rehefa avy niova fo ho amin'ny tady 18 ny opera faharoa. Noho ny fironan'ny Tcl amin'ny fikarakarana ny soatoavina amin'ny isa isaky ny mahazatra, dia tsy dia tsara loatra ny fampiasana mpandraharaha toy ny == raha tena tianao ny fampitahaina amin'ny string ary ny soatoavin'ireo opera dia mety ho tsy ara-dalàna; Tsara kokoa amin'ireo tranga ireo ny mampiasa ny baiko string fa tsy.

Fijerena ny fahombiazana

Apetraho ao anaty fantsona ny fanehoana haingana indrindra sy ny fepetra fitehirizana vitsivitsy. Izany dia mamela ny Tcl bytecode compiler hahazoana ny code best.

Araka ny voalaza etsy ambony, ny teny dia misolo indroa: indray mandeha amin'ny torolàlana Tcl ary indray mandeha amin'ny baiko expr . Ohatra, ny baiko

Manorà bajana 3 b {$ a + 2} expr $ b * 4

Miverena 11, fa tsy 4 ny isany. Izany dia satria ny parser Tcl dia hametraka voalohany $ a + 2 ho an'ny b bidy, avy eo ny baiko expr dia handinika ny teny $ a + 2 * 4 .

Ny ankamaroan'ny fanehoan-kevitra dia tsy mitaky fiovàna faharoa fanoloana. Na izy ireo dia tafiditra ao anaty fiarovan-doha na, raha tsy izany, dia mamela tarehimarika na tady izay tsy voatery hisolo toerana azy ny fanoloana azy sy ny baikony. Na izany aza, satria ilàna fanasongadinana vitsivitsy mila amboaran-dàlana roa, ny compiler bytecode dia tokony hamoaka torolàlana fanampiny mba hiatrehana ity toe-javatra ity. Ny fehezan-dalàna faran'izay sarotra dia takiana amin'ny fanehoana tsy misy dikany izay misy fanoloana baiko. Ireo teny ireo dia tsy maintsy ampiharina amin'ny famoronana fehezan-dahatsoratra vaovao isaky ny manomboka ny famoahana azy.

Keywords

arithmetika, boolean , ampitahao, fanehoana, fampitahana fifandonana

Zava-dehibe: Ampiasao ny baikon'ny lehilahy ( % man ) mba hahitana ny fomba ampiasan'ny baiko amin'ny solosainao manokana.