27 – Lógica de Programação – Funções
Lógica de Programação – Funções
No tutorial anterior aprendemos o que são subrotinas e como usar Procedimentos em Lógica de Programação. Neste artigo continuar nosso estudo de subrotinas dando ênfase às Funções.
Uma função é uma subrotina que executa uma tarefa, como o procedimento, porém retornando um resultado ao chamador.
Podemos declarar uma função em português estruturado da seguinte forma:
funcao nome-da-funcao (parâmetros) : tipo_retorno Declarações Internas inicio Comandos fimfuncao
Instrução retorne
A instrução retorne finaliza a execução da função e retorna o valor resultante ao chamador. O controle é retornado ao ponto no qual o procedimento foi chamado.
Vamos ver um exemplo de criação de uma função.
Exemplo de Função
Vamos criar uma função de exemplo que calcule o cubo de um número fornecido pelo usuário:
funcao cubo(x:inteiro) : inteiro var resultado : inteiro inicio resultado <- x * x * x retorne resultado fimfuncao
Chamando a função
Vejamos agora como usar a função criada em um programa:
var n,res : inteiro funcao cubo(x:inteiro) : inteiro var resultado : inteiro inicio resultado <- x * x * x retorne resultado fimfuncao inicio escreval("Digite um número para calcular seu cubo:") leia(n) res <- cubo(n) escreval("O cubo calculado é ", res) fimalgoritmo
Reaproveitando uma função
Vamos ver agora como podemos reaproveitar a função criada, efetuando diversas chamadas a ela para calcular os cubos dos números de 1 até 10.
Para isso criaremos um laço para e chamaremos a função dentro dele, 10 vezes.
var i,res : inteiro funcao cubo(x:inteiro) : inteiro var resultado : inteiro inicio resultado <- x * x * x retorne resultado fimfuncao inicio para i de 1 ate 10 faca res <- cubo(i) escreval("O cubo de ", i, " é ", res) fimpara
Funções internas
A maioria das linguagens de programação possui diversas funções pré-programadas que podemos utilizar em nossos programas.
Veja alguns exemplos de funções matemáticas presentes no simulador VisualG:
Função | Descrição |
---|---|
Abs (valor : real) : real | Valor absoluto |
Cos (valor : real) : real | Cosseno |
Exp (base, expoente) | Exponenciação |
Int (valor : real) : inteiro | Converter valor em inteiro |
Log (valor : real) : real | Logaritmo base 10 |
Raizq (valor : real) : real | Raiz quadrada |
Exemplo de uso de funções pré-programadas
Calculando o log base 10 de um número qualquer – função log(). Veja que por se tratar de uma função interna, não é necessário declará-la (criá-la):
var logaritmo, numero : real inicio escreval("Digite um número para calcular seu logaritmo:") leia(numero) logaritmo <- log(numero) escreval("O log do numero digitado é ", logaritmo) fimalgoritmo
Boas práticas para uso de subrotinas
- Familiarize-se com o conjunto de funções e procedimentos da linguagem que você usará
- Separe as definições de funções e procedimentos no código por uma linha em branco
- Procure não usar os mesmos nomes de argumentos que a subrotina usa e nomes de variáveis passadas à subrotina
- Sempre escolha nomes de subrotinas e parâmetros que possuam significado condizente
É isso aí! Assista agora ao vídeo da Bóson Treinamentos para ver a explicação sobre Funções em Lógica de Programação:
Vai postar mais vídeos?
Estou no aguardo =)
Sim Yuri, logo mais teremos novos vídeos de Lógica de Programação e outros conteúdos. Abraço!
preciso resolver esses dois algoritmos em visualg:
Algoritmo 1: Faça um algoritmo que solicite a digitação da idade e do sexo de uma pessoa (o sexo deve ser F ou M) e depois pergunte se o usuário deseja informar uma nova pessoa. Esse processo deve se repetir até que o usuário informe que não deseja mais informar novas pessoas. Quando isso acontecer, o algoritmo deve imprimir na tela a quantidade de pessoas do sexo masculino informadas, a quantidade de pessoas do sexo feminino informadas, a média das idades informadas para pessoas de sexo masculino e a média das idades informadas para pessoas de sexo feminino.
Algoritmo 2: Faça um algoritmo que fique em laço (repetição) solicitando a digitação do estado civil (S para solteiro, C para Casado, V para viúvo ou D para Divorciado) e da idade de pessoas. O algoritmo só deve parar de solicitar a digitação de dados de novas pessoas quando for informado um estado civil inválido (diferente de S, C, V e D) ou uma idade inválida (idade menor que 0). Quando isso acontecer, devem ser exibidas as quantidades de pessoas de cada estado civil e a respectiva média de idade de acordo com o estado civil. A condição de repetição deste laço é um pouco mais complexa, você deverá montar uma expressão lógica usando os operadores lógicos E ou OU.
se puderem me ajudar …. desde ja obrigado