Considere o seguinte programa escrito na sintaxe C:
float sum(int i, int lo, int hi, float term)
{
float temp = 0.0;
for(i = lo; i <= hi; i++)
{
temp = temp + term;
}
return temp;
}
void main()
{
int k = 1;
printf("%f", sum(k, 1, 5, 1/k));
}
Para cada um dos métodos de passagem de parâmetros a seguir, quais são os valores impressos pelo programa.
- Parâmetros são passados por valor;
- Parâmetros são passados por referência;
- Parâmetros são passados por nome;
- Parâmetros são passados por valor-resultado.
Parâmetros são passados por valorVariável | Inicial | sum(k, 1, 5, 1/k) |
---|
k | 1 | 1 |
i | | 1 1 2 3 4 5 6 |
lo | | 1 |
hi | | 5 |
term | | 1.0 |
temp | | 0.0 1.0 2.0 3.0 4.0 5.0 |
Parâmetros são passados por referênciaVariável | Inicial | sum(k, 1, 5, 1/k) |
---|
k | 1 | 1 1 2 3 4 5 6 |
i | | k |
lo | | 1 |
hi | | 5 |
term | | 1.0 |
temp | | 0.0 1.0 2.0 3.0 4.0 5.0 |
Parâmetros são passados por nomeVariável | Inicial | sum(k, 1, 5, 1/k) |
---|
k | 1 | 1 1 2 3 4 5 6 |
i | | k |
lo | | 1 |
hi | | 5 |
term | | 1/k |
temp | | 0.0 1.0 1.5 1.83 2.08 2.28 |
Parâmetros são passados por valor-resultadoVariável | Inicial | sum(k, 1, 5, 1/k) |
---|
k | 1 | 1 6 |
i | | 1 1 2 3 4 5 6 (k) |
lo | | 1 |
hi | | 5 |
term | | 1.0 |
temp | | 0.0 1.0 2.0 3.0 4.0 5.0 |