3290 registros
3 hoje
8 nesta semana
25 neste mês![]() | 72% | Brasil (34919) |
![]() | 5% | Portugal (2180) |
![]() | 4% | EUA (1696) |
![]() | 0% | Holanda (234) |
![]() | 0% | Rússia (203) |
| Hoje: | 1224 |
| Ontem: | 2653 |
| No mês: | 22360 |
| Mês passado: | 25815 |
| Total: | 48175 |
| Recorde: | 3037 |
| No dia: | 04.03.10 |
| Leituras hoje: | 7653 |
| Leituras Total: | 210281 |
| Bots hoje: | 183 |
| Dados desde: | 16.02.2010 |
|
Sex 21 Nov 2008 13:00 |
|
|
Neste tutorial serão mostradas algumas das funções da linguagem Perl próprias para cálculos técnicos e científicos. Também serão vistas algumas funções que tratam de datas e horas. Convenções para Valores NuméricosOs valores numéricos não apresentam uma notação especial, apenas é preciso utilizar o ponto (e não a vírgula) como separador de decimais. Deste modo, o valor de Pi é anotado como 3.1416 (e não como 3,1416). Para valores muito altos ou muito baixos, assim como para valores decimais complexos, existem algumas possibilidades de notação. Exemplos: $a = 1E1; $b = 1.2345E4; $c = 2e-3; Com e ou E define-se a quantidade de zeros que devem ficar após o número anotado. No primeiro exemplo, E1 significa um zero, ou seja, o número multiplicado (valor positivo) por 10. Temos então 1 x 10 = 10. No segundo exemplo, E4 significa quatro zeros, ou seja, o número multiplicado (valor positivo) por 10000. Temos então 1.2345 x 10000 = 12345. No terceiro exemplo, e-3 significa três zeros, ou seja, o número dividido (valor negativo) por 1000. Temos então 2 / 1000 = 0.002 Cálculos Técnicos e CientíficosA Perl oferece funções para as funções matemáticas superiores mais importantes. Exemplos: #!/usr/bin/perl $ValorAbsoluto = abs(-45683); print "O valor absoluto de -45683 é ", $ValorAbsoluto, "\n"; $Raiz = sqrt(23876); print "A raiz quadrada de 23876 é ", $Raiz, "\n"; $Inteiro = int(sqrt(3298476)); print "O inteiro da raiz quadrada de 3298476 é ", $Inteiro, "\n"; $Exp = exp(39); print "A potenciação de 39 na base e é ", $Exp, "\n"; $Log = log(23); print "O logaritmo natural na base e de 23 é ", $Log, "\n"; $Seno = sin(1.2387); $Coseno = cos(10.237); $ArcoTangente = atan2(1.389,2.438); print "O seno de 1.2387 é ", $Seno, "\n"; print "O co-seno de 10.237 é ", $Coseno, "\n"; print "O arco tangente de 1.389/2.438 é ", $ArcoTangente, "\n"; @ValorHex = (10,20,30,40,50,60,70,80,90,A0,B0,C0,D0,E0,F0); for(@ValorHex) { $ValorDecimal = hex($_); print $_, " é a decimal ", $ValorDecimal, "\n"; } Com a função abs obtém-se o valor positivo de qualquer número. Passa-se o número como parâmetro e a função retorna o valor absoluto. A função sqrt calcula a raiz quadrada de um número passado como parâmetro e retona o resultado. Com a função int extrai-se a porção inteira de um número, ou seja, de 3.1416 a função retorna 3. No exemplo acima é possível observar como se pode passar uma função como parâmetro para outra função: a função int extrai o valor inteiro do resultado de retorno da função que calcula a raiz quadrada. A função exp retorna a constante e potenciada. A potência desejada é o parâmetro necessário para a função retornar o valor calculado. A função log calcula o logaritmo natural na base e de um número passado como parâmetro. Como funções trigonométricas, Perl oferece sin para o seno, cos para o cosseno e atan2 para o arco tangente. Como parâmetro, é enviado o número desejado. Arco tangente espera por dois valores: de e até. As funções retornam o valor calculado. É claro que, além de usar estas funções, pode-se efetuar cálculos matemáticos com os operadores matemáticos. Para converter valores hexadecimais em decimais, pode-se utilizar a função hex. Passa-se um valor hexadecimal (dígitos de 0 a 9 e letras de A a F) como parâmetro e a função retorna o valor decimal correspondente. Data e Hora#!/usr/bin/perl $Agora = time(); $HoraLocal = localtime($Agora); &EmPortugues; @Tempo = split(/ +/,$HoraLocal); @Hora = split(/:/,$Tempo[3]); print "Boa Tarde!\n"; print "Hoje é ",$Tempo[0],", o ",$Tempo[2],". ",$Tempo[1]," ",$Tempo[4],"\n"; print "Agora são ",$Hora[0],":",$Hora[1]," horas\n"; sub EmPortugues { $HoraLocal =~ s/Mon/Segunda/; $HoraLocal =~ s/Tue/Terça/; $HoraLocal =~ s/Wed/Quarta/; $HoraLocal =~ s/Thu/Quinta/; $HoraLocal =~ s/Fri/Sexta/; $HoraLocal =~ s/Sat/Sábado/; $HoraLocal =~ s/Sun/Domingo/; $HoraLocal =~ s/Jan/Janeiro/; $HoraLocal =~ s/Feb/Fevereiro/; $HoraLocal =~ s/Mar/Março/; $HoraLocal =~ s/Apr/Abril/; $HoraLocal =~ s/May/Maio/; $HoraLocal =~ s/Jun/Junho/; $HoraLocal =~ s/Jul/Julho/; $HoraLocal =~ s/Aug/Agosto/; $HoraLocal =~ s/Sep/Setembro/; $HoraLocal =~ s/Oct/Outubro/; $HoraLocal =~ s/Nov/Novembro/; $HoraLocal =~ s/Dec/Dezembro/; } O exemplo acima obtém e processa uma data e hora, retornando o resultado formatado em Português. Com a chamada da função time obtém-se a data e hora atuais. Esta função retorna, como é comum em Unix/Linux ou C, o número de milisegundos que decorreram desde 1.1.1970 até o presente momento. Este número tem um valor um tanto alto que não diz muita coisa, porém é muito exato. No exemplo dado este valor é atribuído à escalar $Agora, a base para a chamada da função localtime. Esta função aguarda como parâmetro um número, que ela interpreta como sendo o número de milisegundos decorridos desde 1.1.1970. A função processa o parâmetro e gera uma string que contém a data e a hora em formato internacional, por exemplo, Sun Aug 27 15:01:12 2000. Esta string é atribuída na escalar $HoraLocal. A seguir, a subrotina EmPortugues é chamada. Esta subrotina substitui todas as abreviações internacionais de dias da semana e meses por nomes em Português. Os elementos da data e da hora em $HoraLocal estão separados por espaço, delimitador utilizado na diretiva @Tempo = split(/ /,$HoraLocal); para atribuir a cada elemento desta lista os valores dia, mês, ano, etc. Um destes elementos, o $Tempo[3], contém a hora. A hora é composta por horas, minutos e segundos separados por dois pontos. Esta cadeia de caracteres também tem seus componentes separados através da diretiva @Hora = split(/:/,$Tempo[3]); e os respectivos valores são atribuídos à lista @Hora. Com todos os componentes isolados em elementos de listas, o comando print pode ser utilizado com facilidade para mostrar o resultado obtido. |
| Última atualização ( Sáb, 22.11.2008 12:46 ) |