Prévia do material em texto
17/10/2018 Conteúdo Interativo http://estacio.webaula.com.br/Classroom/index.html?id=2253755&classId=979811&topicId=2652531&p0=03c7c0ace395d80182db07ae2c30f034… 1/6 ALGORITMOS 10a aula Lupa Vídeo PPT MP3 1a Questão Analise a seguinte afirmação: "Um edifício tem 8 andares, cada andar tem 5 apartamentos." Como poderíamos escrever uma declaração de matriz na linguagem C++, seguindo a afirmação acima, sabendo que os dados seriam do tipo int ? int edificio[40][1]; int edificio[8][5]; int edificio[5][8]; int edificio[40][5]; int edificio[1][40]; Explicação: Analisando ... "Um edifício tem 8 andares, cada andar tem 5 apartamentos." Cada andar pode ser visto como uma linha da matriz. E em cada linha ou andar, podemos ter 5 apartamentos ou 5 colunas. Dessa forma temos : int edificio[8][5]; porque no 1o. par de parênteses temos o total de linhas e no 2o. par de colchetes temos o total de colunas Veja que em todas as opções temos a variável de nome edificio. 2a Questão Todos os elementos que são maiores que cinco do vetor VALOR. Todos os elementos do vetor VALOR. 17/10/2018 Conteúdo Interativo http://estacio.webaula.com.br/Classroom/index.html?id=2253755&classId=979811&topicId=2652531&p0=03c7c0ace395d80182db07ae2c30f034… 2/6 Todos os elementos que são menores que cinco do vetor VALOR. Todos os elementos pares do vetor VALOR. Todos os elementos ímpares do vetor VALOR. Explicação: Analisando o trecho dado em C++, temos o seguinte : x é índice do vetor VALOR e é inicializado com zero. x irá de zero até 10, mas só entrará no loop até valer 9. PAra cada x de 0 até 9 entraremos no loop e testaremos se o elemento de VALOR de índice x é maior que 5. Se for, tal elemento será impresso na tela. Se não for, nada faremos. Olhando para o vetor VALOR temos que serão impressos os valores de 6 até 10. Analisando cada opção : Falso. Serão impressos valores ímpares também. Todos os elementos pares do vetor VALOR. Falso. Serão impressos valores pares também. Todos os elementos ímpares do vetor VALOR. Falso. Serão impressos valores maiores que 5. Todos os elementos que são menores que cinco do vetor VALOR. Todos os elementos que são maiores que cinco do vetor VALOR. Falso. Serão impressos apenas os valores 6, 7, 8, 9 e 10 Todos os elementos do vetor VALOR. 3a Questão Suponha que em um programa em C/C++ se deseje armazenar 15 valores decimais em um vetor LISTA. Assinale a declaração correta: float LISTA[15]; int lista[15]; int LISTA[16]; float lista[16]; float lista[15]; Explicação: Verdadeira float LISTA[15]; Falso. É 15 e não 16. Além disso, deve-se usar float ou double e não int. int LISTA[16]; Falso. É 15 e não 16. float lista[16]; 17/10/2018 Conteúdo Interativo http://estacio.webaula.com.br/Classroom/index.html?id=2253755&classId=979811&topicId=2652531&p0=03c7c0ace395d80182db07ae2c30f034… 3/6 FAlso. Deve-se usar float ou double e não int. int lista[15]; Falso. O nome do vetor dado no enunciado é LISTA e não lista. float lista[15]; 4a Questão Suponha que você tenha que fazer um programa em C++ e deseja armazenar a venda dos 3 meses de 30 vendedores de uma loja em uma matriz. Marque a opção que representa esta declaração: char valores[30][2]; float valores[30][3]; float valores[30][2]; char valores[30]; float valores[32]; Explicação: Para cada vendedor teremos os valores dos 3 meses. Ou seja, para cada um dos 30 vendedores iremos armazenar valores reais, um em cada mês. Então, podemos declarar uma matriz bidimensional com 30 linhas e 3 colunas. Como foi usado o nome valores para a matriz e se está armazenando os valores dos vendedores, usaremos float. Então, float valores[30][3]; 5a Questão Em uma aplicação em C/C++, a matriz ESTOQUE [3][4] armazena, em cada uma de suas linhas, a quantidade estocada de produtos no último quadrimestre (4 meses). Sabendo-se que a declaração de uma matriz em C/C++ se dá da forma: < tipo de dado> nome [nºde linhas][nºde colunas]; Para obter o total estocado no primeiro mês do quadrimestre, o programa deverá: Somar todas as colunas da linha índice 1 Somar todas as linhas da coluna índice 1. Somar todas as linhas da coluna índice 0. Somar todas as linhas de todas as colunas. Somar todas as colunas da linha índice 0. Explicação: Como a 1a. coluna (coluna 0) é relativa ao 1o. mês, então é preciso somar todas as linhas da coluna 0. Analisando as opções : Verdadeira Somar todas as linhas da coluna índice 0. Falso. Tem que somar todas as linhas da coluna 0 Somar todas as colunas da linhaíndice 0. 17/10/2018 Conteúdo Interativo http://estacio.webaula.com.br/Classroom/index.html?id=2253755&classId=979811&topicId=2652531&p0=03c7c0ace395d80182db07ae2c30f034… 4/6 Falso. O 1o. mês é relativo à 1a. coluna, que tem índice zero. Somar todas as linhas da coluna índice 1. Falso. Tem que somar todas as linhas, cuja coluna tem índice 0. Somar todas as colunas da linha índice 1 FAlso. Se quer apenas o 1o. mês, que está na 1a. coluna. Somar todas as linhas de todas as colunas. 6a Questão Análise de código abaixo e selecione entre as alternativas, o que será impresso, após a execução. int a = 3, b = 2; int v[] = { 6, 7, 8, 9}; a = (v[2] - v[0]) + a; int d = a * v[b]; std::cout << d << " " << v[1] << a + 2; 40 75 35 67 40 77 21 67 24 75 Explicação: int a = 3, b = 2; int v[] = { 6, 7, 8, 9}; a = (v[2] - v[0]) + a; int d = a * v[b]; std::cout << d << " " << v[1] << a + 2; Analisando passo a passo : a b v d 3 2 {6,7,8,9} a recebe 8 - 6 + 3, que dá 5 5 * v[2], ou seja, 5 * 8 = 40 Na tela será impresso : 40 7 7 pois, d vale 40 v[1] vale 7 a vale 5 e somado com 2 dá 7 7a Questão Considere os seguintes valores de entrada: 1, 2, 3, 4, 5, 6, 7, 8 e 9 e ainda, o programa abaixo. Marque a resposta que mostra o que será exibido na tela. 17/10/2018 Conteúdo Interativo http://estacio.webaula.com.br/Classroom/index.html?id=2253755&classId=979811&topicId=2652531&p0=03c7c0ace395d80182db07ae2c30f034… 5/6 #include < iostream > using namespace std; int main() { int lin, col, mat[3][3]; for (lin=0; lin<3; lin++) for(col=0; col<3; col++) { cout<< "\nEntre com o elemento da matriz:"; cin>> mat[lin][col]; } for (lin=0; lin<3; lin++) cout << mat[lin][lin]<<"\n"; system("pause"); return 0; } 1 2 3 1 5 9 1 3 5 7 9 1 2 3 4 5 6 7 8 9 2 4 6 8 Explicação: Considerando a entrada 1, 2, 3, 4, 5, 6, 7, 8 e 9 e o trecho do programa abaixo, veja o comentado ao fim de cada trecho. int lin, col, mat[3][3]; for (lin=0; lin<3; lin++) for(col=0; col<3; col++) { cout<< "\nEntre com o elemento da matriz:"; cin>> mat[lin][col]; } O trecho acima montará a matriz com 3 linhas e 3 colunas, a saber : 1 2 3 4 5 6 7 8 9 Já o trecho a seguir : for (lin=0; lin<3; lin++) cout << mat[lin][lin]<<"\n"; imprimirá os elementos da matriz em que a linha e a coluna são iguais. Ou seja, imprimirá os elementos da diagonal principal, que estão destacados em amarelo. 1 2 3 4 5 6 7 8 9 Impressos : 1 5 9 8a Questão Analise o código abaixo e assinale o item que corresponde aos valores finais do vetor v. 17/10/2018 Conteúdo Interativo http://estacio.webaula.com.br/Classroom/index.html?id=2253755&classId=979811&topicId=2652531&p0=03c7c0ace395d80182db07ae2c30f034…6/6 int a = 2; int v[] = {2, 3, 1}; v[0] = v[a]; v[1] = v[0] + v[0]; v[2] = v[0] + v[1]; 2, 3, 1 2, 1, 3 1, 3, 2 3, 2, 1 1, 2, 3 Explicação: Comentando linha a linha, a resposta será encontrada. int a = 2; int v[ ] = {2, 3, 1}; v[0] = v[a]; //v[0] recebe v[2], que é 1 v[1] = v[0] + v[0]; // v[1] recebe 1 + 1, que dá 2 v[2] = v[0] + v[1]; //v[2] recebe o valor 1+2, que dá 3