Buscar

Prova final introdução a programação

Prévia do material em texto

Disciplina: Introdução a programação 
 
 
ATIVIDADE – Avaliação final 
 
Observações: 
1. A solução correta e entrega até às 15hs de 12/01/2022 resulta na nota 
de exame final do estudante. 
2. A avaliação possui 6 questões, com 4 questões contando 2.0 pontos 
cada, e com 2 questões contando 1.0 ponto cada, totalizando 10 
pontos. 
 
 
Atividades de avaliação 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
[2.0 pontos] A1 – Assuma que i e x são variáveis do tipo inteiro. Sua tarefa: examinar 
os fragmentos de código e responder V (se a afirmativa é verdadeira) ou F, caso 
contrário. 
( ) I. A condição do for no fragmento de código é executada 11 vezes. 
 ... 
 i = 2; 
for(i = 1; i <= 10; ++i) { 
 //... 
 // 
} 
 
( ) II. A condição do do..while no fragmento de código não é executada. 
 ... 
 n = 1; 
 do { 
 n++; 
 } while (n <= 0); 
 ... 
 ( ) III. A condição do do..while no fragmento de código é executada 11 vezes. 
 ... 
 srand(time(0)); 
 n, i = 1; 
 do { 
 n = rand()%1 - 1; 
 i++; 
 } while(i+n <= 10); 
 
 ( ) IV. A condição do do..while no fragmento de código é executada 11 vezes. 
 ... 
 srand(time(0)); 
 n, i = 1; 
 n = rand()%1 - 1; 
 do { 
 i++; 
 } while(i+n <= 10); 
 
 
[2.0 pontos] A2 – Considere o bloco de código A2. 
 
while (x != y and y!= 0){ 
 aux = y; 
 y = x%y; 
 x = aux; 
 } 
 Código A2 
 
Considere ainda que x, y e aux sejam declaradas como variáveis do tipo inteiro. Assuma 
que somente números inteiros no intervalo de 9 a 99999 podem ser atribuídos às 
variáveis x e y. 
Responda em uma frase: 
Qual a funcionalidade que este bloco de código implementa? (Ou seja, após um 
programa contendo este bloco de código receber os valores x e y, como especificado, 
o que o programa descobre?) 
 
Resposta: ____________________________________________________________ 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
[1.0 ponto] A3 – O código A3 gera números inteiros n no intervalo de 0 a 9 com 
a instrução: 
 n = rand()%10; 
Deseja-se modificar essa instrução de modo a gerar números inteiros no 
intervalo de -25 até 25. Escreva a instrução a ser usada para atender este 
objetivo: 
 n = ____________________________ 
 
 ... 
 srand(time(0)); 
 int n, i = 1; 
 do { 
 n = rand()%10; 
 i++; 
 } while(i <= 10); 
 ... 
 Código A3 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
[2.0 pontos] A4 – O professor da disciplina Introdução a programação elaborou 
uma função f(), a ser utilizada no Código A4. Observe que a função f() recebe 
como dado de entrada dois números inteiros a e b. Os valores de a e b podem 
ser qualquer número inteiro desde que contidos no intervalo [1, 9] (isto é, de 1 
até 9). Sua tarefa é examinar a função f() e descobrir sua funcionalidade. Escreva em 
uma única linha o que a função f() faz com os números a e b. 
 
Resposta: _____________________________________________________________ 
 
 
 
#include <iostream> 
using namespace std; 
 
int f(int a, int b){ 
 int c; 
 if (b == 0) { 
 return 1; 
 } 
 else { 
 if(b%2 == 1){ 
 return a*f(a, b-1); 
 } 
 else { 
 c = f(a, b/2); 
 return c*c; 
 } 
 } 
} 
int main() { 
 ... 
} 
Código A4 
 
 
 
 
 
 
 
[2.0 pontos] A5 – O professor da disciplina Introdução a programação elaborou 
um programa que implementa a funcionalidade especificada no Código A5. 
Observe que o programa solicita o usuário digitar um número um número real, 
sendo este armazenado numa variável n do tipo double. Sua tarefa: especificar 
a instrução que o programa deve conter na linha 9 para obter a parte fracionária 
do número n digitado, armazenando essa parte fracionária na variável nFrac (do 
tipo double). Assim, por exemplo, se o usuário digitar 2.022 para o valor de n, o 
programa possa exibir na saída: 
nFrac = 0.022 
 
1. #include <iostream> 
2. using namespace std; 
3. main (){ 
4. int nInt; 
5. double nFrac; 
6. double n; 
7. cout << “Digite n: “; 
8. cin >> n; 
9. _________________ 
10. cout << “nFrac = “ << nFrac << endl; 
11. } 
 Código A5 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
[1.0 ponto] A6 – Considere o programa apresentado no código A6. 
 
#include <iostream> 
using namespace std; 
int main() { 
 int i; 
 int a[5] = {A, B, C, D, E}; 
 for(i = 0; i < 4; i++){ 
 while(a[i] != a[i+1]) { 
 if(a[i] > a[i+1]) 
 a[i] = a[i]- a[i+1]; 
 else 
 a[i+1] = a[i+1] - a[i]; 
 } // fim do whlle 
 } // fim do for 
 cout << a[i] << "\n"; 
} // fim do main() 
Código A6 
 
Suponha que o usuário pode atribuir qualquer número inteiro no intervalo de 2 até 2022, 
isto é, [2, 2022] a quaisquer dos elementos A, B, C, D e E do array a[]. 
Sua tarefa: examinar o código e verificar se a afirmativa seguinte é verdadeira ou falsa. 
Assinale V (verdadeiro) ou F (falso) na seguinte alternativa: 
 
( ) Após examinar e testar o programa para qualquer das possíveis combinações de 
valores que podem ser atribuídos aos elementos A, B, C, D e E do array a[], o cout 
(última instrução antes do } da função main() ) do programa pode exibir 1.

Continue navegando