Utilização de Parâmetros
Os parâmetros têm por finalidade servir como um ponto de comunicação bidirecional entre uma sub-rotina e o programa principal ou uma outra sub-rotina hierarquicamente de nível mais alto. Desta forma, é possível passar valores de uma sub-rotina ou rotina chamadora à outra sub-rotina e vice-versa, utilizando parâmetros que podem ser formais ou reais.
Parâmetros Formais e Reais
Serão considerados parâmetros formais quando forem declarados por meio de variáveis juntamente com a identificação do nome da sub-rotina, os quais serão tratados exatamente da mesma forma que são tratadas as variáveis globais ou locais. Considere como exemplo de parâmetros formais o código em português estruturado da sub-rotina apresentado abaixo:
No trecho acima, toda vez que a sub-rotina CALCSOMA é chamada, faz-se uso de parâmetros reais. Desta forma, são parâmetros reais as variáveis x, y, w e t, pois seus valores são fornecidos pela instrução leia() e também os valores 8 e 2.
Passagem de Parâmetros
A passagem de parâmetro ocorre quando é feita uma substituição dos parâmetros formais pelos reais no momento da execução da sub-rotina. Esses parâmetros são passados por variáveis de duas formas: por valor e por referência.
Por Valor
A passagem de parâmetro por valor caracteriza-se pela não-alteração do valor do parâmetro real quando o parâmetro formal é manipulado dentro da sub-rotina. Assim sendo, o valor passado pelo parâmetro real é copiado para o parâmetro formal, que no caso assume o papel de variável local da sub-rotina. Desta forma, qualquer modificação que ocorra na variável local da sub-rotina não afetará o valor do parâmetro real correspondente, ou seja, o processamento é executado somente dentro da sub-rotina, ficando o resultado obtido “preso”na sub-rotina. Como exemplo deste tipo de parâmetro considere o mostrado em seguida:
Diagrama de Blocos
Neste exemplo, é indicado o uso da passagem de parâmetro por valor. No caso, a variável N é o parâmetro formal, que receberá o valor fornecido à variável LIMITE por meio da sub-rotina FATORIAL. Esse valor estabelece o número de vezes que o looping deve ser executado. Dentro do procedimento é encontrada a variável FAT que irá realizar um efeito de acumulador, tendo ao final do looping o valor da fatorial do valor informado para o parâmetro N. Ao término do looping, a instrução escreva(FAT) imprime o valor da variável FAT, que somente é válida dentro da sub-rotina e pro esta razão ficará “preso”dentro da mesma. A passagem de parâmetro por valor é utilizada somente para a entrada de um determinado valor.
Por Referência
A passagem de parâmetro por referência caracteriza-se pela ocorrência de alteração do valor do parâmetro real quando o parâmetro formal é manipulado dentro da sub-rotina. Desta forma, qualquer modificação feita no parâmetro formal implica em alteração no parâmetro real correspondente. A alteração efetuada é devolvida para a rotina chamadora. Como exemplo deste tipo de parâmetro considere o mostrado abaixo, e observe a instrução var sendo utilizada junto da declaração do parâmetro em português estruturado.
Diagrama de Blocos
Ao utilizar a passagem de parâmetros por referência, eles deverão ser indicados não só no início da subrotina, mas também no símbolo terminal junto da palavra retorna, uma vez que este tipo de parâmetro devolve para o módulo principal do programa um resultado.
Neste exemplo, é indicado o uso da passagem de parâmetro por referência (variável FAT por meio da instrução var na declaração do nome da sub-rotina). A variável N no exemplo continua sendo do tipo passagem de parâmetro por valor, pois recebe o valor fornecido à variável LIMITE, por meio da sub-rotina FATORIAL. Esse valor estabelece o número de vezes que o looping deve ser executado. Dentro do procedimento, é encontrada a variável FAT que é do tipo passagem de parâmetro por referência e possui no final o valor acumulado do cálculo da fatorial. Ao término do looping, o valor da variável FAT é transferido para fora da rotina, ou seja, é transferido para a variável RETORNO do programa principal, a qual apresenta o valor recebido de dentro da sub-rotina por meio da variável FAT. A passagem de parâmetro por referência é utilizada para que se tenha a saída de um determinado valor de dentro de uma sob-rotina.
Comentários
Postar um comentário