function mensagemDeBomDia()
println("Tenha um bom dia!")
end
mensagemDeBomDia (generic function with 1 method)
Objetivo: Começar a entender como funcionam as funções em uma linguagem de programação
Na aula passada já vimos umas funções e isso foi bem natural, foram elas:
typeof() - Dado um parâmetro devolve o seu tipo. Variáveis estão associadas a tipos;
div() - Dados dois parâmetros devolve a divisão inteira do primeiro pelo segundo;
print() e println() - Dados diversos parâmetros os imprime, sem devolver nada.
Inclusive, aqui vale a pena ver que podemos pedir ajuda ao Julia para saber o que fazem as funções. Para isso, se usa o ? antes da função:
?typeof()
?div()
?print()
Ao fazer isso, inclusive descobrimos que o div() pode ser usado também como .
Uma outra função bem útil é a que permite transformar um tipo de valor em outro.
parse(Float64, "32")
Para conversão de valores em ponto flutuante para inteiros, temos a função trunc.
trunc(Int64, 2.25)
De forma inversa temos o float.
float(2)
Finalmente, podemos transformar um valor em uma string, como em:
string(3)
ou
string(3.57)
Também tem muitas funções matemáticas prontas como
Função | Descrição |
---|---|
sin(x) |
Calcula o seno de ( x ) em radianos |
cos(x) |
Calcula o cosseno de ( x ) em radianos |
tan(x) |
Calcula a tangente de ( x ) em radianos |
deg2rad(x) |
Converte ( x ) de graus em radianos |
rad2deg(x) |
Converte ( x ) de radianos em graus |
log(x) |
Calcula o logaritmo natural de ( x ) |
log(b, x) |
Calcula o logaritmo de ( x ) na base ( b ) |
log2(x) |
Calcula o logaritmo de ( x ) na base 2 |
log10(x) |
Calcula o logaritmo de ( x ) na base 10 |
exp(x) |
Calcula o expoente da base natural de ( x ) |
abs(x) |
Calcula o módulo de ( x ) |
sqrt(x) |
Calcula a raiz quadrada de ( x ) |
cbrt(x) |
Calcula a raiz cúbica de ( x ) |
factorial(x) |
Calcula o fatorial de ( x ) |
A melhor forma de se acostumar a usar as funções é fazendo contas e verificando os resultados. Uma dica importante é que para funções mais complexas, pode ser que já existam funções prontas em Julia. Para isso uma busca com as palavras chave. Um exemplo a seguir para procurar a função para o cálculo de seno hiperbólico: “julia lang hiperbolic sin”. A busca pelo termo em inglês é uma boa dica para buscas em geral.
Em julia também é possível criar funções conforme as suas necessidades, como abaixo:
function mensagemDeBomDia()
println("Tenha um bom dia!")
end
mensagemDeBomDia (generic function with 1 method)
Para usar uma função, basta chamá-la:
MensagemDeBomDia()
Funções, podem receber um ou mais parâmetros:
function imprime(a)
println(" Vou imprimir ", a)
end
imprime(42)
Vou imprimir 42
Também é possível que uma função chame outra função como em:
function imprimeduasvezes(a)
imprime(a)
imprime(a)
end
imprimeduasvezes(13)
Vou imprimir 13
Vou imprimir 13
Mais ainda, também é possível diferenciar funções por meio da quantidade de parâmetros.
function recebe(a)
println("Recebi um parametro: ", a)
end
function recebe(a, b)
println("Recebi dois parametros: ", a, " ", b)
end
recebe (generic function with 2 methods)
Conforme a chamada, a função chamada será diferente:
recebe(1)
recebe(1, 2)
Também dá para chamar funções com variáveis e com operações, como em:
a = 10
recebe(a)
recebe(a, a + 1)
As funções que vimos até agora imprimem mensagens, mas não devolvem nada. O typeof() delas é nothing, ou seja, algo que não pode ser atribuído.
Mas, também é possível fazer funções que devolvem valores, como:
function soma1(a)
return a + 1
end
Nesse caso, se for passado um parâmetro numérico, a função devolverá o valor incrementado (adicionado de 1).
Claro que isso pode ser usado com fórmulas mais complicadas como:
function hipotenusa(a, b)
= a * a + b * b
hip return hip
end
hipotenusa (generic function with 1 method)
Exercício: Faça uma função para encontrar o de uma equação de segundo grau