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: 129.186 ]
Por: Renan Birck Pinheiro em 21/05/2006 | Blog: http://renanbirck.rocks
Alguns exemplos
Definição recursiva do fatorial:
#!/usr/bin/bc -l
define f (x) {
if (x <= 1) return (1);
return (f(x-1) * x);
}
Solução da equação do 2o grau
(Como o bc força o retorno de apenas um valor por função, criamos
2 funções para retornar as 2 raízes da equação):
#!/usr/bin/bc -l
define delta(a,b,c) { return b^2 - 4*a*c }
define eq2grau(a,b,c) {
auto d;
d = delta(a,b,c);
if (d<0) halt;
if (d>=0) {
return (-b + sqrt(d))/(2*a);
}
}
define eq2grau2(a,b,c) {
d = delta(a,b,c);
if (d<0) halt;
if (d==0) return eq2grau(a,b,c);
if (d>0) {
return (-b - sqrt(d))/(2*a);
}
}
Programa que pede uma lista de valores e depois calcula a média:
#!/usr/bin/bc -l
contagem=0;
print "Digite valores, terminando a lista com zero.
"
ultvalor = read()
while (ultvalor != 0) {
ultvalor = read()
dados += ultvalor
contagem += 1
}
print "Foram digitados "
print contagem
print " dados.
"
print " A média é de "
print dados/contagem
print "
"
quit
Como pode ser notado, a sintaxe é muito parecida com a da linguagem C.
Quem conhece C não terá dificuldade em operar o 'bc'.
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
A tecla mágica SysRQ
SIMH: Recriando um pouco da história
Utilizando o X-Deep32 para rodar programas Linux em máquina Windows
MySQL + Amarok: dupla poderosa
Leitura recomendada
Software Manivela VS Software Modinha
Como fazer o seu servidor Linux enviar avisos em seu celular Claro sem custo
Monitorando redes e servidores com Nagios
Exclusivo - Entrevista com Fábio Berbert, criador e mantenedor do projeto Viva o Linux!
Como se comunicar com outros usuários da rede
Comentários
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!
Parabéns, muito bom esse artigo.
Mensagem
Parabéns, muito bom esse artigo.
Ótimo! Artigo nota 10, cara!
Linguagenzinha poderosa hein ?! Excelente para aplicações matemáticas!
Obrigado pelo artigo, realmente ficou excelente!
Abraços!
Mensagem
Ótimo! Artigo nota 10, cara!
Linguagenzinha poderosa hein ?! Excelente para aplicações matemáticas!
Obrigado pelo artigo, realmente ficou excelente!
Abraços!
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
Mensagem
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
Parabéns, o artigo mostra muitas curiosidades do bc. Vai ser bom como referência. Té mais. ;D
Mensagem
Parabéns, o artigo mostra muitas curiosidades do bc. Vai ser bom como referência. Té mais. ;D
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.
Mensagem
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.
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.
Mensagem
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.
Ótimo artigo. Muito bom mesmo.
Valeu!
Mensagem
Ótimo artigo. Muito bom mesmo.
Valeu!
Não posso definir este artigo de outra forma que não seja: MARAVILHOSO.
Mensagem
Não posso definir este artigo de outra forma que não seja: MARAVILHOSO.
Legal!Nem sabia que existia isso no ubuntu!
Mensagem
Legal!Nem sabia que existia isso no ubuntu!
Nossa, deu pra entender de uma vez , agora meu shell passou a ser mais útil
Mensagem
Nossa, deu pra entender de uma vez , agora meu shell passou a ser mais útil
Contribuir com comentário
Enviar