Prévia do material em texto
04/04/22, 14:34 Avaliação II - Individual 1/6 Prova Impressa GABARITO | Avaliação II - Individual (Cod.:690398) Peso da Avaliação 1,50 Prova 39216202 Qtd. de Questões 10 Acertos/Erros 9/1 Nota 9,00 Algoritmos são desenvolvidos para resolver inúmeros problemas, os quais sempre respeitam uma estrutura bem definida e também as etapas de entrada, processamento e saída. Diante disso, com base nas atribuições das variáveis definidas e no algoritmo anexo, avalie as asserções a seguir e a relação proposta entre elas: I- A linha 19 não será executada se inicializar a=5, x=6 e y=7. PORQUE II- Devido à execução da linha 13, o valor de y terá o valor 8, que é menor do que o valor 12, comparado na linha 16. Assinale a alternativa CORRETA: A As duas asserções são proposições verdadeiras, e a segunda é uma justificativa correta da primeira. B A primeira asserção é uma proposição falsa, e a segunda, uma proposição verdadeira. C As duas asserções são proposições verdadeiras, mas a segunda não é uma justificativa correta da primeira. D A primeira asserção é uma proposição verdadeira, e a segunda, uma proposição falsa. VOLTAR A+ Alterar modo de visualização 1 04/04/22, 14:34 Avaliação II - Individual 2/6 Estruturas de Dados (Data Structures) é o nome dado à organização de dados e algoritmos de forma coerente e racional de modo a otimizar o seu uso. De acordo com o modo como um conjunto de dados são organizados e como as operações são efetuadas sobre estes dados, pode-se solucionar de forma simples problemas extremamente complexos. Existem diversos modelos de estruturas de dados, sendo que os clássicos podem ser utilizados com sucesso na maioria dos casos. Sobre as estruturas de dados utilizados em linguagens de programação, classifique V para as sentenças verdadeiras e F para as falsas: ( ) A linguagem Java possui tipos de dados primitivos, que não possuem uma estrutura sobre seus valores, ou seja, não é possível decompor. ( ) Em C e Java o desempenho de uma operação com uma matriz é independente da forma como elas são organizadas em memória. ( ) Uma estrutura de dados do tipo união (union) é representada em memória da mesma forma que um registro (record). Assinale a alternativa que apresenta a sequência CORRETA: A F - F - V. B F - V - V. C V - V - F. D V - F - F. Vetores e matrizes são estruturas de dados homogêneas que permitem o armazenamento de vários valores ao mesmo tempo. No entanto, todo valor armazenado em um mesmo vetor ou matriz deve possuir o mesmo tipo de dado associado, ou seja, um vetor/matriz de valores inteiros só pode armazenar valores inteiros. Considerando o algoritmo anexo, que utiliza um vetor para armazenar valores reais, analise as afirmativas a seguir: I- Ao informar um valor texto na linha 11 do algoritmo, ocorrerá um erro, pois o programa espera um valor do mesmo tipo do vetor - real. II- Ao informarmos 4, 10, 2, 6, 5, 3, 1 e 1 aos valores solicitados ao longo da execução do algoritmo, a média aritmética dos valores de todas as posições do vetor é 4. III- O vetor "números" poderia ser substituído por uma matriz com 2 linhas e 5 colunas, porém essa modificação acarretaria em alterações no algoritmo para se trabalhar com indexação dupla. IV- Informando valores numéricos quando solicitado, o algoritmo executará sem erros. Assinale a alternativa CORRETA: A As afirmativas I, II e III estão corretas. B Somente a afirmativa IV está correta. C As afirmativas II e III estão corretas. D As afirmativas I, III e IV estão corretas. 2 3 04/04/22, 14:34 Avaliação II - Individual 3/6 A classe CountOccurrence escrita na linguagem Java tem por objetivo localizar e contar quantas ocorrências de um determinado valor existem em um conjunto predeterminado de valores, retornando a quantidade de vezes que um determinado valor se repete no conjunto. public class CountOccurrence { public boolean hasValue(int searchValue, int[] array, int i) { if (i >= array.length) return false; if (array[i] == searchValue) return true; else return hasValue(searchValue, array, i + 1); } public int count(int countValue, int[] array, int i) { if (!hasValue(countValue, array, i) '' i >= array.length) return 0; int c = 0; if (array[i] == countValue) c++; c += count(countValue, array, i+1); return c; } public static void main(String[] args) { int[] array = {2, 3, 5, 6, 9, 7, 8, 8, 9}; CountOccurrence co = new CountOccurrence(); System.out.println(co.count(5, array, 0)); } } Considerando o requisito proposto e o código apresentado, avalie as asserções a seguir e a relação proposta entre elas: I- Para que o algoritmo funcione corretamente, deve-se alterar a linha 21, de c += count( countValue, array, i ); para c += count(countValue, array, i + 1); PORQUE II- Da forma como o código está escrito, o código não compilará por estar chamando o mesmo método dentro dele indefinidamente. Assinale a alternativa CORRETA: A As duas asserções são proposições verdadeiras, mas a segunda não é uma justificativa correta da primeira. B A primeira asserção é uma proposição verdadeira, e a segunda, uma proposição falsa. C As duas asserções são proposições falsas. D A primeira asserção é uma proposição falsa, e a segunda, uma proposição verdadeira. Uma empresa deseja manter seu pequeno estoque em uma matriz, com quatro linhas por três colunas. Após o cadastro, o algoritmo deve permitir a busca por código. Crie um algoritmo que solicite valores e preencha uma matriz de ordem 4 x 3 (4 linhas por 3 colunas). Em seguida, o algoritmo deverá solicitar mais um valor para procurá-lo na matriz. O algoritmo deverá informar, no fim, em que linha x coluna está o valor. Caso o código não for encontrado, enviar um aviso informando que o produto não está cadastrado. Algoritmo busca_vetor; var mat : vetor [1..4,1..3] de real; procurar : real; l, c : inteiro; encontrou : lógica; início Para l <- 1 até 4 faça início Para c <- 1 até 3 faça início escreva('Valor: '); Leia(mat[l,c]); Fim; Fim; escreva('Valor para busca: '); Leia(procurar); encontrou <- falso; Se (not encontrou) então início escreva('Não tem na matriz: ',procurar); Fim; Fim. Baseado nessa solicitação e no código apresentado, analise as sentenças a seguir: I- O algoritmo está correto e vai buscar um valor dentro do vetor. II- O algoritmo não está selecionando um valor dentro do vetor. III- O algoritmo está com a declaração de variáveis incorreto. IV- O algoritmo solicita e armazena corretamente os valores. Assinale a alternativa CORRETA: A As sentenças I, III e IV estão corretas. B As sentenças I, II e III estão corretas. C As sentenças II e III estão corretas. D As sentenças II e IV estão corretas. Estruturas de dados são objetos que armazenam dados de forma eficiente, ofertando ao usuário uma ordenação eficiente dos dados e buscas por meio de palavras-chave, por exemplo. Analise os trechos de 4 5 6 04/04/22, 14:34 Avaliação II - Individual 4/6 código em linguagem de programação C: Trecho 1 main() { int mat[2][2] = {{1,2},{3,4}}; int i,j; for (i=0;i<2;i++) for (j=0;j<2;j++) printf("%dn",mat[i][j]); system("pause"); } Trecho 2 main() { int mat[2][2] = {{1,2},{3,4}}; int *p = &mat[0][0]; int i; for (i=0;i<4;i++) printf("%dn",*(p+i)); system("pause"); } Com base no exposto, classifique V para as sentenças verdadeiras e F para as falsas: ( ) O Trecho 2 indicará um erro de sintaxe na inicialização do ponteiro. ( ) O Trecho 2 imprimirá valores desconhecidos alocados na memória. ( ) Ambos os trechos de código imprimirão o mesmo conteúdo na tela. ( ) Ambos os trechos de código indicarão erro de sintaxe na inicialização da matriz mat. Assinale a alternativa que apresenta a sequência CORRETA: A V - V - F - V. B F - V - V - F. C F - F - V - F. D V - F - F - V. Foi solicitada a criação de um algoritmo que faça a leitura de três notas, apresentando uma mensagem com a maior nota. Com base nessa solicitação e no algoritmo anexo, analise as sentenças a seguir: I- O algoritmo não funciona, pois não pode ordenar valores do tipo real. II- O algoritmo não funciona, pois asvariáveis utilizadas não foram declaradas. III- O algoritmo não está com a lógica correta para o que foi solicitado. IV- O algoritmo está certo e apresentará a maior nota de três. Assinale a alternativa CORRETA: A As sentenças I, II e III estão corretas. B As sentenças II e IV estão corretas. C As sentenças II, III e IV estão corretas. D As sentenças II e III estão corretas. As variáveis são responsáveis por armazenar os dados utilizados pela lógica. Em alguns casos, é necessário trabalhar com um conjunto de dados de variados tipos, por exemplo, para armazenar dados de 7 8 04/04/22, 14:34 Avaliação II - Individual 5/6 alunos de uma turma, como seu nome, CPF e data de nascimento. Para agrupar mais de uma variável em um único registro, é utilizado o conceito de registros. No anexo, é apresentada a declaração de um registro. Sobre os registros, analise as sentenças a seguir: 01 type ALUNO: record 02 NOME: texto[60]; 03 NOTA: real; 04 end; I- Para ler o nome de um aluno na variável interna NOME, pode-se utilizar a sintaxe " leia ALUNO.NOME; ". II- Para exibir a nota de um aluno, é utilizada a sintaxe " escreva ALUNO.NOTA; ". III- Todos os alunos de uma turma podem ser armazenados em uma única variável, declarando um vetor com a sintaxe " LISTAALUNOS[100]: ALUNOS;". IV- A expressão "end" determina que as variáveis internas do registro terminaram de ser declaradas. Assinale a alternativa CORRETA: A As sentenças III e IV estão corretas. B As sentenças I, II e III estão corretas. C As sentenças I, II e IV estão corretas. D As sentenças II e III estão corretas. Vetores e matrizes são estruturas de dados homogêneas que permitem o armazenamento de vários valores ao mesmo tempo. No entanto, todo valor armazenado em um mesmo vetor ou matriz deve possuir o mesmo tipo de dado associado, ou seja, um vetor/matriz de valores inteiros só pode armazenar valores inteiros. Considerando o algoritmo anexo, que utiliza um vetor para armazenar valores reais, analise as sentenças a seguir: I- Ao informar um valor texto na linha 11 do algoritmo, ocorrerá um erro, pois o programa espera um valor do mesmo tipo do vetor - real. II- Ao informarmos 4, 10, 2, 6, 5, 3, 1 e 1 aos valores solicitados ao longo da execução do algoritmo, a média aritmética dos valores de todas as posições do vetor é de 4. III- O vetor "números" poderia ser substituído por uma matriz com 2 linhas e 5 colunas, porém essa modificação acarretaria em alterações no algoritmo para se trabalhar com indexação dupla. IV- Informando valores numéricos quando solicitado, o algoritmo executará sem erros. Assinale a alternativa CORRETA: A As sentenças I, III e IV estão corretas. B As sentenças II e III estão corretas. C As sentenças I, II e III estão corretas. D Somente a sentença IV está correta. As variáveis são responsáveis por armazenar os dados utilizados pela lógica. Em alguns casos, é necessário trabalhar com um conjunto de dados de variados tipos, por exemplo, para armazenar dados de 9 10 04/04/22, 14:34 Avaliação II - Individual 6/6 alunos de uma turma, como seu nome, CPF e data de nascimento. Para agrupar mais de uma variável em um único registro, é utilizado o conceito de registros. A seguir, é apresentada a declaração de um registro. Sobre registros, classifique V para as sentenças verdadeiras e F para as falsas: 01 ALUNO: registro; 02 NOME: texto(60); 03 NOTA: real; 04 fim_registro ( ) Para ler o nome de um aluno na variável interna NOME, pode-se utilizar a sintaxe " leia ALUNO.NOME; ". ( ) Para exibir a nota de um aluno, é utilizada a sintaxe " escreva ALUNO.NOTA; ". ( ) Todos os alunos de uma turma podem ser armazenados em uma única variável, declarando um vetor com a sintaxe " LISTAALUNOS[100]: ALUNOS; ". ( ) A expressão " fim_registro " determina que as variáveis internas do registro terminaram de ser declaradas. Assinale a alternativa que apresenta a sequência CORRETA: A F - V - F - V. B V - V - F - V. C F - F - V - V. D V - V - V - F. Imprimir