EnglishFrenchSpanyol

Ad


Favicon OnWorks

bc - Dalam talian dalam Awan

Jalankan bc dalam penyedia pengehosan percuma OnWorks melalui Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS

Ini ialah arahan bc yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS.

JADUAL:

NAMA


bc - Bahasa kalkulator ketepatan sewenang-wenangnya

SISTEM


bc [ -hlwsqv ] [pilihan panjang] [ fail ... ]

DESCRIPTION


bc ialah bahasa yang menyokong nombor ketepatan arbitrari dengan pelaksanaan interaktif
kenyataan. Terdapat beberapa persamaan dalam sintaks dengan bahasa pengaturcaraan C. A
perpustakaan matematik standard tersedia dengan pilihan baris arahan. Jika diminta, perpustakaan matematik
ditakrifkan sebelum memproses sebarang fail. bc bermula dengan memproses kod daripada semua fail
disenaraikan pada baris arahan dalam susunan yang disenaraikan. Selepas semua fail telah diproses, bc
dibaca daripada input standard. Semua kod dilaksanakan semasa ia dibaca. (Jika fail mengandungi a
perintah untuk menghentikan pemproses, bc tidak akan pernah membaca daripada input standard.)

Versi bc mengandungi beberapa sambungan di luar tradisional bc pelaksanaan dan
piawaian draf POSIX. Pilihan baris arahan boleh menyebabkan sambungan ini mencetak a
amaran atau ditolak. Dokumen ini menerangkan bahasa yang diterima oleh ini
pemproses. Sambungan akan dikenal pasti seperti itu.

PILIHAN
-h, --bantuan
Cetak penggunaan dan keluar.

-i, --interaktif
Paksa mod interaktif.

-l, --mathlib
Tentukan perpustakaan matematik standard.

-w, --amaran
Beri amaran untuk sambungan kepada POSIX bc.

-s, --standard
Proses betul-betul POSIX bc bahasa.

-q, --senyap
Jangan cetak selamat datang GNU bc biasa.

-v, --versi
Cetak nombor versi dan hak cipta dan berhenti.

NOMBOR
Elemen paling asas dalam bc ialah nombor. Nombor ialah nombor ketepatan arbitrari.
Ketepatan ini adalah dalam bahagian integer dan bahagian pecahan. Semua nombor adalah
diwakili secara dalaman dalam perpuluhan dan semua pengiraan dilakukan dalam perpuluhan. (Versi ini
memotong terhasil daripada operasi bahagi dan darab.) Terdapat dua sifat bagi
nombor, panjang dan skala. Panjang ialah jumlah bilangan perpuluhan bererti
digit dalam suatu nombor dan skala ialah jumlah bilangan digit perpuluhan selepas perpuluhan
titik. Sebagai contoh:
.000001 mempunyai panjang 6 dan skala 6.
1935.000 mempunyai panjang 7 dan skala 3.

PELBAGAI
Nombor disimpan dalam dua jenis pembolehubah, pembolehubah mudah dan tatasusunan. Kedua-duanya ringkas
pembolehubah dan pembolehubah tatasusunan dinamakan. Nama bermula dengan huruf diikuti dengan sebarang nombor
huruf, digit dan garis bawah. Semua huruf mestilah huruf kecil. (Alfa-numerik penuh
nama adalah sambungan. Dalam POSIX bc semua nama adalah satu huruf kecil.) Jenis
pembolehubah adalah jelas mengikut konteks kerana semua nama pembolehubah tatasusunan akan diikuti oleh
kurungan ([]).

Terdapat empat pembolehubah khas, skala, ibase, obase, and lepas. skala mentakrifkan bagaimana sesetengah
operasi menggunakan digit selepas titik perpuluhan. Nilai lalai bagi skala adalah 0. asas daripada
and bos tentukan asas penukaran untuk nombor input dan output. Lalai untuk kedua-duanya
input dan output adalah asas 10. lepas (sambungan) ialah pembolehubah yang mempunyai nilai
nombor cetakan terakhir. Ini akan dibincangkan dengan lebih terperinci di mana sesuai. Semuanya
pembolehubah ini mungkin mempunyai nilai yang diberikan kepada mereka serta digunakan dalam ungkapan.

KOMENTAR
Komen dalam bc bermula dengan watak /* dan berakhir dengan watak */. Komen boleh
mulakan di mana-mana dan muncul sebagai ruang tunggal dalam input. (Ini menyebabkan komen kepada
hadkan item input lain. Sebagai contoh, ulasan tidak boleh ditemui di tengah-tengah a
nama pembolehubah.) Ulasan termasuk sebarang baris baharu (akhir baris) antara permulaan dan penghujung
daripada komen tersebut.

Untuk menyokong penggunaan skrip untuk bc, satu ulasan baris telah ditambahkan sebagai
sambungan. Komen satu baris bermula pada a # watak dan berterusan ke penghujung seterusnya
garisan itu. Hujung aksara baris bukan sebahagian daripada ulasan dan diproses seperti biasa.

EKSPRESI
Nombor dimanipulasi oleh ungkapan dan pernyataan. Sejak bahasa itu
direka bentuk untuk menjadi interaktif, pernyataan dan ungkapan dilaksanakan secepat mungkin.
Tiada program "utama". Sebaliknya, kod dilaksanakan seperti yang ditemui. (Fungsi,
dibincangkan secara terperinci kemudian, ditakrifkan apabila ditemui.)

Ungkapan mudah hanyalah pemalar. bc menukar pemalar kepada perpuluhan dalaman
nombor menggunakan asas input semasa, yang ditentukan oleh pembolehubah asas daripada. (Ada satu
pengecualian dalam fungsi.) Nilai undang-undang bagi asas daripada ialah 2 hingga 16. Memberikan nilai
di luar julat ini ke asas daripada akan menghasilkan nilai 2 atau 16. Nombor input mungkin mengandungi
aksara 0–9 dan A–F. (Nota: Ia mestilah huruf besar. Huruf kecil adalah berubah-ubah
nama.) Nombor satu digit sentiasa mempunyai nilai digit tanpa mengira nilainya
of asas daripada. (iaitu A = 10.) Untuk nombor berbilang digit, bc menukar semua digit input lebih besar atau
sama dengan ibase dengan nilai asas daripada-1. Ini menjadikan nombor itu FFF sentiasa menjadi yang terbesar 3
nombor digit asas input.

Ungkapan penuh adalah serupa dengan banyak bahasa peringkat tinggi yang lain. Memandangkan hanya ada satu
jenis nombor, tiada peraturan untuk mencampurkan jenis. Sebaliknya, terdapat peraturan mengenai
skala ungkapan. Setiap ungkapan mempunyai skala. Ini diperoleh daripada skala
nombor asal, operasi yang dilakukan dan dalam banyak kes, nilai pembolehubah
skala. Nilai undang-undang pembolehubah skala ialah 0 kepada nombor maksimum yang boleh diwakili oleh C
bilangan bulat.

Dalam perihalan ungkapan undang-undang berikut, "expr" merujuk kepada ungkapan lengkap
dan "var" merujuk kepada pembolehubah mudah atau tatasusunan. Pembolehubah mudah hanyalah a
nama
dan pembolehubah tatasusunan ditentukan sebagai
nama[expr]
Melainkan dinyatakan secara khusus skala keputusan adalah skala maksimum bagi
ungkapan yang terlibat.

- expr Hasilnya ialah penolakan ungkapan.

++ var Pembolehubah ditambah dengan satu dan nilai baharu adalah hasil daripada
ungkapan.

-- var Pembolehubah dikurangkan dengan satu dan nilai baharu adalah hasil daripada
ungkapan.

var ++
Hasil ungkapan ialah nilai pembolehubah dan kemudian pembolehubah adalah
bertambah satu.

var -- Hasil ungkapan ialah nilai pembolehubah dan kemudian pembolehubah ialah
dikurangkan oleh satu.

expr + expr
Hasil daripada ungkapan tersebut ialah hasil tambah bagi dua ungkapan.

expr - expr
Hasil ungkapan adalah perbezaan kedua-dua ungkapan.

expr * expr
Hasil daripada ungkapan adalah hasil daripada dua ungkapan.

expr / expr
Hasil daripada ungkapan tersebut ialah hasil bagi dua ungkapan. Skala bagi
hasilnya ialah nilai pembolehubah skala.

expr % expr
Hasil ungkapan ialah "baki" dan ia dikira seperti berikut
cara. Untuk mengira a%b, a/b pertama dikira kepada skala digit. Hasil itu digunakan
untuk mengira a-(a/b)*b kepada skala maksimum skala+skala(b) dan skala(a).
If skala ditetapkan kepada sifar dan kedua-dua ungkapan adalah integer ungkapan ini ialah
fungsi baki integer.

expr ^ expr
Hasil ungkapan ialah nilai yang pertama dinaikkan kepada yang kedua. The
ungkapan kedua mestilah integer. (Jika ungkapan kedua bukan integer,
amaran dijana dan ungkapan dipotong untuk mendapatkan nilai integer.)
Skala hasilnya ialah skala jika eksponen adalah negatif. Jika eksponen ialah
positif skala keputusan adalah minimum skala pertama
ungkapan menggandakan nilai eksponen dan maksimum bagi skala dan skala
daripada ungkapan pertama. (cth skala(a^b) = min(skala(a)*b, max( skala,
skala(a))).) Perlu diingat bahawa expr^0 akan sentiasa mengembalikan nilai 1.

( expr )
Ini mengubah keutamaan standard untuk memaksa penilaian ungkapan.

var = expr
Pembolehubah diberikan nilai ungkapan.

var = expr
Ini bersamaan dengan "var = var expr" dengan pengecualian bahawa bahagian "var".
dinilai sekali sahaja. Ini boleh membuat perbezaan jika "var" ialah tatasusunan.

Ungkapan hubungan ialah jenis ungkapan istimewa yang sentiasa menilai kepada 0 atau 1, 0
jika hubungan itu salah dan 1 jika hubungan itu benar. Ini mungkin muncul dalam mana-mana undang-undang
ungkapan. (POSIX bc memerlukan ungkapan hubungan hanya digunakan dalam jika, manakala,
dan untuk pernyataan dan hanya satu ujian hubungan boleh dilakukan di dalamnya.) Hubungan
pengendali adalah

expr1 < expr2
Hasilnya ialah 1 jika expr1 adalah kurang daripada expr2.

expr1 <= expr2
Hasilnya ialah 1 jika expr1 kurang daripada atau sama dengan expr2.

expr1 > expr2
Hasilnya ialah 1 jika expr1 adalah lebih besar daripada expr2.

expr1 >= expr2
Hasilnya ialah 1 jika expr1 lebih besar daripada atau sama dengan expr2.

expr1 == expr2
Hasilnya ialah 1 jika expr1 sama dengan expr2.

expr1 != expr2
Hasilnya ialah 1 jika expr1 tidak sama dengan expr2.

Operasi Boolean juga sah. (POSIX bc TIDAK mempunyai operasi boolean). The
keputusan semua operasi boolean adalah 0 dan 1 (untuk palsu dan benar) seperti dalam hubungan
ungkapan. Pengendali boolean ialah:

!expr Hasilnya ialah 1 jika expr ialah 0.

expr && expr
Hasilnya ialah 1 jika kedua-dua ungkapan bukan sifar.

expr || expr
Hasilnya ialah 1 jika mana-mana ungkapan bukan sifar.

Ungkapan keutamaan adalah seperti berikut: (rendah kepada tertinggi)
|| operator, kiri bersekutu
&& pengendali, bersekutu kiri
! operator, tidak bersekutu
Pengendali perhubungan, bersekutu kiri
Pengendali tugasan, bersekutu kanan
+ dan - pengendali, bersekutu kiri
*, / dan % operator, kiri bersekutu
^ operator, bersekutu kanan
unary - operator, tidak bersekutu
++ dan -- pengendali, tidak bersekutu

Keutamaan ini dipilih supaya mematuhi POSIX bc program akan berjalan dengan betul. ini
akan menyebabkan penggunaan pengendali hubungan dan logik mempunyai beberapa tingkah laku yang luar biasa
apabila digunakan dengan ungkapan tugasan. Pertimbangkan ungkapan:
a = 3 < 5

Kebanyakan pengaturcara C akan menganggap ini akan memberikan hasil "3 < 5" (nilai 1) kepada
pembolehubah "a". Apa yang dilakukan oleh ini bc adalah memberikan nilai 3 kepada pembolehubah "a" dan kemudian
bandingkan 3 hingga 5. Sebaik-baiknya gunakan kurungan apabila menggunakan pengendali hubungan dan logik
dengan pengendali tugasan.

Terdapat beberapa lagi ungkapan istimewa yang disediakan dalam bc. Ini ada kaitan dengan
fungsi yang ditentukan pengguna dan fungsi standard. Mereka semua muncul sebagai "nama(parameter)".
Lihat bahagian fungsi untuk fungsi yang ditentukan pengguna. Fungsi standard ialah:

panjang (ungkapan)
Nilai fungsi panjang ialah bilangan digit bererti dalam
ungkapan.

baca ( )
Fungsi baca (sambungan) akan membaca nombor daripada input standard,
tidak kira di mana fungsi itu berlaku. Berhati-hati, ini boleh menyebabkan masalah dengan
pencampuran data dan program dalam input standard. Penggunaan terbaik untuk fungsi ini
berada dalam program yang ditulis sebelum ini yang memerlukan input daripada pengguna, tetapi tidak pernah membenarkan
kod program untuk dimasukkan daripada pengguna. Nilai fungsi baca ialah
nombor dibaca daripada input standard menggunakan nilai semasa pembolehubah asas daripada
untuk asas penukaran.

skala (ungkapan)
Nilai fungsi skala ialah bilangan digit selepas titik perpuluhan masuk
ekspresi.

sqrt ( ungkapan )
Nilai fungsi sqrt ialah punca kuasa dua ungkapan. Sekiranya
ungkapan negatif, ralat masa larian dihasilkan.

Pernyataan
Pernyataan (seperti dalam kebanyakan bahasa algebra) menyediakan urutan ungkapan
penilaian. Dalam bc kenyataan dilaksanakan "secepat mungkin." Pelaksanaan berlaku apabila
baris baharu ditemui dan terdapat satu atau lebih pernyataan yang lengkap. Disebabkan ini
pelaksanaan segera, baris baharu adalah sangat penting dalam bc. Malah, kedua-dua koma bertitik dan a
baris baru digunakan sebagai pemisah pernyataan. Baris baharu yang tidak diletakkan dengan betul akan menyebabkan a
ralat sintaks. Oleh kerana baris baharu ialah pemisah pernyataan, adalah mungkin untuk menyembunyikan baris baharu
dengan menggunakan aksara sengkang terbalik. Urutan "\ ", di mana adakah baris baharu muncul
kepada bc sebagai ruang putih dan bukannya baris baharu. Senarai pernyataan ialah satu siri pernyataan
dipisahkan oleh koma bertitik dan baris baharu. Berikut adalah senarai bc kenyataan dan apa
mereka lakukan: (Perkara yang disertakan dalam kurungan ([]) adalah bahagian pilihan pernyataan.)

ungkapan
Kenyataan ini melakukan satu daripada dua perkara. Jika ungkapan itu bermula dengan "
...", ia dianggap sebagai penyata tugasan. Jika
ungkapan bukan pernyataan tugasan, ungkapan itu dinilai dan dicetak
kepada keluaran. Selepas nombor dicetak, baris baharu dicetak. Sebagai contoh,
"a=1" ialah pernyataan tugasan dan "(a=1)" ialah ungkapan yang mempunyai terbenam
tugasan. Semua nombor yang dicetak dicetak dalam pangkalan yang ditentukan oleh
berubah-ubah bos. Nilai undang-undang untuk bos ialah 2 hingga BC_BASE_MAX. (Lihat
HAD bahagian.) Untuk asas 2 hingga 16, kaedah biasa menulis nombor ialah
digunakan. Untuk tapak yang lebih besar daripada 16, bc menggunakan kaedah digit berbilang aksara bagi
mencetak nombor di mana setiap digit asas yang lebih tinggi dicetak sebagai nombor asas 10.
Digit berbilang aksara dipisahkan oleh ruang. Setiap digit mengandungi nombor
aksara yang diperlukan untuk mewakili nilai sepuluh asas "obase-1". Sejak nombor
adalah ketepatan sewenang-wenangnya, beberapa nombor mungkin tidak boleh dicetak pada satu output
barisan. Nombor panjang ini akan dipecahkan merentas baris menggunakan "\" sebagai yang terakhir
watak pada baris. Bilangan maksimum aksara yang dicetak setiap baris ialah 70. Diperuntukkan
kepada sifat interaktif bc, mencetak nombor menyebabkan kesan sampingan daripada
memberikan nilai yang dicetak kepada pembolehubah khas lepas. Ini membolehkan pengguna untuk
pulihkan nilai terakhir yang dicetak tanpa perlu menaip semula ungkapan yang dicetak
jumlah. Menugaskan kepada lepas adalah sah dan akan menimpa nilai cetakan terakhir
dengan nilai yang ditetapkan. Nilai yang baru diberikan akan kekal sehingga seterusnya
nombor dicetak atau nilai lain diberikan kepada lepas. (Sesetengah pemasangan mungkin
membenarkan penggunaan satu noktah (.) yang bukan sebahagian daripada nombor sebagai jarum pendek
tatatanda untuk untuk lepas.)

rentetan Rentetan dicetak ke output. Rentetan bermula dengan aksara petikan berganda
dan mengandungi semua aksara sehingga aksara petikan berganda seterusnya. Semua watak
diambil secara literal, termasuk mana-mana baris baharu. Tiada aksara baris baharu dicetak selepas itu
rentetan.

cetak senarai
Pernyataan cetakan (sambungan) menyediakan kaedah output yang lain. Senarai"
ialah senarai rentetan dan ungkapan yang dipisahkan dengan koma. Setiap rentetan atau
ungkapan dicetak dalam susunan senarai. Tiada baris baharu yang ditamatkan dicetak.
Ungkapan dinilai dan nilainya dicetak dan diberikan kepada pembolehubah
lepas. Rentetan dalam pernyataan cetakan dicetak ke output dan mungkin mengandungi
watak istimewa. Aksara khas bermula dengan aksara sengkang ke belakang (\).
Watak istimewa yang diiktiraf oleh bc ialah "a" (makluman atau loceng), "b" (ruang belakang),
"f" (suapan borang), "n" (baris baharu), "r" (carriage return), "q" (petikan berganda), "t"
(tab), dan "\" (garis miring ke belakang). Mana-mana watak lain yang mengikuti garis miring ke belakang adalah
diabaikan.

{ senarai_penyata }
Ini adalah pernyataan majmuk. Ia membenarkan berbilang kenyataan dikumpulkan
bersama untuk dilaksanakan.

if ( ungkapan ) pernyataan1 [lagi kenyataan2]
Pernyataan if menilai ungkapan dan melaksanakan pernyataan1 atau pernyataan2
bergantung kepada nilai ungkapan. Jika ungkapan itu bukan sifar,
pernyataan1 dilaksanakan. Jika pernyataan2 hadir dan nilai ungkapan
ialah 0, maka pernyataan2 dilaksanakan. (Fasal lain ialah lanjutan.)

manakala ( ungkapan ) pernyataan
Pernyataan while akan melaksanakan pernyataan manakala ungkapan bukan sifar.
Ia menilai ungkapan sebelum setiap pelaksanaan pernyataan. Penamatan
gelung disebabkan oleh nilai ungkapan sifar atau pelaksanaan pemecahan
kenyataan.

Untuk ( [ungkapan1] ; [ungkapan2] ; [ungkapan3] ) pernyataan
Pernyataan for mengawal pelaksanaan berulang pernyataan. Ungkapan1 ialah
dinilai sebelum gelung. Ungkapan2 dinilai sebelum setiap pelaksanaan
kenyataan. Jika ia bukan sifar, penyata dinilai. Jika ia adalah sifar, gelung
ditamatkan. Selepas setiap pelaksanaan pernyataan, ungkapan3 dinilai
sebelum penilaian semula ungkapan2. Jika ungkapan1 atau ungkapan3 tiada,
tiada apa yang dinilai pada tahap ia akan dinilai. Jika ungkapan2 ialah
hilang, ia adalah sama seperti menggantikan nilai 1 untuk ungkapan2. (Pilihan
ungkapan adalah lanjutan. POSIX bc memerlukan ketiga-tiga ungkapan.) The
berikut adalah kod setara untuk pernyataan for:
ungkapan1;
manakala (ungkapan2) {
kenyataan;
ungkapan3;
}

memecahkan Pernyataan ini menyebabkan keluar paksa pernyataan semasa lampiran terkini atau
untuk kenyataan.

terus
Pernyataan continue (sambungan) menyebabkan lampiran terbaru untuk
pernyataan untuk memulakan lelaran seterusnya.

berhenti Pernyataan berhenti (sambungan) ialah pernyataan yang dilaksanakan yang menyebabkan bc
pemproses untuk berhenti hanya apabila ia dilaksanakan. Contohnya, "jika (0 == 1) berhenti" akan
tidak menyebabkan bc untuk ditamatkan kerana pemberhentian tidak dilaksanakan.

pulangan Kembalikan nilai 0 daripada fungsi. (Lihat bahagian tentang fungsi.)

pulangan (ungkapan)
Kembalikan nilai ungkapan daripada fungsi. (Lihat bahagian pada
fungsi.) Sebagai lanjutan, kurungan tidak diperlukan.

PSEUDO Pernyataan
Kenyataan ini bukanlah kenyataan dalam erti kata tradisional. Mereka tidak dihukum bunuh
kenyataan. Fungsi mereka dilakukan pada masa "kompilasi".

had Cetak had tempatan yang dikuatkuasakan oleh versi tempatan bc. Ini adalah lanjutan.

berhenti Apabila pernyataan berhenti dibaca, bc pemproses ditamatkan, tanpa mengira
di mana pernyataan berhenti ditemui. Sebagai contoh, "jika (0 == 1) berhenti" akan menyebabkan bc
untuk menamatkan.

jaminan
Cetak notis jaminan yang lebih panjang. Ini adalah lanjutan.

FUNGSI
Fungsi menyediakan kaedah mentakrifkan pengiraan yang boleh dilaksanakan kemudian.
Berfungsi dalam bc sentiasa mengira nilai dan mengembalikannya kepada pemanggil. Definisi fungsi
adalah "dinamik" dalam erti kata bahawa fungsi tidak ditentukan sehingga definisi ditemui
dalam input. Takrif itu kemudiannya digunakan sehingga fungsi definisi lain untuk yang sama
nama ditemui. Takrif baharu kemudiannya menggantikan takrifan lama. Satu fungsi
ditakrifkan seperti berikut:
menentukan nama ( parameter ) { baris baru
senarai_auto senarai_penyata }
Panggilan fungsi hanyalah ungkapan bentuk "nama(parameter)".

Parameter ialah nombor atau tatasusunan (sambungan). Dalam definisi fungsi, sifar atau lebih
parameter ditakrifkan dengan menyenaraikan nama mereka dipisahkan dengan koma. Semua parameter adalah
panggilan mengikut parameter nilai. Tatasusunan ditentukan dalam definisi parameter oleh
tatatanda "nama[]". Dalam panggilan fungsi, parameter sebenar ialah ungkapan penuh untuk
parameter nombor. Notasi yang sama digunakan untuk menghantar tatasusunan seperti untuk menentukan tatasusunan
parameter. Tatasusunan yang dinamakan diluluskan oleh nilai kepada fungsi. Sejak fungsi
takrifan adalah dinamik, nombor dan jenis parameter disemak apabila fungsi itu
dipanggil. Sebarang ketidakpadanan dalam bilangan atau jenis parameter akan menyebabkan ralat masa jalan. A
ralat masa jalan juga akan berlaku untuk panggilan ke fungsi yang tidak ditentukan.

. senarai_auto ialah senarai pilihan pembolehubah yang untuk kegunaan "tempatan". Sintaks daripada
senarai automatik (jika ada) ialah "auto nama, ... ;". (Koma bertitik adalah pilihan.) Setiap satu nama
ialah nama pembolehubah auto. Tatasusunan boleh ditentukan dengan menggunakan tatatanda yang sama seperti
digunakan dalam parameter. Pembolehubah ini mempunyai nilai mereka ditolak ke tindanan pada permulaan
fungsinya. Pembolehubah kemudiannya dimulakan kepada sifar dan digunakan sepanjang
pelaksanaan fungsi. Pada keluar fungsi, pembolehubah ini muncul supaya
nilai asal (pada masa panggilan fungsi) pembolehubah ini dipulihkan. The
parameter adalah benar-benar auto pembolehubah yang dimulakan kepada nilai yang disediakan dalam
panggilan fungsi. Pembolehubah automatik adalah berbeza daripada pembolehubah tempatan tradisional kerana jika
fungsi A memanggil fungsi B, B boleh mengakses pembolehubah auto fungsi A dengan hanya menggunakan
nama yang sama, melainkan fungsi B telah memanggilnya pembolehubah automatik. Disebabkan oleh fakta bahawa auto
pembolehubah dan parameter ditolak ke timbunan, bc menyokong fungsi rekursif.

Badan fungsi ialah senarai bc kenyataan. Sekali lagi, kenyataan dipisahkan oleh
koma bertitik atau baris baharu. Kenyataan kembali menyebabkan penamatan fungsi dan
pulangan sesuatu nilai. Terdapat dua versi penyata pulangan. Bentuk pertama,
"pulangan", mengembalikan nilai 0 kepada ungkapan panggilan. Bentuk kedua, "pulangan (
ungkapan )", mengira nilai ungkapan dan mengembalikan nilai itu kepada panggilan
ungkapan. Ada yang tersirat"pulangan (0)" pada akhir setiap fungsi. Ini membolehkan a
berfungsi untuk menamatkan dan mengembalikan 0 tanpa pernyataan pulangan yang jelas.

Fungsi juga mengubah penggunaan pembolehubah asas daripada. Semua pemalar dalam badan fungsi
akan ditukar menggunakan nilai asas daripada pada masa panggilan fungsi. Perubahan daripada
asas daripada akan diabaikan semasa pelaksanaan fungsi kecuali untuk standard
fungsi membaca, yang akan sentiasa menggunakan nilai semasa bagi asas daripada untuk penukaran nombor.

Beberapa sambungan telah ditambahkan pada fungsi. Pertama, format definisi mempunyai
telah santai sedikit. Piawaian memerlukan pendakap pembukaan berada pada baris yang sama dengan
menentukan kata kunci dan semua bahagian lain mestilah pada baris berikut. Versi ini bc akan
benarkan sebarang bilangan baris baharu sebelum dan selepas pendakap pembukaan fungsi. Untuk
contoh, takrifan berikut adalah sah.
define d (n) { return (2*n); }
takrifkan d (n)
{ kembali (2*n); }

Fungsi boleh ditakrifkan sebagai membatalkan. Fungsi void tidak mengembalikan nilai dan oleh itu mungkin tidak
digunakan di mana-mana tempat yang memerlukan nilai. Fungsi lompang tidak menghasilkan sebarang output apabila
dipanggil dengan sendirinya pada baris input. Kata kuncinya membatalkan diletakkan di antara kata kunci
menentukan dan nama fungsi. Sebagai contoh, pertimbangkan sesi berikut.
define py (y) { print "--->", y, "<---", "\n"; }
define void px (x) { print "--->", x, "<---", "\n"; }
py(1)
--->1<---
0
px(1)
--->1<---
Sejak py bukan fungsi kosong, panggilan daripada py(1) mencetak output yang dikehendaki dan kemudian
mencetak baris kedua yang merupakan nilai fungsi. Sejak nilai fungsi
yang tidak diberi penyata pulangan eksplisit adalah sifar, sifar dicetak. Untuk px(1),
tiada sifar dicetak kerana fungsi tersebut adalah fungsi lompang.

Juga, panggilan mengikut pembolehubah untuk tatasusunan telah ditambahkan. Untuk mengisytiharkan panggilan dengan tatasusunan berubah, the
pengisytiharan parameter tatasusunan dalam definisi fungsi kelihatan seperti "*nama[]". The
panggilan ke fungsi tetap sama seperti panggilan mengikut tatasusunan nilai.

MATH PERPUSTAKAAN
If bc adalah dipanggil dengan -l pilihan, perpustakaan matematik dipramuat dan skala lalai ialah
ditetapkan kepada 20. Fungsi matematik akan mengira keputusannya kepada skala yang ditetapkan pada masa itu
panggilan mereka. Perpustakaan matematik mentakrifkan fungsi berikut:

s (x) Sinus bagi x, x adalah dalam radian.

c (x) Kosinus bagi x, x adalah dalam radian.

a (x) Arktangen bagi x, arktangen mengembalikan radian.

l (x) Logaritma asli bagi x.

danx) Fungsi eksponen untuk menaikkan e kepada nilai x.

j (n,x)
Fungsi Bessel bagi susunan integer n bagi x.

CONTOH
In / Bin / sh, yang berikut akan memberikan nilai "pi" kepada pembolehubah shell pi.
pi=$(gema "skala=10; 4*a(1)" | bc -l)

Berikut ialah takrifan fungsi eksponen yang digunakan dalam perpustakaan matematik.
Fungsi ini ditulis dalam POSIX bc.
skala = 20

/* Menggunakan fakta bahawa e^x = (e^(x/2))^2
Apabila x cukup kecil, kami menggunakan siri:
e^x = 1 + x + x^2/2! + x^3/3! + ...
*/

takrifkan e(x) {
auto a, d, e, f, i, m, v, z

/* Semak tanda x. */
jika (x<0) {
m=1
x = -x
}

/* Prasyarat x. */
z = skala;
skala = 4 + z + .44*x;
manakala (x > 1) {
f += 1;
x /= 2;
}

/* Mulakan pembolehubah. */
v = 1+x
a = x
d = 1

untuk (i=2; 1; i++) {
e = (a *= x) / (d *= i)
jika (e == 0) {
jika (f>0) manakala (f--) v = v*v;
skala = z
jika (m) kembali (1/v);
kembali (v/1);
}
v += e
}
}

Berikut ialah kod yang menggunakan ciri lanjutan daripada bc untuk melaksanakan program yang mudah
untuk mengira baki buku cek. Program ini paling baik disimpan dalam fail supaya ia boleh
digunakan berkali-kali tanpa perlu menaip semula pada setiap penggunaan.
skala=2
cetak "\nSemak program buku!\n"
print " Ingat, deposit ialah transaksi negatif.\n"
print " Keluar dengan 0 transaksi.\n\n"

cetak "Baki awal?"; bal = baca ()
bal /= 1
cetak "\n"
manakala (1) {
"baki semasa = "; bal
"transaksi? "; trans = baca()
jika (trans == 0) putus;
bal -= trans
bal /= 1
}
berhenti

Berikut ialah definisi fungsi faktorial rekursif.
takrifkan f (x) {
jika (x <= 1) kembalikan (1);
pulangkan (f(x-1) * x);
}

TALIAN BACA DAN LIBEDIT PILIHAN
GNU bc boleh disusun (melalui pilihan konfigurasi) untuk menggunakan GNU garis baca penyunting input
perpustakaan atau BSD libedit perpustakaan. Ini membolehkan pengguna melakukan penyuntingan baris sebelum ini
menghantar mereka ke bc. Ia juga membenarkan sejarah baris sebelumnya yang ditaip. Apabila ini
pilihan dipilih, bc mempunyai satu lagi pembolehubah istimewa. Pembolehubah khas ini, sejarah is
bilangan baris sejarah yang dikekalkan. Untuk garis baca, nilai -1 bermakna bahawa an
bilangan garis sejarah yang tidak terhad dikekalkan. Menetapkan nilai sejarah kepada
nombor positif mengehadkan bilangan garis sejarah kepada nombor yang diberikan. Nilai 0
melumpuhkan ciri sejarah. Nilai lalai ialah 100. Untuk maklumat lanjut, baca
manual pengguna untuk GNU garis baca, sejarah dan BSD libedit perpustakaan. Seseorang tidak boleh membolehkan
kedua-dua garis baca and libedit pada masa yang sama.

PERBEZAAN
Versi bc telah dilaksanakan daripada draf POSIX P1003.2/D11 dan mengandungi beberapa
perbezaan dan lanjutan berbanding draf dan pelaksanaan tradisional. Ia adalah
tidak dilaksanakan secara tradisional menggunakan dc(1). Versi ini adalah satu proses
yang menghuraikan dan menjalankan terjemahan kod bait program. Terdapat "tidak berdokumen"
pilihan (-c) yang menyebabkan atur cara mengeluarkan kod bait kepada output standard sebaliknya
daripada menjalankannya. Ia digunakan terutamanya untuk menyahpepijat parser dan menyediakan matematik
perpustakaan.

Sumber utama perbezaan ialah sambungan, di mana ciri dilanjutkan untuk menambah lagi
fungsi dan tambahan, di mana ciri baharu ditambah. Berikut adalah senarai
perbezaan dan sambungan.

persekitaran LANG
Versi ini tidak mematuhi piawaian POSIX dalam pemprosesan LANG
pembolehubah persekitaran dan semua pembolehubah persekitaran bermula dengan LC_.

nama Tradisional dan POSIX bc mempunyai nama huruf tunggal untuk fungsi, pembolehubah dan
tatasusunan. Mereka telah diperluaskan menjadi nama berbilang aksara yang bermula dengan a
huruf dan mungkin mengandungi huruf, nombor dan aksara garis bawah.

Rentetan
Rentetan tidak dibenarkan mengandungi aksara NUL. POSIX mengatakan semua aksara mesti
dimasukkan dalam rentetan.

POSIX lepas bc tidak mempunyai lepas pembolehubah. Beberapa pelaksanaan daripada bc gunakan tempoh tersebut
(.) dengan cara yang serupa.

perbandingan
POSIX bc membenarkan perbandingan hanya dalam pernyataan if, pernyataan while, dan
ungkapan kedua bagi pernyataan untuk. Juga, hanya satu operasi hubungan
dibenarkan dalam setiap pernyataan tersebut.

jika pernyataan, klausa lain
POSIX bc tidak mempunyai klausa lain.

untuk penyataan
POSIX bc memerlukan semua ungkapan untuk hadir dalam pernyataan for.

&&, ||, !
POSIX bc tidak mempunyai operator logik.

fungsi baca
POSIX bc tidak mempunyai fungsi baca.

cetak kenyataan
POSIX bc tidak mempunyai penyata cetakan.

teruskan penyataan
POSIX bc tidak mempunyai pernyataan lanjutan.

penyata pemulangan
POSIX bc memerlukan kurungan di sekeliling ungkapan pulangan.

parameter tatasusunan
POSIX bc tidak (pada masa ini) menyokong parameter tatasusunan sepenuhnya. Tatabahasa POSIX
membenarkan tatasusunan dalam definisi fungsi, tetapi tidak menyediakan kaedah untuk ditentukan
tatasusunan sebagai parameter sebenar. (Ini berkemungkinan besar kesilapan dalam
tatabahasa.) Pelaksanaan tradisional bagi bc hanya mempunyai panggilan mengikut tatasusunan nilai
parameter.

format fungsi
POSIX bc memerlukan pendakap pembukaan pada baris yang sama dengan menentukan kata kunci dan
auto pernyataan pada baris berikutnya.

=+, =-, =*, =/, =%, =^
POSIX bc tidak memerlukan pengendali tugasan "gaya lama" ini ditakrifkan.
Versi ini mungkin membenarkan tugasan "gaya lama" ini. Gunakan pernyataan had untuk
lihat sama ada versi yang dipasang menyokongnya. Jika ia menyokong "gaya lama"
pengendali tugasan, pernyataan "a =- 1" akan berkurangan a dengan 1 bukannya
menetapkan a kepada nilai -1.

ruang dalam nombor
Pelaksanaan lain bagi bc benarkan ruang dalam nombor. Sebagai contoh, "x=1 3" akan
berikan nilai 13 kepada pembolehubah x. Pernyataan yang sama akan menyebabkan sintaks
ralat dalam versi ini bc.

kesilapan dan pelaksanaan
Pelaksanaan ini berbeza daripada pelaksanaan lain dari segi kod yang akan menjadi
dilaksanakan apabila sintaks dan ralat lain ditemui dalam atur cara. Jika ralat sintaks
ditemui dalam definisi fungsi, pemulihan ralat cuba mencari permulaan a
pernyataan dan teruskan menghuraikan fungsi. Sebaik sahaja ralat sintaks ditemui dalam
fungsi, fungsi tidak akan boleh dipanggil dan menjadi tidak ditentukan. Ralat sintaks
dalam kod pelaksanaan interaktif akan membatalkan blok pelaksanaan semasa. The
blok pelaksanaan ditamatkan dengan penghujung baris yang muncul selepas selesai
urutan penyataan. Sebagai contoh,
kepada = 1
b = 2
mempunyai dua blok pelaksanaan dan
{ a = 1
b = 2 }
mempunyai satu blok pelaksanaan. Sebarang ralat masa jalan akan menamatkan pelaksanaan semasa
blok pelaksanaan. Amaran masa jalan tidak akan menamatkan blok pelaksanaan semasa.

Mengganggu
Semasa sesi interaktif, isyarat SIGINT (biasanya dihasilkan oleh kawalan-
aksara C dari terminal) akan menyebabkan pelaksanaan blok pelaksanaan semasa
untuk diganggu. Ia akan memaparkan ralat "masa jalan" yang menunjukkan fungsi yang mana
tergendala. Selepas semua struktur masa jalan telah dibersihkan, mesej akan dihantar
dicetak untuk memberitahu pengguna bahawa bc bersedia untuk lebih banyak input. Semua yang ditakrifkan sebelum ini
fungsi kekal ditakrifkan dan nilai semua pembolehubah bukan automatik ialah nilai pada
titik gangguan. Semua pembolehubah automatik dan parameter fungsi dialih keluar
semasa proses pembersihan. Semasa sesi bukan interaktif, isyarat SIGINT
akan menamatkan keseluruhan larian bc.

HAD
Berikut adalah had yang sedia ada untuk ini bc pemproses. Sebahagian daripada mereka mungkin
telah diubah oleh pemasangan. Gunakan pernyataan had untuk melihat nilai sebenar.

BC_BASE_MAX
Pangkalan keluaran maksimum kini ditetapkan pada 999. Pangkalan input maksimum ialah 16.

BC_DIM_MAX
Ini pada masa ini adalah had sewenang-wenangnya sebanyak 65535 seperti yang diedarkan. Pemasangan anda
mungkin berbeza.

BC_SCALE_MAX
Bilangan digit selepas titik perpuluhan dihadkan kepada INT_MAX digit. Juga,
bilangan digit sebelum titik perpuluhan dihadkan kepada INT_MAX digit.

BC_STRING_MAX
Had bilangan aksara dalam rentetan ialah INT_MAX aksara.

eksponen
Nilai eksponen dalam operasi kenaikan (^) adalah terhad kepada LONG_MAX.

nama berubah-ubah
Had semasa pada bilangan nama unik ialah 32767 untuk setiap nama ringkas
pembolehubah, tatasusunan dan fungsi.

PERSEKITARAN PELBAGAI


Pembolehubah persekitaran berikut diproses oleh bc:

POSIXLY_BETUL
Ini adalah sama dengan -s pilihan.

BC_ENV_ARGS
Ini adalah satu lagi mekanisme untuk mendapatkan hujah bc. Formatnya sama dengan
hujah baris arahan. Argumen ini diproses terlebih dahulu, jadi mana-mana fail disenaraikan
argumen dalam persekitaran diproses sebelum sebarang fail argumen baris arahan.
Ini membolehkan pengguna menyediakan pilihan "standard" dan fail untuk diproses
setiap seruan bc. Fail dalam pembolehubah persekitaran lazimnya
mengandungi definisi fungsi untuk fungsi yang pengguna mahu ditakrifkan setiap kali bc is
berjalan.

BC_LINE_LENGTH
Ini mestilah integer yang menyatakan bilangan aksara dalam baris keluaran untuk
nombor. Ini termasuk aksara sengkang ke belakang dan baris baharu untuk nombor panjang. Sebagai
sambungan, nilai sifar melumpuhkan ciri berbilang baris. Mana-mana nilai lain
pembolehubah ini yang kurang daripada 3 menetapkan panjang garis kepada 70.

DIAGNOSTIK


Jika mana-mana fail pada baris arahan tidak boleh dibuka, bc akan melaporkan bahawa fail tersebut adalah
tidak tersedia dan ditamatkan. Juga, terdapat menyusun dan menjalankan diagnostik masa yang sepatutnya
menjadi jelas.

Gunakan bc dalam talian menggunakan perkhidmatan onworks.net


Pelayan & Stesen Kerja Percuma

Muat turun apl Windows & Linux

  • 1
    Pemuat but Clover EFI
    Pemuat but Clover EFI
    Projek telah berpindah ke
    https://github.com/CloverHackyColor/CloverBootloader..
    Ciri:Buat macOS, Windows dan Linux
    dalam UEFI atau mod lama pada Mac atau PC dengan
    UE...
    Muat turun pemuat but Clover EFI
  • 2
    unitedrpms
    unitedrpms
    Sertai kami dalam Gitter!
    https://gitter.im/unitedrpms-people/Lobby
    Dayakan repositori URPMS dalam anda
    sistem -
    https://github.com/UnitedRPMs/unitedrpms.github.io/bl...
    Muat turun unitedrpms
  • 3
    Meningkatkan Perpustakaan C ++
    Meningkatkan Perpustakaan C ++
    Boost menyediakan mudah alih percuma
    perpustakaan C++ semakan rakan sebaya. The
    penekanan adalah pada perpustakaan mudah alih yang
    berfungsi dengan baik dengan Perpustakaan Standard C++.
    Lihat http://www.bo...
    Muat turun Perpustakaan Boost C++
  • 4
    VirtualGL
    VirtualGL
    VirtualGL mengubah hala arahan 3D daripada a
    Aplikasi OpenGL Unix/Linux ke a
    GPU sebelah pelayan dan menukarkan
    memberikan imej 3D ke dalam aliran video
    dengan yang...
    Muat turun VirtualGL
  • 5
    libusb
    libusb
    Perpustakaan untuk membolehkan ruang pengguna
    program aplikasi untuk berkomunikasi
    Peranti USB. Khalayak: Pembangun, Tamat
    Pengguna/Desktop. Bahasa Pengaturcaraan: C.
    kategori...
    Muat turun libusb
  • 6
    SWIG
    SWIG
    SWIG ialah alat pembangunan perisian
    yang menghubungkan atur cara yang ditulis dalam C dan
    C++ dengan pelbagai peringkat tinggi
    bahasa pengaturcaraan. SWIG digunakan dengan
    berbeza...
    Muat turun SWIG
  • Lebih »

Arahan Linux

Ad