

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.
Após a execução do algoritmo abaixo, qual a série de números que será gerada:
calcula{
inteiro M, N, K
M = 15
N = 12
imprime(){
para k de 1 ate 3 faca{
M = M - 1
N = N + 1
escreva (M, N)
}
}
}
14 14 13 14 12 15
14 13 13 14 12 15
14 12 13 14 12 15
13 16 13 14 12 15
13 15 13 14 12 15
Quando devemos utilizar a passagem de parâmetro por valor para uma função?
Quando queremos obter economia de memória.
Quando queremos garantir que o valor da variável original seja alterado conforme seja modificado dentro da função.
Quando se deseja obter um melhor desempenho.
Quando queremos fazer uso de compartilhamento de memória.
Quando queremos garantir que o valor da variável original não seja alterado.
Analise o programa abaixo, escrito em VisuAlg 3.0:
Algoritmo "Alg23"
Var
i : inteiro
Inicio
funcao f (n: inteiro): logico
Var i: inteiro
inicio
para i de 2 ate n faca
se n=i entao
retorne verdadeiro
senao
se n mod i = 0 entao
retorne falso
interrompa
fimse
fimse
fimpara
fimfuncao
para i de 3 ate 6 faca
escreva(i,f(i))
fimpara
Fimalgoritmo
Caso ele seja executado, qual será a sua saída?
3 VERDADEIRO 4 FALSO 5 VERDADEIRO 6 FALSO
3 VERDADEIRO 4 VERDADEIRO 5 VERDADEIRO 6 FALSO
3 VERDADEIRO 4 FALSO 5 VERDADEIRO 6 VERDADEIRO
3 FALSO 4 VERDADEIRO 5 FALSO 6 VERDADEIRO
3 FALSO 4 VERDADEIRO 5 VERDADEIRO 6 VERDADEIRO
São a base do processo de desenvolvimento de software e fazem parte das ferramentas pelas quais programadores criam estratégias para fracionar problemas em etapas e processos que podem ser traduzidos computacionalmente. Na tecnologia, há exemplos de todos os níveis de complexidade.
Marque a alternativa CORRETA que corresponde ao contexto acima.
Banco de Dados.
Software de Programação.
Algoritmos.
Linguagens de programação.
Qual das definições abaixo melhor descreve o que é um algoritmo?
Uma linguagem de programação usada para desenvolvimento de aplicativos web.
Um protocolo usado na camada de rede para estabelecer uma comunicação entre dois dispositivos.
Tecnologia usada para enviar e receber dados do servidor sem precisar recarregar a página inteira.
Mecanismo para adicionar estilo a um documento web.
Uma sequência de passos que devem serem executados para alcançar um determinado objetivo.
A programação dinâmica pode ser um exagero quando é preciso descobrir qual a melhor escolha. Algoritmos gulosos podem ser uma escolha mais eficiente nestes casos. A afirmação que melhor descreve algoritmos gulosos é:
sempre faz a melhor escolha possível. Isto é, ele sempre faz a escolha ótima para a situação global.
sempre faz escolhas nem boas, nem ruins, a fim de nunca obter o melhor ou o pior resultado.
sempre obtém soluções ótimas para seus problemas.
sempre faz a escolha que parece ser a melhor no momento. Isto é, ele faz uma escolha ótima para as condições locais.
A estrutura na qual cada elemento pode ter vários antecessores e vários sucessores recebe o nome de grafo.
Certo
Errado
Sobre o Método de Ordenação Merge Sort, é CORRETO afirmar que:
o Merge Sort, ou Ordenação por Mistura, é um algoritmo de ordenação por inserção.
o Merge Sort, ou Ordenação por Mistura, é um algoritmo de ordenação por seleção.
o Merge Sort, ou Ordenação por Mistura, é mais eficiente que o Método da Bolha (Bubble Sort) apenas nos casos em que há poucos dados a serem ordenados.
o Merge Sort é mais eficiente que o Método da Bolha (Bubble Sort) em todos os casos.
o Merge Sort, ou Ordenação por Mistura, é um algoritmo de ordenação que usa a estratégia dividir-para-conquistar.
Os algoritmos de busca e de ordenação compreendem um conjunto de algoritmos de elevada importância para a computação. O objetivo da busca (ou pesquisa) é encontrar uma ou mais ocorrências de registros com valores iguais ao valor procurado. Existem vários métodos de pesquisa e a escolha do método mais adequado depende, principalmente:
da possibilidade de um arquivo apresentar tokens e types
da quantidade de dados envolvidos e da possibilidade de o arquivo sofrer inserções e/ou retiradas.
da quantidade de part-of-speech para cada token.
do programador.
do tipo de algortimo de aprendizado de máquina.
Sistemas operacionais como o Linux, e linguagens como Python, dispõem de rotinas de classificação (sort). Dentre os algoritmos dessas rotinas há um método que percorre um vetor de elementos da esquerda para a direita e, à medida que avança, vai ordenando os elementos à esquerda. Consiste em cada passo, a partir do segundo elemento, selecionar o próximo item da sequência e colocá-lo no local apropriado de acordo com o critério de ordenação. Esse método é chamado:
selection sort.
bubble sort.
inserction sort.
quick sort.
merge sort.
Analise o seguinte trecho de código, considerando /
foo = 10
if (foo /
___print(True or 1 or (25 != 5*5) * 5 / 3 % 5 >
0)
elif (foo / 3 > 0):
___ print(25 - 5 * 5 * 5 / (11 % 2))
else:
___ print(foo /
Assinale a alternativa que apresenta corretamente o resultado esperado.
True.
False.
-100.
100.
5.
Quando se deseja criar ou desenvolver um software, para realizar determinado tipo de processamento de dados, deve-se escrever um programa.
Certo
Errado
A figura I abaixo mostra uma codificação da estrutura de controle repita ... fimrepita, em pseudocódigo, e a figura lI, o resultado da execução.


A estrutura enquanto ... faça ... fimenquanto correspondente, que gera o mesmo resultado, está indicada na alternativa:




Considere a função fat especificada abaixo em pseudocódigo, que recebe um número inteiro positivo e calcula o fatorial do mesmo de forma recursiva, devolvendo um número inteiro.
function fat (n as integer) as integer
if n > 1
then ...
else return 1
endif;
Para que a função fat funcione corretamente, o trecho “. . . “ deve ser substituído por
return fat(n + 1)
return fat(n)
return fat(n-1)
return n * fat(n)
return n * fat(n-1)
Uma startup elaborou um algoritmo capaz de executar as instruções descritas no quadro abaixo.
A←15 |
B←A+1 |
A←B+1 |
B←A+1 |
A←B+1 |
Escrever A, B |
Interpretando esse algoritmo, qual será a saída mostrada, após sua execução:
16 e 17.
17 e 17.
17 e 18.
18 e 19.
19 e 18.
Acerca de: “Pode-se considerar um algoritmo como uma ferramenta para resolver um problema computacional bem especificado. O enunciado do problema especifica em termos gerais a relação desejada entre entrada e saída”. (CORMEN at all. Algoritmos. 3ª Ed, Elsevier, 2012). Sobre a complexidade de tempo do algoritmo, analise o algoritmo abaixo e assinale a opção correta:

O(n3).
O(n2).
O(n).
O(n lg n).
Considere o seguinte algoritmo.
função real arredonda (real valor)
---valor = inteiro ((valor)/8.0)*8
---retorne valor
real x
x = (leia(“Digite um valor: “))
escreva (arredonda(x))
A função arredonda(), presente no algoritmo precedente, retorna o arredondamento de um número de entrada para um valor múltiplo de 8.
Certo
Errado
Considere o algoritmo abaixo desenvolvido segundo a sintaxe utilizada no VisuAlg 3.0:
Algoritmo "Concurso"
Var
i, j, y : inteiro
x : logico
Inicio
y <- 0
para i de 2 até 10 faça
x <- verdadeiro
para j de 2 até (i div 2) faça
se i mod j = 0 então
x <- falso
fimse
fimpara
se x então
y <- y + i
fimse
fimpara
escreva(y)
Fimalgoritmo
Qual o valor mostrado na saída deste algoritmo?
10
17
25
34
44
Ao final do algoritmo, o valor de "a" será:
0.
2.
3.
4.
Nenhuma das alternativas anteriores está correta.
Um analista do TCU recebe o conjunto de dados com covariáveis e a classe a que cada amostra pertence na tabela a seguir.
X1 | X2 | Classe |
0 | 1 | A |
0 | 2 | B |
1 | 0 | A |
1 | -1 | B |
2 | 2 | B |
1 | 2 | A |
-1 | 1 | B |
2 | 3 | A |
Esse analista gostaria de prever a classe dos pontos (1,1), (0,0) e (-1,2) usando o algoritmo de k-vizinhos mais próximos com k=3 e usando a distância euclidiana usual.
Suas classes previstas são, respectivamente:
A, B, A;
B, A, A;
A, B, B;
A, A, B;
A, A, A.