Baixe o app para aproveitar ainda mais
Prévia do material em texto
Exercício: CCT0749_EX_A10_201801153345_V1 26/10/2018 16:08:53 (Finalizada) Aluno(a): JORGIVALDO NOGUEIRA LEAL 2018.3 EAD Disciplina: CCT0749 - ALGORITMOS 201801153345 1a Questão Um médico precisa armazenar o peso, a altura e o IMC de seus 1000 pacientes. Contratou um programador que disse que o programa teria algumas matrizes unidimensionais para o armazenamento. Assinale a opção abaixo que representa a declaração das referidas matrizes pelo programador, conforme as informações acima: float peso[1001], altura[1001], imc [1001]; char peso[999], altura[999], imc [999]; float peso[1000] ; altura[1000] ; imc[1000]; char peso[1000], altura [1000], imc[1000]; float peso[1000], altura[1000], imc [1000]; Explicação: Para reunir os pesos de 1000 pacientes teremos um vetor para 1000 elementos do tipo float Para reunir as alturas de 1000 pacientes teremos um vetor para 1000 elementos do tipo float Para reunir os imcs de 1000 pacientes teremos um vetor para 1000 elementos do tipo float Logo, a resposta certa é float peso[1000], altura[1000], imc [1000]; 2a 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 77 24 75 40 75 35 67 21 67 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 3a Questão Análise a seguinte afirmação: "Um shopping possui 4 andares, cada andar possui 30 lojas". Se você for declarar uma matriz, na linguagem C++, para a afirmação acima, qual das opções abaixo você escolheria? int shopping[4][30]; int shopping[30][30]; int shopping[30][1]; int shopping[4][4]; int shopping[1][30]; Explicação: Considerando cada andar como uma linha da matriz e as 30 lojas como as 30 colunas da matriz, teremos : int shopping[4][30]; Vejamos as outras opções : Falso. São 4 andares. Então, não pode ser 1 linha int shopping[1] [30]; Verdadeiro int shopping[4] [30]; FAlso. São 30 lojas em cada andar, ou seja, 30 colunas em cada linha. E como são 4 linhas, não podemos ter 30 linhas e 1 coluna int shopping[30] [1]; Falso. Não são 4 andares com 4 lojas em cada andar. int shopping[4] [4]; FAlso. Não podem ser 30 linhas porque não são 30 andares. int shopping[30] [30]; 4a Questão Os chamados vetores e matrizes podem ser considerados como: Estruturas de dados heterogêneas Comandos de seleção Comandos de seleção composta Comandos de repetição Estruturas de dados homogêneas Explicação: Verdadeira Estruturas de dados homogêneas FAlsa. Em vetores e matrizes os dados são todos do mesmo tipo. Estruturas de dados heterogêneas Falso. Comandos de seleção são if, if/else e switch Comandos de seleção Falso. Comandos de repetição são for, while e do/while Comandos de repetição Falso. Comando if/else e não vetor ou matriz. Comandos de seleçãocomposta 5a Questão Analise o código em C++ mostrado abaixo e assinale a alterna�va que descreve corretamente a sua execução: #include < iostream > using namespace std; int main() { int p, num[50]; for (p = 0; p <= 49; p++) { cout << "Digite um valor : "; cin >> num[p]; } for (p = 0; p <= 49; p++) { if (num[p] % 2 == 0 && num[p] > 30) cout << num[p] << "\t"; } system("pause"); return 0; } O código armazenará em um vetor 50 números inteiros e imprimirá todos os 50 números. O código armazenará em um vetor 50 números inteiros e imprimirá somente os números ímpares e que sejam maiores que 30. O código armazenará em um vetor 50 números inteiros e imprimirá somente os números pares e que sejam maiores que 30. O código armazenará em um vetor 50 números inteiros e imprimirá somente os números pares e que sejam menores que 30. O código armazenará em um vetor 50 números inteiros e imprimirá todos os números que sejam maiores que 30. Explicação: Analisando o programa temos que : O 1o. for lê valores inteiros e os armazena em um vetor com capacidade para 30 elementos. Depois, no 2o. for, testa cada elemento do vetor e verifica se é par e se é maior que 30. Apenas satisfazendo as 2 condições é que o elemento de v será impresso. Analisando cada opção : O código armazenará em um vetor 50 números inteiros e imprimirá todos os 50 números. é falso. Nâo imprime todos os números O código armazenará em um vetor 50 números inteiros e imprimirá todos os números que sejam maiores que 30. é falso. Tem que ser par e maior que 30 para ser impresso. O código armazenará em um vetor 50 números inteiros e imprimirá somente os números ímpares e que sejam maiores que 30. é falso. Imprime os pares maiores que 30 e não os ímpares. O código armazenará em um vetor 50 números inteiros e imprimirá somente os números pares e que sejam menores que 30. é falso. Tem que ser par e maior que 30 para ser impresso. O código armazenará em um vetor 50 números inteiros e imprimirá somente os números pares e que sejam maiores que 30. Verdadeira 6a Questão Uma professora possui uma turma de 40 alunos e precisa declarar uma matriz bidimensional, na linguagem C++, para armazenar as notas de AV1, AV2 e AV3 da turma. Considere que ela necessita dos dados organizados na matriz, de modo que cada linha deverá representar um aluno. Assinale a alterna�va que apresenta a declaração desta matriz. float notas[40][3]; char notas[40][3]; float notas[40,3]; int notas[40][40]; char notas[3][40]; Explicação: Se cada linha deve representar um aluno e são 40 alunos então a matriz a ser declarada terá 40 linhas. Como é preciso armazenar as 3 notas de cada aluno então, a matriz possuirá 3 colunas. Se é preciso armazenar notas então o tipo de dados deve ser float. Analisando as opções. Falso. Errado o número de colunas e o tipo de dados. int notas[40][40]; Falso. Seriam 40 linhas, 3 colunas e o tipo float. tipo char para nota não serve. char notas[3] [40]; Falso. Não se separa o total de linhas do total de colunas com vírgula. float notas[40,3]; Verdadeira float notas[40] [3]; FAlso. Erro no uso do tipo char. char notas[40][3]; 7a Questão Sabendo-se que a sintaxe do C e do C++ estabelece que a declaração de vetores bidimensionais deve se dar da seguinte forma: < tipo do dado > nome_da_matriz [nº de linhas][nº de colunas]; Na codificação de um programa, na linguagem C++, é necessário a declaração de uma matriz bidimensional para armazenar as notas de 6 disciplinas de uma turma com 30 alunos. Tomando-se como base que o algoritmo considera que os dados estarão organizados na matriz de modo que cada linha represente as notas de um único aluno, marque a alternativa que apresenta de forma correta a declaração desta matriz, chamada notasAlunos. d) float notasAlunos[6,30]; a) float notasAlunos[30][6]; c) float notasAlunos[30,6]; e) float notasAlunos[][]; b) float notasAlunos[6][30]; Explicação: Como cada linha possui as notas de cada aluno e são 6 disciplinas ( = 6 notas) então teremos uma matriz com 30 linhas e 6 colunas. como a matriz se chama notasAlunos e as notas são valores reais teremos : float notasAlunos[30][6]; Vendo porque as outras opçõesnão podem ser : Falso. São 30 linhas e 6 colunas. A matriz declarada neste item coloca 6 linhas e 30 colunas. float notasAlunos[6] [30]; Falso. Sintaticamente incorreto. Precisa trabalhar com as linhas e colunas dentro de colchetes separados. float notasAlunos[30,6]; Falso. Erro nos valores e na sintaxe no uso dos colchetes. floatnotasAlunos[6,30]; Falso. Nâo colocou o total de linhas e de colunas. floatnotasAlunos[][]; 8a Questão Um lojista gostaria de desenvolver um programa para armazenar os códigos(valores inteiros), os valores de compra(valores reais), os valores de vendas(valores reais) e a quantidade(valores inteiros) de todos os mil produtos. Pensou em declarar algumas matrizes unidimensionais para tornar isso possível. Qual das opções abaixo declara as matrizes necessárias para que o programa possa ser desenvolvido a partir delas e seguindo, rigorosamente, as sugestões do texto acima? double codigos[1000], qtdade[1000], valorC[1000], valorV[1000]; double codigos[1000], qtdade[1000]; float valorC[1000], valorV[1000]; int codigos[999], qtdade[999]; float valorC[999], valorV[999]; double codigos[999], qtdade[999], valorC[999], valorV[999]; int codigos[1000], qtdade[1000]; float valorC[1000], valorV[1000]; Explicação: Analisando o enunciado, temos que : >> será criado um vetor para 1000 valores do tipo int para armazenar os códigos >> será criado um vetor para 1000 valores do tipo float ou double para armazenar os valores de compra e outro vetor para 1000 valores do tipo float ou double para armazenar os valores de venda >> será criado um vetor para 1000 valores do tipo int para armazenar as quantidades Então, a opção que segue a explicação acima é int codigos[1000], qtdade[1000]; float valorC[1000], valorV[1000]; Nenhuma opção que crie vetores com capacidade para 999 elementos servirá, pois são 1000 elementos. Não confundir com os índices que irão de 0 até 999 para vetores de 1000 elementos.
Compartilhar