

Seu próximo nível começa aqui
Com a Assinatura Ilimitada, você tem tudo que precisa para sua aprovação.
Com a Assinatura Ilimitada, você combina prática, teoria e método em uma única assinatura com tudo que você precisa para sua aprovação.
Há uma diferença entre o código fonte que você escreve e as instruções que a máquina compreende. Para tanto o código fonte deve ser traduzido para linguagem de máquina e, em alguns casos ainda passa por um programa que cria as ligações entre os módulos e acrescenta as sub-rotinas fornecidas pelo sistema operacional. Esse programa é chamado de:
interpretador.
compilador.
compactador.
linkeditor.
tradutor.
Analise o algoritmo a seguir.
public static void ordenar(int[] vetor) {
int chave;
int i;
int x;
for (x = 1; x < vetor.length; x++)
{
chave = vetor[x];
for (i = x - 1; (i >= 0) && (vetor[i] > chave); i--)
{
vetor[i + 1] = vetor[i];
}
vetor[i + 1] = chave;
}
}
É correto afirmar que o algoritmo acima representa ordenação:
pelo método bolha (bubble sort).
rápida (quicksort).
em Heap (heapsort).
pelo método de intercalação (Mergesort).
por inserção.
Assinale a alternativa que contenha o algoritmo que irá armazenar oito números em um vetor, imprimir todos os números digitados e quantidade de números múltiplos de seis que foram inseridos:

Um código reentrante tem a seguinte característica:
é gerado a partir da compilação de um código escrito em uma linguagem de programação.
é uma notação legível por humanos para o código de máquina que uma arquitetura de computador específica utiliza.
é um trecho de código escrito de forma que possa ser compartilhado por diversos programas ao mesmo tempo.
é o conjunto de palavras ou símbolos escritos de forma ordenada, contendo instruções em uma das linguagens de programação existentes, de maneira lógica.
é uma sequência de código entre a linguagem de alto nível e a linguagem assembly representando, de forma independente do processador para o qual o programa será gerado, todas as expressões do programa original.
De acordo com Tanenbaum (2003), qual algoritmo de criptografia representa um algoritmo de chave pública?
Blowfish
RSA
IDEA
RC4
DES
O algoritmo a seguir ilustra o emprego de uma função recursiva.
algoritimo "BV"
var
N : inteiro
funcao RR (X:inteiro;Y:inteiro):inteiro
inicio
se ( X = Y ) OU ( X = 0 ) entao
retorne 1
senao
retorne RR (X-1,Y) + RR (X-1,Y-1)
fimse
fimfucao
inicio
N < - 4
escreval(RR(N,N-1))
fimalgoritmo
Após a chamada RR(N,N-1), a função retornará um valor igual a:
6
5
1
0
A notação “O” que determina ordem de complexidade e eficiência de um algoritmo pode ser formalizada como se segue:
T(n)=0(f(n))
Se existirem m inteiro e c constante tais que
T(n)≤cf (n) para n>m.
Para uma entrada n e um tempo T, melhorias substanciais podem ser obtidas ao utilizarmos diferentes algoritmos. Assinale a alternativa correta com relação ao tempo de execução, para uma mesma entrada (n), porém utilizando algoritmos diferentes.
Considere as seguintes ordens de complexidade no tempo:
T1(n) = n, T2(n) = nlogn, T3(n) = n² , T4(n) = 2n
T2< T3
T3< T1
T4< T3
T1> T4
T1> T2
Qual opção representa o resultado da expressão booleana X = (A and B) xor C, considerando A=111 e B=101 e C=010?
X=110
X=100
X=010
X=111
X=000
algoritmo
anterior, seguinte, auxiliar, valor, contador
: inteiro;
início
anterior ← 1;
seguinte ← 1;
escreva (anterior, seguinte)
para contador de 1 até valor passo 1 faça
auxiliar ← anterior + seguinte;
escreva ( auxiliar );
anterior ← seguinte;
seguinte ← auxiliar;
fim-para
fim
Considerando o algoritmo apresentado, assinale a opção que indica o conteúdo da variável valor para que seja apresentado o seguinte resultado.
1 1 2 3 5 8 13 21 34 55 89 144 233
4
10
11
13
233
Analise as imagens abaixo de representação de um algoritmo:

Essas imagens representam, respectivamente:
Fluxograma e Pseudocódigo.
Pseudocódigo e Fluxograma.
Fluxograma e Diagrama de Chapin.
Diagrama de Chapin e Pseudocódigo.
Algoritmo BPM e Fluxograma.
Supondo que a variável “x” receba o número 50 e a variável “y” receba o número 8. Qual o resultado esperado?
50
115
750
816
1.012
Abaixo tem-se uma tabela que ilustra o conjunto de nós de uma lista duplamente encadeada, contendo o total de 5 nós.
elemento | anterior | próximo | conteúdo |
1 | 3 | 4 | ? |
2 | 5 | ? | |
3 | 5 | 1 | ? |
4 | 1 | ? | |
5 | 2 | 3 | ? |
Ao imprimir a estrutura na ordem correta, o conteúdo apresentado será I – F – S – P – 2019, dessa forma, assinale a alternativa que contém os dados que preenchem, corretamente, a coluna “conteúdo”, de cima para baixo.
P – I – S – 2019 – F
2019 – P – S – F – I
S – P – I – F – 2019
S – I – F – 2019 – P
Um dispositivo de lógica programável tipo FPGA possui uma memória não volátil externa (dataflash) que pode ser gravada por uma interface especial. Essa memória também é conectada aos terminais da FPGA destinados a inicialização (boot) da mesma. A respeito dessa memória, é correto afirmar que ela desempenha, para a FPGA, o papel fundamental de uma
RAM, para armazenamento de variáveis e parâmetros usados durante a partida do algoritmo programado na FPGA.
ROM, para armazenamento de variáveis e parâmetros usados durante o funcionamento do algoritmo programado na FPGA.
RAM, para depuração e debugging step-by-step da lógica implementada na FPGA.
ROM, usada durante a inicialização da FPGA para programar e estabelecer as ligações entre as unidades funcionais da mesma, para implementar a lógica combinatória e sequencial sintetizada.
ROM, usada durante o funcionamento da FPGA para que a mesma possa inicializar outros dispositivos externos do circuito, conforme a lógica combinatória e sequencial sintetizada na mesma.
A respeito de algoritmos e estruturas de dados, assinale a alternativa correta.
O algoritmo de Dijkstra, usado para encontrar o menor caminho em redes de computadores, utiliza listas circulares como principal estrutura de dados.
O MapReduce é um algoritmo de compactação de arquivos que utiliza hash maps como principal artifício para otimização.
O Mark-and-Sweep é um algoritmo de gerenciamento de memória que utiliza um grafo como sua principal estrutura de dados.
Árvore B é um algoritmo utilizado para indexação em bancos de dados e utiliza árvores binárias como sua estrutura de dados básica.
O Round-Robin é um algoritmo de escalonamento que utiliza uma pilha como principal estrutura de dados.
Na programação de um software, deseja-se calcular a média aritmética entre os dois valores maiores em um universo de três números armazenados nas variáveis que suportam números reais a, b e c. A média será armazenada na variável r, que também suporta números reais. Para isso, se propôs o seguinte trecho de algoritmo.

O trecho mostrado está
Observe a expressão aritmética: X={20x[100÷(25+25)]}.
Reescreva essa expressão na forma computacional correta.
X = (20.(100 / (25+25)))
X<- [20*(100:(25+25))]
X<- (20*(100 / (25+25)))
X = (20.(100 div (25+25)))
Analise as sentenças relacionadas abaixo, retiradas da obra Projeto de algoritmos com implementações em Pascal e C, de Ziviani (1999), acerca de métodos de pesquisa em memória primária.
I - Método de pesquisa para registros ordenados que consiste em comparar a chave com o registro que está no meio da tabela, se a chave é menor, então o registro procurado está na primeira metade da tabela; se a chave é maior, então o registro procurado está na segunda metade da tabela. O processo é repetido até que a chave seja encontrada ou retorne pesquisa sem sucesso.
II - Neste método de pesquisa, podemos implementá-lo de duas maneiras: não-balanceada e balanceada. Ambas possuem nodos, todo nodo interno contém um registro e, para cada nodo, a seguinte propriedade é verdadeira: todos os registro com chaves menores estão à esquerda, e todos os registros com chaves maiores estão à direita.
III - O método de pesquisa mais simples que existe e funciona da seguinte forma: a partir do primeiro registro, pesquise sequencialmente até encontrar a chave procurada ou o fim do registro e, então, pare.
Tais sentenças se referem, respectivamente, aos métodos de pesquisa:
Considere o código junto a um interpretador Python:
s = "uma flauta, duas flautas, três flautas"
s.rfind("flauta")
s.find("flauta")
s.find("flautas",1)
s.find("flautas",17)
O retorno em tela será:
31, 4, 17, 17.
31, 4, 31, 31.
31, 4, 17, 31.
17, 4, 17, 31.
31, 17, 17, 31.
Herança de classes em orientação a objetos necessita de alguns cuidados por parte dos programadores, pois pode gerar ambiguidade quando uma classe herda métodos e atributos de mais de uma classe. Python resolve essa ambiguidade aplicando o algoritmo “MRO” (“Method Resolution Order” – Ordem de Resolução de Método, em tradução livre). A chamada do método “my-func” através da instância “d” da classe “D”, utilizando o algoritmo MRO, resultará no acesso desse método (nas diversas classes) na seguinte ordem:
class A(object):
def my_func(self):
print("Calling this from A")
class B(A):
pass
class C(A):
def my_func(self):
print("Calling this from C")
class D(B, C):
pass
d = D()
d.my_func()
Class D → Class B → Class C, imprimindo “Calling this from C” no terminal.
Class D → Class B → Class A, imprimindo “Calling this from A” no terminal.
Class D → Class C, imprimindo “Calling this from C” no terminal.
Class B → Class A, imprimindo “Calling this from A” no terminal.
Class A, imprimindo “Calling this from A” no terminal.
Interfaces funcionais em Java são disponibilizadas através do pacote “java.util.function”. A interface BinaryOperator descreve as operações realizadas entre duas variáveis do tipo T. Ciente disso e do código abaixo, qual será o valor da String s?
BinaryOperator<String> b = (s1, s2) -> {
s1 = s1.substring(0, s1.length()/2) + " " + s2;
return s1;
};
String s = b.apply("Hello", "World");
“Hello World”
“World”
“Hel World”
“Hello”
“He World”