Questões de Concurso
Sobre algoritmos em algoritmos e estrutura de dados
Foram encontradas 2.316 questões
Analise o retorno para o seguinte algoritmo.

A saída produzida pelo código acima é
Observe a seguinte lógica de programação.

Este algoritmo escreve a saída
Acerca de aspectos de linguagens de programação, algoritmos e estruturas de dados e objetos, programação orientada a objetos e arquitetura MVC, julgue o item subsequente.
É correto afirmar que o uso de algoritmos eficientes está
relacionado ao emprego de estruturas de dados
adequadas.
Leia os itens contendo as expressões regulares que poderão ser associadas ao autômato da figura, conforme aquilo que a bibliografia adotada descreve sobre autômatos finitos e expressões regulares.

I) A expressão regular 0*1(1+00*1)* representa o automato da figura.
II) A expressão regular 0*1*1+11*0*1 representa o automato da figura.
III) A expressão regular (0+1)*1 representa o automato da figura.
Assinale somente a alternativa que apresenta todas as afirmativas CORRETAS.


Considerando que “T” assuma tais valores: T=47, 19, 59, 35, 56, 2, 17, 42, 14, 23, 67, 32, 16. Ao final obteremos a saída:
Julgue o item seguinte, a respeito de estruturas em programação e de arquiteturas de bancos de dados.
No algoritmo denominado busca em amplitude, a árvore
é percorrida visitando-se todos os nós de um ramo até se
atingir os nós terminais, repetindo-se o processo em cada um
dos ramos.
Os números que serão escritos são
a = 100 // atribui o valor 100 à variável “a”
f(a + 1) // invoca a execução da função “f”
b = a // atribui o valor da variável “a” à variável “b”
def f(a) { // define a função “f”
a = a + 10
}
Assinale a alternativa CORRETA.
• a expressão lógica “x % y == 0” é verdadeira se o número “x” for divisível pelo número “y” e falsaem caso contrário;
• o comando de repetição “para-cada (n em v) {...}” executa os comandos dentro do blocodelimitado por “{” e por “}”, onde o número de repetições é igual à quantidade de númerospresentes no array “v” e, em cada repetição, o valor da variável “n” será um dos números do array “v”. Exemplo: no comando para-cada (n em [5, 2, 8]) { ... } o valor de “n” na primeirarepetição será 5, na segunda repetição será 2 e na terceira e última repetição será 8;
• o comando de atribuição “=” atribui um valor a uma variável. Exemplo: o comando “a = b + 1”define que o valor da variável “a” será o valor da expressão “b + 1”, ou seja, será o valor davariável “b” mais 1;
• o comando de seleção “se (expressão lógica) { ... }” executa os comandos dentro do blocodelimitado por “{” e por “}” caso a expressão lógica seja verdadeira.
Considere o seguinte algoritmo:
v = [8, 3, 10, 9]
a = 0
b = 5
para-cada (n em v) {
se (n % b == 0) {
a = a + n
}
}
Assinale a alternativa que indica CORRETAMENTE o valor que será atribuído à variável “b”após a execução do algoritmo acima.
Muitos algoritmos de ordenação de números armazenados em array necessitam fazer comparações (verificar se um número é menor, igual ou maior que outro número) e trocas (mudar a posição dos números dentro do array).
Considere o problema de ordenar um array contendo N números inteiros. Se for utilizado o Método da Bolha, qual é o menor número possível de trocas para ordenar completamente o array?
Considere o código-fonte que segue:
int f1(int n) {
if (n == 0 II n == 1) return n;
else return (2 * f1(n-1) + 3 * f1(n-2)); }
int f2(int n) {
int a; int[] X = new int [n];
int[] X = new int [n]; int[] Z = new int [n];
X [0] = Y [0] = Z [0] = 0;
X [1] = 1; Y [1] = 2; Z [1] = 3;
for (a = 2; a <= n; a ++) {
X [a] = Y [a-1] + Z [a-2];
Y [a] = 2 * X [a]; Z [a] = 3 * X [a]; }
return X [n]; }
Qual é o tempo de execução de f1(n) e f2(n),
respectivamente?