Calculadora com funções básicas
Publicado por Sandro Marcell 25/10/2007
[ Hits: 6.914 ]
Homepage: http://sanmarcell.wordpress.com
Calculadora tosca com as funções básicas: adição, subtração, multiplicação e divisão.
#!/usr/bin/tcl
#
# Simples calculadora com funções básicas. (Versão Tcl)
#
# Sandro Marcell (sandro_marcell@yahoo.com.br)
#
# Os operadores válidos são:
# (+) adição
# (-) subtração
# (.) multiplicação
# (/) divisão
# Checando parâmetros:
if {$argc != 3} {
puts stderr "Uso: [file tail $argv0] VALOR1 OPERADOR VALOR2
\r(Ex.: [file tail $argv0] 6 + 1)
\rOperadores válidos:
(+) Adição
(-) Subtração
(.) Multiplicação
(/) Divisão"
exit 1
}
# Fatiando opções:
set VLR1 [lindex $argv 0]
set OP [lindex $argv 1]
set VLR2 [lindex $argv 2]
# Checando valores:
if {[regexp {[^-0-9.0-9]} $VLR1] != 0} {
puts stderr "\[$VLR1\] Valor inválido."
exit 1
} elseif {[regexp {[^-0-9.0-9]} $VLR2] != 0} {
puts stderr "\[$VLR2\] Valor inválido."
exit 1
}
# Se ocorrerem erros:
proc tclx_errorHandler {AVISO} {
puts stderr "\a-> Erro de entrada/saída"
}
# Iniciando cálculos:
switch -- $OP {
# Adição:
"+" {
# Calculando...
set RST [expr ($VLR1 + $VLR2)]
puts stdout "Resultado: $RST"
}
# Subtração:
"-" {
set RST [expr ($VLR1 - $VLR2)]
puts stdout "Resultado: $RST"
}
# Multiplicação:
"." {
set RST [expr ($VLR1 * $VLR2)]
puts stdout "Resultado: $RST"
}
# Divisão:
"/" {
set RST [expr ($VLR1 / $VLR2)]
puts stdout "Resultado: $RST"
}
default {
puts stderr "\[$OP\] Operador inválido.
\rOperadores válidos:
(+) Adição
(-) Subtração
(.) Multiplicação
(/) Divisão"
}
}
# Fim
Corretagem 0.1 - calcula corretagem padrão de operações da Bovespa
Nenhum comentário foi encontrado.
Trabalhando Nativamente com Logs no Linux
Jogando Daikatana (Steam) com Patch 1.3 via Luxtorpeda no Linux
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Apagar Todo o Histórico do Terminal
Linux Mint: Zram + Swapfile em Btrfs
Após todos esses anos... youtube! (5)
Internet não funciona corretamente no Linux (3)
Pendrive do Ubuntu 24.04 travando ao tentar fazer a instalação dual bo... (4)









