Buscar

Funções em Algoritmos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

4ºAula
Funções
Objetivos de aprendizagem
Ao término desta aula, vocês serão capazes de: 
• saber como implementar funções em um algoritmo;
• entender as diferenças entre funções e procedimentos.
Continuando nossos estudos sobre a modularização, veremos nesta aula 
as funções, que possui algumas diferenças em relação aos procedimentos, 
que você estudou na aula anterior. Lembre-se que as ferramentas disponíveis 
no ambiente virtual sempre estarão a sua disposição se precisar.
Boa leitura.
Bons estudos!
20Algoritmos II
Seções de estudo
1 - Conhecendo Funções
1 - Conhecendo Funções
Você estudou na aula anterior os procedimentos, que 
é uma forma de implementar módulos em um algoritmo. 
Também aprendeu sobre como funciona os parâmetros, que 
é uma forma de comunicação entre o bloco chamador e o 
procedimento, consistindo em uma passagem de valores no 
início da execução do procedimento.
Mas vocês, estimados(as) alunos(as), devem estar se 
perguntando: Existe uma forma de comunicação em que o 
procedimento entrega um valor ao bloco chamador?
A resposta para esta pergunta é SIM. Mas o nome para 
estes módulos que devolvem valores no fim da execução 
muda. Eles se chamam funções.
Funções são módulos que, quando avaliados dentro de uma 
expressão, retornam obrigatoriamente um valor à expressão. 
(VENANCIO, 2000, p. 46).
Por esse motivo, quando uma função é encerrada, o 
bloco chamador é retomado na mesma linha da declaração da 
função (não na próxima, como ocorre em um procedimento) 
para que seja recebido o valor devolvido pela função.
Em termos de funcionamento, essa é a única coisa que 
muda. Um procedimento não retorna um valor no fim da 
sua execução, enquanto que uma função sempre vai retornar 
um valor. O restante que vimos sobre o funcionamento de 
procedimentos se aplica as funções da mesma forma.
Em termos de declaração, as funções têm mais diferenças 
do que os procedimentos. Vejamos a seguir como é declarada 
uma função em algoritmo:
funcao <nome>(<parâmetros>): <tipo de dado>
var
 <variáveis>
inicio
 <instruções a serem executadas>
 retorne(<valor a ser retornado>)
fim
 Percebemos aqui algumas diferenças, que listamos a 
seguir:
• Obviamente, o nome procedimento é trocado para 
função;
• Após a declaração dos parâmetros, temos a 
declaração do tipo de dado que será retornado por esta 
função, representado pelo espaço <tipo de dado>;
• Por último, devemos retornar algum valor. Para isso, 
usamos a instrução retorne(), com a especificação do valor a 
ser passado ao bloco chamador. O dado que será passado 
nesta instrução deve ser do mesmo tipo que foi definido em 
<tipo de dado>.
Como uma função retorna valores, podemos usar os 
valores retornados por essas funções em atribuições, em 
expressões e até mesmo em testes condicionais. Veremos sobre 
eles nos próximos exemplos.
Exemplo 8: escreva um algoritmo que leia um valor de 
um salário de um funcionário da empresa. Após isso, calcule e 
mostre o valor corrigido do salário, de acordo com a seguinte 
tabela:
Salário Reajuste
Até R$ 1000,00 10%
Maior que R$ 1000,00 e menor que R$ 2000,00 8%
Maior igual que R$ 2000,00 6%
A definição e o cálculo do porcentual a ser corrigido do 
salário devem ser por uma função.
algoritmo “Reajuste”
//função que reajusta o salário
funcao REAJUSTAR(salario : real) : booleano
var
 salarioNovo : real
inicio
se salario <= 1000.00 entao
 //a porcentagem é definida em partes de 100
 //assim, para aplicarmos o reajuste, vamos multiplicar o 
salário pela sua porcentagem, para que possamos verificar o quanto irá 
aumentar. Depois somamos com o salario.
 salarioNovo <- salario + (salario * (10/100))
 senão
 se salario > 1000.00 E salario < 2000.00 entao
 salarioNovo <- salario + (salario * (8/100))
 senao
 salarioNovo <- salario + (salario * (6/100))
 fimse
 fimse
 retorne(salarioNovo)
fim
var
 salarioAntigo, salarioNovo : real
inicio
 escreva(“Digite o salário antigo:”)
 leia(salarioAntigo)
 //Observe aqui a atribuição que fizemos a variável salarioNovo 
através do resultado da função
 salarioNovo <- REAJUSTAR(salarioAntigo)
 escreva(“Seu salário novo é de R$: ”, salarioNovo)
fimalgoritmo
Perceba que usamos o resultado do reajuste calculado 
como valor da variável salarioNovo. Vamos continuar com os 
nossos exemplos.
Exemplo 9: escreva um algoritmo que leia um valor de um 
salário de um funcionário da empresa, da mesma tabela que 
o exemplo anterior. A diferença é que a função deve retornar 
o valor da porcentagem a ser aplicado ao salário, passando o 
trabalho de calcular o novo salário ao programa principal.
algoritmo “Reajuste”
//função que reajusta o salário
função PORCENTAGEM_AUMENTO(salario:real) : real
21
inicio
se salario <= 1000.00 entao
 //10% = 10/100
 retorne(0.1)
 senao
 se salario > 1000.00 E salario < 2000.00 entao
//8% = 8/100
 retorne(0.08)
 senao
//6% = 6/100
 retorne(0.06)
 fimse
 fimse
fim
var
 salarioAntigo, salarioNovo : real
inicio
 escreva(“Digite o salário antigo:”)
 leia(salarioAntigo)
 salarioNovo <- salarioAntigo + (salarioAntigo * PORCENTAGEM_
AUMENTO(salarioAntigo))
 escreva(“Seu salário novo é de R$: ”, salarioNovo)
fimalgoritmo
Aqui nesse exemplo, a função determina qual será a 
porcentagem de reajuste de um salário. Assim, colocamos a 
chamada da função como parte da expressão que calcula o 
salário no bloco principal.
Nesse exemplo, perceba que na função há várias instruções 
de retorno na mesma função. Nesse caso, a função encerra 
quando atinge a primeira instrução de retorno que for 
executada. Assim, se o salário for menor igual a R$ 1000,00, a 
função já encerrará após o primeiro teste condicional. Mas, se o 
salário for maior que R$ 2000,00, a função encerrará na terceira 
instrução de retorno.
No próximo exemplo, veremos como usar funções em 
testes condicionais.
Exemplo 10: Escreva um algoritmo que após ler o nome 
da pessoa e sua idade, verifique se é uma pessoa maior de idade 
ou não. A verificação de maioridade deve ser implementada 
por meio de uma função e deve retornar um valor verdadeiro 
ou falso.
algoritmo “Teste_se_é_maior”
funcao EHMAIOR(idade : inteiro) : booleano
inicio
 se idade >= 18 entao
 retorne(.VERDADEIRO.)
 senao
 retorne(.FALSO.)
 fimse
fim
var
 nome : caractere, idade : inteiro
inicio
 escreva(“Digite seu nome:”)
 leia(nome)
 escreva(“Digite sua idade:”)
 leia(idade)
 se EHMAIOR(idade) = .VERDADEIRO. entao
 escreva(nome, “ é maior de idade.”)
 senao
 escreva(nome, “ ainda não é maior de idade.”)
 fimse
fimalgoritmo
Aqui vemos o uso do valor de uma função para uma 
avaliação condicional. Ela retorna um valor VERDADEIRO 
ou FALSO que indica se uma pessoa é maior de idade ou 
não. Esse valor é avaliado em uma instrução se, para que o 
programa possa imprimir se uma pessoa é maior de idade ou 
não.
Quando usamos funções ou procedimentos as variáveis 
podem ser diferentes escopos. Veremos sobre eles a seguir.
Retomando a aula
Chegamos ao final da nossa aula sobre funções. 
Vamos rever os pontos importantes?
1 – Conhecendo Funções
Uma função é um módulo em algoritmo, onde ao final 
da sua execução obrigatoriamente, deve retornar um valor ao 
bloco chamador. Na sua declaração, deve ser indicado qual o 
tipo do dado a ser retornado. Pela sua natureza, as funções 
podem ser usadas em expressões, em atribuições e em testes 
lógicos.
MANZANO, José Augusto N. G.; OLIVEIRA, Jayr 
Figueiredo de Oliveira. Algoritmos - lógica para desenvolvimento 
de programação. 2. ed. São Paulo: Érica, 2014.
VENANCIO, Claudio Ferreira. Desenvolvimento de 
Algoritmos: Uma Nova Abordagem. São Paulo: Érica, 2000.
FARRER, Harry; et. al. Algoritmos Estruturados. 3. ed. 
São Paulo: LTC, 1999.
Vale a pena
Vale a pena ler
22Algoritmos II
Valea pena acessar
VARELA, Marcelo. Os Procedimentos (Procedures) 
e Funções (Functions). Imasters, 2002. Disponível em: 
<https://imasters.com.br/artigo/345/linguagens/os-
procedimentos-procedures-e-funcoes-functions?trace=151
9021197&source=single> . Acesso em: 20 out. 2007.
SILVA, Elaine Quintino. Aprendendo a programar: 
procedimentos e funções. GlobalCoders, 2010. Disponível 
em: <http://blog.globalcode.com.br/2010/06/aprendendo-
programar-procedimentos-e.html>. Acesso em: 20 out. 2017.
Minhas anotações

Continue navegando