Pular para o conteúdo

BC: A sua calculadora programável no Linux

Você já pensou em automatizar operações de cálculo? Em fazer um script onde você possa definir funções, constantes e outros? O bc pode ser a solução. Nesse tutorial, veremos como escrever programas simples com ele.
Renan Birck Pinheiro Century_Child
Hits: 134.073 Categoria: Linux Subcategoria: Miscelânea
  • Indicar
  • Impressora
  • Denunciar

Parte 2: Conhecendo o bc (modo interativo)

Para chamar o bc, basta digitar numa janela de terminal, 'bc'. Para fazer um cálculo, basta digitar a expressão e dar ENTER.

Operações definidas:
  • Adição, subtração, multiplicação, divisão.
  • % (resto da divisão)
  • ^ (potenciação)
  • sqrt(x) (raiz quadrada de x)
  • last (último resultado)

Para sair, basta dar 'quit'.

$ bc
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
300*500
150000
last + 500
150500
last - 1600
148900
last / 20
7445
last^4
3072265955400625
sqrt(last)
55428025
2/3
0
quit

Você pode estar pensando, depois desse último resultado (2/3 = 0?), "Epa! Alguma coisa está errada!".

Calma, não se desespere. Você precisa carregar o bc com o parâmetro '-l', que ativa uma biblioteca de operações matemáticas.

$ bc -l
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
2/3
.66666666666666666666
3/5
.60000000000000000000
33/4589259837593
.00000000000719070202
3125886/2592375832
.00120579969980216973

Agora, como podemos ver, temos o resultado em decimais. Porém, o cálculo com decimais é impreciso depois de algumas casas.

Pequena curiosidade: o comando 'quit' é executado assim que ele é encontrado. Portanto, algo como:

if (0==1) quit

mesmo 0==1 sendo impossível, vai fazer o 'bc' sair.

Tome cuidado com isso.

   1. Introdução
   2. Conhecendo o bc (modo interativo)
   3. Conhecendo os comandos matemáticos do bc
   4. Construindo funções
   5. Curiosidade: números grandes
   6. O bc como uma linguagem de programação
   7. Conceitos para a criação de pequenos programas com o bc
   8. Alguns exemplos
   9. bc e shell scripts

Utilizando o X-Deep32 para rodar programas Linux em máquina Windows

MySQL + Amarok: dupla poderosa

SIMH: Recriando um pouco da história

A tecla mágica SysRQ

FwLogWatch - Analisando Registros do IPtables

Asterisk e Asterisk GUI - Instalação e Configuração no Debian Squeeze

Atualizando do Slackware 9 para 10.0

Monitorando redes e servidores com Nagios

Fish - Um shell fácil de usar

#1 Comentário enviado por fernandoiury em 21/05/2006 - 08:23h
Excelente, meus parabéns cara.. o artigo ficou ótimo!!
Nem imaginava que o bc era isso tudo!

abração, parabens mais uma vez e obrigado pela contribuição!
#2 Comentário enviado por leonardoamorim em 21/05/2006 - 12:29h
Parabéns, muito bom esse artigo.
#3 Comentário enviado por hlegius em 21/05/2006 - 12:31h
Ótimo! Artigo nota 10, cara!
Linguagenzinha poderosa hein ?! Excelente para aplicações matemáticas!

Obrigado pelo artigo, realmente ficou excelente!
Abraços!
#4 Comentário enviado por allanhc em 21/05/2006 - 12:45h
Muito bom artigo mesmo viu. Muito bem explicado. E o assunto realmente muito util.

Conhecia por alto mas nunca usava, agora vou criar um define.bc ao meu gosto e vou até usar-lo.

Parabéns
Abraços
#5 Comentário enviado por PCMasterPB em 21/05/2006 - 13:57h
Parabéns, o artigo mostra muitas curiosidades do bc. Vai ser bom como referência. Té mais. ;D
#6 Comentário enviado por Century_Child em 21/05/2006 - 19:33h
Uma coisinha que ficou de fora do artigo: vocês podem colocar, no .bashrc, uma linha tipo 'alias bc=~/defines.bc', para facilitar a vida de vocês.
#7 Comentário enviado por tenchi em 02/04/2007 - 10:01h
Kra, muito bom esse artigo.
Muito poderosa essa ferramenta. Eu já usava ela para coisas mais simples, inclusive coisas aprendidas neste artigo, mas só agora estou comentando.
Quanto à deficiencia da linguagem pela falta do goto, eh uma benção que a linguagem não tenha esse comando ...... ;-)

Excelente artigo, já está em favoritos.
#8 Comentário enviado por kabalido em 15/04/2008 - 12:52h
Ótimo artigo. Muito bom mesmo.
Valeu!
#9 Comentário enviado por Lael em 18/06/2008 - 17:39h
hasusausuahsu
#10 Comentário enviado por crimelordz em 30/10/2011 - 00:37h
Não posso definir este artigo de outra forma que não seja: MARAVILHOSO.
#11 Comentário enviado por removido em 27/12/2014 - 22:44h
Legal!Nem sabia que existia isso no ubuntu!
#12 Comentário enviado por karson em 14/06/2017 - 06:23h
Nossa, deu pra entender de uma vez , agora meu shell passou a ser mais útil

Contribuir com comentário

Entre na sua conta para comentar.