Un limbaj de calculare cu precizie arbitrara

Sintaxa
bc optiune fisier…

Options:
-h, –help
Afiseaza manuall de ajutor

-i, –interactive
Impune modul interactiv

-l, –mathlib
Defineste libraria matematica standard

-w, –warn
Ofera avertismente pentru extensiile catre POSIX bc

-s, –standard
Proceseaza exact limbajul POSIX bc

-q, –quiet
Nu afiseaza in bc mesajul de intampinare implicit GNU

-v, –version
Afiseaza versiunea si drepturile de autor.

bc este un limbaj ce suporta numere de precizie arbitrara cu executie interactiva. bc porneste prin procesarea codului tuturor fisierelor listate in linia de comanda. Dupa ce toate fisierele sunt procesate, ‘bc’ citeste din intrarea implicita. Toate codurile sunt executate si cititie (daca un fisier contine o comanda pentru a opri procesorul, ‘bc’ nu va citi niciodata din intrarea implicita).

Cea mai utilizata functie a ‘bc’ este intr-un script shell, folosind un document ‘here’ pentru a trece detaliile in ‘bc’.

Exemplu de script shell:

#!/bin/bash
# bcsample – Un exemplu de calcule cu bc
if [ $# != 1 ]
then
echo “Este necesar un argument numeric”
exit
fi

bc «END-OF-INPUT
scale=6
/* mai intai definim functia */
define myfunc(x){
return(sqrt(x) + 10);
}

/* apoi utilizam functia pentru a face calculul*/
x=$1
“Processing”;x;” result is “;myfunc(x)
quit
END-OF-INPUT

echo “(in 6 locatii decimale)”
Rulam scriptul de deasupra cu:

$ chmod a+x bcsample
$ ./bcsample 125

Functiile standard suportate de bc:

length ( expresie )
Valoarea functiei length este numarul de cifre semnificative din expresie.

read ( )
Citeste un numar din intrarea implicita, indiferent de unde apare functia. Atentie, poate cauza probleme cu amestecarea datelor din program si intrarea implicita. Cel mai bine se foloseste intr-un program scris anterior ce necesita interventia utilizatorului, dar nu permite niciodata codului sa fie modificat de utilizator.

scale ( expression )
Numarul de cifre dupa o expresie cu un punct decimal.

sqrt ( expression )
Radacina patrata a expresiei.

Majoritatea exppresiilor matematice suporta binenteles si: + _ / * % ^

++ var
Incrementeaza variabila dupa un set de noi valori ca si rezultat al expresiei.

var ++
Rezultatul expresii e noua valoare a variabilei si variabila este incrementata cate una.

— var
Decrementeaza variabila dupa un set de noi valori ca si rezultat al expresiei.

var —
Rezultatul expresii e noua valoare a variabilei si variabila este decrementata cate una.

( expr )
Parantezele modifica precedarea implicita pentru a forta evaluarea unei expresii.

var = expr
Variabila ‘var’ este asociata valorii expresiei.

Comentarii
/* Comentarii in interiorul liniilor */
# O singura linie de comentariu. Sfarsitul liniei nu face parte din comentariu si e procesat normal.