Questões de Concurso
Sobre vetores em algoritmos e estrutura de dados
Foram encontradas 130 questões
Considere o algoritmo a seguir, na forma de pseudocódigo:
Var n, i, j, k, x: inteiro
Var v: vetor[0..7] inteiro
Início
v[0] ← 12
v[1] ← 145
v[2] ← 1
v[3] ← 3
v[4] ← 67
v[5] ← 9
v[6] ← 45
n ← 8
k ← 3
x ← 0
Para j ← n-1 até k passo -1 faça
v[j] ← v[j - 1];
Fim_para
v[k] ← x;
Fim
Este pseudocódigo
Assinale o número máximo de acessos a R necessários para encontrar uma determinada chave.
(1) declarar M[5,4,3] : literal
(2) M[4,3,2]←"ABC"
A literal "ABC" foi armazenada na posição representada pelas dimensões coluna, linha e profundidade, respectivamente:
Serão digitados na seqüência os números 34, 81, 79, 25 e 60. Após a digitação do segundo número, o vetor conterá:
Dado o vetor [ ] com n > 3 elementos numéricos e inteiros, o algoritmo apresentado por seleção resultará no mesmo vetor com os elementos ordenados na ordem decrescente.
Dado que a ordem correta das cores é Marrom-Verde-Azul-Vermelho-Amarelo, a coluna Cor, na tabela acima, deveria apresentar, de cima para baixo, os seguintes valores:
Considere o trecho de código a baixo. Assuma que o operador [ ] (abre e fecha colchetes) é usado para acessar elementos de vetores (arrays) e que o primeiro elemento do vetor é armazenado no índice 0.
v[ i ] = i;
}
para i de 0 até 3 faça {
v[i+1] = v[i+1] + 2*v[i];
}
Qual o valor de v[4] após a execução do trecho de código acima?
[45, 58, 86, 104, 134, 250, 315, 367, 408, 410, 502, 510, 600, 785, 846, 901]
Utilizando-se uma pesquisa binária, o número máximo de buscas para encontrar a chave 600 será:
Se nas duas ocorrências de atribuição do valor 0 à variável p, ou seja, p ← 0, for atribuído 1 a esta variável,
Var v: vetor [0..7]: inteiro
Var n, p, u, a: inteiro
Início
Para p de 0 até 7 passo 1 faça
leia (n)
v[p] ← n
Fim_para
p ← 0
u ← 8
Enquanto (u < > 2) faça
Enquanto (p < > (u-1)) faça
Se (v[p] > v[p+1]) então
a ← v[p]
v[p] ← v[p+1]
v[p+1] ← a
Fim_se
p ← p + 1
Fim_enquanto
p ← 0
u ← u - 1
Fim_enquanto
Fim
Considerando-se que v receba os valores 12, 21, 3, 9, 57, 33, 27 e 41, nessa ordem, após executar todos os laços de repetição as posições 4 e 5 do vetor v conterão, respectivamente, os valores
algoritmo "MDA"
var
M : vetor[1..5,1..5] de inteiro
L,C : inteiro
procedimento GERAR
inicio
para L de 1 ate 5 faca
para C de 1 ate L faca
se ((C=1) ou (L=C)) entao
M[L,C] <- 1
senao
M[L,C] <- M[L-1,C] + M[L-1 ,C-1]
fimse
fimpara
fimpara
fimprocedimento
procedimento SAIDA
inicio
para L de 1 ate 5 faca
para C de 1 ate I faca
escreva(M[L,C]:3)
fimpara
|escreval
fimpara
fimprocedimento
inicio
GERAR
SAIDA
fimalgoritmo
Após a execução, a saída será:
( ) Os arrays podem ser declarados para conter a maioria dos tipos de dados.
( ) Em um array de tipos de dados primitivos, nem todo elemento do array precisa conter um valor do tipo de dados declarado do array.
( ) Uma variável const deve ser declarada e inicializada na mesma instrução.
( ) Quando é feita uma referência para um elemento inexistente de um array, ocorre uma exceção IndexOutRangeException.
( ) Em um array de tipo de referência, todo elemento do array é uma referência para um objeto do tipo de dados do array, como, por exemplo, todo elemento de um array string é uma referência para uma string, e essa referência tem o valor null como padrão.
( ) O número da posição em colchetes é mais formalmente chamado de índice (ou sobrescrito). Esse número deve ser um inteiro ou uma expressão inteira.
A sequência está correta em
Busca (A, n)
x ← A [1]
para i de 2 até n, faça
se A [i] > x então x ← A [i]
devolve x
o valor da saída x para o vetor de entrada A = (3, 2, 1, 7, 2, 5), onde n = 6, será
1. for ( int i=0; i < n; i ++) {
2. for (int j=1; j < (n-i) ; j ++) {
3. if (intArray[ j-1] > intArray[ j ] ) {
4. temp = intArray[ j-1] ;
5. intArray[ j-1] = intArray[ j ] ;
6. intArray[ j ] = temp ;
7. }
8. }
9. }
Para expressar propriedades desse código, na linguagem da lógica proposicional, considere as proposições lógicas p, q e r e as seguintes interpretações:
• p é verdadeiro se e somente se i = 0
• q é verdadeiro se e somente se j ≠ (n-i)
• r é verdadeiro se e somente se intArray[j-1] > intArray[j]
Nesse contexto, os comandos de atribuição presentes neste trecho de código (linhas 4, 5 e 6) serão executados para:
O método quicksort é semelhante ao bubble sort, pois opera comparando cada elemento de um vetor com seu sucessor e, caso este esteja fora de ordem, o quicksort auxilia a troca da posição. Dessa forma, em ambos os métodos, é grande o número de comparações e trocas para execução de vetores extensos.