Извођење основних аритметичких операција
Једноставне аритметичке операције попут сабирања, одузимања, дељења и множења могу се извршити помоћу команде 'бц'. Синтакса за примену једноставних бинарних оператора у басх помоћу команде 'бц' је следећа.
[емаил заштићен]: ~ $ ецхо “У овом одељку ћемо користити команду 'бц' за извођење једноставних рачунских операција.
[заштићен е-поштом]: ~ $ нум1 = 2.35322 5[емаил заштићен]: ~ $ нум2 = 1.223353
[заштићен е-поштом]: ~ $ ецхо “$ нум1 + $ нум2” | пре нове ере
3.576578
[заштићен е-поштом]: ~ $ ецхо “$ нум1- $ нум2” | пре нове ере
1.129872
[заштићен е-поштом]: ~ $ ецхо “$ нум1 * $ нум2” | пре нове ере
2.878824
[е-пошта заштићена]: ~ $ ецхо “$ нум1 / $ нум2” | пре нове ере
1
У горњем примеру, док смо вршили дељење, добили смо резултат без децималних места. Да бисмо добили резултат до 'н' децималних зареза, морамо подесити вредност скале на 'н' као што је приказано у следећем примеру.
[е-пошта заштићена]: ~ $ ецхо “скала = 10; $ нум1 / $ нум2 ”| пре нове ере1.9235862420
Алтернативно, можемо користити заставицу '-л' и наредбу 'бц' да бисмо добили децимални излаз.
[емаил заштићен]: ~ $ ецхо “$ нум1 / $ нум2” | бц -л1.92358624207403750184
Наредба 'бц' се такође може користити за извођење поделе модула и израчунавање снаге броја у басх скриптама.
[е-пошта заштићена]: ~ $ ецхо “10% 4” | пре нове ере2
[заштићен е-поштом]: ~ $ ецхо “10 ^ 2” | пре нове ере
100
Извођење напредних аритметичких операција
До сада смо користили команду 'бц' за извођење неких основних аритметичких операција попут сабирања, одузимања, множења итд., Сада; у овом одељку ћемо користити команду 'бц' да бисмо извршили неке напредне аритметичке операције. Разговараћемо о томе како у басху можемо користити операторе поређења, логичке или логичке операторе, напредне математичке функције и условне изразе помоћу команде 'бц'.
Оператори поређења
Оператори поређења узимају два броја, упоређују их и враћају 1 или 0 у зависности од поређења. Ако је поређење тачно, онда је резултат ИСТИНИТО (1); иначе је ФАЛСЕ (0). Следе неки примери оператора упоређивања.
- нум1> нум2: Ово поређење ће се вратити 1 ако је нум1 је већи од нум2.
- нум1 < num2: Резултат ће бити 1 ако је нум1 је мање од нум2.
- нум1 <= num2: Резултат ће бити 1 ако је нум1 је мање или једнако нум2.
- нум1> = нум2: Резултат ће бити 1 ако је нум1 је већи или једнак нум2.
- нум1 == нум2: Резултат ће бити 1 ако је нум1 је једнако нум2.
- нум1 != нум2: Резултат ће бити 1 ако оба броја нису једнака.
Следи неколико примера оператора упоређивања који се користе заједно са командом 'бц'.
[заштићен е-поштом]: ~ $ ецхо “5 == 5” | пре нове ере1
[заштићена е-поштом]: ~ $ ецхо “4!= 4 ”| пре нове ере
0
[е-пошта заштићена]: ~ $ ецхо “2> 5” | пре нове ере
0
[заштићена е-поштом]: ~ $ ецхо “4<=4” | bc
1
Логички оператери
Логички или логички оператори користе се у условним изразима за извршавање неких логичких одлука. Следе три основна логичка оператора.
- стат1 && стат2: Ово ће се вратити 1 ако су обе изјаве не-нула.
- стат1 || стат2: Ово ће се вратити 1 ако је било која од изјава не-нула.
- ! стат: Ово ће се вратити 1 ако је изјава не-нула и обрнуто.
Следећи примери илуструју како се логички оператори користе са наредбом 'бц'.
[емаил заштићен]: ~ $ ецхо “-5 && 0” | пре нове ере0
[емаил заштићен]: ~ $ ецхо “-1 || 0 ”| пре нове ере
1
[емаил заштићен]: ~ $ ецхо “! 0 ”| пре нове ере
1
Условне изјаве
Условни изрази се користе за извршавање одређених наредби у зависности од примењеног услова. Примењени услов у условном изразу укључује логичке и операторе упоређивања. Следи пример условних наредби са наредбом 'бц'.
[емаил заштићен]: ~ $ а = 15[емаил заштићен]: ~ $ б = 20
[заштићен е-поштом]: ~ $ ецхо 'иф (а> б) принт "а ис ларгер" елсе принт "б ис ларгер"' | бц -л
б је веће
У горњем примеру, изјава проверава да ли је а веће од б или није. Ако је а веће од б, исписаће се „а веће је“; у супротном ће исписати „б је веће.”У претходном примеру можемо применити било који услов користећи логичке и упоредне операторе.
Математичке функције
Команда 'бц' такође пружа неке уграђене математичке функције које можемо користити без њиховог дефинисања. Следе неке основне функције које се користе са командом 'бц' у басх-у.
- с (к): враћа синус к где је к у радијанима
- ц (к): враћа косинус к, где је к у радијанима
- а (к): враћа арктангенс к, а резултат је у радијанима
- скрт (к): враћа квадратни корен из к. То изазива грешку у извођењу када је к негативан
- л (к): враћа природни дневник к.
Ове функције се могу користити са наредбом 'бц', као што је приказано у следећим примерима.
[заштићен е-поштом]: ~ $ пи = 3.1415[е-пошта заштићена]: ~ $ ецхо “с ($ пи / 2)” | бц -л
1
[заштићен е-поштом]: ~ $ ецхо “ц ($ пи / 2)” | бц -л
0
[заштићена е-поштом]: ~ $ ецхо “а (1)” | бц -л
0.7854
Квадратни корен броја може се израчунати у басх помоћу наредбе 'бц', као што је приказано на следећој слици.
[заштићен е-поштом]: ~ $ ецхо “скрт (4)” | бц -л2
Покушавајући да израчуна квадратни корен негативног броја, љуска ће бацити грешку извршавања.
[заштићен е-поштом]: ~ $ ецхо “скрт (-2)” | бц -лГрешка током извођења (фунц = (маин), адр = 4): Квадратни корен негативног броја
Природни логаритам броја може се израчунати у басх помоћу наредбе 'бц' на следећи начин.
[заштићен е-поштом]: ~ $ ецхо “л (2)” | бц -л.69314718055994530941
Закључак
Док пишемо скрипте за аутоматизацију на басх, понекад су нам потребне напредне математичке функције и логички оператори за извршавање наредби. Команда 'бц' пружа многе напредне математичке функције и операторе за извођење аритметичких прорачуна на високом нивоу. У овом водичу је било речи о употреби наредбе 'бц' за извођење напредних рачунских операција у басх-у.