

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.
Considere o programa em pseudocódigo abaixo, que não apresenta erros.
var var1=1, var2=2: inteiro
funcao1()
inicio
var var1=100, var2=100: inteiro
imprima("Variaveis dentro da funcao1(): var1= ", var1, " var2=", var2)
fim
funcao2()
inicio
var1 = var1 +1; var2 = var2 +2;
imprima("Variaveis dentro da funcao2(): var1= ", var1, " var2=", var2)
fim
inicio
imprima("Variaveis antes de chamar a funcao1(): var1= ", var1, " var2=", var2)
funcao1()
imprima("Variaveis depois de chamar a funcao1():var1= ", var1, " var2=", var2)
funcao2()
imprima("Variaveis depois de chamar a funcao2():var1= ", var1, " var2=", var2)
fim
O pseudocódigo, ao ser executado, imprimirá
Variaveis antes de chamar a funcao1(): var1=0 var2=0
Variaveis dentro da funcao1(): var1=1 var2=2
Variaveis dentro da funcao2(): var1=101 var2=102
Variaveis depois de chamar a funcao1(): var1=1 var2=2
Variaveis depois de chamar a funcao2(): var1=101 var2=102
Seja uma lista linear L com n elementos (n>5), o primeiro elemento está na posição 1 (um), o segundo elemento está na posição 2 (dois), e assim por diante. As operações para L são:
insere(L, elemento, k): inserir elemento em L, tal que elemento fique na posição k;
remove(L, k): remover de L o elemento que está na posição k e retornar o elemento removido.
Considere o pseudocódigo abaixo:
para i = 1 até n, faça
<instrução-X>
fim-para
Se o propósito do pseudocódigo é inverter a ordem dos elementos da Lista L, então <instrução-X> pode ser:
insere(F, remove(F, i), n–i)
insere(F, remove(F, i), n–i+1)
insere(F, remove(F, i), 1)
insere(F, remove(F, i), n)
De acordo com o algoritmo, o número de vezes que o bloco de comandos dentro do fluxo de controle Enquanto...faça é executado é igual a
0.
1.
2.
9.
10.
Considere o seguinte comando escrito em álgebra relacional:
σproduto = lápis(compras)
Esse comando resulta na
exibição apenas do atributo produto, da tabela compras, considerando os registros em que o valor do atributo produto seja igual a “lápis”.
exclusão dos registros da tabela compras, apenas no caso de o valor do atributo produto ser igual a “lápis”.
inserção de um registro na tabela compras, com o valor do atributo produto igual a “lápis”.
exibição de todos atributos da tabela compras, substituindo- se todos os valores do atributo produto pelo valor “lápis”.
exibição de todos atributos da tabela compras, para os registros em que o valor do atributo produto seja igual a “lápis”.
Entre os conceitos de programação orientada a objetos, assinale a alternativa que contempla os apresentados pelo código que segue:
class candidato{ int nota; };
class bomCandidato:public candidato{ int
experiencia; bomCandidato(int experiencia){ this.experiencia=experiencia; } };
A alternativa correta é:
Polimorfismo.
Herança.
Herança e Polimorfismo
Encapsulamento.
Encapsulamento e Herança.
Método de ordenação em computação é um algoritmo que coloca os elementos de dada sequência em certa ordem. Um dos principais pontos para se ordenar os dados é realizar a busca de forma mais eficiente. Com base no exposto, o seguinte trecho de código é referente a qual algoritmo de ordenação?

Insertion Sort.
Selection Sort.
Quick Sort.
Bubble Sort.
Merge Sort.
Em relação as funções de saída nos algoritmos e JAVA respectivamente, marque a alternativa CORRETA:
enquanto e system.out.prin
escreva e write
enquanto e while
escreva e system.out.print
leia e scanner (system.in)
Observe o algoritmo abaixo.
algoritmo
declare N1 RESULTADO numérico
N <-6
repita
RESULTADO<- N * N * N * N
escreva RESULTADO
~N=1
então interrompa
fim se
N <- N -1
fim repita
fim algoritmo
Quais valores serão escritos?
2401,625, 125, 81,32, 0
3125,640,240,27,36, 1
2401, 560,256,24,24, 0
1296,625,256,81, 16, 1
3125,640,256,81, 16, 1
O algoritmo a seguir mostra o uso de passagem de parâmetros por referência de NN para VN e de GG para VG e por valor de SS para VS.
algoritimo "alg19"
var
NN : inteiro
SS : caractere
GG : logico
procedimento PROCBV (var VN:inteiro:VS:caractere:var VL:logico)
inicio
VN <- 2020
VL <- VERDADEIRO
VS <- "SÃO FRANCISCO"
fimprocedimento
inicio
NN <- 2019
SS <- "SÃO PEDRO"
GG <- FALSO
PROCBV (NN,SS,GG)
escreval (NN : 5,SS:-15," ", GG),
fimalgoritmo
Após a execução desse algoritmo, os valores finais das variáveis NN, SS e GG serão, respectivamente:
2019, SÃO FRANCISCO e VERDADEIRO
2019, SÃO PEDRO e FALSO
2020, SÃO FRANCISCO e FALSO
2020, SÃO PEDRO e VERDADEIRO
Imagine o seguinte cenário: Marcelo lhe deve um dinheiro e promete pagar em parcelas mensais de R$ 70; com o intuito de prever qual seria o valor devido após o decorrer de 12 meses, você resolve escrever algumas linhas de código (JavaScript). Levando em consideração que o valor devido por Marcelo era de R$ 1400, qual seria o total devido após a execução do trecho a seguir?
1 . let total_divida = 1400;
2 function atualizar_divida(valor_recebido){
3 total_divida -= valor_recebido;
4 return total_divida;
5 }
6 for (var i = 0; i < 12; i++) {
7 atualizar_divida(70);
8 }
Marcelo lhe deveria 2240 reais pois o loop (for) está incrementando o total da dívida.
Marcelo teria pago 840 reais e lhe deveria ainda 560.
Marcelo lhe deveria ainda 1400 reais, pois o código possui erro semântico.
A declaração da função atualizar_divida está errada.
O trecho apresenta um erro de sintaxe na linha 3.
A ordenação por inserção é um algoritmo eficiente para ordenar um pequeno número de elementos. Considere o exemplo de um jogador de póquer que inicia uma partida com sua mão esquerda vazia e as suas cartas com a face virada para baixo na mesa. O jogador remove uma carta de cada vez da mesa e a insere na posição correta na mão esquerda. Para encontrar a posição correta de uma carta, esta é comparada a cada uma das cartas que já estão na mão, da direita para a esquerda, como ilustrado na figura abaixo. Em cada instante, as cartas seguras na mão esquerda são ordenadas. Essas cartas eram originalmente as cartas superiores da pilha na mesa.

O exemplo acima ilustra um pseudocódigo, que toma como parâmetro um arranjo A[1 ..n] contendo uma sequência de comprimento n que deverá ser ordenada. O pseudocódigo em questão, usado para ordenação por inserção, é apresentado como um procedimento chamado:
Bubblesort.
Pilhas.
Heapsort.
Insertion-sort.
Merge.
Observe o seguinte pseudo-código:
X[1] <- 10
X[2] <- X[1] + 20 * 2
X[3] <- 100
Y <- X[2]
SE X[1] = 10 ENTAO X[1] <- X[3] + X[1] + 50
Z <- Y + X[1] + x[2]
Ao final da execução do código acima, qual é o valor da variável Z?
260
220
230
200
No desenvolvimento de algoritmos computacionais, os tipos estruturados de dados são uma importante forma de organizar conjuntos de dados para melhor modelar o contexto do domínio da aplicação. Sobre essas variáveis compostas, é CORRETO afirmar:
Os registros (structs em C e record em pascal/delphi) são tipos estruturados de dados que reúnem, em uma mesma variável, diferentes tipos primitivos de dados.
Os arrays (vetores uni- ou multidimensionais) são variáveis compostas homogêneas cujos elementos básicos são acessados por meio de índice(s).
A manipulação dos tipos estruturados de dados do tipo vetores e matrizes é facilitada com o uso do comando de repetição múltipla como o switch.
Na composição de um tipo estruturado de dados, pode-se criar um vetor de registros, mas não um registro de vetores.
55
60
65
70
75
No algoritmo, o número de vezes que a variável X é atualizada dentro do comando
“Para i de 2 até 4 faça”
é igual a
1.
3.
6.
9.
12.
Sobre algoritmos de busca, analise as informações a seguir.
I. Uma busca linear sobre um array de uma dimensão pode ser implementada com um laço e possui complexidade, no pior caso, linearmente relacionada ao tamanho do array.
II. Uma busca binária sobre um array de uma dimensão pode ser implementada com um laço e possui complexidade, no pior caso, linearmente relacionada ao logaritmo do tamanho do array.
III. Uma busca binária recursiva sobre um array de uma dimensão pode ser implementada sem laços e possui complexidade, no pior caso, linearmente relacionada ao logaritmo do tamanho do array.
IV. Uma busca linear sobre um array de duas dimensões pode ser implementada com dois laços e possui complexidade, no pior caso, linearmente proporcional à soma da quantidade de linhas e colunas do array.
V. Uma busca em uma estrutura de dados chamada Tabela de Dispersão (Hash Table) pode ser implementada sem laços e possui complexidade, no pior caso, constante, independentemente do tamanho do array.
Estão CORRETAS, apenas, as proposições
I, II e III.
II e V.
I, III, IV e V.
III, IV e V.
I, II e IV.
Inúmeros algoritmos de criptografia baseiam-se no uso de um par de chaves, sendo uma pública e outra privada. O gerenciamento de chaves pode ser dividido em duas etapas: a distribuição de chaves públicas e o uso de criptografia baseada em chaves públicas para distribuição de chaves secretas. Quanto ao gerenciamento de chaves, assinale a alternativa que correta.
Nos algoritmos como o RSA, o participante anuncia publicamente sua chave pública. Caso um agente invasor anuncie uma chave forjada se passando pelo usuário, esse agente invasor poderá ter acesso a essa comunicação utilizando a chave forjada para se autenticar, até que o ataque seja descoberto e o usuário compartilhe sua chave real.
Uma forma de melhorar a segurança da informação é através do uso de um diretório público de chaves. Neste tipo de esquema, os usuários arquivam suas chaves públicas sem poder alterá-las, como forma de assegurar a validade dessas chaves.
O uso de certificados de chave pública pode ser empregado para substituição do compartilhamento dessa chave. Nesse esquema, uma autoridade confiável emite um certificado que indica a validade dos usuários na rede.
Foi criado um esquema onde o usuário A gera um par de chaves público/privada e emite uma mensagem para o usuário B, que contém sua chave pública e seu identificador de usuário. O usuário B, em seguida, gera uma nova chave criptografada com base na chave pública de A e a envia para o usuário A. O usuário A, então, reverte a criptografia usando sua própria chave. Nesse esquema, a comunicação estaria segura de ataques do tipo homem-no-meio (man-in-themiddle).
O esquema de chave pública/privada necessita do uso de uma autoridade certificadora para distribuição da chave pública.
A maneira usual de processar inserções de registros em um arquivo F consiste em montar um arquivo T de transações contendo os registros a serem inseridos, ordenado pela mesma chave de ordenação de F. Os arquivos F e T sofrem uma operação, gerando o arquivo A, que é a versão atualizada de F.
O tipo do arquivo F e a operação realizada entre F e T são, correta e respectivamente,
randômico e diferenciação.
misto e randomização.
sequencial e intercalação.
encadeado e diferenciação.
intercalado e ordenação.
Muitos problemas reais não têm solução analítica e por isso depende-se da computação numérica para se encontrar uma solução. Encontrar a solução de equações não algébricas requer, por exemplo, métodos numéricos para busca das raízes. Sobre métodos de busca de raízes, é correto afirmar:
o método da falsa posição, ou regula falsi, não possui limites definidos.
o método de Newton é robusto com relação à solução inicial apresentada.
o método da secante requer o uso apenas da primeira derivada.
o método da bisseção não requer uso da derivada.