Calculadora com funções básicas
Publicado por Sandro Marcell 25/10/2007
[ Hits: 6.810 ]
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
Script em Tcl para descompactar arquivos
Crivo de Eratóstenes Simples em Tcl (sem Tk)
Nenhum comentário foi encontrado.
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
converter algoritmo C++ em C? (1)
Programa fora de escala na tela do pc (22)
Problemas com Driver NVIDIA (1)
Fedora KDE plasma 42 X Módulo de segurança BB (Warsaw-2) (1)









