(Sebesta, 2000) Considere o seguinte programa escrito na sintaxe C:
void troca(int a, int b)
{
int temp;
temp = a;
a = b;
b = temp;
}
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]);
}
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?
Variável | Inicial | troca(valor, lista[0]) | troca(lista[0], lista[1]) | troca(valor, lista[valor]) |
---|---|---|---|---|
valor | 2 | 2 | 2 | 2 |
lista[0] | 1 | 1 | 1 | 1 |
lista[1] | 3 | 3 | 3 | 3 |
lista[2] | 5 | 5 | 5 | 5 |
lista[3] | 7 | 7 | 7 | 7 |
lista[4] | 9 | 9 | 9 | 9 |
a | 2 1 | 1 3 | 2 5 | |
b | 1 2 | 3 1 | 5 2 | |
temp | 2 | 1 | 2 |
Variável | Inicial | troca(valor, lista[0]) | troca(lista[0], lista[1]) | troca(valor, lista[valor]) |
---|---|---|---|---|
valor | 2 | 2 1 | 1 | 1 2 |
lista[0] | 1 | 1 2 | 2 3 | 3 |
lista[1] | 3 | 3 | 3 2 | 2 1 |
lista[2] | 5 | 5 | 5 | 5 |
lista[3] | 7 | 7 | 7 | 7 |
lista[4] | 9 | 9 | 9 | 9 |
a | valor | lista[0] | valor | |
b | lista[0] | lista[1] | lista[1] | |
temp | 2 | 2 | 1 |
Variável | Inicial | troca(valor, lista[0]) | troca(lista[0], lista[1]) | troca(valor, lista[valor]) |
---|---|---|---|---|
valor | 2 | 2 1 | 1 | 1 2 |
lista[0] | 1 | 1 2 | 2 3 | 3 |
lista[1] | 3 | 3 | 3 2 | 2 |
lista[2] | 5 | 5 | 5 | 5 1 |
lista[3] | 7 | 7 | 7 | 7 |
lista[4] | 9 | 9 | 9 | 9 |
a | valor | lista[0] | valor | |
b | lista[0] | lista[1] | lista[valor] | |
temp | 2 | 2 | 1 |
Variável | Inicial | troca(valor, lista[0]) | troca(lista[0], lista[1]) | troca(valor, lista[valor]) |
---|---|---|---|---|
valor | 2 | 2 1 | 1 | 1 2 |
lista[0] | 1 | 1 2 | 2 3 | 3 |
lista[1] | 3 | 3 | 3 2 | 2 1 |
lista[2] | 5 | 5 | 5 | 5 |
lista[3] | 7 | 7 | 7 | 7 |
lista[4] | 9 | 9 | 9 | 9 |
a | 2 1 (valor) | 2 3 (lista[0]) | 1 2 (valor) | |
b | 1 2 (lista[0]) | 3 2 (lista[1]) | 2 1 (lista[1]) | |
temp | 2 | 2 | 1 |
Sebesta, Robert W. (2000). Conceitos de Linguagens de Programação. 4ª edição. Porto Alegre: Bookman. 624 páginas.