- ID
- 1891
- Banca
- NCE-UFRJ
- Órgão
- BNDES
- Ano
- 2005
- Provas
- Disciplina
- Algoritmos e Estrutura de Dados
- Assuntos
Considere uma árvore binária de busca com n elementos e altura mínima. O tempo de acesso a qualquer elemento desta árvore é da ordem de:
Considere uma árvore binária de busca com n elementos e altura mínima. O tempo de acesso a qualquer elemento desta árvore é da ordem de:
Um analista especificou os dados que devem constar de um pedido de cliente. Um item de pedido (P) deve conter o nome do cliente (N), seu CGC (opcional), a data do pedido e uma lista de itens, contendo pelo menos um item. Cada item da lista deve conter obrigatoriamente o código do produto (CP) ,sua quantidade (Q) e seu preço unitário (PU).
A descrição formal de um pedido é:
A respeito de funções e algoritmos, assinale a afirmativa correta.
Dadas as variáveis numéricas A e B, contendo os valores 2 e 6, respectivamente; a variável L, contendo o literal FALSO; e a variável lógica V, contendo o valor lógico verdadeiro, assinale a expressão lógica cujo resultado possui valor lógico falso.
A atividade de programação requer conhecimento técnico de
diversas formas de algoritmos e estruturas de controle e de dados.
Acerca dos elementos técnicos da atividade de programação,
julgue os itens a seguir.
Um procedimento correto para determinar o sucessor de um
nodo N em uma árvore de busca binária é o seguinte:
primeiro, localiza-se o nodo N; em seguida, com o ponteiro
direito de N, obtém-se o nodo ND e, a partir de ND, faz-se
o percurso de todos os possíveis ponteiros esquerdos até que
seja alcançado o fim da ramificação, cujo nodo final é o
sucessor de N.
Acerca da representação e do armazenamento de informações, assinale a opção correta.
Se a complexidade de tempo de um algoritmo é da ordem de Θ (n log n), é correto afirmar que esse algoritmo também é
A respeito de funções e algoritmos, assinale a afirmativa correta.
Seja T um texto e C, uma cadeia de caracteres, onde n e m correspondem ao tamanho de T e C, respectivamente. Sobre a busca de C em T, é correto afirmar que o algoritmo de:
Sobre o algoritmo de ordenação heapsort, assinale a afirmação correta.
Julgue os itens que se seguem, com relação a conceitos de
construção de algoritmos.
Na construção de um algoritmo, utilizam-se estruturas de repetição para que um bloco de comandos seja executado várias vezes. Todos os tipos de estrutura de repetição permitem que o bloco de comandos seja executado zero, uma ou mais vezes, de acordo com uma condição que será avaliada a cada iteração.
Julgue os itens que se seguem, com relação a conceitos de
construção de algoritmos.
Na passagem de parâmetro por valor, o parâmetro formal tem seu valor inicializado pelo valor do parâmetro real. Por esse motivo, o parâmetro real nunca é alterado. O seu valor se mantém inalterado depois que o subprograma termina a execução.
Julgue os itens que se seguem, com relação a conceitos de
construção de algoritmos.
Um array é um agregado, possivelmente heterogêneo, de elementos de dados. Nele, um elemento individual é identificado por sua posição em relação ao primeiro.
Julgue os itens que se seguem, com relação a conceitos de
construção de algoritmos.
Uma função é dita recursiva quando faz uma chamada a si própria em seu corpo. Por essa característica, é importante a definição dos parâmetros formais e dos parâmetros reais utilizados na chamada recursiva. Caso os valores passados como parâmetro na chamada recursiva sejam os mesmos dos parâmetros recebidos pela função, sua execução será infinita.
Dois métodos orientados para busca em cadeias levam o nome de
Envolvido em premissa segundo a qual é fácil multiplicar dois números primos para obter um terceiro número, mas muito difícil recuperar os dois primos a partir desse terceiro número. Trata-se do algoritmo
Uma fábrica de software foi contratada para desenvolver um produto de análise de riscos. Em determinada funcionalidade desse software, é necessário realizar a ordenação de um conjunto formado por muitos números inteiros. Que algoritmo de ordenação oferece melhor complexidade de tempo (Big O notation) no pior caso?
Dentre os métodos para construção de algoritmos, o Cartesiano é aquele que segue o princípio de
Em relação à construção de algoritmo, considere:
I. Na estrutura de repetição Enquanto / Faça o bloco de repetição pode ser executado várias vezes ou até nenhuma vez. A condição é testada antes de entrar na estrutura de repetição.
II. A estrutura de repetição Repita / Até efetua um teste lógico no fim do laço, garantindo que pelo menos uma vez as instruções deste são executadas.
III. Toda repetição condicional pode ser representada por uma estrutura do tipo Enquanto / Faça ou Repita / Até, sendo que a primeira repete somente quando a condição é falsa e a segunda somente quando a condição é verdadeira.
IV. Para se impedir a situação conhecida como loop infinito é necessário que, nos laços condicionais, a variável que é testada esteja sempre associada a uma instrução que a atualize no interior do laço.
É correto o que se afirma APENAS em
Em relação aos tipos abstratos de dados ? TAD, é correto afirmar:
Os fluxos básicos de controle de um módulo são:
São algoritmos ou métodos de busca em cadeias:
Formalização de algoritmo proposto em 1936, universalmente conhecido e aceito. Trata-se de um mecanismo simples, que formaliza a ideia de uma pessoa que realiza cálculos, denominado
Expressões lógicas são aquelas cujo resultado da avaliação é um valor lógico (verdadeiro ou falso). Considere as expressões abaixo.
I. (6 < 8) ou (3 > 7)
II. não (2 < 3)
III. (5 >= 6 ou 6 < 7 ou não (a + 5 - 6 = 8) {onde a = 5}
IV. (34 > 9 e 5 + u = 34) ou (5 = 15 / 3 e 8 > 12) = ((u = 29) e 8 > 12) {onde u = 29}
V. 2 > 3 e qv {onde qv representa qualquer valor}
VI. 2 < 3 ou qv {onde qv representa qualquer valor}
Os resultados verdadeiros correspondem às avaliações das expressões lógicas em
Uma estrutura de dados array pode ser do tipo
Objeto que se constitui parcialmente ou é definido em termos de si próprio. Nesse contexto, um tipo especial de procedimento (algoritmo) será utilizado, algumas vezes, para a solução de alguns problemas. Esse procedimento é denominado:
É utilizada para avaliar uma determinada expressão e definir se um bloco de código deve ou não ser executado. Essa é a definição da estrutura condicional:
Analise as seguintes afi rmações relacionadas a conceitos básicos de programação e de algoritmos:
I. Considerando entradas totalmente desordenadas, em um algoritmo de "Ordenação por Inserção", o tempo consumido no processamento para ordenar uma entrada de mil números é o mesmo que o tempo gasto para ordenar uma entrada de três números, quando executados em uma mesma máquina com arquitetura RISC.
II. Considerando o tempo de execução do pior caso de um algoritmo, na pesquisa de um banco de dados em busca de um determinado fragmento de informação, o pior caso do algoritmo de pesquisa ocorrerá, na maioria das vezes, quando a informação não estiver presente no banco de dados.
III. Um algoritmo é dito recursivo quando, para resolver um problema, ele chama internamente vários outros algoritmos duas ou mais vezes para lidar com subproblemas intimamente relacionados.
IV. Para qualquer número inteiro N e qualquer número inteiro positivo K, o valor N mod K é o resto do quociente N/K.
Indique a opção que contenha todas as afi rmações verdadeiras.
São algoritmos de classificação por trocas apenas os métodos
No desenvolvimento de um sistema de análise financeira, um programador utilizou um algoritmo cuja complexidade de tempo, no pior caso, é igual a O(n).
Outro programador aponta um algoritmo de melhor complexidade igual a
Seja n o tamanho da entrada de um algoritmo para um problema P. Cada alternativa, que corresponde a um algoritmo distinto, apresenta o número de operações necessárias para resolver P. Considerando-se a análise assintótica (Big O notation), qual algoritmo possui menor complexidade?
Assinale a alternativa incorreta:
Considere:
I. Os algoritmos de busca binária e de busca seqüencial executam processamento repetitivo.
II. Os algoritmos de busca binária e de busca seqüencial utilizam a técnica de recursão.
III. A busca seqüencial executa cada fase da repetição na forma de uma subtarefa da fase anterior.
IV. A busca binária trabalha com uma forma circular de repetição.
Está correto o que consta em
São, respectivamente, um método de busca e um método de ordenação:
O poder da recursão deve-se à possibilidade de definição de um conjunto
A recursividade na programação de computadores envolve a definição de uma função que
Sobre os algoritmos de busca pode-se afirmar que o método
O desempenho de um sistema computacional depende de vários
fatores, como volume de dados, capacidade do sistema e
adequação dos algoritmos, das estruturas de dados e dos objetos
que são utilizados para realizar as operações. Acerca desse
assunto, julgue os itens que se seguem.
A ordenação de um vetor contendo n elementos, utilizando-se algoritmo de bolha, realiza, no pior caso, mais que n/2 comparações.
O desempenho de um sistema computacional depende de vários
fatores, como volume de dados, capacidade do sistema e
adequação dos algoritmos, das estruturas de dados e dos objetos
que são utilizados para realizar as operações. Acerca desse
assunto, julgue os itens que se seguem.
A busca binária pode ser realizada em vetor não ordenado. Caso o vetor contenha n elementos, o tempo de execução da busca necessita de 5n comparações.
Com relação a aspectos de linguagem de programação,
programação estruturada, programação orientada a objetos e
conceitos associados, julgue os itens de 106 a 113.
O escopo em que uma variável é declarada define, obrigatoriamente, a que função do tipo pública essa variável se associa.
Com relação a aspectos de linguagem de programação,
programação estruturada, programação orientada a objetos e
conceitos associados, julgue os itens de 106 a 113.
Recursão ocorre quando uma função chama a ela mesma direta ou indiretamente.
O produto da ação de algoritmos que fazem o mapeamento de uma sequência de bits de tamanho arbitrário para uma sequência de bits de tamanho fixo menor, com resistência à colisão e cujo processo reverso também não seja realizável, denomina-se
A necessidade de rearranjo de um certo conjunto de elementos, de acordo com um critério específico, indica
Considere a seguinte e somente a seguinte situação: Se um procedimento Px contiver uma referência a um outro procedimento Py que por sua vez contém uma referência direta ou indireta a Px, então
Em relação a tipos abstratos de dados, é correto afirmar que
A respeito das estruturas de controle de fluxo, assinale a opção incorreta.
As estratégias de divisão e de conquista são utilizadas pelos algoritmos de ordenação
O objetivo de fazer uma busca rápida a partir de uma chave de pesquisa simples e obter o valor desejado é alcançado pela estrutura de dados especial denominada
A execução de uma expressão lógica obedece como
prioridade a ordem dos operadores
Relacionado à programação de computadores, um algoritmo, seja qual for a sua complexidade e a linguagem de programação na qual será codificado, pode ser descrito por meio da
O quicksort é um algoritmo que funciona usando o paradigma de dividir e conquistar, usando uma rotina de particionamento que divide o vetor de estruturas em dois pedaços em torno de um pivô. O pedaço da esquerda só contém elementos com chaves menores ou iguais que o elemento corrente e o pedaço da direita, só elementos com chaves maiores que o elemento corrente. O algoritmo procede, então, para o subproblema de ordenar cada um dos pedaços e seu desempenho total é um dos mais eficientes para ordenação de estruturas de dados. Qual das seguintes descrições representa uma correta característica do algoritmo quicksort?
Uma lista ordenada de N números é inserida em uma pilha e depois retirada, sendo que, a cada POP, o elemento retirado é inserido em uma árvore de busca binária. Após a completa inserção de todos os elementos nesta árvore, são feitas buscas de números na mesma. O tempo médio de busca de um número nesta árvore é
Uma lista simplesmente encadeada pode ser transformada em uma lista duplamente encadeada em tempo O(1)
PORQUE
Para transformar uma lista simplesmente encadeada em duplamente encadeada basta fazer uma cópia invertida de cada ponteiro (o destino do novo ponteiro passa a ser a origem do ponteiro original e vice-versa) e existe um número constante e limitado de cópias a fazer.
Analisando as afirmações acima, conclui-se que
É um método de pesquisa ou busca, cujo algoritmo parte do pressuposto de que o vetor está ordenado e realiza sucessivas divisões do espaço de busca, comparando o elemento buscado (chave) com o elemento no meio do vetor. Se o elemento do meio do vetor for a chave, a busca termina com sucesso. Caso contrário, se o elemento do meio vier antes do elemento buscado, então a busca continua na metade posterior do vetor. E finalmente, se o elemento do meio vier depois da chave, a busca continua na metade anterior do vetor. Trata-se do método denominado busca
São métodos (algoritmos) de busca em cadeias
Último dado armazenado é o primeiro a ser recuperado caracteriza a estrutura de dados do tipo
Considere o algoritmo de busca:
Testar o elemento a m (a índice m) sorteado aleatoriamente e compará-lo ao argumento de busca x. Se o elemento for igual a x, a busca termina. Se menor que x todos os elementos com índices menores ou iguais a m podem ser descartados dos próximos testes e se for maior que x todos aqueles que possuem índices maiores ou iguais a m também podem ser descartados.
Tal algoritmo é denominado busca
Uma proposição (uso em programação lógica) pode ser observada como uma declaração lógica que pode ou não ser verdadeira. Ela consiste em objetos e nas suas interrelações. A lógica formal foi desenvolvida para fornecer um método de descrição de proposições com o objetivo de permitir que estas, formalmente declaradas, sejam
Julgue os itens seguintes, relativos à lógica de programação e
construção de algoritmos.
Na construção de um algoritmo, é sempre possível substituir uma estrutura do tipo enquanto por uma estrutura do tipo para.
Julgue os itens seguintes, relativos à lógica de programação e
construção de algoritmos.
Na definição de uma função, a passagem de parâmetros por referência possibilita que o valor de uma variável passado como argumento seja alterado na função, e sua alteração mantenha-se mesmo após a execução da função.
Julgue os itens seguintes, relativos à lógica de programação e
construção de algoritmos.
Estruturas de repetição são usadas para que determinado bloco de comandos seja executado diversas vezes. A garantia de parada da repetição ocorre por meio de uma condição que é verificada a cada nova iteração. Dependendo do tipo de estrutura de repetição utilizado, o bloco de comandos é executado pelo menos uma vez.
Julgue os itens seguintes, relativos à lógica de programação e
construção de algoritmos.
Variáveis declaradas dentro de funções ou procedimentos são chamadas de variáveis locais e não são visíveis por outras funções. Por esse motivo, não é possível declarar variáveis que possam ser utilizadas por qualquer função de um programa.
Acerca das estruturas de informação, julgue os itens a seguir.
Entre os comandos básicos para a descrição de algoritmos, para que a execução de uma malha seja interrompida e seja executado o comando imediatamente seguinte, utiliza-se dentro da malha, o comando saia, também conhecido como escape de malha.
Acerca de pesquisa de dados e de operações básicas sobre
estruturas, julgue os itens que se seguem.
A pesquisa sequencial é aplicável em estruturas não ordenadas.
Acerca de pesquisa de dados e de operações básicas sobre
estruturas, julgue os itens que se seguem.
Na pesquisa binária, realiza-se a varredura de uma estrutura de dados desde o seu início até o final dessa estrutura, ou até que uma informação desejada seja encontratada.
Acerca de pesquisa de dados e de operações básicas sobre
estruturas, julgue os itens que se seguem.
Na pesquisa por meio de interpolação, é possível realizar o cálculo da posição aproximada em que se encontra determinada chave em uma estrutura para que a distância entre a menor chave e a chave desejada seja proporcional à distância entre a menor e a maior chave do intervalo.
Acerca de pesquisa de dados e de operações básicas sobre
estruturas, julgue os itens que se seguem.
Quando um algoritmo recursivo recebe como parâmetro o trecho do vetor no qual deve ser realizada a pesquisa, então essa pesquisa é do tipo sequencial.
Em relação à classificação de dados e tipos abstratos de dados
(TADs), julgue os itens subsequentes.
A classificação interna por inserção é um método que realiza a ordenação de um vetor por meio da inserção de cada elemento em sua posição correta dentro de um subvetor classificado.
Em relação à classificação de dados e tipos abstratos de dados
(TADs), julgue os itens subsequentes.
A escolha de estruturas internas de dados utilizados por um programa pode ser organizada a partir de TADs que definem classes de objetos com características distintas.
Em relação à classificação de dados e tipos abstratos de dados
(TADs), julgue os itens subsequentes.
A descrição dos parâmetros das operações e os efeitos da ativação das operações representam, respectivamente, os níveis sintático e semântico em que ocorre a especificação dos TDAs.
No que se refere à lógica de programação, julgue o item a seguir.
Em um algoritmo, uma expressão geralmente é considerada válida quando as suas variáveis e constantes respeitam o número e os tipos de argumentos das operações envolvidas.
No que se refere à lógica de programação, julgue o item a seguir.
O método de pesquisa binária de cálculo de endereço é empregado tanto para a pesquisa quanto para a organização física de tabelas.
No que se refere à lógica de programação, julgue o item a seguir.
Se um trecho de algoritmo tiver de ser executado repetidamente e o número de repetições for indefinido, então é correto o uso, no início desse trecho, da estrutura de repetição Enquanto.
No que se refere à lógica de programação, julgue o item a seguir.
O método recursivo que utiliza pilhas para executar um procedimento geralmente é automático, de modo que os compiladores podem acionar os procedimentos préprogramados para manipular essas pilhas.
No que se refere à lógica de programação, julgue o item a seguir.
A pesquisa sequencial de uma tabela, ou seja, pela comparação do argumento da pesquisa com a chave de cada entrada, terá o desempenho reduzido se a tabela for ordenada a partir do valor da chave.
Objeto que se constistui parcialmente ou é definido em termos de si próprio. Nesse contexto, um tipo especial de procedimento (algoritmo) será utilizado, algumas vezes, para a solução de alguns problemas. Esse procedimento é denominado
Um programador decidiu utilizar, em determinado sistema de análise estatística, uma árvore AVL como estrutura de dados. Considerando-se n a quantidade de elementos dessa árvore, o melhor algoritmo de pesquisa, com base em comparações, possui complexidade de tempo, no pior caso, igual a
O tipo de algoritmo cuja legibilidade depende muito de sua forma, incluindo aspectos de sua disposição em parágrafos (recuos), é conhecido como:
A técnica que é utilizada para obtenção de um novo arquivo único, a partir de dois ou mais arquivos que contenham registros de mesmo tipo, estando esses arquivos classificados segundo um mesmo critério pela mesma chave, é conhecida como:
É a descrição de um padrão de comportamento, expressado em termos de um repertório bem definido e finito de ações " primitivas" , das quais damos por certo que elas podem ser executadas. A descrição refere-se a:
Acerca de programas aplicativos e das arquiteturas de
computadores, julgue os próximos itens.
Os tipos de dados enumerados podem ser usados, por exemplo, para se referir a valores constantes associados a variáveis relacionadas a configurações do sistema ou a dispositivos de hardware.
A respeito dos métodos de ordenação, pesquisa e hashing, julgue
os seguintes itens.
A eficácia do método de ordenação rápida (quicksort) depende da escolha do pivô mais adequado ao conjunto de dados que se deseja ordenar. A situação ótima ocorre quando o pivô escolhido é igual ao valor máximo ou ao valor mínimo do conjunto de dados.
A respeito dos métodos de ordenação, pesquisa e hashing, julgue
os seguintes itens.
A estrutura de dados heap, que é eficiente para a implementação do método de ordenação heapsort, consiste em uma árvore binária completa e sua implementação mais simples ocorre na forma de array.
A respeito dos métodos de ordenação, pesquisa e hashing, julgue
os seguintes itens.
Árvore binária é uma estrutura de dados adequada à representação de hierarquia, sendo usada frequentemente em ordenação e pesquisa. Para a busca em um vetor ordenado, pode-se utilizar o algoritmo de busca binária, o qual não exige a implementação de uma árvore binária.
A respeito dos métodos de ordenação, pesquisa e hashing, julgue
os seguintes itens.
A estabilidade de um método de ordenação é importante quando o conjunto de dados já está parcialmente ordenado.
Com relação à programação, algoritmos e estrutura de dados, julgue
os itens seguintes.
O método de recursividade deve ser utilizado para avaliar uma expressão aritmética na qual um procedimento pode chamar a si mesmo, ou seja, a recursividade consiste em um método que, para que possa ser aplicado a uma estrutura, aplica a si mesmo para as subestruturas componentes.
Com relação à programação, algoritmos e estrutura de dados, julgue
os itens seguintes.
Na implementação de um deque sequencial, é necessário ter, em cada extremidade, uma variável de ponteiro externa, por meio da qual as inserções e retiradas sejam efetuadas.
Com relação à programação, algoritmos e estrutura de dados, julgue
os itens seguintes.
Um tipo abstrato de dados apresenta uma parte destinada à implementação e outra à especificação. Na primeira, são descritas, em forma sintática e semântica, as operações que podem ser realizadas; na segunda, os objetos e as operações são representados por meio de representação, operação e inicialização.
Com relação a algoritmos e lógica de programação, julgue os
itens a seguir.
Procedimento ou sub-rotina é um conjunto de instruções que realiza determinada tarefa. As funções são criadas da mesma maneira que os procedimentos; a diferença é que as funções podem ser utilizadas em expressões, como se fossem variáveis, pois elas retornam valores associados ao seu nome.
Com relação a algoritmos e lógica de programação, julgue os
itens a seguir.
Nas estruturas de controle, tais como as estruturas de seleção simples, compostas ou encadeadas, é necessário verificar as condições para a realização de uma instrução ou sequência de instruções.
Considere: zero é um número natural. O sucessor de um número natural é um número natural.
Assim, em termos de algoritmo, o enunciado trata da possibilidade de aplicação de uma técnica denominada
A respeito dos princípios de programação, julgue os seguintes itens.
Os métodos de ordenação podem ser classificados como estáveis ou não estáveis. O método é estável se preserva a ordem relativa de dois valores idênticos. Alguns métodos eficientes como shellsort ou quicksort não são estáveis, enquanto alguns métodos pouco eficientes, como o método da bolha, são estáveis.
Assinale a opção correta.
Julgue os itens seguintes, referentes às estruturas de dados.
O tipo abstrato de dados consiste em um modelo matemático (v,o), em que v é um conjunto de valores e o é um conjunto de operações que podem ser realizadas sobre valores.
Os algoritmos podem ser representados de várias formas: Diagrama de Nassi-Shneiderman, Fluxograma e Português Estruturado. Com relação às formas de representação de algoritmos, analise as seguintes afirmativas:
I. Os Diagramas Nassi-Shneiderman, também conhecidos como Diagramas de Chapin, surgiram nos anos 70 como uma maneira de ajudar nos esforços da abordagem de programação estruturada.
II. Os Fluxogramas ou Diagramas de Fluxo, são uma representação gráfica que utilizam formas geométricas padronizadas ligadas por setas de fluxo, para indicar as diversas ações (instruções) e decisões que devem ser seguidas para resolver um problema.
III. O Português Estruturado, é uma forma especial de linguagem bem mais restrita que a Língua Portuguesa e com significados bem definidos para alguns termos utilizados nas instruções (comandos).
Podemos afirmar corretamente que:
Quando se pretende escrever um programa numa determinada linguagem de programação, a de que o computador possa executar um conjunto de passos e fornecer os resultados pretendidos, podemos elaborar um pseudocódigo de modo a facilitar a compreensão e escrita do programa. Com relação a pseudocódigo, analise as seguintes afirmativas:
I. Os pseudocódigos são constituídos usualmente pelo vocabulário de uma linguagem corrente, por exemplo, o português, e pela sintaxe global de uma outra, como por exemplo, a linguagem de Programação Estruturada.
II. A Iteração permite que partes de um programa sejam repetidas um número finito de vezes, segundo uma condição de controle.
III. Para indicar a operação de atribuição, utiliza-se o símbolo
Podemos afirmar corretamente que: " → "
Assinale a alternativa que contém o significado correto do símbolo de Algoritmos:
Variáveis e constantes são os elementos básicos que um programa manipula. Uma variável é um espaço reservado na memória do computador para armazenar um tipo de dado determinado. Com relação a variáveis e constantes, marque a alternativa correta:
A lógica de programação é necessária para o desenvolvimento de sistemas e programas. Ela permite definir a seqüência lógica para o desenvolvimento. Com relação à lógica de programação, marque a alternativa correta.