Convertendo escalas termométricas
Publicado por Sandro Marcell 19/07/2007
[ Hits: 7.599 ]
Homepage: http://sanmarcell.wordpress.com
Estava um dia sem nada pra fazer, aí resolvi escrever este simples script que converte escalas termométricas (Celsius, Fahrenheit e Kelvin).
Não tem muita utilidade, mas dá pra brincar...
Falou!!!
#!/usr/bin/tcl
#
# Convertendo escalas termométricas.
#
# Sandro Marcell (sandro_marcell@yahoo.com.br)
#
# Boa Vista - Roraima, 30/06/2007.
# Utilizando o script:
proc Uso {argv0} {
puts stderr "\nUso: [file tail $argv0] -c|f|k \[número\]
Onde:
-c Converte Celsius para Fahrenheit e Kelvin
-f Converte Fahrenheit para Celsius e Kelvin
-k Converte Kelvin para Celsius e Fahrenheit\n"
}
# Função que testa parâmetros:
proc Testa_prm {argv} {
if {[llength $argv] == 0 || [llength $argv] > 1} {
puts stderr "\n\a-> Strings com espaços não são válidas!\n"
exit
}
}
# Informando erro:
variable ERRO "\n\a-> Erro de entrada/saída.\n"
# Checando parâmetros:
if {$argc == 0} {
Uso $argv0
exit
}
# Capturando opção:
set OPC [lvarpop argv 0]
# Testando opção capturada:
switch -- $OPC {
-c {
# Chamando a função que testa parâmetros:
Testa_prm $argv
# Se não houver erros, iniciam-se os cálculos:
if {[catch {set CF [expr $argv*9/5+32]}] != 1} {
set CK [expr $argv*5/5+273]
# Mostrando resultando:
puts stdout "\n$argv\C° equivale(em) a\
$CF\F° na escala Fahrenheit e\
$CK\K° na escala Kelvin.\n"
exit
} else {
# Se os cálculos falharem, está mensagem é mostrada:
puts stderr $ERRO
exit
}
}
-f {
Testa_prm $argv
if {[catch {set FC [expr ($argv-32)/9*5]}] != 1} {
set FK [expr ($argv-32)/9*5+273]
puts stdout "\n$argv\F° equivale(em) a\
$FC\C° na escala Celsius e\
$FK\K° na escala Kelvin.\n"
exit
} else {
puts stderr $ERRO
exit
}
}
-k {
Testa_prm $argv
if {[catch {set KC [expr ($argv-273)/5*5]}] != 1} {
set KF [expr ($argv-273)/5*9+32]
puts stdout "\n$argv\K° equivale(em) a\
$KC\C° na escala Celsius e\
$KF\F° na escala Fahrenheit.\n"
exit
} else {
puts stderr $ERRO
exit
}
}
default {
Uso $argv0
exit
}
}
# Fim
Simples visualizador de arquivos texto
Criando uma simples lixeira para o usuário [Melhorado]
Compactando arquivos e diretórios simultâneamente
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Jogar games da Battle.net no Linux com Faugus Launcher
Como fazer a Instalação de aplicativos para acesso remoto ao Linux
Como fazer a instalação do Samba
Como fazer a conversão binária e aplicar as restrições no Linux
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (19)
Formas seguras de instalar Debian Sid (13)
Malware encontrado em extensões do Firefox. (0)
Fiz uma pergunta no fórum mas não consigo localizar [RESOLVIDO] (21)









