Buscar

Linguagens de Programação e Estruturas de Dados (ADS12)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 6 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 6 páginas

Prévia do material em texto

1. Os subprogramas atuam na divisão da complexidade de um problema computacional 
em partes menores, auxiliando, desta forma, a sua resolução. Na linguagem de 
programação Javascript, os subprogramas, conhecidos como funções, podem ou não 
conter retorno, o que dá uma maior flexibilidade ao desenvolvedor, embora 
prejudique a legibilidade do código fonte. Considerando a implementação de funções 
na linguagem de programação Javascript, analise o código fonte da figura e 
classifique V para as sentenças verdadeiras e F para as falsas: 
 
( ) A função helloWorld retorna o argumento que foi passado como parâmetro. 
( ) Esta página simplesmente imprimirá a mensagem Hello-World. 
( ) O tipo do retorno da função está declarado na sua assinatura. 
( ) A função helloWorld é chamada na linha 12 da imagem. 
 
Agora, assinale a alternativa que apresenta a sequência CORRETA: 
 
 a) V - V - F - V. 
 b) F - V - F - V. 
 c) V - F - F - V. 
 d) V - F - V - F. 
 
2. Considere uma lista encadeada em que cada nó contém uma String. Após algumas 
operações de inserção, a sequência das Strings na lista é: ?Emanuelle?, ?Cecília?, 
?Catarina?, ?Benjamin?. Avaliando o código fonte mostrado na figura anexa, e que o 
conteúdo da variável nome é igual a ?Cristiano?, assinale a alternativa que apresenta 
a sequência da lista após execução do método: 
 
 a) ?Emanuelle?, ?Cristiano?, ?Cecília?, ?Catarina?, ?Benjamin?. 
 b) ?Emanuelle?, ?Cecília?, ?Catarina?, ?Benjamin?, ?Cristiano?. 
 c) ?Cristiano?, ?Emanuelle?, ?Cecília?, ?Catarina?, ?Benjamin?. 
 d) ?Emanuelle?, ?Cecília?, ?Catarina?, ?Cristiano?, ?Benjamin?. 
 
https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php?action1=RkxYMDY0Mg==&action2=QURTMTI=&action3=NTEzMzY2&action4=MjAyMC8x&action5=MjAyMC0wNi0wMlQwMzowMDowMC4wMDBa&prova=MTg5NTc0NzA=#questao_1%20aria-label=
https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php?action1=RkxYMDY0Mg==&action2=QURTMTI=&action3=NTEzMzY2&action4=MjAyMC8x&action5=MjAyMC0wNi0wMlQwMzowMDowMC4wMDBa&prova=MTg5NTc0NzA=#questao_2%20aria-label=
3. Um algoritmo é, essencialmente, uma forma sem cérebro de fazer coisas inteligentes. 
É um conjunto de etapas precisas que não precisam de grande esforço mental para 
serem seguidas, mas que, se obedecidas exatamente e mecanicamente, levarão ao 
resultado desejado. A chave é: cada passo deve ser o mais simples possível, sem 
deixar espaço para ambiguidades ou dúvidas. Cozinhar e dirigir, por exemplo, são 
tipos de algoritmos. Mas as instruções como "cozinhas a carne até que fique macia" 
ou "siga em frente por alguns quilômetros" são muito vagas para serem seguidas 
sem, pelo menos, alguma interpretação. Com relação ao conceito apresentado, 
classifique V para as sentenças verdadeiras e F para as falsas: 
 
( ) É Uma sequência de passos para realizar uma atividade. 
( ) É a operação matemática inversa a potencia. 
( ) É parte de um programa em que se limita a definir os tipos de dados das 
variáveis. 
( ) É a parte de um programa em que se limita a definir as constantes. 
( ) É um software utilizado para escrever programas. 
 
Assinale a alternativa que apresenta a sequência CORRETA: 
 
FONTE: <https://epocanegocios.globo.com/Tecnologia/noticia/2017/09/o-que-sao-
algoritmos.html>. Acesso em: 28 nov. 2018. 
 a) V - F - F - F - F. 
 b) V - V - F - V - V. 
 c) F - F - F - F - V. 
 d) F - V - V - F - F. 
 
4. A classe CountOccurrence escrita na linguagem Java tem por objetivo localizar e 
contar quantas ocorrências de um determinado valor existem em um conjunto 
predeterminado de valores, retornando a quantidade de vezes que um determinado 
valor se repete no conjunto. 
 
public class CountOccurrence { 
 
 public boolean hasValue(int searchValue, int[] array, int i) { 
 if (i >= array.length) 
 return false; 
 
 if (array[i] == searchValue) 
 return true; 
 else 
 return hasValue(searchValue, array, i + 1); 
 } 
 
 public int count(int countValue, int[] array, int i) { 
 if (!hasValue(countValue, array, i) '' i >= array.length) 
 return 0; 
 
 int c = 0; 
 if (array[i] == countValue) 
https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php?action1=RkxYMDY0Mg==&action2=QURTMTI=&action3=NTEzMzY2&action4=MjAyMC8x&action5=MjAyMC0wNi0wMlQwMzowMDowMC4wMDBa&prova=MTg5NTc0NzA=#questao_3%20aria-label=
https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php?action1=RkxYMDY0Mg==&action2=QURTMTI=&action3=NTEzMzY2&action4=MjAyMC8x&action5=MjAyMC0wNi0wMlQwMzowMDowMC4wMDBa&prova=MTg5NTc0NzA=#questao_4%20aria-label=
 c++; 
 
 c += count(countValue, array, i+1); 
 return c; 
 } 
 
 public static void main(String[] args) { 
 int[] array = {2, 3, 5, 6, 9, 7, 8, 8, 9}; 
 CountOccurrence co = new CountOccurrence(); 
 System.out.println(co.count(5, array, 0)); 
 } 
} 
 
Considerando o requisito proposto e o código apresentado, avalie as asserções a 
seguir e a relação proposta entre elas: 
 
I- Para que o algoritmo funcione corretamente, deve-se alterar a linha 21, de 
c += count( countValue, array, i ); 
para 
c += count(countValue, array, i + 1); 
 
PORQUE 
 
II- Da forma como o código está escrito, o código não compilará por estar chamando 
o mesmo método dentro dele indefinidamente. 
 
Assinale a alternativa CORRETA: 
 a) As duas asserções são proposições verdadeiras, mas a segunda não é uma 
justificativa correta da primeira. 
 b) A primeira asserção é uma proposição verdadeira, e a segunda, uma proposição 
falsa. 
 c) As duas asserções são proposições falsas. 
 d) A primeira asserção é uma proposição falsa, e a segunda, uma proposição 
verdadeira. 
 
5. Vários são os tipos de estrutura de dados quando o assunto é o armazenamento e 
acesso eficiente dos dados: pilhas, filas, vetores, matrizes, listas. Cada um dos tipos 
citados tem características muito particulares com relação à inclusão, ao acesso e à 
exclusão dos dados. Com relação às estruturas de dados, analise as sentenças a 
seguir: 
 
I- Na fila, não há exclusões e as inserções são feitas sempre na parte inferior. 
II- As estruturas de dados são sempre estáticas, ou seja, seu tamanho ou capacidade 
de armazenamento nunca sofrem alterações. 
III- As inserções e as exclusões podem ser feitas em qualquer lugar da lista em uma 
lista encadeada. 
IV- Nas pilhas, as inserções e as exclusões são feitas apenas no seu topo. 
 
Assinale a alternativa CORRETA: 
https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php?action1=RkxYMDY0Mg==&action2=QURTMTI=&action3=NTEzMzY2&action4=MjAyMC8x&action5=MjAyMC0wNi0wMlQwMzowMDowMC4wMDBa&prova=MTg5NTc0NzA=#questao_5%20aria-label=
 a) As sentenças III e IV estão corretas. 
 b) As sentenças II, III e IV estão corretas. 
 c) As sentenças I, II e IV estão corretas. 
 d) As sentenças I e III estão corretas. 
 
6. As strings funcionam como facilitadores para os desenvolvedores de software, pois 
permitem que sejam criadas variáveis para armazenamento de conjuntos de 
caracteres sem a necessidade de preocupação com o seu funcionamento interno. 
Sobre o tipo string na linguagem de programação C, analise as sentenças a seguir: 
 
I- Uma variável do tipo string tem seu final sinalizado através do caractere ''. 
II- O conteúdo de uma variável do tipo string é representado internamente por um 
símbolo numérico, geralmente no formato ASCII. 
III- Uma string pode ser considerada como um vetor multidimensional. 
IV- Uma string pode ser considerada como um vetor unidimensional. 
 
Assinale a alternativa CORRETA: 
 a) As sentenças I e IV estão corretas. 
 b) As sentenças II e III estão corretas. 
 c) As sentenças II e IV estão corretas. 
 d) As sentenças I e III estão corretas. 
 
7.A alocação dinâmica de memória para armazenamento de objetos é uma das 
alternativas à utilização de vetores e matrizes, apresentando, entretanto, alguma 
complexidade adicional no que se refere à própria estrutura de armazenamento e 
busca. Considerando uma lista encadeada que faça uso da alocação dinâmica de 
memória, assinale a alternativa CORRETA: 
 a) O último elemento da lista encadeada não é referenciado por nenhum dos 
anteriores, indicando o final da lista. 
 b) Uma lista encadeada exige que se conheça inicialmente o número de objetos a 
serem alocados. 
 c) O primeiro elemento de uma lista encadeada sempre possuirá uma referência para 
null, indicando os demais elementos da lista. 
 d) Não podemos afirmar que os elementos de uma lista encadeada estão colocados 
na memória de forma contígua. 
 
8. O algoritmo a seguir recebe um vetor v de números inteiros e rearranja esse vetor de 
tal forma que seus elementos, ao final, estejam ordenados de forma crescente. 
Considerando que nesse algoritmo há erros de lógica que devem ser corrigidos para 
que os elementos sejam ordenados de forma crescente, avalie as afirmativas a seguir: 
 
I- A linha 04 deve ser corrigida da seguinte forma: for(i = 1; i < n - 1 ; i ++) 
II- A linha 08 deve ser corrigida da seguinte forma: while( j >= 0 && v[j] >chave) 
III- A linha 10 deve ser corrigida do seguinte modo: v [ j + 1] = v [ j]; 
IV- a linha 13 deve ser corrigida do seguinte modo: v [ j - 1] = chave; 
 
Assinale a alternativa CORRETA: 
https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php?action1=RkxYMDY0Mg==&action2=QURTMTI=&action3=NTEzMzY2&action4=MjAyMC8x&action5=MjAyMC0wNi0wMlQwMzowMDowMC4wMDBa&prova=MTg5NTc0NzA=#questao_6%20aria-label=
https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php?action1=RkxYMDY0Mg==&action2=QURTMTI=&action3=NTEzMzY2&action4=MjAyMC8x&action5=MjAyMC0wNi0wMlQwMzowMDowMC4wMDBa&prova=MTg5NTc0NzA=#questao_7%20aria-label=
https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php?action1=RkxYMDY0Mg==&action2=QURTMTI=&action3=NTEzMzY2&action4=MjAyMC8x&action5=MjAyMC0wNi0wMlQwMzowMDowMC4wMDBa&prova=MTg5NTc0NzA=#questao_8%20aria-label=
 
 a) As afirmativas II e III estão corretas. 
 b) As afirmativas I e IV estão corretas. 
 c) As afirmativas III e IV estão corretas. 
 d) As afirmativas I e II estão corretas. 
 
9. As listas dupla e simplesmente encadeadas apresentam-se como soluções para 
situações em que o desenvolvedor precisa armazenar um número desconhecido de 
ocorrências de uma mesma entidade na memória. Uma das maneiras de implementar 
as listas é através da autorreferenciação dentro da própria entidade que será 
armazenada. Por exemplo, em uma lista de Automóveis, cada Automóvel conterá a 
informação que levará para o próximo elemento da lista. Com relação a este tipo 
específico de implementação de listas, analise as sentenças a seguir: 
 
I- Este tipo de lista possui características que violam o princípio da coesão. 
II- Este tipo de lista apresenta uma complexidade menor para o desenvolvedor no 
momento da manutenção, pois todas as informações estão em praticamente uma 
única entidade. 
III- Devido à sua característica de autorreferenciação, este tipo de implementação 
não permite a criação de listas duplamente encadeadas. 
IV- Para reduzir a complexidade na manutenção de uma lista encadeada, a entidade 
que conterá a informação a ser armazenada deve ser desacoplada da lista 
propriamente dita. 
 
Agora, assinale a alternativa CORRETA: 
 a) As sentenças I e III estão corretas. 
 b) As sentenças I, II e III estão corretas. 
 c) As sentenças I e IV estão corretas. 
 d) Somente a sentença II está correta. 
 
10. Os números de Fibonacci correspondem a uma sequência infinita na qual os dois 
primeiros termos são 0 e 1. Cada termo da sequência, à exceção dos dois primeiros, é 
https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php?action1=RkxYMDY0Mg==&action2=QURTMTI=&action3=NTEzMzY2&action4=MjAyMC8x&action5=MjAyMC0wNi0wMlQwMzowMDowMC4wMDBa&prova=MTg5NTc0NzA=#questao_9%20aria-label=
https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php?action1=RkxYMDY0Mg==&action2=QURTMTI=&action3=NTEzMzY2&action4=MjAyMC8x&action5=MjAyMC0wNi0wMlQwMzowMDowMC4wMDBa&prova=MTg5NTc0NzA=#questao_10%20aria-label=
igual à soma dos dois anteriores, conforme a relação de recorrência a seguir. 
 
f(n) = f(n-1) + f(n-2) 
 
Para desenvolver este algoritmo é possível fazer ele iterativo ou recursivo. Sobre o 
exposto, analise as afirmativas a seguir: 
 
I- A iteratividade indireta é caracterizada, por exemplo, quando uma função C chama 
a função D, e esta função D, chama a função C. 
II- A solução recursiva possui a vantagem de ser implementada diretamente a partir 
da definição do problema. 
III- A solução iterativa é mais vantajosa em termos de eficiência, mas exige mais 
atenção na implementação. 
IV- A solução iterativa realiza economia de espaço na memória do computador. 
 
Assinale a alternativa CORRETA: 
 a) As afirmativas III e IV estão corretas. 
 b) As afirmativas II e III estão corretas. 
 c) As afirmativas I e IV estão corretas. 
 d) As afirmativas I e II estão corretas. 
 
11. (ENADE, 2011) A pilha é uma estrutura de dados que permite a inserção/remoção de 
itens dinamicamente seguindo a norma de último a entrar, primeiro a sair. Suponha 
que para uma estrutura de dados, tipo pilha, são definidos os comandos: 
 
PUSH (p, n): Empilha um número "n" em uma estrutura de dados do tipo pilha "p"; 
POP (p): Desempilha o elemento no topo da pilha. 
 
Considere que, em uma estrutura de dados tipo pilha "p", inicialmente vazia, sejam 
executados os seguintes comandos: 
 
PUSH (p, 10) 
PUSH (p, 5) 
PUSH (p, 3) 
PUSH (p, 40) 
POP (p) 
PUSH (p, 11) 
PUSH (p, 4) 
PUSH (p, 7) 
POP (p) 
POP (p) 
 
Após a execução dos comandos, o elemento no topo da pilha "p" e a soma dos 
elementos armazenados na pilha "p" são, respectivamente: 
 a) 7 e 29. 
 b) 11 e 29. 
 c) 11 e 80. 
 d) 4 e 80. 
 
https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php?action1=RkxYMDY0Mg==&action2=QURTMTI=&action3=NTEzMzY2&action4=MjAyMC8x&action5=MjAyMC0wNi0wMlQwMzowMDowMC4wMDBa&prova=MTg5NTc0NzA=#questao_11%20aria-label=

Continue navegando

Outros materiais