Considere o seguinte trecho de código em HTML<ahref=”http://www.w3.org”>Clique aqui</a>I. O trecho é um exemplo de uso de âncoras em HTML.II. O trecho define um hiperlink para um outro site.III. O navegador Web irá exibir a string “Clique aqui”, possibilitando o usuário clicar nela e ser direcionado para outra página.IV. O código possui um elemento HTML que, por sua vez, possui um atributo.Estão corretas:
Considere o seguinte trecho de código em Python:from urllib.request import urlopen resp = urlopen('http://www.google.com')for field in resp.getheaders():print(field)I. O trecho usa a API em Python URLLIB para fazer a requisição de uma página contida na URL especificada na função urlopen.II. A função urlopen irá retornar um objeto da classe http.client.HTTPResponse.III. O loop irá percorrer todos os campos de cabeçalho retornados pela requisição.IV A URL especificada precisa estar online para que o código funcione como esperado.Estão corretas:
As tecnologias utilizadas para construção de sites são chamadas de padrões da web que englobam as especificações (documentos técnicos para detalhar a forma exata do funcionamento). Para uma página web, devem ser considerados no seu conteúdo elementos que definem layout, cabeçalhos, imagens, vídeos, hiperlinks, dentre outros. __________ é uma linguagem de __________ contendo distintos elementos que podem agrupar o conteúdo, a fim de oferecer uma __________.Preencha as lacunas escolhendo a alternativa correta.
Há um algoritmo eficiente para encontrar um elemento presente em uma lista ordenada que, repetidas vezes, separa a parte da lista que contém o elemento, a fim de reduzir as possíveis localizações a somente uma localização, sendo assim, a ______________ inicia com um palpite da localização do elemento procurado que sempre é o elemento localizado no ______________ do vetor, caso o palpite seja correto, significa que o elemento foi encontrado, mas se o palpite for errado então o próximo palpite fica restrito a uma parte do vetor porque ele encontra-se ______________.Preencha as lacunas escolhendo a alternativa correta.
A pesquisa em memória primária tem a capacidade de encontrar a informação (que é dividida em registros contendo uma chave) desejada em um grande volume de dados. A busca por essa informação requer a escolha de um método de busca que considere a quantidade de dados envolvidos e a periodicidade das operações de inserção e remoção.Considerando a pesquisa em memória primária, avalie as afirmações a seguir em relação aos métodos de pesquisa e as relacione adequadamente aos termos a que se referem.
Pesquisa sequencial.
Pesquisa binária.
Transformação de chave (hashing).
I. Os registros armazenados em uma tabela são diretamente endereçados a partir de uma transformação aritmética sobre a chave de busca.II. Percorre-se uma lista comparando a chave de busca com o valor de cada posição. Se o valor da chave for igual para alguma posição, então devolva esta posição. Caso a lista toda tenha sido percorrida então devolva -1, indicando que a chave não foi encontrada.III. Adota o paradigma dividir para conquistar, fazendo com que o tempo de busca seja reduzido, pois, a cada iteração do algoritmo, o tamanho do vetor é dividido ao meio.Assinale a alternativa que relaciona adequadamente os dois grupos de informações.
Na intenção de mostrar para os alunos a importância da ordenação interna, um professor apresentou o seguinte conceito: a ordenação de elementos fundamenta-se em sua organização de forma crescente ou decrescente, a fim de facilitar a pesquisa desses elementos, portanto a ordenação foca em facilitar buscas por um elemento que são realizadas em um determinado conjunto de dados. Desse modo, o algoritmo de ordenação deve ser escolhido considerando o tempo utilizado pela ordenação.Após a explicação, um aluno questiona: a escolha do algoritmo de ordenação interna deve basear-se no número de elementos, e não no tempo que a ordenação leva.Após análise da situação apresentada, avalie as asserções a seguir e a relação proposta entre elas.I. O aluno está certo, a escolha pelo algoritmo de ordenação interna deve tomar como base a quantidade de elementos que compõem a lista.PORQUEII. Na existência de uma grande quantidade de elementos a serem ordenados, eles não se acomodam na memória principal, e o acesso a esses elementos ocorre de forma sequencial ou em grandes blocos.A respeito dessas asserções, assinale a alternativa correta.
Os algoritmos de ordenação reúnem um conjunto de instruções que recebem um array ou lista como entrada e organizam os itens em uma ordem específica. Existe um algoritmo de ordenação em que são realizadas diversas passagens por meio de uma lista, comparando os elementos vizinhos e trocando-os, caso estejam fora de ordem. Dessa forma, a cada passagem pela lista, coloca-se o maior valor em sua devida posição e, assim, cada elemento movimenta-se para a posição que lhe pertence.Analise as alternativas a seguir e indique a que retrata o algoritmo de ordenação citado.
Considere a seguinte implementação em Python de um algoritmo de busca:defbusca(v, chave):for i inrange(len(v)):if chave == v[i]:return i return-1O algoritmo de busca implementado acima é a:
O algoritmo de ordenação Quick Sort escolhe um pivô que corresponde ao primeiro elemento da lista e o troca de posição com o elemento do meio da lista. É iniciada a varredura da lista comparando os elementos com esse pivô, de forma que os elementos _____________ que ele são colocados ou mantidos na lista do lado esquerdo, e os elementos _____________ que ele são colocados ou mantidos na lista do lado direito. Ao realizar esse processo de forma _____________, chega-se ao final com uma lista totalmente ordenada.Preencha as lacunas escolhendo a alternativa correta.
Em uma árvore binária de busca, também conhecida por árvore ordenada:I. Ao buscar um elemento, é possível que este não esteja na árvore.II. Ao comparar o elemento a ser buscado com a raiz, se este for maior, deve-se iniciar a busca na subárvore da esquerda.III. Para saber se um elemento existe ou não na árvore, basta compará-lo com a raiz.Selecione a alternativa correta.
As estruturas de dados organizadas em pilhas permitem inserir e remover um elemento do final da pilha construída, o que indica que o último elemento que foi inserido na estrutura será o primeiro elemento a ser removido da estrutura, e para que isso aconteça normalmente a implementação é feita com arranjos utilizando métodos para inserção e para remoção.Assinale a alternativa que representa o método destinado à inserção de elementos na pilha.
Nas estruturas não sequenciais os elementos não são individualizados por meio de seu índice. Portanto utilizam meios que possibilitam o acesso a esses elementos, tais meios são coleções de dados que permitem, por exemplo, adicionar, remover, acessar, pesquisar e ordenar. _____________ são coleções de dados não ordenados que comporta elementos _____________ e imutáveis (como string, int e tuplas) e possuem métodos para operações matemáticas (união, interseção, diferença e diferença assimétrica). Os _____________ são não sequenciais e compreendem uma chave e um valor, sendo que cada chave possui um valor associado, o que possibilita o acesso à um elemento individual, portanto, devem ser utilizados diante da necessidade de armazenamento de dados de maneira organizada.Preencha as lacunas escolhendo a alternativa correta.
Dada a seguinte definição, assinale a alternativa que melhor representa o conceito apresentado:“Retorna elementos em ordem inversa” também representado pela sigla LIFO (do inglês, last in, first out).
A lista em Python é uma estrutura genérica, ou seja, é uma generalização de pilhas e filas. Em outras palavras, podem ser implementadas pilhas e filas usando-se listas. Apesar de a linguagem Python oferecer um mecanismo simples e intuitivo para criação e manipulação de listas, é importante conhecermos suas variações, pois dependendo do caso, será necessário escolher diferentes implementações para melhorar a performance da aplicação.Considerando as quatro maneiras básicas de se implementar uma lista, avalie as afirmações a seguir e relacione-as adequadamente aos termos ou conceitos às quais se referem.
Alocação estática.
Alocação dinâmica.
Alocação sequencial.
Alocação encadeada.
I. Diz respeiro ao momento de alocação da memória. Toda memória é alocada de uma única vez, de antemão, quer no início, quer durante a execução do programa.II. Os elementos são inseridos contiguamente, um ao lado do outro, na memória principal. Assim sendo, tem-se acesso direto por meio dos índices; em outras palavras, é permitida a realização de um acesso aleatório a uma determinada posição da lista.III. A alocação da memória é feita sob demanda à medida que a lista cresce.IV. Os elementos são relacionados por meio de ponteiros, que indicam qual o próximo elemento, dado o elemento atual. O encadeamento pode ir crescendo aos poucos conforme vão sendo adicionados novos elementos.Assinale a alternativa que correlaciona adequadamente os dois grupos de informação.
Uma árvore binária exibe os elementos que ela armazena e em algumas aplicações é preciso percorrê-la de modo sistemático realizando a visita em cada nó uma só vez e obedecendo uma ordem preestabelecida. Considerando as estratégias que possibilitam percorrer uma árvore, avalie as afirmações a seguir, em relação a tais estratégias, e relacione-as adequadamente aos termos às quais se referem.
Pré-ordem.
In-ordem.
Pós-ordem.
I. Visita o número contido no filho esquerdo, depois o próprio nó, e logo após o nó do filho direito, de forma recursiva.II. Visita o número contido em um nó, mas somente depois de visitar os nós dos dois filhos.III. Visita o número contido em um nó, depois a subárvore da esquerda e, por último, a da direita, de forma recursiva.Assinale a alternativa que correlaciona adequadamente os dois grupos de informação.
Uma árvore apresenta uma estrutura hierárquica de vários elementos, ou seja, é composta por um conjunto de _____________ e serve, por exemplo, para organizar informações em sistemas de banco de dados, pois permite um tratamento computacional eficiente sendo mais fácil de manipular. Há um nó chamado _____________, que passa a ser identificado por r e que possui zero ou mais subárvores cujas raízes estão ligadas a r, e os nós-raízes dessas subárvores são chamados _____________ do nó _____________ r. O número de subárvores de cada nó é chamado de grau desse nó*.* As folhas de uma árvore não possuem filhos, sendo, portanto, nós com grau zero.Preencha as lacunas escolhendo a alternativa correta.
Considere o seguinte programa em Python:classPilha():def__init__(self): self.data =[]defpush(self, x): self.data.append(x)defpop(self):iflen(self.data)>0:return self.data.pop(-1)defempty(self):returnlen(self.data)>0 p = Pilha() q = Pilha()for i inrange(5):if i %2==0: p.push(i)else: q.push(i)while p.empty(): q.push(p.pop())while q.empty():print(q.pop())O programa irá imprimir, nesta ordem:
A implementação de uma fila ou de uma pilha deve oferecer um bom desempenho por compor programas usados diariamente por usuários em seus cotidianos, assim, da mesma forma para as filas, a implementação de pilhas pode utilizar uma lista como estrutura para armazenamento dos dados, exigindo que se defina como será o funcionamento de tal estrutura.Após análise da situação apresentada, avalie as asserções a seguir e a relação proposta entre elas.I - Para que uma fila seja manipulada corretamente, deve-se considerar métodos adicionais e restrições devido aos vários tipos de fila como Queue (FIFO, First In, First Out), LifoQueue (Last In, First Out) e PriorityQueue (por ordem crescente de valor).POISII - O módulo integrado do Python queue pode ser utilizado tanto para filas quanto para pilhas de forma a oferecer um apoio na programação encadeada quando as informações devem ser trocadas com segurança entre vários encadeamentos.A respeito dessas asserções, assinale a alternativa correta.
Uma fila é uma estrutura de dados linear que armazena itens na forma FIFO (First In First Out), na qual o elemento adicionado menos recentemente é removido primeiro. Em Python, a implementação de filas pode utilizar algumas formas com o uso de estruturas de dados e módulos da biblioteca Python. Avalie as afirmações a seguir, em relação às formas para implementar uma fila em Python, e relacione-as adequadamente aos termos às quais se referem.
lista
coleções.deque
queue.Queue
I. Fila segue a regra FIFO e inicializa uma variável com um tamanho máximo de maxsize.II. Indicada em casos em que há necessidade de operações de inserção e remoção mais rápidas em ambos os lados da fila.III. Faz uso das funções append() e pop(), mas operações de inserção e remoção são mais lentas.Assinale a alternativa que correlaciona adequadamente os dois grupos de informação.
Uma árvore binária (T) é um conjunto finito de n nós que pode ser nula (quando T for um conjunto vazio e n=0) ou ter características como: a existência de um nó especial chamado raiz; nós restantes divididos em T1, T2 estruturas disjuntas em que T1 é a subárvore esquerda e T2 é a subárvore direita da raiz. Um exemplo de utilização de uma árvore binária é para o armazenamento de expressões aritméticas, facilitando sua avaliação.Avalie as alternativas abaixo e indique a que representa o conteúdo de cada nível de uma árvore binária que armazena a expressão (6 + 9) * (3 - 7) + 8; considerando que: − a árvore será lida na ordem esquerda-raiz-direita; − os primeiros cálculos serão das operações entre parênteses; depois será executado o operador de multiplicação, que tem maior precedência do que o operador de adição, sendo, portanto, executado primeiro.
Uma pilha pode ser implementada usando uma lista em Python. Os métodos disponíveis do objeto List que podem ser usados para implementar as funções push() e pop() são, respectivamente:
No programas que usam recursão, como no caso do Fibonacci que exemplifica uma sobrecarga de operador de chamada de função, faz-se necessário que quando uma função é chamada de forma repetida fazendo uso das mesmas entradas, o seu resultado seja carregado do cache ao invés de ser recomputado porque isso fará com que recursos da CPU sejam economizados.Analise as alternativas abaixo e indique qual delas contém a técnica citada no enunciado.
Ao tentar resolver o problema do fatorial de um número, basta multiplicá-lo por todos os seus antecessores até chegar ao número 1. Com o uso da recursividade, esse problema pode ser resolvido inicialmente sendo dividido em subproblemas menores do mesmo tipo (multiplicando um número por seus antecessores) e tomando um ponto de parada da recursão que neste caso deve ser o retorno em 1. Mas isso exige cálculos repetidos.Após análise do problema apresentado, avalie as asserções a seguir e a relação proposta entre elas.I. O uso da recursividade exigida em problemas como o cálculo de fatorial ou cálculo da série de Fibonacci podem ocasionar problemas.PORQUEII. Existem chances de que o subproblema resolvido na árvore de recursão já esteja resolvido e continue sendo resolvido provocando uma sobrecarga.A respeito dessas asserções, assinale a alternativa correta.
Ao passar um valor x para uma função recursiva para realizar uma soma, o que acontece é que a função vai somar de 1 até o valor x, o que indica que ela está chamando a si mesma, porém, a cada vez, com um argumento diferente.Assinale a alternativa que representa a função citada de forma generalizada.
A recursão ocorre quando uma função chama a si própria. Vale destacar a importância de se saber identificar o ponto de parada da função, de modo a evitar que ela seja executada infinitamente. Esse ponto de parada é chamado de “caso base” ou "caso básico".Identifique se são verdadeiras (V) ou falsas (F) as afirmativas a seguir.I. () O problema da Torre de Hanói é exemplo clássico de um problema resolvido com facilidade por meio da recursão.II. () O caso base (ou caso básico) é necessário em toda função recursiva escrita corretamente.III. () As funções recursivas em Python apresentam grandes benefícios em relação à melhora da eficiência.Assinale a alternativa que apresenta a sequência correta.
O algoritmo de busca binária considera um vetor ordenado de n elementos para realizar a varredura dos elementos, por isso é possível implementar um algoritmo mais eficiente do que aquele que utiliza a busca sequencial. Adotando o paradigma dividir para conquistar, o problema global é dividido em subproblemas, o que faz com que o espaço de busca se reduza à metade a cada iteração do algoritmo.Com relação ao algoritmo de busca binária apresentado, avalie as afirmações a seguir.I. Se n for um valor pequeno, o custo adicional para ordenar a lista pode não compensar.II. As comparações requeridas começam com uma lista de tamanho n/2, depois n/4, depois n/6, depois n/8 e assim sucessivamente enquanto o elemento procurado não tiver sido encontrado, e a lista não for vazia.III. O número máximo de comparações requeridas é dado por nlog ( n ).IV. A análise da busca binária elimina metade dos itens que restam a cada comparação.Está correto que se afirma em:
Sobre funções recursivas, assinale V ou F para as alternativas:() Uma função recursiva deve sempre ter um critério de parada.() Uma função recursiva sempre será mais rápida que uma função não recursiva.() Função recursiva é aquela que chama um método implementado em outra classe.() Funções recursivas são úteis para resolver problemas cuja definição é também recursiva.