Baixe o app para aproveitar ainda mais
Prévia do material em texto
Disciplina: Linguagens de Programação e Estruturas de Dados (ADS12) Avaliação: Avaliação Final (Objetiva) - Individual FLEX ( Cod.:513366) ( peso.:3,00) Prova: 19292811 Nota da Prova: 10,00 Legenda: Resposta Certa Sua Resposta Errada 1. 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 ); https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php?action1=RkxYMjI4Mg==&action2=QURTMTI=&action3=NTEzMzY2&action4=MjAyMC8x&prova=MTkyOTI4MTE= 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 falsas. b) As duas asserções são proposições verdadeiras, mas a segunda não é uma justificativa correta da primeira. c) A primeira asserção é uma proposição verdadeira, e a segunda, uma proposição falsa. d) A primeira asserção é uma proposição falsa, e a segunda, uma proposição verdadeira. 2. A alocação dinâmica de memória para armazenamento de objetos é uma das alternativas à utilização de vetores e matrizes, apresentando, entretanto, alguma complexidade adicional no que se refere à própria estrutura de armazenamento e busca. Considerando uma lista encadeada que faça uso da alocação dinâmica de memória, assinale a alternativa CORRETA: a) Não podemos afirmar que os elementos de uma lista encadeada estão colocados na memória de forma contígua. b) O último elemento da lista encadeada não é referenciado por nenhum dos anteriores, indicando o final da lista. c) Uma lista encadeada exige que se conheça inicialmente o número de objetos a serem alocados. d) O primeiro elemento de uma lista encadeada sempre possuirá uma referência para null, indicando os demais elementos da lista. 3. O algoritmo a seguir recebe um vetor v de números inteiros e rearranja esse vetor de tal forma que seus elementos, ao final, estejam ordenados de forma crescente. Considerando que nesse algoritmo há erros de lógica que devem ser corrigidos para que os elementos sejam ordenados de forma crescente, avalie as afirmativas a seguir: I- A linha 04 deve ser corrigida da seguinte forma: for(i = 1; i < n - 1 ; i ++) II- A linha 08 deve ser corrigida da seguinte forma: while( j >= 0 && v[j] >chave) III- A linha 10 deve ser corrigida do seguinte modo: v [ j + 1] = v [ j]; IV- a linha 13 deve ser corrigida do seguinte modo: v [ j - 1] = chave; Assinale a alternativa CORRETA: https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php?action1=RkxYMjI4Mg==&action2=QURTMTI=&action3=NTEzMzY2&action4=MjAyMC8x&prova=MTkyOTI4MTE= https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php?action1=RkxYMjI4Mg==&action2=QURTMTI=&action3=NTEzMzY2&action4=MjAyMC8x&prova=MTkyOTI4MTE= a) As afirmativas I e II estão corretas. b) As afirmativas III e IV estão corretas. c) As afirmativas I e IV estão corretas. d) As afirmativas II e III estão corretas. 4. 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 pilhas, lista e filas, classifique V para as sentenças verdadeiras e F para as falsas: ( ) As estruturas de dados pilhas, filas e listas armazenam coleções de itens. A característica que as distinguem é a ordem em que podem ser retirados os itens dessas coleções com relação à ordem em que foram inseridos. ( ) Considere que os itens A, B, C, D, E foram inseridos nessa ordem em uma pilha. Necessariamente, o último elemento a ser removido dessa pilha é o elemento E. ( ) Considere que os itens A, B, C, D, E foram inseridos nessa ordem em uma lista. Necessariamente, o primeiro elemento a ser removido dessa lista é o elemento A. ( ) Considere que os itens A, B, C, D, E foram inseridos nessa ordem em uma fila. Necessariamente, o primeiro elemento a ser removido dessa fila é o elemento A. Assinale a alternativa que apresenta a sequência CORRETA: a) V - V - F - F. b) V - F - F - V. c) F - F - V - V. d) F - V - V - F. 5. Os operadores são aplicados dentro dos algoritmos sempre que se quer fazer uma operação matemática, relacional ou lógica entre duas ou mais informações. Apesar https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php?action1=RkxYMjI4Mg==&action2=QURTMTI=&action3=NTEzMzY2&action4=MjAyMC8x&prova=MTkyOTI4MTE= https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php?action1=RkxYMjI4Mg==&action2=QURTMTI=&action3=NTEzMzY2&action4=MjAyMC8x&prova=MTkyOTI4MTE= de cada linguagem de programação empregar sua própria sintaxe para representar os operadores, a operação que eles representam e o resultado obtido não muda, o que facilita sua representação através dos algoritmos. Com relação aos operadores matemáticos, relacionais e lógicos, classifique V para as sentenças verdadeiras e F para as falsas: ( ) O operador DIV nos traz a parte inteira do resultado de uma divisão. ( ) Para x=5 e y=10, x MOD y retorna o valor 0. ( ) Em uma operação do tipo E, todos os operandos devem ser verdadeiros para que o resultado seja verdadeiro. ( ) A expressão "(4<=10) ou (5>8)" tem como resultado o valor FALSO. ( ) O operador <> serve para verificar se dois valores são diferentes. Assinale a alternativa que apresenta a sequência CORRETA: a) V - F - V - F - V. b) F - V - F - V - F. c) V - V - F - V - V. d) V - F - V - F - F. 6. 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. Com relação a uma estrutura de dados LIFO, onde o último elemento a entrar é o primeiro a sair, assinale a alternativa CORRETA: a) Listas encadeadas. b) Vetores. c) Matrizes. d) Pilhas. 7. Os termos da sequência de Fibonacci são definidos por: Fibonacci(0) = 0 Fibonacci(1) = 1 Fibonacci(n) = Fibonacci(n-1) + Fibonacci(n-2) Uma solução recursiva para o cálculo do i-ésimo termo da sequência é dada pela função apresentada na imagem a seguir. Sobre a execução recursiva dessa função, avalie as asserções a seguir: I- O método recursivo é o mais eficiente para o cálculo do i-ésimo termo da sequência de Fibonacci. PORQUE II- Realiza duas chamadas por passo da recursão, cada uma mais simples do que a chamada original. Assinale aalternativa CORRETA: https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php?action1=RkxYMjI4Mg==&action2=QURTMTI=&action3=NTEzMzY2&action4=MjAyMC8x&prova=MTkyOTI4MTE= https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php?action1=RkxYMjI4Mg==&action2=QURTMTI=&action3=NTEzMzY2&action4=MjAyMC8x&prova=MTkyOTI4MTE= a) A primeira asserção é uma proposição verdadeira, e a segunda, uma proposição falsa. 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) As duas asserções são proposições verdadeiras, e a segunda é uma justificativa correta da primeira. 8. 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. https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php?action1=RkxYMjI4Mg==&action2=QURTMTI=&action3=NTEzMzY2&action4=MjAyMC8x&prova=MTkyOTI4MTE= IV- O algoritmo solicita e armazena corretamente os valores. Assinale a alternativa CORRETA: a) As sentenças II e IV estão corretas. b) As sentenças I, III e IV estão corretas. c) As sentenças I, II e III estão corretas. d) As sentenças II e III estão corretas. 9. As pilhas são estruturas de dados utilizadas para diversas finalidades na computação e na programação de computadores. Suas características são adequadas para a resolução de problemas em que há a necessidade de se empilhar informações, fazer o seu processamento e depois retirá-las da pilha. Sobre as características das estruturas de dados conhecidas como pilhas, classifique V para as sentenças verdadeiras e F para as falsas: ( ) Uma das características da pilha é que os elementos são retirados na mesma ordem em que foram inseridos. ( ) As pilhas possuem essencialmente duas operações básicas: empilhar e desempilhar. ( ) As pilhas utilizam o princípio Last in - First out (LIFO) para a inserção e retirada de elementos. ( ) O nodo que realiza o controle da estrutura pilha é conhecido como TOPO. Assinale a alternativa que apresenta a sequência CORRETA: a) F - F - V - F. b) V - V - F - V. c) F - V - V - V. d) V - F - F - V. 10.Escopo dinâmico: para as linguagens com escopo dinâmico, a vinculação das variáveis ao escopo é realizada em tempo de execução. Se uma variável é local ao bloco, então o uso da dada variável no bloco será sempre vinculado àquela local. Contudo, se a variável for não local, a sua vinculação depende da ordem de execução, a última vinculada na execução. A consequência disso é que, em um mesmo bloco de comandos, um identificador pode ter significados diferentes, e o programador precisa ter a ideia precisa de qual variável está sendo usada. Suponha que uma linguagem de programação tenha sido projetada com vinculação e verificação estáticas para tipos de variáveis, além de passagem de parâmetros por valor. Também é exigido pela especificação da linguagem que programas sejam compilados integralmente e que não é permitido compilar bibliotecas separadamente. Durante uma revisão da especificação da linguagem, alguém propôs que seja adicionado um mecanismo para suporte a variáveis com escopo dinâmico. Sobre a proposta de modificação da linguagem, analise as seguintes sentenças: I- As variáveis com escopo dinâmico podem ser tratadas como se fossem parâmetros para os subprogramas que as utilizam, sem que o programador tenha que especificá- las ou declarar seu tipo (o compilador fará isso). Assim, eliminasse a necessidade de polimorfismo e é possível verificar tipos em tempo de compilação. https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php?action1=RkxYMjI4Mg==&action2=QURTMTI=&action3=NTEzMzY2&action4=MjAyMC8x&prova=MTkyOTI4MTE= https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php?action1=RkxYMjI4Mg==&action2=QURTMTI=&action3=NTEzMzY2&action4=MjAyMC8x&prova=MTkyOTI4MTE= II- Como diferentes subprogramas podem declarar variáveis com o mesmo nome mas com tipos diferentes, se as variáveis com escopo dinâmico não forem declaradas no escopo onde são referenciadas, será necessário que a linguagem suporte polimorfismo de tipos. III- Se as variáveis dinâmicas forem declaradas tanto nos escopos onde são criadas como nos subprogramas em que são referenciadas, marcadas como tendo escopo dinâmico, será possível identificar todos os erros de tipo em tempo de compilação. Assinale a alternativa CORRETA: a) As sentenças II e III estão corretas. b) Somente a sentença II está correta. c) As sentenças I e III estão corretas.. d) Somente a sentença I está correta. 11.(ENADE, 2011) A pilha é uma estrutura de dados que permite a inserção/remoção de itens dinamicamente seguindo a norma de último a entrar, primeiro a sair. Suponha que para uma estrutura de dados, tipo pilha, são definidos os comandos: PUSH (p, n): Empilha um número "n" em uma estrutura de dados do tipo pilha "p"; POP (p): Desempilha o elemento no topo da pilha. Considere que, em uma estrutura de dados tipo pilha "p", inicialmente vazia, sejam executados os seguintes comandos: PUSH (p, 10) PUSH (p, 5) PUSH (p, 3) PUSH (p, 40) POP (p) PUSH (p, 11) PUSH (p, 4) PUSH (p, 7) POP (p) POP (p) Após a execução dos comandos, o elemento no topo da pilha "p" e a soma dos elementos armazenados na pilha "p" são, respectivamente: a) 4 e 80. b) 11 e 80. c) 7 e 29. d) 11 e 29. https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php?action1=RkxYMjI4Mg==&action2=QURTMTI=&action3=NTEzMzY2&action4=MjAyMC8x&prova=MTkyOTI4MTE=
Compartilhar