Buscar

Prova 2 - 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

Disciplina:
	Linguagens de Programação e Estruturas de Dados (ADS12)
	Avaliação:
	Avaliação II - Individual FLEX ( Cod.:650708) ( peso.:1,50)
	Prova:
	25019946
	Nota da Prova:
	9,00
	
	
Legenda:  Resposta Certa   Sua Resposta Errada  
Parte superior do formulário
	1.
	A ordenação por inserção funciona de modo semelhante à forma como algumas pessoas ordenam cartas de baralho. Inicia-se com a mão esquerda vazia e as cartas empilhadas na mesa. Remove-se da pilha uma carta de cada vez, inserindo-a na posição correta na mão esquerda. Para se identificar a posição correta de uma carta, deve-se compará-la com as cartas presentes na mão esquerda, no sentido da direita para a esquerda. Em todos os momentos, as cartas na mão esquerda estão ordenadas, tendo sido obtidas no topo da pilha da mesa. Um programador implementou um algoritmo de ordenação semelhante à forma de ordenação de cartas descrita no texto. Ao realizar um teste com um vetor de nove posições (vetor [ 1 .. 9] ), verificou que o algoritmo não funcionava corretamente. Considerando que nesse algoritmo há erros de lógica que devem ser corrigidos para que o algoritmo ordene corretamente um vetor de inteiros de forma crescente, analise as afirmativas a seguir:
I- A linha 04 deve ser corrigida da seguinte forma: enquanto ( ( j >= 1 ) ou ( valor < vetor [ j ] ) )  
II- A linha 05 deve ser corrigida da seguinte forma: vetor [ j + 1 ] <- vetor [ j ]
III- A linha 11 deve ser corrigida do seguinte modo: vetor [ j ] <- valor
Assinale a alternativa CORRETA:
	
	 a)
	Somente a afirmativa II está correta.
	 b)
	As afirmativas I e II estão corretas.
	 c)
	As afirmativas II e III estão corretas.
	 d)
	As afirmativas I e III estão corretas.
	2.
	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)
            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)
	A primeira asserção é uma proposição verdadeira, e a segunda, uma proposição falsa.
	 b)
	As duas asserções são proposições verdadeiras, mas a segunda não é uma justificativa correta da primeira.
	 c)
	A primeira asserção é uma proposição falsa, e a segunda, uma proposição verdadeira.
	 d)
	As duas asserções são proposições falsas.
	3.
	Foi solicitada a criação de um algoritmo que faça a leitura de três notas, apresentando uma mensagem com a maior nota. Com base nessa solicitação e no algoritmo anexo, analise as sentenças a seguir:
I- O algoritmo não funciona, pois não pode ordenar valores do tipo real.
II- O algoritmo não funciona, pois as variáveis utilizadas não foram declaradas.
III- O algoritmo não está com a lógica correta para o que foi solicitado.
IV- O algoritmo está certo e apresentará a maior nota de três.
Assinale a alternativa CORRETA:
	
	 a)
	As sentenças II e III estão corretas.
	 b)
	As sentenças II, III e IV estão corretas.
	 c)
	As sentenças I, II e III estão corretas.
	 d)
	As sentenças II e IV estão corretas.
	4.
	Os tipos estruturados permitem o agrupamento de informações mais simples no formato de variáveis em entidades mais complexas, com o objetivo de facilitar a sua manipulação. Diversas linguagens de programação permitem a implementação destes tipos estruturados. Com base no exposto, analise as sentenças a seguir:
I- Como a ferramenta para a representação do tipo estruturado é a linguagem de programação, o domínio não deve influenciar na definição deste tipo.
II- Para representar uma abstração eficiente, os tipos estruturados devem ter rotinas que agem sobre eles.
III- Uma das maneiras de a linguagem de programação C fornecer o agrupamento dos dados é por meio das structs.
IV- Um dos objetivos destes tipos estruturados é identificar e desenvolver modelos matemáticos e abstrações do mundo real.
Agora, assinale a alternativa CORRETA:
	 a)
	As sentenças I e IV estão corretas.
	 b)
	As sentenças II, III e IV estão corretas.
	 c)
	As sentenças I e II estão corretas.
	 d)
	As sentenças I, II e III estão corretas.
	5.
	Os proprietários de um teatro necessitam de uma ferramenta de software para reserva de lugares. O desenvolvedor contratado verificou que as poltronas disponíveis para reserva são referenciadas pelo número da fila (a partir do número 1) e pelo número da cadeira (a partir do número 1) em cada fila, em uma representação matricial em que as linhas e colunas da matriz correspondem, respectivamente, às filas e às colunas de cadeiras. Embora o contexto seja o da organização matricial - N filas de cadeiras (linhas), cada uma contendo M cadeiras (colunas) -, a solução a ser implementada utilizará uma estrutura linear unidimensional (vetor), sendo, portanto, necessária uma conversão entre o lugar referenciado (número f da fila, número c da cadeira) e a posição real na estrutura de armazenamento (posição p no vetor). Na situação apresentada, considere que a referida matriz seja armazenada no vetor segundo sua sequência de linhas, da primeira para a última, e, em cada linha, da primeira coluna para a última, e que a primeira posição no vetor tenha índice 0. Nessa situação, a posição p da poltrona do teatro localizada à fila de número f e à coluna de número c, é igual a:
	 a)
	M × (c - 1) + (f - 1).
	 b)
	M × (f - 1) + (c - 1).
	 c)
	c + f × M.
	 d)
	M × (c - 1) + M × f.
	6.
	Nas linguagens de programação, existem diversos tipos de dados para a declaração de variáveis, dentre os quais se destacam os caracteres e as strings. Pode-se considerar que a existência das strings abstrai a complexidade de controle de sequências de caracteres que ficaria a cargo do programador, o que torna vantajosa a utilização de variáveis deste tipo.Sobre as características dos tipos caractere e string na linguagem de programação C, assinale a alternativa CORRETA:
	 a)
	Uma variável do tipo string é, na verdade, um vetor de caracteres que não pode ser manipulado diretamente pelo programador.
	 b)
	Valores literais são atribuídos para as variáveis dos tipos caracteres e strings através do uso de aspas duplas.
	 c)
	Uma variável do tipo string tem seu final sinalizado através do caractere '' na última posição do vetor.
	 d)
	O conteúdo de uma variável do tipo string é representada internamente por um símbolo numérico, geralmente no formato ASCII.
	7.
	Estrutura de dados são utilizadas para acessar os dados armazenados de forma mais rápida e organizada. É um recurso facilitador, uma vez que dispensa análises criteriosas em busca da informação a ser recuperada. Considerando as estruturas de dados estudadas, é assinale a alternativa CORRETA:
	 a)
	Vetores têm de estrutura de dados (alocação de memória) estática.
	 b)
	Somente os vetores têm alocaçãode memória dinâmica.
	 c)
	Vetores e matrizes são as únicas estruturas de armazenamento de dados possíveis.
	 d)
	Vetores têm capacidade para armazenar somente um valor em cada estrutura.
	8.
	Na linguagem de programação Java, os tipos como int, double, boolean e char são escritos com letras minúsculas, no sentido de indicar que são tipos primitivos. Já as Strings são declaradas com letra maiúscula, pois são classes que possuem diversas operações já implementadas, o que facilita a vida do desenvolvedor. Com relação às String da linguagem de programação Java, assinale a alternativa CORRETA:
	 a)
	O método indexOf retorna um caracter contido no índice, que é passado como parâmetro.
	 b)
	O método equals pode ser utilizado para verificar a equivalência entre dois objetos, sendo que, na classe String, ele verifica se o conteúdo de duas Strings é igual.
	 c)
	Os métodos trim e split apresentam a mesma funcionalidade, sendo que a única diferença entre eles é o tipo de retorno.
	 d)
	Para se inicializar uma String, o seu conteúdo deve ser indicado através de aspas simples.
	9.
	A classe String na linguagem de programação Java pode ser utilizada para representar situações em que existam caracteres, palavras, frases e até mesmo textos. A fim de facilitar operações sobre estas informações, a classe String possui diversos métodos utilitários já escritos, que podem simplesmente ser reutilizados pelo desenvolvedor. Considerando os métodos da classe String, o trecho de código mostrado na figura a seguir e enviando a palavra "quebra-cabeças" como parâmetro, classifique V para as sentenças verdadeiras e F para as falsas:
(    ) Na linha 25 será impresso quebrA-cAbeçAs.
(    ) A string de retorno do método será "QUEBRA-CABEÇAS".
(    ) Na linha 22, não há alteração na variável arg.
(    ) Na linha 27 criamos uma nova String, cujo conteúdo é: "quebra-cabeça".
Assinale a alternativa que apresenta a sequência CORRETA:
	
	 a)
	F - F - F - V.
	 b)
	V - F - V - F.
	 c)
	V - V - V - V.
	 d)
	F - V - F - F.
	10.
	As variáveis são responsáveis por armazenar os dados utilizados pela lógica. Em alguns casos, é necessário trabalhar com um conjunto de dados de variados tipos, por exemplo, para armazenar dados de alunos de uma turma, como seu nome, CPF e data de nascimento. Para agrupar mais de uma variável em um único registro, é utilizado o conceito de registros. No anexo, é apresentada a declaração de um registro. Sobre os registros, analise as sentenças a seguir:
01 type ALUNO: record
02          NOME: texto[60];
03          NOTA: real;
04   end;
I- Para ler o nome de um aluno na variável interna NOME, pode-se utilizar a sintaxe " leia ALUNO.NOME; ".
II- Para exibir a nota de um aluno, é utilizada a sintaxe " escreva ALUNO.NOTA; ".
III- Todos os alunos de uma turma podem ser armazenados em uma única variável, declarando um vetor com a sintaxe " LISTAALUNOS[100]: ALUNOS;".  
IV- A expressão "end" determina que as variáveis internas do registro terminaram de ser declaradas.
Assinale a alternativa CORRETA:
	 a)
	As sentenças III e IV estão corretas.
	 b)
	As sentenças I, II e IV estão corretas.
	 c)
	As sentenças I, II e III estão corretas.
	 d)
	As sentenças II e III estão corretas.
Prova finalizada com 9 acertos e 1 questões erradas.
Parte inferior do formulário
D
isciplina:
 
Linguagens de Programação e Estruturas de Dados (ADS12)
 
Avaliação:
 
Avaliação II 
-
 
Ind
ividual FLEX ( Cod.:650708) ( peso.:1,50)
 
Prova:
 
25019946
 
Nota da Prova:
 
9,00
 
 
 
Legenda:
 
 
Resposta Certa
 
 
Sua Resposta Errada
 
 
1.
 
A ordenação por inserção funciona de modo semelhante à forma como algumas 
pessoas ordenam cartas de b
aralho. Inicia
-
se com a mão esquerda vazia e as cartas 
empilhadas na mesa. Remove
-
se da pilha uma carta de cada vez, inserindo
-
a na 
posição correta na mão esquerda. Para se identificar a posição correta de uma carta, 
deve
-
se compará
-
la com as cartas presen
tes na mão esquerda, no sentido da direita 
para a esquerda. Em todos os momentos, as cartas na mão esquerda estão ordenadas, 
tendo sido obtidas no topo da pilha da mesa. Um programador implementou um 
algoritmo de ordenação semelhante à forma de ordenação d
e cartas descrita no texto. 
Ao realizar um teste com um vetor de nove posições (vetor [ 1 .. 9] ), verificou que o 
algoritmo não funcionava corretamente. Considerando que nesse algoritmo há erros 
de lógica que devem ser corrigidos para que o algoritmo orde
ne corretamente um 
vetor de inteiros de forma crescente, analise as afirmativas a seguir:
 
 
I
-
 
A linha 04 deve ser corrigida da seguinte forma: enquanto ( ( j >= 1 ) ou ( valor < 
vetor [ j ] ) )
 
 
II
-
 
A linha 05 deve ser corrigida da seguinte forma: vetor [
 
j + 1 ] <
-
 
vetor [ j ]
 
III
-
 
A linha 11 deve ser corrigida do seguinte modo: vetor [ j ] <
-
 
valor
 
 
Assinale a alternativa CORRETA:
 
 
 
a)
 
Somente a afirmativa II está correta.
 
 
b)
 
As afirmativas I e II estão corretas.
 
 
c)
 
As afirmativas II e III estão corretas.
 
 
d)
 
As afirmativas I e III estão corretas.
 
 
2.
 
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 c
onjunto.
 
 
public class CountOccurrence {
 
 
 
public boolean hasValue(int searchValue, int[] array, int i) {
 
 
if (i >= array.length)
 
Disciplina: 
Linguagens de Programação e Estruturas de Dados (ADS12) 
Avaliação: Avaliação II - Individual FLEX ( Cod.:650708) ( peso.:1,50) 
Prova: 25019946 
Nota da Prova: 9,00 
 
Legenda: Resposta Certa Sua Resposta Errada 
1. A ordenação por inserção funciona de modo semelhante à forma como algumas 
pessoas ordenam cartas de baralho. Inicia-se com a mão esquerda vazia e as cartas 
empilhadas na mesa. Remove-se da pilha uma carta de cada vez, inserindo-a na 
posição correta na mão esquerda. Para se identificar a posição correta de uma carta, 
deve-se compará-la com as cartas presentes na mão esquerda, no sentido da direita 
para a esquerda. Em todos os momentos, as cartas na mão esquerda estão ordenadas, 
tendo sido obtidas no topo da pilha da mesa. Um programador implementou um 
algoritmo de ordenação semelhante à forma de ordenação de cartas descrita no texto. 
Ao realizar um teste com um vetor de nove posições (vetor [ 1 .. 9] ), verificou que o 
algoritmo não funcionava corretamente. Considerando que nesse algoritmo há erros 
de lógica que devem ser corrigidos para que o algoritmo ordene corretamente um 
vetor de inteiros de forma crescente, analise as afirmativas a seguir: 
 
I- A linha 04 deve ser corrigida da seguinte forma: enquanto ( ( j >= 1 ) ou ( valor < 
vetor [ j ] ) ) 
II- A linha 05 deve ser corrigida da seguinte forma: vetor [ j + 1 ] <- vetor [ j ] 
III- A linha 11 deve ser corrigida do seguinte modo: vetor [ j ] <- valor 
 
Assinale a alternativa CORRETA: 
 
 a) 
Somente a afirmativa II está correta. 
 b) 
As afirmativas I e II estão corretas. 
 c) 
As afirmativas II e III estão corretas. 
 d) 
As afirmativas I e III estão corretas. 
 
2. 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)

Outros materiais