Buscar

Aula09_2013.2

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 25 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

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 6, do total de 25 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

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 9, do total de 25 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

Prof. Wellington Franco
Sub-Rotinas:Funções e Procedimentos
SUB-ROTINA
 Sub-rotina
 Subprograma que auxilia o programa principal
através da realização de uma determinada sub.
 São chamados dentro do corpo do programa principal
como se fossem comandos.
 Onde são descritos os subprogramas:
 Após a declaração das variáveis e antes do corpo do
programa principal.
PARÂMETROS
 Parâmetros são informações passadas aos
subprogramas (são valores que, na linha de
chamada, ficam entre os parênteses e que estão
separados por vírgulas).
 A quantidade de parâmetros após a sua
declaração não pode ser alterada, bem como sua
sequência e respectivos tipos.
VARIÁVEIS GLOBAIS E LOCAIS
 Variável Global: são as variáveis declaradas no 
início do algoritmo principal de um programa.
 Pode ser usada por qualquer sub-rotina subordinada 
ao algoritmo principal. Pode ser usada por qualquer 
sub-rotina subordinada ao algoritmo principal.
 Modo como usamos as variáveis até agora.
 Variável Local:
 Declarada dentro de uma sub-rotina e só é válida 
dentro da própria rotina.
 Após o final de cada execução da sub-rotina, as 
variáveis locais são destruídas.
 Proporciona um ganho em espaço em memória, torna 
o programa mais eficiente.
TIPOS DE SUB-ROTINAS
 Veremos a seguir 2 tipos de subprogramas:
 Procedimentos
 Não retorna resultado
 Funções
 Retornam um resultado
PROCEDIMENTOS
 Bloco de programa
 Contém início e fim
 Identificado por um nome, através do qual será referenciado
em todo o programa principal.
 Quando uma sub-rotina é chamada por um programa, ela
é executada e ao seu término, continuando a execução na
linha posterior a chamada da sub-rotina.
 No VisuAlg, procedimento é um subprograma que não
retorna nenhum valor.
 Declaração:
 Deve estar entre o final da declaração de variáveis e a linha
inicio do programa principal.
PROCEDIMENTO – DECLARAÇÃO E SINTAXE
procedimento <nome-de-procedimento> 
[(<sequência-de-declarações-de-parâmetros>)]
var
// Seção de declarações de variáveis locais
inicio
// Seção de Comandos
fimprocedimento
FUNÇÕES
 Função é um subprograma que retorna um valor.
 Semelhante aos procedimentos, diferenciando-se pela
declaração do tipo de dado de retorno.
funcao <nome-de-função>
[(<sequência-de-declarações-de-parâmetros>)]:
<tipo-de-dado>
// Seção de Declarações Internas
inicio
// Seção de Comandos
fimfuncao
SINTAXE - DESCRIÇÃO
 <nome-de-procedimento/função>
 Obedece as mesmas regras de nomenclatura das variáveis.
 <sequência-de-declarações-de-parâmetros>
 Sequência de [var] <sequência-de-parâmetros>: <tipo-de-dado>
separadas por ponto e vírgula.
 A presença (opcional) da palavra-chave var indica passagem de
parâmetros por referência; caso contrário, a passagem será por valor.
 <sequência-de-parâmetros>
 É uma sequência de nomes de parâmetros (também obedecem a mesma
regra de nomenclatura de variáveis) separados por vírgulas.
 <tipo-de-dado>
 É o tipo de dado que será retornado ao final da execução da função.
EXEMPLO – FUNÇÃO SOMA
Soma sem parâmetros e sem variáveis locais
EXEMPLO – FUNÇÃO SOMA – DECLARANDO
VARIÁVEL LOCAL
PASSAGEM DE PARÂMETROS POR VALOR
 O subprograma simplesmente recebe um valor que utiliza
durante sua execução.
 Semelhante aos procedimentos, diferenciando-se pela
declaração do tipo de dado de retorno. Durante essa
execução, os parâmetros passados por valor são análogos
às suas variáveis locais, mas com uma única diferença,
receberam um valor inicial no momento em que o
subprograma foi chamado.
 Assim qualquer mudança ocorrida na variável local
existente dentro da sub-rotina não afetará o valor do
parâmetro passado, ficando o resultado obtido “preso”
dentro da sub-rotina.
EXEMPLO – FUNÇÃO SOMA – PASSAGEM
POR VALOR
PASSAGEM DE PARÂMETROS POR REFERÊNCIA
 Na passagem por referência, o subprograma não
recebe apenas um valor, mas sim o endereço de
uma variável global.
 Qualquer modificação que for realizada no
conteúdo deste parâmetro afetará também a
variável global que está associada a ele.
 Voltando ao exemplo da soma, o procedimento
abaixo realiza a mesma tarefa utilizando
passagem de parâmetros por referência:
EXEMPLO –PROCEDIMENTO SOMA –
PASSAGEM POR REFERENCIA
procedimento soma (x,y: inteiro; var result: inteiro)
inicio
result <- x + y
fimprocedimento
No programa principal deve haver os seguintes 
comandos:
n <- 4
m <- -9
soma(n,m,res)
escreva(res)
PASSAGEM DE PARÂMETROS POR
REFERÊNCIA
 Ocorre com a entrada de um tipo de dado e a saída 
dele numa certa sub-rotina. 
 Assim qualquer mudança ocorrida na variável
local existente dentro da sub-rotina afetará o valor
do parâmetro passado por referência, pois a
alteração efetuada é devolvida para a rotina
chamadora.
PROGRAMA CALCULADORA
 Menu de seleções:
 1 – Adição
 2- Subtração
 3-Multiplicação
 4-Divisão
 Fim do programa
 Ao selecionar uma opção, a rotina correspondente 
será executada, ao escolher opção 5, o programa será 
encerrado.
ADIÇÃO
SUBTRAÇÃO
MULTIPLICAÇÃO
DIVISÃO
DUVIDAS?
EXERCÍCIOS
 Crie uma função que receba um inteiro e retorne o dobro de
um número;
 Crie uma função que receba horas, minutos e segundos e
retorne o tempo total em segundos.
REFERÊNCIAS
 http://dietinf.ifrn.edu.br/lib/exe/fetch.php?media=cor
podocente:papaiz:04-tipos_de_dados_basicos.pdf
 http://www3.di.uminho.pt/~jfc/ensino/SebentaLEP/n
ode12.html
 http://pt.wikipedia.org/wiki/Tipo_de_dado

Outros materiais