Baixe o app para aproveitar ainda mais
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
Compartilhar