Prévia do material em texto
21/05/2023, 08:19 UNIFANOR: Alunos https://simulado.wyden.com.br/alunos/ 1/6 Teste de Conhecimento avalie sua aprendizagem Dada a seguinte matriz M, inicializada com o código: M=[[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]] O código em Python para imprimir cada elemento da coluna iniciada pelo elemento 3 é: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ESTRUTURA DE DADOS EM PYTHON Lupa DGT1335_202209068662_TEMAS Aluno: RENAN ALVES DINIZ Matr.: 202209068662 Disc.: ESTRUTURA DE DADOS E 2023.1 EAD (G) / EX Prezado (a) Aluno(a), Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha. Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS. 7390ALGORITMOS E A LINGUAGEM PYTHON 1. print(M[2]) for coluna in M: print(coluna) for linha in M: print(linha[2]) for linha in M: print(linha[3]) for linha in M: print(linha) Data Resp.: 21/05/2023 08:19:06 Explicação: O laço deve percorrer uma coluna, iterando linha a linha e extraindo dela o seu terceiro elemento, ou seja linha[2]. A resposta correta itera pelas linhas e imprime o elemento [2] de cada uma. javascript:voltar(); javascript:voltar(); javascript:diminui(); javascript:aumenta(); 21/05/2023, 08:19 UNIFANOR: Alunos https://simulado.wyden.com.br/alunos/ 2/6 Matrizes podem ser implementadas em Python utilizando a biblioteca numpy, trazendo diversas funções já implementadas. Dentre os pares de função com sua funcionalidade a seguir, qual é o correto? O método de ordenação da bolha, ou Bubblesort tem como melhor caso a entrada já ordenada, que resulta em complexidade O(n). Como seu pior caso, a entrada em ordem invertida, resultando em complexidade O(n2). Baseado nessas duas a�rmações, podemos a�rmar que a sua complexidade de caso médio é: Dentre as respostas erradas, apenas escrever ¿print(linha)¿ imprimirá cada linha como um todo, resultando na impressão de toda a matriz, linha a linha. A resposta "print(coluna)" terá o mesmo resultado pois para o código linha e coluna são apenas nomes escolhidos pelo programador. Poderia ser i, aux ou qualquer outra variável escolhida. Já "print(linha[3])" está com o índice errado, imprimindo os elementos da coluna iniciada por 4. E ¿print(M[2])¿ imprime toda a linha iniciada por 9. 2. matriz.mean() retorna o valor mínimo da matriz. matriz.min() retorna o valor médio da matriz. matriz.max() retorna o desvio padrão da matriz. matriz.std() retorna a variância da matriz. matriz.sum() retorna a soma dos elementos da matriz. Data Resp.: 21/05/2023 08:19:09 Explicação: Dentre os pares apresentados, o único correto é o da função sum() que é a soma dos elementos. std() e mean() são funções estatísticas que retornam o desvio padrão e a média respectivamente. max() retorna o elemento de maior valor e min(), por sua vez, retorna o elemento de menor valor. 3. O(log n) O(1) O(n2) O(nlog n) O(n) Data Resp.: 21/05/2023 08:19:12 Explicação: Pelas características da notação O, a única a�rmação que podemos extrair é que o caso médio é melhor ou igual ao pior caso. Portanto, é possível a�rmar que o caso médio é O(n2), ou qualquer função assintoticamente superior a n2, como n2log n, n3, 2n etc.. Como dentre essas a única opção disponível é O(n2) essa é a resposta correta. Podemos descartar O(1) e O(log n) por serem melhores que o melhor caso, o que contradiz a a�rmativa do melhor caso. Os casos O(n) e O(nlog n) seriam possíveis teoricamente para a complexidade média de um algoritmo qualquer que seja O(n) no melhor caso e O(n2) no pior caso, mas não é possível a�rmar nenhuma das duas com as informações dadas. De fato, o caso médio do Bubblesort é O(n2). 21/05/2023, 08:19 UNIFANOR: Alunos https://simulado.wyden.com.br/alunos/ 3/6 Suponha que você está implementando um programa que precisa armazenar dados ordenados em uma estrutura para serem tratados posteriormente, na ordem em que foram recebidos. Haverá uma grande quantidade de recebimentos e tratamento de dados, mas o tamanho esperado da estrutura não deve variar muito. Qual tipo de estrutura de dado é a melhor nessa situação? Uma lista circular é uma estrutura de dados contínua, permitindo que seja iterada sobre ela de forma in�nita. Uma das suas aplicações em jogos digitais é: Uma Pilha é uma estrutura de dados que permite o armazenamento de elementos (ou nós) sequencialmente. Sobre as Pilhas é possível a�rmar que: 7391LISTAS, PILHAS, FILAS E DEQUES 4. Fila. Lista em alocação contígua. Pilha. Lista simplesmente encadeada. Lista duplamente encadeada. Data Resp.: 21/05/2023 08:19:14 Explicação: A �la permite o tratamento de nós usando a política requerida, FIFO ¿ ¿�rst in �rst out¿ -. Além disso, as operações de inserção e remoção são O(1), ou seja, de complexidade constante, a melhor possível. Isso condiz com o requisito de que haverá muitas operações desse tipo. Por �m, o fato de a estrutura não variar muito em tamanho permite o uso de uma alocação contígua e otimizada para a �la usando lógica circular e variáveis para o início e �nal da �la. A pilha não obedece a lógica FIFO e as listas tem complexidade de inserção e remoção O(n) sendo muito piores que a �la, principalmente quando o número desses tipos de operação é grande. 5. Em jogos competitivos, para garantir que não há scripts ou bots rodando no computador. Em jogos multijogador para garantir que apenas um dos jogadores jogue todas as vezes. Em jogos mobile, para armazenar o número do telefone do jogador. Em jogos de um jogador para armazenar um conjunto �xo de elementos. Em jogos multijogador em turnos, permitindo ceder o controle a um jogador por vez. Data Resp.: 21/05/2023 08:19:17 Explicação: A grande virtude das listas circulares é o fato delas poderem ser percorridas um elemento por vez, de forma in�nita. Apenas quando todos os elementos forem percorridos uma vez, começarão a ser percorridos pela segunda vez, na mesma ordem. Essa disposição é excelente para a implementação de políticas ¿Round robin¿, ou seja, onde cada jogador tem a sua vez de jogar e as vezes são igualmente distribuídas entre os jogadores. Por isso a resposta correta é em jogos multijogador em turnos, permitindo ceder o controle a um jogador por vez. 6. Permitem inserção ou remoção apenas no seu início. Permitem inserção ou remoção em qualquer de suas posições. Permitem inserção no seu �nal e remoção apenas no seu início. Permitem inserção ou remoção apenas no seu início ou no seu �nal. Permitem inserção no seu início e remoção apenas no seu �nal. Data Resp.: 21/05/2023 08:19:20 Explicação: 21/05/2023, 08:19 UNIFANOR: Alunos https://simulado.wyden.com.br/alunos/ 4/6 Seja a seguinte árvore binária de busca, marque a opção que apresenta o percurso em pré-ordem dessa árvore: A Pilha, assemelhando-se ao seu conceito na vida real, permite inserções e remoções apenas no seu início (push e pop). Dessa forma, implementa a política ¿First In, Last Out¿ (FILO) na qual o nó que chegou há menos tempo será sempre removido primeiro. As demais respostas indicam outras estruturas como listas, �las e deques. 7408ÁRVORES EM PHYTON 7. D,B,E,F,C,A F,C,E,B,A,D A,D,C,E,B,F D,A,B,E,C,F A,B,C,D,E,F Data Resp.: 21/05/2023 08:19:23 Explicação: A resposta correta é a questão E. O percurso em pré-ordem é de�nido como se segue. A partir da raiz r da árvore T, percorre-se a árvore da seguinte forma: 1 - visita-se a raiz; 2 - percorre-se a subárvores esquerda de T, em pré-ordem e 3 - percorre-se a subárvores direita de T, em pré-ordem. Resultado da pesquisa pré-ordem: 21/05/2023, 08:19 UNIFANOR: Alunos https://simulado.wyden.com.br/alunos/ 5/6 Seja a seguinte árvore binária. Analise as a�rmativas e marque a correta. Um percurso é uma forma organizada deacesso à informação armazenada nos nós de uma estrutura de dados. Sobre Árvores Binárias de Busca, marque a opção correta: Seja as seguintes a�rmações sobre árvores binárias: I - Os nós que não possuem �lhos são chamados de nós folhas. 8. Supondo que a árvore em questão é uma árvore binária de busca, a inserção de um novo nó com chave 47 pode ser feita em qualquer subárvore vazia. É possível inserir mais um nó �lho ao nó 30. Ao buscar pelo nó 45 na árvore acima, um algoritmo de busca em Python irá realizar sempre O(n) passos. Isto ocorre uma vez que é necessário analisar todos os nós da árvore para encontrar o nó 45. A �gura ilustra uma árvore binária de busca porque para todos os nós vale a seguinte propriedade: os nós contidos na subárvores esquerda são menores que a raiz e os contidos na subárvore direita são maiores. A árvore acima possui 4 nós folhas. Data Resp.: 21/05/2023 08:19:31 Explicação: A árvore é uma árvore binária de busca porque dado um nó qualquer da árvore, os nós contidos na subárvore esquerda são menores que a raiz e os a direita, maiores que a raiz. A busca só seria executada em O(n) caso a árvore fosse uma árvore zig zag. 47 só poderia ser inserido à direita de 45. A árvore tem 3 folhas. Arvores binárias só podem ter nós com grau 2. 7392ÁRVORES DE BUSCA 9. Toda árvore binária de busca tem altura proporcional a log n, onde n é o número de nós na árvore. Toda nova chave inserida em uma árvore binária de busca é inserida na raiz da árvore. No pior cenário, uma busca por um elemento em uma árvore binária de busca pode exceder O(log n) , chegando a n passos nessa busca. Não é possível remover um nó interno com dois �lhos de uma árvore binária de busca. Toda árvore binária de busca tem altura proporcional a n, onde n é o número de nós na árvore. Data Resp.: 21/05/2023 08:19:33 Explicação: No pior cenário, os nós de uma árvore podem estar inseridos de tal forma a causar desbalanceamento progressivo, levando a n passos em caso de busca por um elemento. 10. 21/05/2023, 08:19 UNIFANOR: Alunos https://simulado.wyden.com.br/alunos/ 6/6 II - O nó raiz é um nó na árvore que não possui antecessor (ou não tem pai). III - As árvores binárias são estruturas não lineares. Estão corretas as a�rmativas: II e III, apenas. I, II e III. III, apenas. I, apenas. I e II, apenas. Data Resp.: 21/05/2023 08:19:36 Explicação: Os nós que são folhas não possuem apontamentos para outros nós, ou seja, não possuem �lhos. Por outro lado, um nó raiz não possui pai, ou seja, não tem apontadores antecessores. Árvores binárias são estruturas que não possuem linearidade. Não Respondida Não Gravada Gravada Exercício inciado em 21/05/2023 08:19:02.