Buscar

Introdução a programação estruturada em C- Exercícios-Aula 5- Estrutura de seleção simples e composta

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 18 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 18 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 9, do total de 18 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

Aula 5: Estrutura de seleção simples e composta
		1.
		Considere o trecho de programa em C++. O que é impresso na tela ?
int x = 10, y = 3, z, k;
y = x + y - 1;
z = x/y;
k = y % x;
if (k == 0)
cout << "x = " << x << " y = " << y << " z = " << z << " k = " << k;
else
cout << x + 1 << " " << y - 1 << " " << z + 2 << " " << k - 2;
	
	
	
	x= 11 y = 11 z = 2 k = 0
	
	
	11 11 2 0
	
	
	x = 10 y = 12 z = 0 k = 0
	
	
	x = 10 y = 12 z = 0.833 k = 0
	
	
	10 12 2 0
	
Explicação:
É preciso fazer um teste de mesa ou chinês e encontrar a resposta correta, como indicado. Para isso, o conteúdo sobre comando condicional, atualmente, na aula 5,  é suficiente, junto com declaração de variáveis de aula anterior.
 
x recebe 10 e depois
y recebe 3 e depois y recebe 10+3-1, que dá 12
z recebe 10/12, que dá 0
k recebe 2
TEste do if é falso. Então, entra-se no else e é impresso :    11   11  2  0 
	
	
	
	 
		
	
		2.
		Em linguagem de programação, existe uma estrutura que é empregada em situações em que é preciso tomar uma decisão a respeito de determinado resultado que será obtido em duas situações diversas. Marque a opção que determina a estrutura de controle citada:
	
	
	
	Decisão
	
	
	Matricial
	
	
	Vetorial
	
	
	Recursiva
	
	
	Repetição
	
Explicação:
A opção que determina a estrutura de controle citada é a Decisão
	
	
	
	 
		
	
		3.
		Para satisfazer a regra de que para fazer AV3 o aluno deve ter nota maior ou igual a 4 em pelo menos uma das outras duas Avaliacoes, qual seria a sentença correta
	
	
	
	Nenhuma outra alternativa satisfaz
	
	
	Se (AV1 > 4) e (AV2 > 4)
	
	
	Se (AV1 > 4) ou (AV2 > 4)
	
	
	Se (AV1 >= 4) ou (AV2 >= 4)
	
	
	Se (AV1 >= 4) e (AV2 >= 4)
	
Explicação:
	 
	Verdadeira
	Se (AV1 >= 4) ou (AV2 >= 4)
	 
	Falsa. Tinha que ser >= e não apenas >
	Se (AV1 > 4) ou (AV2 > 4)
	 
	FAlsa.  Nâo tem que ter 4 ou mais nas duas provas, mas apenas em uma das provas.
	Se (AV1 >= 4) e (AV2 >= 4)
	 
	FAlsa. Tinha que ser >=  e no lugar do e tinha que se ou.
	Se (AV1 > 4) e (AV2 > 4)
	 
	Falsa.  A 1a. alternativa é a correta. Ou seja : Se (AV1 >= 4) ou (AV2 >= 4)
	Nenhuma outra alternativa satisfaz
	
	
	
	
	
	 
		
	
		4.
		Quando estudamos sobre a estrutura do se ... entao...senao, sempre nos é dito que, quando tivermos duas possibilidades de respostas, devemos escolher a estrutura do se composto ao invés de usar duas estruturas do se simples.
Observe as afirmativas abaixo e, depois, escolha a resposta que respalda o uso do se composto pelo que foi dito acima ao invés do se simples.
I Maior clareza no código, mas não influência na eficiência do mesmo
II Maior eficiência porque diminui o número de testes no código
III Maior eficiência somente porque o código fica mais legível, visto que o resultado final é o mesmo
IV Somente uma escolha do desenvolvedor, visto que o resultado o resultado final é o mesmo
	
	
	
	Somente a I está correta
	
	
	Somente a II está correta
	
	
	A II E IV estão corretas
	
	
	Somente a  IV está correta
	
	
	A II E A III estão corretas
	
Explicação:
I Maior clareza no código, mas não influência na eficiência do mesmo .             
Comentário :  Falso. Traz clareza e afeta a eficiência sim, pois acaba se fazendo testes desnecessários.
II Maior eficiência porque diminui o número de testes no código
Comentário : Correto.
III Maior eficiência somente porque o código fica mais legível, visto que o resultado final é o mesmo.
Comentário : Falso. Não é só legibilidade, mas é uma questão de eficiência, pois evita-se teste desnecessário.
IV Somente uma escolha do desenvolvedor, visto que o resultado o resultado final é o mesmo
Comentário : Falso.  O desenvolvedor pode escolher sim, mas o uso adequado do condicional composto pode trazer maior eficiência para o código.
Opção correta : 
    Somente a II está correta
	
	
	
	 
		
	
		5.
		Considere o trecho de programa em C++ e assinale a opção que mostra o que é impresso na tela.
int x, y, z;
x = 10;
y = 6;
z = x/y;
cout << z << " ";
if (z > 0)
   z = x % y;
cout << z << " ";
 
	
	
	
	1  4
	
	
	Ocorrerá erro, pois o trecho não compila.
	
	
	1  1
	
	
	4  1
	
	
	4  4
	
Explicação:
Basta fazer teste de mesa. DEssa forma, atribuir os valores das variáveis, testar e ver o que é impresso.
	
	
	
	 
		
	
		6.
		Sobre a estrutura seletiva "se", pode-se afirmar que ela
(   ) permite que novas estruturas seletivas sejam definidas dentro dela;
(   ) restringe a execução de um trecho do código à veracidade, ou não, de uma ou mais condições;
(   ) não permite o teste de condições que combinem, na mesma expressão, operadores de tipos distintos;
	
	
	
	F - V - F
	
	
	V - V - V
	
	
	V - F - V
	
	
	F - F - F
	
	
	V - V - F
	
	
	
	 
		
	
		7.
		Você deseja analisar se um número inteiro qualquer fornecido pelo usuário é par e positivo ou par e negativo. Com base na sintaxe do Portugol Studio, o trecho que realiza corretamente o teste para descobrir as características do número é:
	
	
	
	escreva("Informe um número qualquer: ")
leia(num)
resto=num%2
se (resto==0 ou num>0)
{ escreva("Este número é par e positivo!") }
senao se (resto!=0 ou num>0)
{ escreva("Este número é ímpar e positivo!")}
	
	
	escreva("Informe um número qualquer: ")
leia(num)
resto=num/2
se (resto==0 !! num>0)
{ escreva("Este número é par e positivo!") }
senao se (resto!=0 !! num>0)
{ escreva("Este número é ímpar e positivo!")}
	
	
	escreva("Informe um número qualquer: ")
leia(num)
resto=num^2
se (resto==1 e num>1)
{ escreva("Este número é par e positivo!") }
senao se (resto!=0 e num>0)
{ escreva("Este número é ímpar e positivo!")}
	
	
	escreva("Informe um número qualquer: ")
leia(num)
resto=num%2
se (resto==0 e num>0)
{ escreva("Este número é par e positivo!") }
senao se (resto!=0 e num>0)
{ escreva("Este número é ímpar e positivo!")}
	
	
	escreva("Informe um número qualquer: ")
leia(num)
resto=num%2
se (resto==0 e num<0)
{ escreva("Este número é ímpar e positivo!") }
senao se (resto!=0 e num>0)
{ escreva("Este número é par e positivo!")}
	
	
	
	 
		
	
		8.
		Analise o código abaixo e marque as saídas corretas:
#include   < iostream >
using namespace std;
int main () {
int x, i;
x = 1;
cout << x;
i = 6;
x = x + i;
cout <<  x;
if ( x <= 7) {
   cout  <<  x;
   x = x + 10;
} else {
   cout  <<  x;
}
retun 0;
}
	
	
	
	0, 6 e 7
	
	
	1, 6 e 16
	
	
	1, 7, 17
	
	
	1, 6 e 7
	
	
	1, 7 e 7
	
Explicação:
int x, i;
x = 1;
cout << x;
i = 6;
x = x + i;
cout <<  x;
if ( x <= 7) {
   cout  <<  x;
   x = x + 10;
} else {
   cout  <<  x;
}
Fazendo um teste de mesa, temos :
x = 1 e depois é impresso o valor 1
i recebe 6 e então, x recebe 1+6, que dá 7. Então, 7 é impresso.
Chegamos na condição do if e testamos se 7 <= 7.  É verdade ? Sim. Então, 7 é impresso e depois, x recebe 7 + 10, que dá 17.
Ou seja, foi impresso  1   7   7  
	
		1.
		Analise o código abaixo e marque as saídas corretas:
#include   < iostream >
using namespace std;
int main () {
int x, i;
x = 1;
cout << x;
i = 6;
x = x + i;
cout <<  x;
if ( x <= 7) {
   cout  <<  x;
   x = x + 10;
} else {
   cout  <<  x;
}
retun 0;
}
	
	
	
	1, 6 e 7
	
	
	1, 7 e 7
	
	
	0, 6 e 7
	
	
	1, 6 e 16
	
	
	1, 7, 17
	
Explicação: 
int x, i;
x = 1;
cout << x;
i = 6;
x = x + i;
cout <<  x;
if ( x <= 7) {
   cout  <<  x;
   x = x + 10;
} else {
   cout  <<  x;
}
Fazendo um teste de mesa, temos :
x = 1 e depois é impresso o valor 1
i recebe 6 e então, x recebe 1+6, que dá 7. Então, 7 é impresso.
Chegamos na condição do if e testamos se 7 <= 7.  É verdade ? Sim. Então, 7 é impresso e depois, x recebe 7 + 10, que dá 17.
Ou seja, foi impresso  1   7   7  
	
	
	
	 
		
	
		2.
		Considere um programa em C++ que  recebe um número inteiro qualquer e informe se ele é par ou ímpar. a estrutura seletiva adequada para teste do número é:
	
	
	
	if (resto==0)
  {cout <<"Este número é par!";}
else{cout <<"Este número é ímpar!";}
	
	
	if (resto!=0)
  {cout <<"Este número é par!";}
else
  {cout <<"Este número é ímpar!";}
	
	
	if (resto=0)
  {cout <<"Este número é par!";}
if 
  {cout <<"Este número é ímpar!";}
	
	
	if (resto==0) then
  {cout <<"Este número é par!";}
elseif not
  {cout <<"Este número é ímpar!";}
	
	
	switch (resto==0)
  {cout <<"Este número é par!";}
case
  {cout <<"Este número é ímpar!";}
	
	
	
	 
		
	
		3.
		Quando estudamos sobre a estrutura do se ... entao...senao, sempre nos é dito que, quando tivermos duas possibilidades de respostas, devemos escolher a estrutura do se composto ao invés de usar duas estruturas do se simples.
Observe as afirmativas abaixo e, depois, escolha a resposta que respalda o uso do se composto pelo que foi dito acima ao invés do se simples.
I Maior clareza no código, mas não influência na eficiência do mesmo
II Maior eficiência porque diminui o número de testes no código
III Maior eficiência somente porque o código fica mais legível, visto que o resultado final é o mesmo
IV Somente uma escolha do desenvolvedor, visto que o resultado o resultado final é o mesmo
	
	
	
	Somente a  IV está correta 
	
	
	A II E A III estão corretas 
	
	
	Somente a I está correta 
	
	
	A II E IV estão corretas 
	
	
	Somente a II está correta 
	
Explicação: 
I Maior clareza no código, mas não influência na eficiência do mesmo .             
Comentário :  Falso. Traz clareza e afeta a eficiência sim, pois acaba se fazendo testes desnecessários.
II Maior eficiência porque diminui o número de testes no código
Comentário : Correto.
III Maior eficiência somente porque o código fica mais legível, visto que o resultado final é o mesmo.
Comentário : Falso. Não é só legibilidade, mas é uma questão de eficiência, pois evita-se teste desnecessário.
IV Somente uma escolha do desenvolvedor, visto que o resultado o resultado final é o mesmo
Comentário : Falso.  O desenvolvedor pode escolher sim, mas o uso adequado do condicional composto pode trazer maior eficiência para o código.
Opção correta : 
    Somente a II está correta
	
	
	
	 
		
	
		4.
		Examine as afirmativas a seguir e marque a alternativa correta.
I- A estrutura de decisão pode alterar ou desviar o fluxo natural de execução de um algoritmo.
II- O uso de uma estrutura de decisão composta pode ser mais eficiente que o uso de duas estruturas de decisão simples, pois reduz o número de testes. 
III- Muitas vezes é possível combinar a condição de duas estruturas de decisão simples em apenas uma utilizando operadores lógicos. 
	
	
	
	Apenas a alternativa i está correta. 
	
	
	Apenas a alternativa iii está correta. 
	
	
	Todas as alternativas estão erradas. 
	
	
	Apenas a alternativa ii está correta. 
	
	
	Todas as alternativas estão corretas. 
	
Explicação: As estruturas de decisão realmente alteram o fluxo de um programa, uma estrutura composta é mais eficiente que duas simples, já que há menos testes e podemos usar operadores lógicos para combinar condições e reduzir o número de estruturas de decisão simples. Portanto todas as afirmativas estão corretas.
	
	
	
	 
		
	
		5.
		Considere o trecho de programa em C++. O que é impresso na tela ? 
int x = 10, y = 3, z, k; 
y = x + y - 1; 
z = x/y; 
k = y % x; 
if (k == 0) 
cout << "x = " << x << " y = " << y << " z = " << z << " k = " << k; 
else 
cout << x + 1 << " " << y - 1 << " " << z + 2 << " " << k - 2; 
	
	
	
	11 11 2 0
	
	
	x = 10 y = 12 z = 0 k = 0
	
	
	x= 11 y = 11 z = 2 k = 0
	
	
	x = 10 y = 12 z = 0.833 k = 0
	
	
	10 12 2 0
	
Explicação: 
É preciso fazer um teste de mesa ou chinês e encontrar a resposta correta, como indicado. Para isso, o conteúdo sobre comando condicional, atualmente, na aula 5,  é suficiente, junto com declaração de variáveis de aula anterior.
 
x recebe 10 e depois
y recebe 3 e depois y recebe 10+3-1, que dá 12
z recebe 10/12, que dá 0
k recebe 2
TEste do if é falso. Então, entra-se no else e é impresso :    11   11  2  0 
	
	
	
	 
		
	
		6.
		Você deseja analisar se um número inteiro qualquer fornecido pelo usuário é par e positivo ou par e negativo. Com base na sintaxe do Portugol Studio, o trecho que realiza corretamente o teste para descobrir as características do número é:
	
	
	
	escreva("Informe um número qualquer: ")
leia(num)
resto=num%2
se (resto==0 ou num>0)
{ escreva("Este número é par e positivo!") }
senao se (resto!=0 ou num>0)
{ escreva("Este número é ímpar e positivo!")}
	
	
	escreva("Informe um número qualquer: ")
leia(num)
resto=num^2
se (resto==1 e num>1)
{ escreva("Este número é par e positivo!") }
senao se (resto!=0 e num>0)
{ escreva("Este número é ímpar e positivo!")}
	
	
	escreva("Informe um número qualquer: ")
leia(num)
resto=num/2
se (resto==0 !! num>0)
{ escreva("Este número é par e positivo!") }
senao se (resto!=0 !! num>0)
{ escreva("Este número é ímpar e positivo!")}
	
	
	escreva("Informe um número qualquer: ")
leia(num)
resto=num%2
se (resto==0 e num>0)
{ escreva("Este número é par e positivo!") }
senao se (resto!=0 e num>0)
{ escreva("Este número é ímpar e positivo!")}
	
	
	escreva("Informe um número qualquer: ")
leia(num)
resto=num%2
se (resto==0 e num<0)
{ escreva("Este número é ímpar e positivo!") }
senao se (resto!=0 e num>0)
{ escreva("Este número é par e positivo!")}
	
	
	
	 
		
	
		7.
		No C++, a estrutura seletiva if permite que sejam avaliadas condições para que, a partir do resultado dessa avaliação, o programa decida o trecho a ser executada. Imaginando que você precisa avaliar se um número armazenado na variável num é positivo, negativo, ou nulo, que alternativa apresenta o trecho da condição seletiva necessário para este teste?
	
	
	
	if (num>0)
{ cout <<"Este número é positivo!";}
else if (num<0)
{ cout <<"Este número é negativo!";}
else
{ cout <<"Este número é nulo!";}
	
	
	if (num>0)
{ cout <<"Este número é positivo!";}
else (num<0)
{ cout <<"Este número é negativo!";}
else
{ cout <<"Este número é nulo!";}
	
	
	if (num>0)
{ cin <<"Este número é positivo!";}
else if (num<0)
{ cin <<"Este número é negativo!";}
else
{ cin <<"Este número é nulo!";}
	
	
	else (num>0)
{ cout <<"Este número é positivo!";}
if (num<0)
{ cout <<"Este número é negativo!";}
else
{ cout <<"Este número é nulo!";}
	
	
	if (num<0)
{ cout <<"Este número é positivo!";}
else if (num>0)
{ cout <<"Este número é negativo!";}
else
{ cout <<"Este número é nulo!";}
	
	
	
	 
		
	
		8.
		Analise o trecho abaixo que um aluno desenvolveu na linguagem C++ e escolha a opção onde estão os valores que aprecem na tela.
int x = 13, y = 4, z;
if( x > y ) { z = x; x = y; y = z; }
cout << z << " " << x << " " << y ;
	
	
	
	13 13 4 
	
	
	0 13 4 
	
	
	0 4 13 
	
	
	13 4 13 
	
	
	4 13 13
	
Explicação: 
Fazendo um teste de mesa  através de comentários no trecho dado :
int x = 13, y = 4, z;           // x recebe 13 e y recebe 4     
if( x > y )           //testa se 13 é maior que 4 ... É verdade. Então, entra no bloco do if
{
   z = x;         // z recebe x, que vale 13. Ou seja, z recebe 13
   x = y;       // x recebe y, que é 4.   Ou seja, x recebe 4
  y = z;       // y recebe z, que vale 13. Ou seja, y recebe 13
}
cout << z << " " << x << " " << y ;  //SErá impresso  :    13  4  13

Continue navegando