Sub-programas



Baixar 31,67 Kb.
Encontro26.08.2018
Tamanho31,67 Kb.

TRABALHO DE CONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO
Prof. Jorge Habib Hanna El Khouri

Aluno: _____________ Turma: 2º A UNIOESTE



SUB-PROGRAMAS


  1. O que significa um subprograma estar ativo ?

  2. O que é um perfil de parâmetro ? O que é um protocolo de parâmetro ?

  3. O que são parâmetros formais ? O que são parâmetros reais ?

  4. Quais são as vantagens e desvantagens dos parâmetros nomeados ?

  5. Quais são as questões de projetos referentes aos subprogramas ?

  6. Quais são os três modelos semânticos de passagem de parâmetro ?

  7. Explique cada um dos modos de passagem de parâmetro: referência, valor, resultado, valor-resultado e nome.

  8. Escreva um procedimento pascal para somar dois arrays de inteiros. Ele deve ter somente dois parâmetros, que são os arrays a serem adicionados. O segundo array conterá também o resultado da soma. Ambos os parâmetros devem ser passados por referência. Teste a procedure com a seguinte chamada:

Somador (A, A);


Em que A é um array a ser adicionado a si mesmo. Explique os resultados advindos da execução deste programa.


  1. Repita o problema anterior usando C.

  2. Considere o seguinte programa:

Procedure bigsub;

Integer GLOBAL;

Integer array LIST[1:2];

Procedure SUB (PARAM);

Integer PARAM;

Begin

PARAM := 3;



GLOBAL := GLOBAL + 1;

PARAM := 5;

End;

Begin


LISTA[1] := 2;

LISTA[2] := 2;

GLOBAL := 1;

SUB (LISTA[GLOBAL]);

end;
Execute manualmente este programa e acompanhe os valores do array LISTA, para as seguintes passagens de parâmetros:


  1. Valor;

  2. Referência;

  3. Nome;

  4. Valor-Resultado.

Repetir o exercício para a seguinte inicialização de LISTA:


LISTA[1] := 3;

LISTA[2] := 1;




  1. Considere o seguinte programa em C:

void main () {

int valor = 2, lista[5] = {1, 3, 5, 7, 9};

troca (valor, lista[0]);

troca (lista[0], lista[1]);

troca (valor, lista[valor]);

};
void troca (int a, int b) {

int temp;

temp = a;

a = b;


b = temp;

}
Para cada um dos métodos de passagem de parâmetros seguintes, quais são todos os valores das variáveis valor e lista depois de cada uma das três chamadas a troca ?




  1. Valor;

  2. Referência;

  3. Nome;

  4. Valor-Resultado.




  1. Considere o seguinte programa em Algol 60, chamado dispositivo de Jensen, em homenagem a J. Jensen, que o projetou em 1960:

real procedure soma (somador, indice, comprimento);

value comprimento;

real somador;

integer somatemp;

begin


real somatemp;

somatemp := 0.0;

for indice := 1 step 1 until comprimento do

somatemp := somatemp + somador;

soma := somatemp;

end;


O que é retornado para cada uma das chamadas seguintes a SOMA, lembrando que os parâmetros são passados por nome o observando que o valor de retorno é definido ao atribuí-lo ao nome do subprograma ?


  1. Soma (A, I, 100), em que A é um escalar

  2. Soma (A[I]*A[I], I, 100), em que A é um array de 100 elementos

  3. Soma (A[I]*B[I], I, 100), em que A e B são arrays de 100 elementos

Referência:

Sebesta, Robert W.

Conceitos de Linguagens de Programação.



4. ed. – Porto Alegre: Bookman, 2000.



©bemvin.org 2016
enviar mensagem

    Página principal