Escolar Documentos
Profissional Documentos
Cultura Documentos
Funções e Procedimentos
1
SUBPROGRAMAS
• Também chamados de subalgoritmos
• São trechos de algoritmos que efetuam um ou mais cálculos
determinados
• Ao invés de escrever um código grande, pode-se escrever vários
algoritmos menores (Modularização)
• Em conjunto, resolvem o problema proposto
• É conveniente utilizá-los quando uma tarefa é efetuada em
diversos lugares no mesmo algoritmo
• Ao invés de escrever um trecho diversas vezes, escreve-se um
subalgoritmo e chama-o diversas vezes
2
SUBPROGRAMAS
3
SUBPROGRAMAS
• Subprograma é um programa que auxilia o programa principal
através da realização de uma determinada subtarefa (sub-rotina,
procedimento, método ou módulo)
• Cada subprograma, além de ter acesso às variáveis do programa
que o chamou (são as variáveis globais), podem ter suas
próprias variáveis (são as variáveis locais), que existem apenas
durante sua chamada).
• Ao se chamar um subprograma, também é possível passa-lhe
determinadas informações que recebem o nome de parâmetros
(são valores que, na linha de chamada, ficam entre os parênteses
e que estão separados por virgulas).
4
Funções
• Uma função é um bloco de comandos que tem por objetivo
retornar um valor ou uma informação
• A chamada de uma função é feita através da citação do seu nome
seguido, opcionalmente, de seus argumentos iniciais entre
parênteses
• As funções podem ser predefinidas pela linguagem ou criadas
pelo programador
5
Declaração de Funções
• Função – é um subprograma que retorna um valor
• Para declararmos um vetor utilizaremos a seguinte sintaxe
(VisuAlg):
fimfuncao
6
Funções
• Funções predefinidas
− A linguagem do Visualg possui diversas funções predefinidas que podem
ser usadas na construção de algoritmos
• Exemplo 1: Criar um algoritmo que calcule o valor da raiz
quadrada de um número.
− O Visualg possui uma função predefinida que recebe como parâmetro
uma variável (do tipo real) e retorna um valor (também do tipo real)
referente à raiz quadrada do número.
7
Funções
• Funções predefinidas
− Como utilizar
Chamada da função
passando a variável
número (do tipo
real) como
parâmetro da função
Raizq
8
Funções
• Funções predefinidas
− Como utilizar
Atribuindo à variável
raiz (do tipo real) o
retorno da função
Raizq
9
Funções
• Funções predefinidas
− A linguagem do Visualg possui diversas funções predefinidas que podem
ser usadas na construção de algoritmos
• Exemplo 2:: Criar um algoritmo que, dada uma palavra qualquer,
informe ao usuário quantas letras essa palavra possui.
− O Visualg possui uma função predefinida que recebe como parâmetro
uma variável (tipo caractere) e retorna um valor (inteiro) correspondente
à quantidade de caracteres existentes
10
Funções
• Funções predefinidas
− Como utilizar
Chamada da função
passando a variável
palavra (do tipo real)
como parâmetro da
função Compr
11
Funções
• Lista das Funções Predefinidas do Visualg
− Funções numéricas, algébricas e trigonométricas
12
Funções
• Lista das Funções Predefinidas do Visualg
− Funções numéricas, algébricas e trigonométricas
13
Criando Funções
• A criação de uma função deve ser realizada dentro da seção de
variáveis
• Esse tipo de subalgoritmo sempre retorna apenas um valor para o
algoritmo que o chamou
• As funções possuem um tipo de retorno associado
• Uma função pode possui 0, 1 ou mais parâmetros
• Sintaxe:
14
Criando Funções
• Sintaxe da função
15
Criando Funções
• Variáveis Locais:
− Declaradas dentro dos subalgoritmos (funções ou procedimentos)
− Podem ser usadas APENAS dentro das funções
− O algoritmo que chamou a função/procedimento não tem acesso à estas
funções
• Variáveis Globais
− São variáveis declaradas na seção var do algoritmo.
− Qualquer função/procedimento pode alterar o valor ou utilizá-la durante
o seu processamento.
16
Criando Funções
• Exemplo 1: Criar uma função para calcular o dobro de um
número passado como parâmetro
Variáveis Globais
Tipo de Retorno
Nome da Função
Declaração de Funções
Declaração de
Variáveis Locais
Comandos
17
Criando Funções
18
Criando Funções
19
Criando Funções
• As funções podem
não possuir
parâmetros.
20
Exemplo - Função
• Em visualg, as funções são declarados da seguinte forma:
algoritmo "Equacao_do_Segundo_Grau" delta := calcula_delta()
var SE ( delta < 0 ) ENTAO
a, b, c, delta, x1, x2: REAL ESCREVA ("Esta equação não possui
raízes reais.")
funcao calcula_delta(): REAL SENAO
var SE (delta = 0) ENTAO
delta : REAL x1 := (-b + RAIZQ(delta)) / (2*a)
inicio ESCREVA ("Esta equação possui
delta := b*b - 4*a*c apenas uma raiz: ", x1)
RETORNE delta SENAO
fimfuncao x1 := (-b + RAIZQ(delta)) / (2*a)
inicio x2 := (-b - RAIZQ(delta)) / (2*a)
ESCREVA ("Informe o valor de A: ") ESCREVA ("Esta equação possui
LEIA (a) duas raízes: ", x1, " e ", x2)
ESCREVA ("Informe o valor de B: ") FIMSE
LEIA (b) FIMSE
ESCREVA ("Informe o valor de C: ") Fimalgoritmo
LEIA (c)
21
Local de Implementação
Inicio
<sequencia de comando>
finalgorimtmo
22
Procedimentos
23
Procedimento
• Procedimentos – é um subprograma que não retorna nenhum
valor.
• Em Visualg, os procedimentos diferem das funções apenas por
não retornarem valor nenhum
• A sintaxe utilizada na criação de procedimentos é:
24
Procedimentos
Passagem de Parâmetros
• Parâmetros são canais por onde os dados são transferidos pelo
algoritmo chamador a um subalgoritmo.
− Parâmetros Formais são os nomes simbólicos usados na definição dos
parâmetros de um subalgoritmo.
25
Procedimentos
26
Procedimentos
27
Passagem por Valor
28
Procedimentos
29
Passagem por referência
30
Passagem por referência
31
Procedimentos
VARIÁVEIS LOCAIS E GLOBAIS
• As variáveis locais são visíveis apenas dentro dos
subalgoritmo que as criou
• Já as variáveis globais são visíveis tanto no algoritmo
principal como nos subalgoritmos
− Por esse motivo, é importante que as
funções/procedimentos sejam declarados na seção var
após a declaração das variáveis globais
• É importante não criar variáveis locais e globais com o
mesmo nome para evitar ambiguidades
32
Procedimentos
33
Procedimentos
34
Procedimentos
35
Procedimentos
Variáveis locais e globais
• O Visualg ainda não permite a passagem de Vetores e Matrizes
como parâmetros de subalgoritmos
• Para criar subalgoritmos que precisam de vetores e matrizes,
utilize variáveis globais
36
Procedimentos
37
Procedimento
• Exemplo 1: Crie um procedimento que receba um valor como
parâmetro e escreva o dobro desse número.
38
Procedimento
• Exemplo 1: Crie um procedimento que receba um valor como
parâmetro e escreva o dobro desse número.
É feita apenas a
chamada do
procedimento, sem
precisar atribuir a
nenhuma variável.
39
Procedimento
• Exemplo 2: Crie um procedimento que receba um número como
parâmetro e escreva a tabuada desse número.
É feita apenas a
chamada do
procedimento, sem
precisar atribuir a
nenhuma variável.
40
Exemplo - Função
• O que será impresso no programa ao lado?
algoritmo "Soma" inicio
var exibir()
n1, n2: real escreva("Digite 1 número: ")
//----------------------------------------- leia(n1)
funcao soma(a, b: real): real escreva("Digite 2 número: ")
var leia(n2)
soma1 : real escreva("Soma: ", soma(n1, n2))
inicio fimalgoritmo
soma1 := a + b
retorne soma1
fimfuncao
//------------------------------------------
procedimento exibir ()
inicio
escreval("Operação de soma
digite dois numeros")
fimprocedimento
//------------------------------------------ 41
Exemplo - Procedimento
• Em visualg, os procedimentos são declarados da seguinte forma:
algoritmo "Procedimento"
var
x, n1, n2: inteiro
procedimento lerDados( )
inicio
n1 := 10
n2 := 20
x := n1 + n2
escreval("x1: ", x)
fimprocedimento
inicio
lerDados()
//escreval("x2: ", x)
fimalgoritmo
42
Exercício
1. Criar um algoritmo que possa entrar com três números e, para
cada um, imprimir o dobro. Usar função que retorne valor.
2. Criar um algoritmo que receba notas de três provas e calcular a
média, mas utilizando uma função.
3. Fazer um procedimento para calcular o fatorial de um número
45
46
Exemplo
inicio
num1 <- 10
num2 <- 20
fimprocedimento
inicio
lerDados(n1, n2)
fimalgoritmo
47