Linux / Unix Command: Expr

ысым

Expr - сөздү баалоо

Кыскача баяндама

Expr ARG? Аргентина Аргентина ...?

Concatenates .Ал (алардын ортосунда сепаратор боштуктарды кошуу) Аргентина, бир TCL сөз натыйжасын баалайт жана маанини кайтарат. TCL сөздөрдү уруксат операторлор C сөздөр уруксат операторлорунун топтому болуп саналат, алар тиешелүү C операторлору, ошондой эле маанисин жана артыкчылыкка ээ. Expressions дээрлик дайыма сандык натыйжа (бүтүн же калкып-пункту маанилер). Мисалы, сөз айкашы

Expr 6 + 8,2

14,2 багалайды. TCL сөздөр operands көрсөтүлгөн жол менен C сөздөр менен айырмаланат. Ошондой эле, TCL сөздөр эмес сан operands жана сап салыштырууларды колдоо.

Operands

А TCL сөздөр operands, оператор жана кашаанын айкалышынан турат. Ак мейкиндик operands жана операторлоруна жана кашаанын ортосундагы колдонулушу мүмкүн; билдирүү тапшырмасы боюнча этибарга алынбайт. Мүмкүн болсо, operands бүтүн баалуулуктар деп жорушат. Integer баалуулуктар ондук (нормалдуу иш), Octal-жылы (коддон биринчи тамга 0 болсо), же CSS'тегидей он (коддон биринчи эки белгиден 0XБ Л болсо) белгилениши мүмкүн. бир коддон Жогоруда берилген бүтүн түрдө бири жок болсо, анда ал, эгерде бул мүмкүн болсо калкып-катар номер, чекиттен катары каралган. Floating-пункту саны бир ANSI-ылайык C Түзүүчүнүн тарабынан кабыл алынган кандайдыр бир жол менен (е, F, L жана L? Рт көпчүлүк курулуштарга жол мүмкүн эмес экенин эске албаганда) белгилениши мүмкүн. Мисалы, төмөнкү бардык жарактуу калкып-пункту номерлерин: 2.1, 3, 6e4, 7.91e + 16. эч кандай сан чечмелөө мүмкүн эмес болсо, анда бир коддон сапка (жана операторлорунун гана чектелген топтомун ага колдонулушу мүмкүн) болуп калды.

Operands төмөнкү жолдор менен кандайдыр бир конкреттүү көрсөтүлүшү мүмкүн:

[1]

Сандык мааниси катары, же санды же калкып-пунктунда.

[2]

Бир TCL өзгөрмө аты катары, стандарттуу $ белгисин колдонуу. Өзгөрмө мааниси коддон катары колдонулат.

[3]

кош тырмакчага тиркелген сап катары. сөз айкашы талдоочу тырмакчага ортосунда маалымат слэш, өзгөрмө жана буйрук алмаштыруулар жүзөгө ашырат, жана коддон катары натыйжасында баасын колдонот

[4]

кашаа тиркелген сап катары. ачык кодерлерге жана дал келген жакын кодерлерге ортосундагы белги кандай алмаштыруу жок коддон катары колдонулат.

[5]

кашаанын ичинде тиркелген бир TCL буйругу эле. буйрук аткарылган жана анын натыйжасы коддон катары колдонууга болот.

[6]

Математикалык милдети катары анын далилдери, мындай күнөө ($ X) катары operands жогоруда түрлөрүн, ар кандай болот. аныкталган милдетин аткаруунун тизмесин ылдый кара.

ордун алмаштыруу жогоруда (келтирилген саптарды ичинде мисалы,) пайда болсо, алар билдирүүнү тапшырмасы боюнча жүзөгө ашырылат. Бирок, алмаштыруу кошумча катмар эле сөз айкашы иштетүү деп мурда буйрук Parser аткарган болушу мүмкүн. төмөндө айтылгандай, ал, адатта, мазмунун алмаштыруу аткаруудан буйрук талдагычты жол бербөө үчүн кашаа сөздөрдү тиркөөгө жакшы.

Жөнөкөй сөздөрдү кээ бир мисалдарды, өзгөрүлмө маанини 3 жана өзгөрүлмө б баасын 6 Ошондо Төмөндө ар бир сол жагына буйругун сызыктын оң жагына баасын берет да бар деп ойлойм:

Expr 3.1 + $ a6.1 Expr 2 + "бир $. $ б" 5,6 Expr 4 * [llength "6 2"] 8 Expr {{сөз бир} < "деген сөз $ а"} 0

Байланыш операторлоруна

кезектүүлүккө тартибин азайтуу топтоштурулат жарактуу операторлор, төмөндө келтирилген:

- + ~!

Иштебесе минус, иштебесе плюс, аз-туура эмес, туура эмес. Бул operands сап operands жана бит акылман гана бүтүн колдонулушу мүмкүн ЭМЕС колдонулушу мүмкүн бири.

* /%

Multiply, бөлүнүү, калган. Бул operands бири сап operands колдонулушу мүмкүн, ал эми калганы гана бүтүн колдонулушу мүмкүн. калгандары ар дайым Бөлүүчү жана Бөлүүчү кичирээк бир абсолюттук мааниде эле жышаан болот.

+ -

Кошуу жана кемитүү. ар кандай сан operands жарактуу.

<< >>

Сол жана оң жылыштар. бүтүн operands гана жарактуу. А оң жылыштар дайыма жышаан аз үгүттөшкөн.

<> <=> =

аз, жогору же барабар кем, жана жогору же барабар логикалык. Шарт туура, 0, эгерде болсо, анда ар бир оператор 1 өндүрөт. Бул операторлор иши сап салыштыруу колдонулат турган кылдуу, ошондой эле сандык operands, колдонулушу мүмкүн.

== =

Логикалык бирдей жана бирдей эмес. Ар бир оператор нөлдүк / бир жыйынтык чыгарат. Бардык коддон түрлөрү үчүн жарактуу.

&

Бит-акылдуу. бүтүн operands гана жарактуу.

^

Бит-акылман өзгөчө ЖЕ. бүтүн operands гана жарактуу.

|

Бит-акылдуу ЖЕ. бүтүн operands гана жарактуу.

&&

Логикалык ЖАНА. эки operands эмес-нөл, 0, эгерде бар болсо, 1-жыйынтык чыгарат. логикалыкты жана сандык (бүтүн же калкып-пунктунда) жарактуу гана operands.

||

Логикалык ЖЕ. эки operands Эгерде нөл, 1 бар болсо, 0 жыйынтыгын чыгарат. логикалыкты жана сандык (бүтүн же калкып-пунктунда) жарактуу гана operands.

х? Ж: Z

Болсо, анда-башка, анда х эмес нөлгө баалайт С эле, анда натыйжасы ж наркы болуп саналат. Болбосо, натыйжасы Z наркы болуп саналат. Х коддон Сандык мааниси болушу керек.

Ар бир оператор тарабынан өндүрүлгөн жыйынтыгы боюнча көбүрөөк маалымат алуу үчүн C куралын карагыла. Бардык бинардык операторлор тобу ошол эле артыкчылык даражасына ичинде бири-укугун калтырды. Мисалы, буйрук

Expr 4 * 2 <7

0 кайтарат.

&&, || Жана: операторлор эле operands алар натыйжасын аныктайт үчүн керек эмес болсо, анда бааланган эмес дегенди билдирет C, ошондой эле `` жалкоо баа '' бар. Мисалы, буйрук

Expr {$ V? [а]: [б]}

гана [а] жана бир же бир [б], чынында, $ V наркына жараша бааланат. толугу менен сөз кашаа тиркелген болсо, бул туура эмес болуп калды деп, Бирок, баса белгилей кетчү; Эгерде, TCL [а] да талдоочу баа берет жана [б] Expr буйрук мелдеш алдында.

Math Functions

TCL сөздөрдү төмөнкүдөй математикалык колдойт:

абс cosh журналы sqrt ички Sinh ¼т¼¼д¼н баш кош log10 srand айтам Exp батарея тан Атан кабат ранды tanh atan2 fmod тегерек ceil hypot күнөө арккосину

ABS (Аргентина)

ARG абсолюттук маанини кайтарат. Arg бүтүн же калкып-жагдай болушу мүмкүн, жана жыйынтыгы ошол эле түрдө кайтарылат.

арккосину (Аргентина)

ARG-жылдын жазгы косинус кетет, диапазонунда [0, Пи] радиандарга. Arg аралыгы [-1,1] болушу керек.

Кош айтам (Аргентина)

ARG-жылдын жазгы синус кетет, диапазондо [-pi / 2 Пи / 2] радиандарга. Arg аралыгы [-1,1] болушу керек.

Атан (Аргентина)

ARG-жылдын жазгы жаныма кетет, диапазондо [-pi / 2 Пи / 2] радиандарга.

atan2 (х, у)

Ж / х, диапазонунда [-pi Пи] радиандарга-жылдын жазгы жаныма кайтарат. Х жана Ү эки 0 болушу мүмкүн эмес.

ceil (Аргентина)

Кичине бүтүн балл эмес, Аргентина аз кетет.

Cos (Аргентина)

Радиандарга менен ченегенде, Аргентина жана косинус, кетет.

cosh (Аргентина)

ARG Гиперболикалык косинус кайтарат. Натыйжада мол алып келсе, ката кайтарылып берилет.

эки эсе көп (Аргентина)

ARG өзгөрүлмөлүү балл болсо, Аргентина, башкача сүзүп из Аргентина айлантат жана өзгөртөсүзбү маанисин кайтарган кайтарат.

Exp (Аргентина)

Е ** ARG катары аныкталган ARG көрсөткүчтүү, кетет. Натыйжада мол алып келсе, ката кайтарылып берилет.

кабат (Аргентина)

Ири ажырагыс баалуулугун ARG жогору эмес кетет.

fmod (х, у)

Ж-нын X бөлүштүрүү калкып-пункту калган кетет. Ж 0 болсо, анда ката кайтарылып берилет.

hypot (х, у)

Укук-чукул бурчтуктун Гипотенуза + х + Ж + Ж) узактыгын эсептесин.

Int (Аргентина)

ARG бүтүн балл болсо, Аргентина, эгерде жылышышы тарабынан Бүтүн үчүн ARG айлантат жана өзгөртөсүзбү маанисин кайтарган кайтарат.

журнал (Аргентина)

ARG табигый лагы кайтарат. Arg жакшы балл болушу керек.

log10 (Аргентина)

ARG базасы 10 лагы кетет. Arg жакшы балл болушу керек.

батарея (х, у)

Электр ж көтөрүлгөн X наркын эсептесин. Х терс болсо, ж бүтүн балл болушу керек.

Rand ()

нөлдүк курс санын математикалык жактан бир же бир караганда эле аз, диапазону [0,1). үрөн машинанын ички сааттын келген же srand иштеши менен кол коюлушу мүмкүн.

Тегерек (Аргентина)

ARG бүтүн балл болсо, Аргентина, башкача тегеректөө менен Бүтүн үчүн ARG айлантат жана өзгөртөсүзбү маанисин кайтарган кайтарат.

күнөө (Аргентина)

Радиандарга өлчөнөт Аргентина менен синус, кетет.

Sinh (Аргентина)

ARG Гиперболикалык синус кайтарат. Натыйжада мол алып келсе, ката кайтарылып берилет.

sqrt (Аргентина)

ARG чарчы тамыры кетет. Arg эмес терс болушу керек.

srand (Аргентина)

Бүтүн болушу керек Аргентина, кокус саны генератор үрөн тазалоо үчүн колдонулат. Ошол тукум биринчи кокустук санын кайтарат. Ар бир тилмеч өз үрөн бар.

Тан (Аргентина)

Радиандарга өлчөнөт Аргентина менен жаныма, кетет.

tanh (Аргентина)

ARG Гиперболикалык жаныма кайтарат.

Бул алдын ала жүктөлгөн милдеттерден тышкары, арыз Tcl_CreateMathFunc менен кошумча милдеттерди аныктоо мүмкүн ().

Түрлөрү, кошумча жана таамай

Бүтүн сан менен бардык ички эсептөөлөрү узак C түрү менен кылган, жана калкыма-пункту менен бардык ички эсептөөлөрү C түрү кош менен жүргүзүлөт. калкып-пунктуна сап айландыруу жатканда, даражанын ашып бир TCL күнөөсү аныкталган жана жыйынтыктар. саптан Бүтүн берүүгө өтүү үчүн, ашып-ташып аныктоо жергиликтүү C китепкана айрым төрөлгөндөн жана жүрүм-турумуна көз каранды, ошондуктан бул туура эмес деп кабыл алынышы керек. Кандай болбосун, бүтүн чыксын жана нуктун жалпысынан аралык жыйынтыгы боюнча так аныкталган эмес. Floating-пункту чыксын жана нуктун жалпысынан абдан ишеничтүү даражадагы аппараттык тарабынан колдоого алынган, деп табылды.

Бүтүн ички өкүлчүлүктөрүнүн арасында айландыруу, калкып-пунктунда жана сап operands керек өзүнөн жасалат. эсеп эсептөөлөргө үчүн, бүтүн бир калкып-пункту саны калкып-пункту колдонулат кийин киргизилген чейин колдонулат. Мисалы,

Expr 5/4

кайтарып 1, ал эми

Expr 5 / 4,0 Expr 5 / ([сап узундугу "ABCD"] + 0.0)

эки 1,25 кайрылып. Floating-пункту баалуулуктары дайыма `` менен кайтарылып берилет. "Алар бүтүн баалуулуктарга окшош жок болот", же ошол электрондук. Мисалы,

Expr 20.0 / 5.0

кайтарып 4.0 эмес, 4.

String амалдар

бул качан сөз баалоочунун Бүтүн же калкып-пунктунда ошондой эле салыштырууларды кылууга аракет кылат, бирок Сап баалуулуктар салыштыруу операторлорунун operands катары пайдаланылышы мүмкүн. Салыштыруу operands бир сап болуп эсептелет жана башка бир сан мааниге ээ болсо, сан коддон калкып-пункту баалуулуктарды бүтүн жана% г С sprintf формат specifier% D аркылуу сапты кайра кайра түзүлөт. Мисалы, буйруктар

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

экөө тең кайтып 1. Биринчи салыштыруу бүтүн салыштырууну колдонуп, ал эми экинчи коддон сапка 18 динин кабыл алгандан кийин экинчи сап салыштыруу аркылуу жүзөгө ашырылат. Себеби, мүмкүн болсо номерлери сыяктуу баалуулуктарды мамиле TCL анын жакын, ал, адатта, чын эле сап салыштыруу келет жана operands баалуулуктары мыйзамсыз болушу мүмкүн болгондо == сыяктуу операторлорду колдонууну жакшы эмес, ал анын ордуна сап буйругун колдонуу үчүн, бул учурларда жакшы.

Performance абай

жакшы ылдамдык жана кичинекей сактоо талаптарын аткаруу үчүн кашаа сөздөрдү тиркелет. Бул TCL код компилятор мыкты кодду пайда берет.

Жогоруда белгиленгендей, сөз айкаштары эки жолу алмаштырылат жатат: бир жолу TCL Parser жана бир Expr буйругу менен. Мисалы, буйруктар

3 Set B коюп {$ + 2} Expr $ б * 4

кайра 11, бир нече жолу эмес, 4. Бул TCL талдоочу биринчи ордуна $ бир болот + 2 өзгөрмө б, анда Expr буйрук сөз $ A баа берет + 2 + 4.

Көпчүлүк сөздөрдү алмаштыруу боюнча экинчи туру талап кылбайт. Же алар эмес, өзгөрүлмө жана буйрук ордун алмаштыруу өздөрү алмаштыруу талап кылбаган сандарды же стрингдерди макул болсо, кашаа же тиркелген жатат. Бирок, бир нече unbraced сөздөрдү алмаштыруу боюнча эки этаптуу керек, анткени, код компилятор Мындай жагдайды чечүү үчүн кошумча көрсөтмөлөрдү чыгарган керек. абдан кымбат коду буйрук алмаштыруулар камтыган unbraced сөздөрдү талап кылынат. Бул сөздөр сөз аткарылат, ар бир жолу жаңы коду түзүлүүдө менен ишке ашырылышы керек.

Keywords

Математика, логикалык , салыштырып, сөз айкашы, так салыштыруу

Маанилүү иш: буйруктар, атап айтканда ЭЭМ колдонулуп келе жатканын көрүп, бир киши (% адам) колдонуу.