Baixe o app para aproveitar ainda mais
Prévia do material em texto
42246 . 7 - Tópicos Integradores II (Ads) - 20211.B Avaliação On-Line 2 (AOL 2) - Questionário Nota final Enviado: 11/05/21 12:43 (BRT) 8/10 Conteúdo do exercício 1. Pergunta 1 /1 Considere uma situação em que ocorre a utilização do método bubble sort em um vetor int desordenado com os seguintes números:10-9-7-4 Agora, observe o código-fonte a seguir: int vetor[]=new int[4]; for(int contadorL=0; contadorL< vetor.length-1 ; contadorL++) { for(int contadorC=contadorL+1; contadorC< vetor.length ; contadorC++) { if(vetor[contadorL]> vetor[contadorC]) { int aux= vetor[contadorL]; vetor[contadorL]=vetor[contadorC]; vetor[contadorC]=aux; } } } Com base nessas informações e no conteúdo estudado, ao acontecer a primeira troca, o estado atual do vetor será: 1. 9-4-7-10. 2. 10-9-7-4. 3. 4-7-9-10. 4. 9-10-7-4. Resposta correta 5. 4-9-7-10. Pergunta 2 /1 A ordenação está presente em diversas linguagens de programação e é um dos tópicos de Estrutura de Dados, que visa ordenar dados desordenados. Existem muitos algoritmos para ordenação de dados, e esses algoritmos se comportam de maneiras diferentes: há algoritmos que utilizam recursão, funções, loops e buscas. Assim, e considerando os conteúdos estudados no livro da disciplina, analise as afirmativas a seguir sobre as características dos métodos de ordenação de algoritmos. I. O tempo é importante para a ordenação. II. A ordenação pode conter troca de dados. III. Alguns algoritmos usam recursão, enquanto outros usam somente loops, ou a mescla entre eles.IV. O uso de objeto Collection é padrão para todas as linguagens. Está correto apenas o que se afirma em: 1. I, III e IV. 2. II, III e IV. 3. I, II e III. Resposta correta 4. I, II e IV. 5. I e IV. Pergunta 3 /1 A recursão é uma técnica da programação que faz com que uma função se referencie. Muitos algoritmos não usam recursão, utilizando loops no lugar. Porém, tudo que pode ser recursivo pode ser um loop. Uma das aplicações de recursão se dá no algoritmo que está contido na descrição abaixo: Esses algoritmos consistem na aplicação do método dividir e conquistar. Aplicando recursão, divide-se o vetor em partes, buscando um valor arbitrário chamado de pivô. Os valores ordenados à direita são maiores que o pivô, enquanto os valores à esquerda do pivô são menores, o que é chamado de forma recursiva. Faz-se, assim, a mesma ordenação entre as Subarrays. Considerando o texto-base e os conteúdos estudados, pode-se afirmar que o nome do algoritmo descrito é: 1. Quick Sort. Resposta correta 2. Selection Sort. 3. Collection Sort. 4. Bubble Sort. 5. Insertion Sort. Pergunta 4 /1 A TAD (Tipo Abstrato de Dados) Pilha é uma variação da Lista Linear que possui características semelhantes a uma pilha do mundo real, armazenando os valores inseridos no formato de LIFO – Last In First Out (O último que entra é o primeiro a sair). Analise a sequência a seguir: Pilha p=new Pilha(); p.push(“A”); p.push(“D”); p.push(“Ô); p.push(“O”); p.pop( ); p. pop( ); p. pop( ); Com base nessas informações e no conteúdo estudado, pode-se afirmar que o estado da Pilha, ao final das operações apresentadas na sequência, será: 1. p [ null ] 2. p [ à , O] 3. Incorreta: p [ A, D ] 4. p [ O ] 5. p [ A ] Resposta correta Pergunta 5 /1 Na linguagem de programação, um loop é dividido em início, condição, contador e instrução. Através de referências a suas extremidades, ele executa os códigos que estão dentro de seus domínios, ficando a cargo do compilador identificar o início e o fim do loop. Isso ocorre, sobretudo, ao fazer seu incremento ou decremento (seu passo) para verificar se há condição para executá-lo ou não.Uma função ou método recursivo é um método muito parecido com o loop, salvo algumas distinções: os loops são instruções ou palavras reservadas e toda recursão é uma função, porém que referencia a ela mesma. Observe o código a seguir: public void imprimir(int aux) { if(aux == 0) return; else System.out.println( aux ); impressao(aux--); } De acordo com o texto-base e o conteúdo estudado, é correto afirmar em relação ao código que: 1. essa função não é recursiva. Resposta correta 2. trata-se de loop sem critério de parada. 3. trata-se de loop com critério de parada. 4. trata-se de uma função com retorno de um int. 5. essa função é recursiva. Pergunta 6 /1 Os métodos de alocação dentro dos sistemas muitas vezes determinam a performance e a quantidade de recursos para o uso. Além disso, a questão do algoritmo a ser utilizado pode variar muito. A forma tradicional se utiliza de vetores que são estruturas indexadas, enquanto a outra forma utiliza Nós, que são estruturas referenciáveis, de acordo com as quais não se determina sua quantidade. De tal modo, há uma forma de alocação que permite que qualquer estrutura tenha um tamanho máximo para inserção de elementos. Para que possa manter a estrutura do vetor, quando entra em contato com essa forma, o programador é, em geral, levado a buscar soluções momentâneas. Considerando o texto-base e os conteúdos estudados, é possível afirmar que a alocação descrita no exemplo acima denomina-se: 1. variável 2. estruturada 3. funcional 4. estática Resposta correta 5. dinâmica Pergunta 7 /1 A Pilha é uma estrutura de dados que possui o formato de organizações de dados LIFO – Last In First Out, ou seja, o último que entra é o primeiro que sai. Esse formato de organização permite que essa estrutura se comporte como uma pilha no mundo real e, na programação, seu comportamento é denominado como “operação” em algumas literaturas. Assim, considerando as informações apresentadas e os conteúdos estudados, analise as operações a seguir e associe-as com suas respectivas características: 1) isFull() 2) pop() 3) peek() 4) isEmpty() 5) push(X) ( ) Acessa o topo da Pilha sem removê-lo. ( ) Aloca ou adiciona o valor na estrutura Pilha. ( ) Retorna ao estado atual da Pilha. Se possuir itens alocados, utiliza-se false, se não possuir, retorna true. ( ) Desempilha ou remove o valor do topo da Pilha, retornando o valor pela função. ( ) Em uma situação de Pilha estática retorna true, se estiver com todos os seus elementos alocados, e false, se ainda tiver espaços. Agora, assinale a alternativa que apresenta a sequência correta: 1. 3, 5, 4, 2, 1. Resposta correta 2. 3, 2, 3, 4, 5. 3. 3, 4, 5, 2, 1. 4. 3, 1, 2, 4, 5. 5. 3, 5, 2, 4, 1. Pergunta 8 /1 Ao entrar em uma estrutura da API Collection nas estruturas sequenciais, consegue-se navegar por IDs. Quando se tem as estruturas de conjuntos e mapas, elas navegam via for-each, a partir do padrão de projeto iterator. Considerando uma LinkedList de nome “lista do tipo int.”, a instrução de navegação com o iterator em uma LinkedList nesde formato é: 1. for(int i=0;i< lista.length; i++){ System.out.println( lista[i]);} 2. for(int x: lista){ System.out.println( x);} Resposta correta 3. int i=0;do{ System.out.println( lista[i]); i++;} while(i< lista.length); 4. int i=0; while(i< lista.length){ System.out.println( lista[i]); i++;} 5. for-each(lista){ System.out.println( lista[i]);} Pergunta 9 /1 A Lista Ligada e Duplamente Ligada possui a função isEmpty(), uma função cuja convenção mundial de programadores determina que é uma nomenclatura que significa, literalmente, “está Limpa ?”. Nesse caso, ela retorna true para sim, e false para não, considerando que “limpa” ou “não limpa” determina se ela está cheia. No caso da isEmpty, por representar um atributo booleano, é a única exceção, dentro da programaçãoorientada a objetos, que não utiliza geter’s e seter’s no encapsulamento. Agora analise o código da função a seguir, sabendo que primeiroNo é uma classe Node. public boolean isEmpty() { return primeiroNo; } A partir dessas informações e dos conteúdos estudados, analise as alternativas a seguir sobre o código acima. I. A linha do return poderia ser substituída por (primeiroNo == null) ? true : false. II. O objeto primeiroNo é uma instância da classe Lista. III. O tipo de retorno de isEmpty() está de acordo com o tipo do valor que armazena a estrutura. IV. O objeto primeiroNo representa a ocorrência de algum nó na estrutura. V. A função retorna a quantidade de elementos da estrutura. 1. III e IV. 2. I e II. 3. I e IV. Resposta correta 4. I e V. 5. IV e V. Pergunta 10 /1 O vetor é uma estrutura de dados que recebe os dados de forma aberta e sem critério. Esse formato faz com que, em geral, dados sejam desordenados conforme são inseridos, de modo que os dados devam ser ordenados posteriormente. Veja abaixo um exemplo de comportamento de um algoritmo: Tem por objetivo a ordenação dos dados a partir de 2 em 2, trocando sempre o maior valor pelo menor valor e percorrendo o vetor por diversas vezes. De acordo com o texto-base e os conteúdos estudados, é possível afirmar que o nome do algoritmo descrito no exemplo é: 1. Incorreta: Método Selection Sort. 2. Método Shell Sort 3. Método Quick Sort. 4. Método Insertion Sort. 5. Método Bubble Sort.
Compartilhar