Av2 - Algoritmos e Programação Estruturada
Av2 - Algoritmos e Programação Estruturada
Av2 - Algoritmos e Programação Estruturada
as funções de duas maneiras, por valor e por referência. Na passagem por valor,
uma expressão pode ser utilizada na chamada. Na passagem por referência, o
endereço de uma variável deve ser passado na chamada da função. Dessa forma, a
função pode modificar a variável diretamente, o que em geral não é recomendável,
mas há situações onde esse recurso é necessário. Sempre que possível é
recomendável utilizar a forma de passagem por valor, para evitar "efeitos
colaterais", mas em algumas situações, esses efeitos são desejáveis quando é
preciso criar uma função que retorne mais de um valor.
Fonte:Disponível em:<
https://www.ime.usp.br/~elo/IntroducaoComputacao/Funcoes%20passagem
%20de%20parametros.htm>Acesso.13.Ago.2018.
Como exemplo um número complexo, que possui uma parte real e outra
complexa. Analise o trecho de programa e as asserções a seguir:
#include <stdio.h>
#include <stdlib.h>
void complexo2 (float *r, float *t);
int main ()
{
float a, b;
printf ("Entre com um numero complexo (2 numeros inteiros): ");
scanf("%f %f", &a, &b);
complexo2 ( &a, &b);
printf("O quadrado do número complexo é %f + i %f\n", a, b);
system("pause");
return 0;
}
Neste contexto, julgue as afirmações que se seguem.
I. No main são declaradas apenas duas variáveis reais a e b. E tanto na
chamada da função scanf, quanto na chamada da função complexo2, as variáveis a
e b são precedidas pelo caractere '*'.
II. Esse caractere ‘*’ indica a necessidade de que esses parâmetros sejam
modificados pela função e retornem os valores apropriados.
III. No caso da função scanf, esses valores correspondem aos valores digitados
pelo usuário, mas no caso da função complexo2, esses valores são computados
pela função. Ou seja, os parâmetros a e b são utilizados apenas para saída, e no
caso da complexo2, os parâmetros a e b são utilizados como entrada e saída da
função.
IV. Os próprios valores armazenados nas variáveis a e b são utilizados como
entrada da função complexo2, ou seja, como parte real e imaginária para calcular o
valor do quadrado do número complexo, e ao mesmo tempo para devolver o
resultado.
V. Na função printf, as variáveis a e b não são precedidas pelo caractere '&',
portanto, não são modificadas pela função printf.
VI. Quando deseja-se criar uma função que devolva mais de um valor, é
preciso definir esses parâmetros com um caractere '&' no protótipo da função, e ao
chamar a função, os parâmetros utilizados na chamada correspondentes à entrada
precisam ser precedidos pelo caractere '*' para indicar que eles podem ser
modificados pela função chamada.
É correto apenas o que se afirma em:
Alternativas:
a)I, II e VI.
b)III, IV e V.
c)I e IV.
d)II e V.
e)III e VI.
Alternativas:
3)Para usar de forma mais otimizada a memória, existe uma alternativa chamada
recursividade em cauda. Nesse tipo de técnica a recursividade funcionará como
uma função iterativa. Uma função é caracterizada como recursiva em cauda quando
a chamada a si mesmo é a última operação a ser feita no corpo da função. Nesse
tipo de função, o caso base costuma ser informado como parâmetro, o que
resultará um comportamento diferente.
A principal vantagem da recursividade em cauda consiste em:
Alternativas:
Alternativas: