PARADIGMAS DE LINGUAGENS
SUBPROGRAMAS
Prof. Thiago Pereira [email protected]://thiagorique.wordpress.com/
AGENDA Fundamentos dos subprogramas Métodos de passagem de parâmetros Subprogramas sobrecarregados
FUNDAMENTOS DOS SUBPROGRAMAS Características gerais dos subprogramas:
Cada subprograma tem um único ponto de entrada;
Toda unidade chamadora é suspensa durante a execução do programa chamado.
O controle sempre retorna ao chamador quando a execução do subprograma se encerra.
FUNDAMENTOS DOS SUBPROGRAMAS Definições básicas:
Uma definição de subprograma descreve a interface e as ações da abstração de subprograma.
Uma chamada a subprograma é a solicitação explícita para executar o subprograma.
Diz-se que um subprograma é ativo se, depois de ter sido chamado, ele iniciou a execução, mas ainda não a concluiu.
FUNDAMENTOS DOS SUBPROGRAMAS Definições básicas:
Cabeçalho de subprograma
Especifica que a unidade sintática seguinte é uma definição de subprograma;
Oferece um nome para o subprograma;
Especifica uma lista de parâmetros (opcional).
FUNDAMENTOS DOS SUBPROGRAMAS Definições básicas:
Cabeçalho de subprograma
Exemplos:
FORTRAN SUBROUTINE SOMADORA(parâmetros)
Ada procedure SOMADORA(parâmetros)
FUNDAMENTOS DOS SUBPROGRAMAS Definições básicas:
Cabeçalho de subprograma
Exemplos:
C void somadora(parâmetros)
FUNDAMENTOS DOS SUBPROGRAMAS Parâmetros:
Acesso aos dados Acesso direto a variáveis não-locais Passagem de parâmetros
Em algumas situações é conveniente ser capaz de transmitir computações como parâmetros a subprogramas.
FUNDAMENTOS DOS SUBPROGRAMAS Parâmetros:
Parâmetros formais – parâmetros no cabeçalho de um programa.
Parâmetros reais – parâmetros na chamada ao subprograma.
MÉTODOS DE PASSAGEM DE PARÂMETROS Passagem por valor:
Valor do parâmetro real é usado para inicializar o parâmetro formal correspondente.
Chamador Chamado(sub(a, b, c)) (procedure sub(x, y, z))
a
b
c
x x = a
y y = b
z z = c
MÉTODOS DE PASSAGEM DE PARÂMETROS Passagem por referência:
Transmite um caminho de acesso (endereço).
Proporciona o caminho de acesso à célula que armazena o parâmetro real.
Chamador Chamadoint x; void fun(int *v)...fun(&x);
x
v
SUBPROGRAMAS SOBRECARREGADOS Um subprograma sobrecarregado tem o mesmo nome
que outro no mesmo ambiente de referenciamento.
Cada versão deve ser diferente quanto ao número, à ordem ou aos tipos de seus parâmetros (ou em seu tipo de retorno, se for uma função).
C++, Java e Ada incluem subprogramas sobrecarregados predefinidos.
Ex. (Java): JOptionPane.showMessageDialog(null, msg); JOptionPane.showMessageDialog(null, msg, title,
JOptionPane.PLAIN_MESSAGE);
SUBPROGRAMAS SOBRECARREGADOS Na Ada, duas funções sobrecarregadas podem ter o
mesmo perfil de parâmetro e diferir somente em seus tipos de retorno.
No C++ e no Java, o tipo de retorno é irrelevante para tirar ambiguidade de funções (ou de métodos) sobrecarregadas.
Ex. (Java): public int metodo(int a, int b) { ... } public double metodo(int d, int e) { ... } //ilegal public int metodo(int a, double b) { ...}
REFERÊNCIA SEBESTA, R. W. Conceitos de Linguagens de
Programação. 5a. Edição. São Paulo: Bookman, 2003.
Top Related