Buscar

Aula 2 FUNÇÕES

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

ESTRUTURA DE DADOS
2a aula
		
	 
	Lupa
	 
	 
	
Vídeo
	
PPT
	
MP3
	 
	
	 
	Exercício: CCT0753_EX_A2_201709084006_V1 
	28/04/2018 18:25:15 (Finalizada)
	Aluno(a): WELLYNGTON ORTIZ
	2018.1 - F
	Disciplina: CCT0753 - ESTRUTURA DE DADOS 
	201709084006
	 
	Ref.: 201709777662
		
	
	 1a Questão
	
	
	
	
	Funções são semelhantes aos procedimentos, exceto que uma função sempre retorna um valor. Um exemplo de função seria o conjunto de instruções para calcular o fatorial de um número e após a função ser executada, ela deve retornar o fatorial do número pedido. Marque a opção que representa um protótipo de função válido.
		
	
	nome tipo(parametros);
	 
	tipo parametros(parametros);
	
	void float(int a, int b);
	 
	retorno nomeFuncao(parametros);
	
	tipo parametros(int a, int b);
	
Explicação:
Por definição, o protótipo de uma função é formado da seguinte forma :
   nome_da_função ( );
	
	 
	Ref.: 201709187686
		
	
	 2a Questão
	
	
	
	
	Assinale a opção certa.
 Quando não se escreve o protótipo de uma função ...
		
	
	A chamada da função poderá ser feita em qualquer hipótese.
	
	A chamada da função não poderá ser feita em qualquer hipótese.
	
	O programa não funcionará de forma alguma.
	 
	É preciso definir a função antes do programa principal.
	 
	A definição da função deverá ser escrita, obrigatoriamente, após o programa principal.
	
	 
	Ref.: 201709120554
		
	
	 3a Questão
	
	
	
	
	A declaração de variáveis na programação é o ato de reservar um espaço na memória para poder armazenar valores de um determinado tipo. Essas variáveis podem ser classificadas como variáveis locais e globais. Sendo assim, qual das situações abaixo representa melhor o conceito das variáveis globais.
		
	
	Em duas funções diferentes temos duas variáveis também diferentes com o mesmo nome apresentando o mesmo valor.
	
	Em uma função "resul" tem-se uma variável ali declarada por 'T' que recebe o valor inteiro 5. Ao tentar chamar esta variável em outra função é mencionado um warning.
	
	Se dentro de uma função "mostra" declararmos uma variável 'R' com um determinado valor poderemos imprimir esta variável em qualquer outra função do programa mostrando o valor atribuído na função "mostra".
	
	Se modificarmos o valor da variável 'Y' na função "soma", e depois imprimirmos na tela esta variável em outra função, onde tambem está declarada a variável 'Y', será acusado um erro de compilação.
	 
	Ao modificar o valor da variável 'X' na função "modifica" seu valor modificado poderá ser apresentado em qualquer outra função do programa.
	
Explicação:
Uma variável é classificada com Global quando for declarada fora de todas as funções, significando que poderá ser alterada em qualquer uma delas.
A resposta correta é :
Ao modificar o valor da variável 'X' na função "modifica" seu valor modificado poderá ser apresentado em qualquer outra função do programa.
	
	 
	Ref.: 201709922550
		
	
	 4a Questão
	
	
	
	
	O que será mostrado na tela pelo programa abaixo ? 
#include < iostream >
using namespace std;
int a,b;
void dobro(int x){ //x passado por valor
 x=2*x;
}
int triplo(int y){ //y passado por valor
 return 3*y;
}
void altera(int x, int &y) { //x passado por valor e y passado por referencia
 x=x+a;
 y=x+b;
} 
 
int main (){
 a=2;
 b=3;
 dobro(a);
 b=triplo(b);
 altera(a,b);
 cout<< a << " e " << b << endl;
}
 
		
	 
	4 e 12
	
	2 e 9
	 
	2 e 13
	
	9 e 16
	
	4 e 9
	
Explicação:
Executando o programa, passo a passo, temos :
Na main, a recebe 2 e b recebe 3.  Note que a e b são variáveis globais.
Daí, ainda na main, a função dobro é chamada. Ao executar dobro, temos que o valor 2 é passado e x (local à dobro) recebe 2 * 2, que dá 4.
Ao terminar a função dobro, volta-se para a main, mas o valor de a passado não mudou, continuando 2.
Após a execução de dobro, a função triplo é chamada na main e é passado o valor de b,  que é  3.  Iniciando a execução da função triplo, temos que y recebe 3 e a função retorna 3 * 3, que é 9. Voltando para a main, temos que b recebe o valor retornado pela função, que é 9.
Até este ponto, temos que a vale 2 e b mudou para 9.
Em seguida, a função altera é chamada e são passados 2 e 9, respectivamente, para x e y.  Executando a função altera, temos que x recebe 2+2, que dá 4 e y recebe 4+9, que dá 13.  Como x é passado por valor e y por referência, temos que a mudará e b mudará (ambas na main).
Então, voltando para main temos que a vale 2 e que b vale 13. Assim, será impresso na tela
           2  e   13
	
	 
	Ref.: 201710118297
		
	
	 5a Questão
	
	
	
	
	Considere a função abaixo:
void func (int a, int &b) {
    a++;
    b = a*2;
}
e o seguinte trecho de código na função  main :
int x=2, y=3;
func (x,y);
func (y,x);
cout << x << "  ;  " << y;
Após a execução do cout o que será impresso  ? 
		
	
	2; 12
	 
	14; 6
	
	2; 6
	
	4; 12
	 
	6; 14
	
Explicação:
  Fazendo um teste de mesa, chegaremos na opção correta.  Iniciando a execução pela main, temos que x recebe 2 e y recebe 3.  
Em seguida, na 1ª. chamada de func,  os valores de x e de y, respectivamente, 2 e 3, são passados para a função.
Executando a função func, que possui o parâmetro a  passado por valor e o parâmetro b passado por referência (usa &) ...
void func (int a, int &b) {
a++;
b = a*2;
}
Temos que a recebeu 2 e b recebeu 3. Daí, a ficará 3 e b receberá 6.  
Assim, ao terminar a função func e retornarmos para a main teremos x sem alteração igual a 2 e y com alteração igual a 6.
Após voltarmos para a main, temos uma nova chamada de func que recebe os valores de y e de x, respectivamente, que são 6 e 2.  Na 2ª. chamada de func para esses valores, teremos que a recebe 6 e y recebe 2.  Dentro da função, temos que a é incrementado para 7 e que b recebe 7 * 2 que dá 14. Ao terminarmos a execução da função, temos que y não sofreu mudança, ficando com o valor 6  e que x mudou para 14.  Logo, será impresso 14;6
Logo, as demais opções são incorretas.
 
	
	 
	Ref.: 201710118286
		
	
	 6a Questão
	
	
	
	
	Considere as seguintes afirmativas :
I) Os vetores em C++, quando passados como parâmetros de funções,  são obrigatoriamente passados "por valor" e não "por referência".
II) Variáveis globais são um recurso adequado para troca de informações entre funções distintas.
III) Caso uma função necessite retornar mais de um valor ao programa que a chamou, deve fazê-lo usando parâmetros passados "por valor".
As afirmativas corretas são:
		
	 
	Apenas I e II
	 
	Nenhuma está correta
	
	Apenas III
	
	Apenas II
	
	Apenas I
	
Explicação:
Analisando cada afirmativa ...
I .   Falso. Em C++ os vetores passados como parâmetros são sempre passados por referência.
II.  FAlso. Variáveis globais são uma péssima forma de usar recursos, comprometendo principalmente a manutenção do programa.
III.  FAlso.  A função poderá retornar explicitamente um valor com return, mas terá que passar o outro parâmetro por referência e não por valor. Outra forma, será passar todos os parâmetros por referência.
Portanto, não opção correta.
	
	 
	Ref.: 201709112069
		
	
	 7a Questão
	
	
	
	
	Assinale a alternativa que apresenta duas formas de passagem de parâmetros para uma rotina ou função:
		
	
	Por teste e por reforço.
	
	Por reforço e por referência.
	 
	Por valor e por referência
	
	Por inferência e por valor.
	
	Por memória e por disco.
	
Explicação:
Questão super objetiva.  Só pode ser porvalor e por referência.
	
	 
	Ref.: 201709954898
		
	
	 8a Questão
	
	
	
	
	Considere a seguinte função: void dobro(int x) { x = 2 * x; } Qual valor será impresso na tela quando o seguinte programa principal for executado? int main() { int n = 3; n = n + 2; dobro(n); cout << n; return 0; }
		
	
	10
	
	0
	 
	20
	
	3
	 
	5
	
Explicação:
A função não retorna valor, então o valor de "n" não é alterado permanecendo igual a 5.

Outros materiais