Questões de Concurso Comentadas sobre algoritmos e estrutura de dados
Foram encontradas 2.682 questões
Código 01 import java.util.Stack; public class PilhaExemplo { public static void main(String[] args) { Stack<Integer> pilha = new Stack<>(); pilha.push(10); pilha.push(20); pilha.push(30); System.out.println("Elementos removidos da pilha:"); while (!pilha.isEmpty()) { System.out.println(pilha.pop()); } } } Código 02 import java.util.LinkedList; import java.util.Queue; public class FilaExemplo { public static void main(String[] args) { Queue<Integer> fila = new LinkedList<>(); fila.add(10); fila.add(20); fila.add(30); System.out.println("Elementos removidos da fila:"); while (!fila.isEmpty()) { System.out.println(fila.poll()); } } }
Com base nos dois trechos de código apresentados, assinale a alternativa correta ao comparar o código da pilha com o código da fila.
public class HeapSort { public void heapSort(int arr[]) { int n = arr.length; for (int i = n / 2 - 1; i >= 0; i--) { heapify(arr, n, i); } for (int i = n - 1; i > 0; i--) { int temp = arr[0]; arr[0] = arr[i]; arr[i] = temp; heapify(arr, i, 0); } } void heapify(int arr[], int n, int i) { int maior = i; int esquerda = 2 * i + 1; int direita = 2 * i + 2; if (esquerda < n && arr[esquerda] > arr[maior]) { maior = esquerda; } if (direita < n && arr[direita] > arr[maior]) { maior = direita; } if (maior != i) { int temp = arr[i]; arr[i] = arr[maior]; arr[maior] = temp; heapify(arr, n, maior); } } public static void main(String args[]) { int arr[] = {12, 11, 13, 5, 6, 7}; int n = arr.length; HeapSort heapSort = new HeapSort(); heapSort.heapSort(arr); System.out.println("Array ordenado: "); for (int i : arr) { System.out.print(i + " "); } } }
Considerando o algoritmo apresentado, qual é a principal característica deste algoritmo de ordenação?
Considere os dois pseudocódigos recursivos apresentados a seguir:
Código 01
função fibonacci(n: inteiro) -> inteiro:
se n <= 1 então
retornar n
senão
retornar fibonacci(n-1) + fibonacci(n-2)
fim se
Código 02
função fatorial(n: inteiro) -> inteiro:
se n <= 1 então
retornar 1
senão
retornar n * fatorial(n-1)
fim se
A partir da análise dos códigos apresentados, assinale a alternativa que apresenta a principal diferença entre os pseudocódigos recursivos 1 e 2 em termos de seu propósito e operação.
Considere o seguinte pseudocódigo:
// Pseudocódigo para calcular a média de duas notas
// ??? (1)
nota1, nota2, media: real
// ??? (2)
escrever("Digite a primeira nota: ")
ler(nota1)
escrever("Digite a segunda nota: ")
ler(nota2)
// ??? (3)
media <- (nota1 + nota2) / 2
// ??? (4)
escrever("A média das duas notas é: ", media)
Com base no pseudocódigo, assinale a alternativa que apresenta corretamente cada elemento (// ???) a sua respectiva parte no pseudocódigo.
Considere a seguinte função recursiva em pseudocódigo:
função fatorial(n: inteiro) -> inteiro:
se n = 0 ou n = 1 então
retornar 1
senão
retornar n * fatorial(n - 1)
fim se
Com base na análise da função, assinale a alternativa que apresenta o resultado da chamada da função fatorial(5).
Código 01 contador <- 1 enquanto contador <= 5 faça escrever("Iteração ", contador) contador <- contador + 1 fim enquanto
Código 02 para contador de 1 até 5 passo 1 faça escrever("Iteração ", contador) fim para
A partir da análise dos dois trechos de pseudocódigo apresentados, assinale a alternativa que apresenta a principal diferença entre as estruturas de repetição Enquanto e Para, conforme exemplificado nos pseudocódigos.
// Pseudocódigo para calcular a média de três números escrever("Digite o primeiro número: ") ler(primeiroNumero) escrever("Digite o segundo número: ") ler(segundoNumero) escrever("Digite o terceiro número: ") ler(terceiroNumero) soma <- primeiroNumero + segundoNumero + terceiroNumero media <- soma / 3 escrever("A média dos três números é: ", media)
Com base no trecho código apresentado, assinale a alternativa que apresenta a finalidade da parte do pseudocódigo que contém as linhas a seguir.
escrever("Digite o primeiro número: ") ler(primeiroNumero) escrever("Digite o segundo número: ") ler(segundoNumero) escrever("Digite o terceiro número: ") ler(terceiroNumero)
• Pensamento Computacional — envolve compreender e automatizar problemas e suas soluções, de forma metódica e sistemática.
• Mundo Digital — envolve as formas de processar e distribuir a informação de maneira segura e confiável.
• Cultura Digital — envolve uma participação mais consciente e democrática por meio das tecnologias digitais.
BRASIL. Ministério da Educação. Base Nacional Comum Curricular. Brasília: MEC, 2017 (adaptado).
Considerando essas informações, assinale a opção que indica uma situação cotidiana que poderia ser explicada com o ensino do eixo Pensamento Computacional.
Para a concretização da tarefa descrita, a proposta adequada nessa turma é a implementação do algoritmo de ordenação
Considerando as características de cada ambiente, uma estratégia adequada para o professor abordar o mesmo conteúdo, de forma eficaz, em ambas as escolas é,
( ) Uma pilha é uma lista linear na qual a inserção de elementos ocorre em uma extremidade. chamada de fim da pilha, e a remoção ocorre na outra extremidade, chamada de frente da pilha. Isso segue a abordagem First In, First Out (FIFO), onde o primeiro elemento inserido é o primeiro a ser removido.
( ) Uma fila é uma lista linear na qual a inserção e a remoção de elementos ocorrem apenas em uma extremidade, chamada de topo da fila. Isso segue a abordagem Last In, First Out (LIFO), onde o último elemento inserido é o primeiro a ser removido.
( ) Uma lista estática é uma estrutura de dados na qual cada elemento, além de armazenar seu valor, contém uma referência ao próximo elemento na lista. Isso permite a construção de listas de tamanho variável. onde os elementos não precisam estar necessariamente em posições contíguas de memória.
Qual alternativa preenche, CORRETAMENTE, os parênteses, na ordem em que aparecem?