Fundamentos de Programação Luiz Paulo Maia [email protected] Subprogramação • • • • • • 2 Motivações Funcionamento Tipos de subprogramas Escopo de variáveis Tipos de parâmetros Passagem de parâmetros Motivações • Torna mais fácil a compreensão dos programas, especialmente os grandes e complexos • Reaproveitamento de código • Facilidade de testar e encontrar erros no programa • Facilidade de fazer a manutenção do programa • Facilidade em dividir o trabalho de desenvolvimento entre grupos • Implementar a metodologia top-down e programação modular (dividir para conquistar) • Permitir a implementação da recursividade 3 Funcionamento 4 Tipos de subprogramas – Procedimentos: permitem receber uma mais informações e retornar uma ou mais informações – Funções: permitem receber uma ou mais informações e retornar apenas uma informação, no nome da função 5 Procedimento procedimento nome(parâmetros) var .... inicio ........ fimprocedimento 6 Procedimento - Exemplo • O programa “Subprog1” le do teclado uma sequência de no máximo 10 números inteiros terminada em zero. Depois le um número do teclado e verifica se o mesmo está ou não na lista anteriormente digitada. Podemos perceber que o programa tem três partes distintas: carga do vetor, pesquisa e se o número foi encontrado ou não. O programa “Subprog2” apresenta o mesmo algoritmo com procedimentos. 7 Escopo de variáveis • Define onde as variáveis são visíveis (visibilidade) dentro do programa, ou seja, onde podem ser acessadas • Escopo local: a variável só pode ser acessada dentro do subprograma • Escopo global: a variável pode ser acessada em qualquer parte do programa • O uso de variáveis globais deve ser evitado sempre que possível 8 Parâmetros • Define a comunicação entre a chamada do subprograma e o subprograma propriamente dito • Argumento ou parâmetro real: define as variáveis que serão passadas para o subprograma na sua chamada • Parâmetro formal: define as variáveis no subprograma que receberão os argumentos • Deve existir uma correspondência possional entre parâmetros e argumentos 9 Passagem de parâmetros • Define a forma de comunicação entre argumentos e parâmetros de um subprograma • Passagem por valor: apenas o valor do argumento é passado para o parâmetro formal, não permitindo a mudança de valor do argumento • Passagem por referência: é passado o endereço do argumento para o parâmetro formal, permitindo a mudança de valor do argumento 10 Passagem de parâmetros • Argumentos apenas de entrada – Passagem por valor • Argumentos de saída – Passagem por referência • Argumentos de entrada e saída – Passagem por referência 11 Funções pré-definidas asc (s : caracter) : inteiro - Retorna o código ASCII int (valor : real) : inteiro - Converte o valor em inteiro log (valor : real) : real - Logaritmo de base 10 raizq (valor : real) : real Raiz quadrada rand : real - Gerador de números aleatórios entre 0 e 1 randi (limite : inteiro) : inteiro - Gerador de números inteiros aleatórios com um limite determinado 12 Função funcao nome(parâmetros): tipo var .... inicio ........ retorno valor fimfuncao 13