bc(1p)

Från Wiki.linux.se -Linux wikipedia på Svenska.
Version från den 25 april 2026 kl. 11.20 av Admin (diskussion | bidrag) (→‎ALTERNATIV)
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till navigering Hoppa till sök

NAMN

bc — aritmetikspråk med godtycklig precision

SYNOPSIS

bc [-l] [fil...]

BESKRIVNING

Verktyget bc implementerar en kalkylator med godtycklig precision. Det läser indata från angivna filer och därefter från standard in.

Om både standard in och standard ut är kopplade till en terminal anses bc köras interaktivt, vilket påverkar beteendet (t.ex. direkt utskrift av resultat).

ALTERNATIV

-l
(Litet L.) Definierar matematiska funktioner och sätter variabeln

scale till 20 istället för standardvärdet 0.

OPERANDER

fil
Sökväg till en textfil som innehåller bc-programkod. Efter att alla
 filer har lästs fortsätter bc att läsa från standard in.

INDATAFILER

Indatafiler ska vara textfiler som innehåller kommentarer, satser och funktionsdefinitioner som exekveras i den ordning de läses.

UTDATA

Utdatan styrs av programmet och består av noll eller fler rader med värden från uttryck som exekveras utan tilldelning.

Radix (bas) och precision styrs av variablerna:

  • obase — utmatningsbas
  • scale — antal decimaler

UTÖKAD BESKRIVNING

Grundidé

bc är ett tolkat språk som liknar ett enkelt programmeringsspråk (snarlikt C i syntax, men inte kompatibelt).

Det stödjer:

  • variabler
  • arrayer (endimensionella)
  • funktioner
  • loopar och villkor
  • godtycklig numerisk precision

Viktiga variabler

scale
Antal decimaler i beräkningar (standard: 0)
ibase
Indatabas (2–16, standard: 10)
obase
Utdatabas (2–{BC_BASE_MAX}, standard: 10)

Operatorer (förenklad prioritet)

| Operatorer | Associativitet | |------------------|----------------| | ++, -- | – | | unary - | – | | ^ | höger | | *, /, % | vänster | | +, - | vänster | | =, +=, ... | höger |

Exempel på uttryck

5 + 3
2^10
scale = 5
10 / 3

Funktioner

Funktioner definieras så här:

define f(x) {
    return(x * x)
}

Anrop:

f(5)

Inbyggda funktioner (-l)

När -l används finns bl.a.:

s(x)
sinus
c(x)
cosinus
a(x)
arctan
l(x)
naturlig logaritm
e(x)
exponentialfunktion
j(n, x)
Besselfunktion

Kontrollstrukturer

if
if (x > 0) x
while
while (x < 10) {
    x++
}
for
for (i = 0; i < 10; i++) {
    i
}

Kommentarer

/* detta är en kommentar */

EXIT STATUS

0
Alla filer behandlades korrekt
annars
Fel (ej specificerat exakt värde)

FELHANTERING

  • Om en fil inte kan öppnas avslutas programmet direkt
  • Interaktivt läge: fel skrivs ut och tolkningen fortsätter
  • I icke-interaktivt läge: beteendet är odefinierat vid fel

ANVÄNDNING

bc används ofta för:

  • avancerade beräkningar i shell-script
  • högprecision (t.ex. finansiella beräkningar)
  • matematiska experiment

EXEMPEL

Enkel beräkning

echo "2 + 2" | bc

Decimalprecision

echo "scale=5; 10/3" | bc

π-approximation

echo "scale=10; 104348/33215" | bc

Funktion

define square(x) {
    return(x * x)
}

square(6)

ANMÄRKNINGAR

  • bc använder alltid punkt (.) som decimaltecken, oavsett locale
  • Exit-status är inte tillförlitlig för felkontroll
  • Språket liknar C men är inte kompatibelt

SE ÄVEN

awk(1p), printf(1p)

COPYRIGHT

Delar av denna dokumentation är baserade på IEEE Std 1003.1-2017 (POSIX). Originalstandarden är den auktoritativa referensen.

Sidslut

Orginalhemsidan på Engelska https://man7.org/linux/man-pages/man1/bc.1p.html Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till PC Service som har sponsrat Linux.se med webbhotell.