Convertendo escalas termométricas
Publicado por Sandro Marcell 19/07/2007
[ Hits: 7.376 ]
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
Compactando arquivos e diretórios simultâneamente
Simples visualizador de arquivos texto
Compactando / descompactando arquivos (Melhorado)
Criando uma simples lixeira para o usuário [Melhorado]
Nenhum comentário foi encontrado.
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Jogando com Proton no LInux (0)
Ingress NGINX Controller CVSS base score of 9.8 (4)
Impossível corrigir problemas, você manteve (hold) pacotes quebrados. (2)