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.

[ Hits: 130.155 ]

Por: Renan Birck Pinheiro em 21/05/2006 | Blog: http://renanbirck.rocks


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.

Página anterior     Próxima página

Páginas do artigo
   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
Outros artigos deste autor

SIMH: Recriando um pouco da história

A tecla mágica SysRQ

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

MySQL + Amarok: dupla poderosa

Leitura recomendada

SliTaz: pequeno, rápido, estável e fácil de utilizar!

Editor de textos / IDE Geany

Salada mista de Linux

Entendendo os números binários

Software Livre - Migração concluída

  
Comentários
[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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts