Category:Bc

From Rosetta Code
Language
Bc
This programming language may be used to instruct a computer to perform a task.
Execution method: Interpreted
Type checking: Static
See Also:


Listed below are all of the tasks on Rosetta Code which have been solved using Bc.
Your Help Needed
If you know Bc, please write code for some of the tasks not implemented in Bc.

bc ("basic calculator") is the standard calculator for Unix systems.
bc boasts unlimited precision, to handle numbers with very many digits.
With the bc language, you can write programs that perform numeric calculations and print the results.

See also 

bc has an interactive mode, which is convenient for brief calculations:

$ bc
2 + 3
5
2 ^ 200
1606938044258990275541962092341162602522202993782792835301376
i = -5
3 - i * 4
23
obase = 2
i
-101
ibase = 16
FE80
1111111010000000

Division and sqrt will not give an infinite number of digits.
The special variable scale controls when to stop.

$ bc
65.9 / 3
21
scale = 6
65.9 / 3
21.966666
sqrt(2)
1.414213
scale = 60
sqrt(2)
1.414213562373095048801688724209698078569671875376948073176679

bc language resembles C language: bc has most of the same operators and control structures ('if', 'while', 'for').
Expressions print themselves, unless they are assignments.
The newline is a statement separator, like the semicolon.

bc has excellent numeric operations, but is a poor language. The original bc, the "Bell Calculator" of Unix V7, translated the program to dc and inherited the limitations of dc.

  • Names of variables, and custom functions, may have only one letter.
  • There is no 'else' branch of an 'if' statement.
  • Relational operators (== <= => != < >) only work in the condition of an 'if', 'while' or 'for' statement.
  • There are no boolean operators (! && ||).

Some newer implementations, like GNU bc and OpenBSD bc, discard these silly limitations, but users can still feel their effects.
OpenBSD says, "a = b < c is interpreted as "(a = b) < c, which is probably not what the programmer intended," and "!a < b is interpreted as !(a < b)".

bc can only print a string, and has no other string operations, so bc cannot do tasks like reverse a string.
bc has no way to read user input, except to go to interactive mode after loading a program.

Subcategories

This category has the following 3 subcategories, out of 3 total.

Pages in category "Bc"

The following 81 pages are in this category, out of 81 total.