Buscar

Algoritmos2_Aula3-Parametrizacao_Escopo

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

PARAMETRIZAÇÃO E ESCOPO
Algoritmos II
Prof. Thiago Meirelles Ventura
UFMT – IC – 2012/2
Lembrando: sintaxe
Procedimento
Função
Procedimento nomeProcedimento( param1: inteiro, param2: real )
Var
 i: inteiro;
Início
 ...
Fim
Função nomeFunção( param1: inteiro, param2: real ): literal
Var
 aux: literal;
Início
 ...
 retorna aux;
Fim
Lembrando: chamada de métodos
Algoritmo ExemploMetodos
Var
 ...
Início
 ...
 ...
 metodo1();
 ...
 ...
 ...
 ...
 ...
 metodo2();
 ...
 ...
 ...
 ...
 ...
Fim
Procedimento metodo1
Início
 ...
Fim
Procedimento metodo2
Início
 ...
Fim
Lembrando: uso de parâmetros
Algoritmo MetodoComParametros
Var
 a: inteiro;
Início
 leia(a);
 metodoComParametro(a);
 metodoComParametro(3);
Fim
Procedimento metodoComParametro( param: inteiro )
Var
 i: inteiro;
Início
 para i <- 1 até param faça
 escreva(i);
 fim para
Fim
Parâmetros formais e reais
Algoritmo DiferancasDeParametros
Var
 k: inteiro;
Início
 leia(k);
 doisParametros ( k, 7 );
Fim
Procedimento doisParametros ( i: inteiro, j: real )
Início
 se i < 10 então
 j = j + 2;
 senão
 j = 0;
 fimse
 escreva(j);
Fim
Parâmetros formais e reais
Algoritmo DiferancasDeParametros
Var
 k: inteiro;
Início
 leia(k);
 metodoComDoisParametros( k, 7 );
Fim
Procedimento doisParametros ( i: inteiro, j: real )
Início
 se i < 10 então
 j = j + 2;
 senão
 j = 0;
 fimse
 escreva(j);
Fim
parâmetros reais
parâmetros formais
Parâmetros formais e reais
Os parâmetros reais podem ser:
Constantes
Variáveis
Expressões
Chamada de funções
Parâmetros formais e reais
Os parâmetros reais podem ser:
Constantes
Variáveis
Expressões
Chamada de funções
Algoritmo ExemploParametrosReias
Início
 metodo(5);
Fim
Parâmetros formais e reais
Os parâmetros reais podem ser:
Constantes
Variáveis
Expressões
Chamada de funções
Algoritmo ExemploParametrosReias
Var
 a: inteiro;
Início
 leia(a);
 metodo(a);
Fim
Parâmetros formais e reais
Os parâmetros reais podem ser:
Constantes
Variáveis
Expressões
Chamada de funções
Algoritmo ExemploParametrosReias
Var
 a, b: inteiro;
Início
 leia(a, b);
 metodo((a + b) * 4);
Fim
Parâmetros formais e reais
Os parâmetros reais podem ser:
Constantes
Variáveis
Expressões
Chamada de funções
Algoritmo ExemploParametrosReias
Var
 a: inteiro;
Início
 leia(a);
 metodo( metodo(a) );
Fim
Parâmetros formais e reais
Algoritmo MetodoComRetorno
Var
 a, b: inteiro;
Início
 leia(a);
 b <- metodoComRetorno( metodoComRetorno(a) );
 escreva(b);
Fim
Função metodoComRetorno( aux: inteiro ): inteiro
Var
 resposta: inteiro;
Início
 resposta <- aux * 5;
 retorna resposta;
Fim
Escopo das variáveis
Determina o uso e validade das variáveis nas diversas partes do algoritmo
Escopo das variáveis
Variável global
Declarada no algoritmo principal
Ela é visível por todo o algoritmo, inclusive em seus métodos (procedimentos e funções)
Variável local
Declarada dentro de um método
É visível apenas dentro do próprio método
Escopo das variáveis
Algoritmo VerificandoVariaveis
Var
 a, b: inteiro;
Início
 ...
Fim
Procedimento metodo1
Var
 c: real;
Início
Fim
Função metodo2: inteiro
Var
 d: literal
Início
 retorna 53; 
Fim
Quais variáveis são globais e quais são locais?
a: 
b: 
c: 
d: 
Escopo das variáveis
Algoritmo VerificandoVariaveis
Var
 a, b: inteiro;
Início
 ...
Fim
Procedimento metodo1
Var
 c: real;
Início
Fim
Função metodo2: inteiro
Var
 d: literal;
Início
 retorna 53; 
Fim
Quais variáveis são globais e quais são locais?
a: global
b: global
c: local
d: local
Escopo das variáveis
Algoritmo UsandoVariaveis
Var
 a, resp: inteiro;
Início
 leiaValores();
 b <- b + 1;
 resp <- a + b;
 escreva( “soma: “, resp);
Fim
Procedimento leiaValores
Var
 b: inteiro;
Início
 leia(a);
 leia(b);
Fim
Há algum erro nesse algoritmo?
Escopo das variáveis
Algoritmo UsandoVariaveis
Var
 a, resp: inteiro;
Início
 leiaValores();
 b <- b + 1;
 resp <- a + b;
 escreva( “soma: “, resp);
Fim
Procedimento leiaValores
Var
 b: inteiro;
Início
 leia(a);
 leia(b);
Fim
Há algum erro nesse algoritmo?
Variáveis locais só podem ser usadas no próprio método em que foi declarada.
Passagem de parâmetros
Por valor
Também chamado de “por cópia”
O que foi utilizado até o momento
As modificações do parâmetro formal não afeta o parâmetro real
Por referência
As modificações efetuadas nos parâmetros formais também afetarão os parâmetros reais
Passagem de parâmetros
Algoritmo AlgoritmoValor
Var
 a: inteiro;
Início
 a <- 1;
 escreva( “Antes: “, a );
 metodo( a );
 escreva( “Depois: “, a);
Fim
Procedimento metodo( b: inteiro )
Início
 b <- b + 1;
 escreva( “Durante: “, b);
Fim
Qual a saída?
Passagem de parâmetros
Algoritmo AlgoritmoValor
Var
 a: inteiro;
Início
 a <- 1;
 escreva( “Antes: “, a );
 metodo( a );
 escreva( “Depois: “, a);
Fim
Procedimento metodo( b: inteiro )
Início
 b <- b + 1;
 escreva( “Durante: “, b);
Fim
Qual a saída?
Antes: 1
Durante: 2
Depois: 1
Passagem de parâmetros
Algoritmo AlgoritmoReferencia
Var
 a: inteiro;
Início
 a <- 1;
 escreva( “Antes: “, a );
 metodo( a );
 escreva( “Depois: “, a);
Fim
Procedimento metodo( var b: inteiro )
Início
 b <- b + 1;
 escreva( “Durante: “, b);
Fim
E agora, qual a saída?
Passagem de parâmetros
Algoritmo AlgoritmoReferencia
Var
 a: inteiro;
Início
 a <- 1;
 escreva( “Antes: “, a );
 metodo( a );
 escreva( “Depois: “, a);
Fim
Procedimento metodo( var b: inteiro )
Início
 b <- b + 1;
 escreva( “Durante: “, b);
Fim
E agora, qual a saída?
Antes: 1
Durante: 2
Depois: 2
Exercícios
Será passada uma lista de exercícios para ser resolvida e entregue na próxima aula

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais