ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA – 2008

Propaganda
ANÁLISE E DESENVOLVIMENTO DE SISTEMAS
TURMA – 2008 – 2º PERÍODO - 4º MÓDULO
AVALIAÇÃO MP1 – DATA 06/11/2008
PROGRAMAÇÃO
Dados de identificação do Acadêmico:
Nome: _______________________________________ Login:___________
CA:__________________ Cidade:____________________________UF____
CARTÃO – RESPOSTA
QUESTÃO
RESPOSTA
QUESTÃO
RESPOSTA
A
1
2
3
4
F
1
2
3
4
B
1
2
3
4
G
1
2
3
4
C
1
2
3
4
H
1
2
3
4
D
1
2
3
4
I
1
2
3
4
E
1
2
3
4
J
1
2
3
4
Dados de identificação do Tutor:
Nome: _______________________________________ Login:___________
CA:__________________ Cidade:__________________UF______________
INSTRUÇÕES:
A prova está composta de 10 questões de A a J, e 4 alternativas enumeradas de 1 a 4.
Utilize caneta esferográfica azul ou preta para preenchimento do cartão-resposta.
O cartão-resposta deve ser preenchido, assinado, destacado e entregue ao Tutor.
Questões rasuradas serão anuladas.
Sem o devido preenchimento do CAMPO DE IDENTIFICAÇÃO, o cartão-resposta não terá validade.
Somente terão acesso às notas lançadas no boletim os acadêmicos regularmente matriculados.
Os acadêmicos têm três dias após a divulgação do gabarito oficial para requerer revisão de questões
(recursos). Devem constar os seguintes dados para análise: Tipo da avaliação, Etapa, identificação da
questão e justificativa do pedido. Mais esclarecimentos acerca dos procedimentos para pedidos de
Recursos acessem a página WWW.unitins.br/logisticaavaliacao.
_____________________________________
Assinatura do acadêmico
______________________________________
Assinatura do Tutor
__________________________________________, _____/_____/2008
Local
1
PROGRAMAÇÃO
PROF. ALEX COELHO
PROF. MARCELO RIBEIRO OLIVEIRA
PROFª. THEREZA PATRÍCIA PEREIRA PADILHA
A. Java consiste em uma linguagem de programação orientada a objetos e possui uma característica
muito importante para o desenvolvimento de sistemas que é a portabilidade. Diante disso, assinale a
alternativa que conceitua a característica de portabilidade:
1. a capacidade de independência de plataforma, no caso o sistema operacional (Windows, Linux,
Solaris) e o hardware, em que os softwares serão executados.
2. o modelo formado por propriedades ou características (atributos) e funcionalidades (métodos).
3. as propriedades relevantes de um conjunto de elementos em termos de sua estrutura, atributos e
métodos.
4. a assinatura de um método composto por qualificador de acesso, tipo de retorno, nome e lista de
parâmetros.
Comentários: A característica da portabilidade está relacionada a uma aplicação que poder ser
executada em qualquer plataforma de hardware ou sistema operacional. Por isso, a alternativa 1
é a correta visto que apresenta este conceito. A alternativa 2 é incorreta porque conceitua a
forma de uma classe que é composta de atributos e métodos. A questão 3 é incorreta também por
apresentar conceitos sobre a identificação de classes. Por fim, a alternativa 4 é incorreta porque
está relacionada à sintaxe de definição de um método, ou seja, a declaração da sua estrutura.
B. A conversão entre tipos de dados é uma operação bastante comum no desenvolvimento de
sistemas. Deste modo, em Java, para converter um dado do tipo String para o tipo inteiro, é
necessário o uso da seguinte instrução:
1.
2.
3.
4.
String.parseInteger
Int.parseInt
String.parseInt
Integer.parseInt
Comentários: As alternativas 1, 2 e 3 estão incorretas porque apresentam instruções grafadas
incorretamente, ou seja, não são métodos válidos para conversão de tipos. A alternativa 4
apresenta o método para a conversão do tipo String para inteiro.
C. Analise os trechos de código da classe Exemplo apresentada a seguir e, depois, assinale a
alternativa em que NÃO mostra um erro na criação de objetos.
1.
public class Exemplo {
public Exemplo() { ... }
public static void main()
Exemplo e;
e = new Exemplo();
}
}
{
2
2.
public class Exemplo {
public Exemplo() { ... }
public static void main()
Exemplo e = new Exemplo;
}
}
{
3.
public class Exemplo {
public Exemplo() { ... }
public static void main()
Exemplo e = Exemplo();
}
}
{
4.
public class Exemplo {
public Exemplo() { ... }
public static void main()
Exemplo e;
Exemplo = new Exemplo();
}
}
{
Comentários: A alternativa 1 encontra-se correta pois, inicialmente, foi definido o nome de um
objeto (e) e , na seqüência, foi criado o objeto por meio da palavra reservada new. A alternativa 2
é incorreta porque na instanciação do objeto e da classe Exemplo estão faltando os parênteses da
chamada do construtor. A alternativa 3 é incorreta porque falta o operador new utilizado na
instanciação de objetos. A alternativa 4 é incorreta porque o objeto e foi definido mas no
momento da instanciação (criação) o nome da classe foi apresentado no lugar do nome do
objeto.
D. A programação orientada a objetos possui um conjunto de conceitos importantes para o
comportamento dos sistemas. A sobrecarga de construtores, por exemplo, é um desses conceitos.
Assim assinale a alternativa que caracteriza tal conceito.
1. é a implementação de métodos com somente um tipo de dados de retorno, sobrecarregando
assim a forma da criação dos objetos.
2. é a implementação de métodos para liberar a memória de objetos que não estão sendo utilizados
pelo sistema.
3. é a implementação de vários construtores, sendo que cada um tem uma assinatura diferente
(lista de parâmetros).
4. é a implementação de construtores com a lista de parâmetros iguais, porém com tipos de retorno
diferentes.
Comentários: A alternativa 1 é incorreta porque a sobrecarga de construtores não se caracteriza
por apresentar vários métodos com o mesmo tipo de dados de retorno. A alternativa 2 está
incorreta porque sobrecarga de construtores não consiste na utilização de métodos para gerência
de memória liberando objetos que não serão mais necessários. A alternativa 3 está correta
3
porque sobrecarga de construtores está relacionada a um conjunto de construtores, observando a
variação da sua assinatura (lista de parâmetros). A alternativa 4 é incorreta porque a sobrecarga
de construtores não ocorre quando se tem um conjunto de construtores com assinaturas iguais.
E. Assinale V (verdadeiro) ou F (falso) para as afirmativas a seguir e, em seguida, escolha a
alternativa que apresente a seqüência CORRETA.
I – Encapsulamento é o mecanismo que é utilizado com a finalidade de esconder os detalhes
de implementação das classes Java.
II – Fechamento de arquivos, encerramento da comunicação e liberação de recursos
alocados do sistema são atividades executadas por um construtor.
III – O construtor default é sempre implementado pelos programadores nas classes.
IV – O garbage collector é o mecanismo responsável pela liberação de recursos que não
estão mais em uso pelo sistema.
1.
2.
3.
4.
F, F, V, F
V, V, V, F
F, V, F, V
V, F, F, V
Comentários: A afirmativa I está correta porque o conceito de encapsulamento visa esconder os
detalhes de implementação. Assim, chamaremos o método mas não precisamos saber como
exatamente está realmente implementado. A afirmativa II está incorreta porque as atividades
descritas devem ser executadas por um destrutor e não um construtor. A alternativa III é
incorreta porque o construtor default pode implementado pela própria linguagem Java ou pelos
programadores. A afirmativa IV está correta porque garbage collector é um mecanismo em Java
para a liberação de recursos em que a aplicação não usará mais. Assim, a alternativa 4 é a
correta uma vez que esta alternativa apresenta V, F, F e V para as afirmações apresentadas. As
demais alternativas (1, 2 e 3) são incorretas por não apresentar a seqüência correta.
F. Análise o código Java a seguir.
1 import java.util.Scanner;
2
3 public class Imprimir {
4
public static void main(String[] args) {
5
Scanner entrada = new Scanner(System.in);
6
System.out.println("Digite o mês:");
7
int[] meses = {31,28,31,30,31,30,31,31,30,31,30,31};
8
int mes = Integer.parseInt(entrada.nextLine());
9
switch(mes){
10
default: System.out.println(meses[mes-1]);
11
}
12
}
13 }
Considerando que a entrada digitada na execução do código seja o valor 2, assinale a alternativa
CORRETA:
4
1. Ocorrerá um erro de execução na linha 10 já que a estrutura SWITCH exige pelo menos uma
classificação com a utilização da palavra reservada CASE.
2. Será impresso o valor 28 presente no vetor meses, uma vez que é acessada a posição [2-1] do
vetor.
3. Ocorrerá um erro de execução devido ao fato da necessidade de utilização de uma variável String
ao invés de um inteiro na verificação da estrutura SWITCH na linha 9.
4. Serão impressos todos os valores presentes no vetor já que não existem classificações com a
palavra reservada CASE na estrutura SWITCH.
Comentários: A alternativa 1 é incorreta porque na estrutura de controle SWITCH é facultada a
utilização dos blocos CASE e do bloco default, podendo ambos coexistir no mesmo programa ou
optar pela utilização de um ou outro. Lembrando que o bloco default é executado sempre que o
valor avaliado não for encontrado em um bloco CASE. A alternativa 2 é correta porque será
impresso o valor armazenado na posição 1 (mês -1, sendo que mês terá o valor 2) do vetor meses.
A alternativa 3 é incorreta porque a estrutura de controle SWITCH pode trabalhar com dados do
tipo caracter, inteiro, byte e short, não podendo ser utilizado com o tipo String. Por fim, a
alternativa 4 também é incorreta porque, embora não existam blocos CASE, somente um valor
será impresso que é a posição[2-1] do vetor definido e não todos os valores do vetor.
G. Considerando o código-fonte apresentado a seguir, é INCORRETO afirmar que:
package fabrica;
public class Carro {
// atributos
Boolean chave = new Boolean(false);
// metodos
public void ligar() {
chave = true;
System.out.println(“Ligado”);
}
public void desligar() {
chave = false;
System.out.println(“Desligado”);
}
}
1.
2.
3.
4.
A classe Carro não possui um construtor default explicitamente definido.
A classe faz parte do pacote fabrica.
A classe é composta pelo método desligar() que retorna o valor “desligado”.
A classe é composta pelos métodos públicos ligar() e desligar() e pelo atributo chave.
Comentário: Nesta questão devemos assinalar a alternativa incorreta que é a de número 3
porque o método desligar() foi definido como void como tipo de retorno, e portanto, não retorna a
string “desligado”. A alternativa 1 é correta porque não existe um construtor default apresentado
explicitamente neste trecho de código. A alternativa 2 é correta porque a classe Carro pertence ao
pacote fabrica, conforme pode ser visto na primeira linha do código. A alternativa 4 é correta
porque esta classe apresenta os métodos ligar(), desligar() e também um atributo chamado chave.
H. O conceito de objeto na OO é o ponto central deste paradigma. Logo, considerando as
afirmações a seguir, assinale a alternativa CORRETA:
5
I – Um objeto é um único exemplar de uma determinada classe.
II - Para instanciarmos um novo objeto, devemos utilizar o operador new.
III - Um objeto, quando criado, é apenas uma referência para um espaço de memória
reservado.
1.
2.
3.
4.
V, V, V
V, F, V
F, F, F
V, F, F
Comentário: Nesta questão precisamos analisar cada uma das afirmações. A afirmação I é
verdadeira porque ao criar um objeto, este é um exemplo específico de uma classe. A afirmação
II é verdadeira porque o operador new é necessário para a criação de um novo objeto juntamente
com um certo construtor. A afirmação III é verdadeira também porque ao criar um objeto, um
espaço de memória é destinado a este objeto. Assim, observando as alternativas disponíveis, a
alternativa 1 é a correta porque apresenta a seqüência V, V, V como opção. As demais
alternativas (2, 3 e 4) estão incorretas porque não possuem esta seqüência.
I. Considerando o código-fonte Java mostrado a seguir, assinale a alternativa CORRETA.
public class Carro {
private Boolean chave = true;
public Carro(Boolean status){
setChave(status);
}
private void setChave(Boolean status){
this.chave = status;
}
private Boolean getChave(){
return this.chave;
}
public void ligar() {
setChave(true);
System.out.println(“Ligado”);
}
public void desligar() {
setChave(false);
System.out.println(“Desligado”);
}
}
1.
2.
3.
4.
Os métodos utilizados para o encapsulamento de cada atributo são ligar() e desligar().
O método getChave() é o responsável por acessar o valor do atributo chave.
O atributo chave pode ser acessado por qualquer classe do pacote.
O método setChave() sempre será igual a verdadeiro já que é utilizada a palavra reservada this
para acessar o valor.
Comentários: A alternativa 1 é incorreta porque quem tem a função de encapsulamento de
atributos são os métodos setChave() e getChave() e não ligar() e desligar(). A alternativa 2 está
correta já que o método getChave() é o responsável por obter o valor do atributo chave. A
6
alternativa 3 é incorreta porque o atributo chave está definido como private e assim somente pode
ser acessado por métodos da própria classe. Por fim, a alternativa 4 é incorreta porque this é uma
palavra reservada da linguagem que serve para referir a métodos e atributos pertencentes à
própria classe, ou seja, referencia a si mesma e não ao valor lógico verdadeiro um padrão.
J. Sobre a classe Scanner disponível em Java, é CORRETO afirmar que uma de suas
funcionalidades é:
1. possibilitar que figuras, tabelas e fotos, por exemplo, sejam digitalizadas.
2. capturar entrada de dados pelo teclado, tal como o nome de um usuário.
3. importar classes da biblioteca util.java.
4. possibilitar a criação de pacotes (packages), reunindo um conjunto de arquivos .java.
Comentários: A alternativa 1 é incorreta porque a classe Scanner assume como entrada padrão o
teclado e não um aparelho digitalizador de mídias. A alternativa 2 é correta porque capturar
dados por meio de teclado é uma das funcionalidades da classe Scanner. As alternativas 3 e 4
estão incorretas porque a classe Scanner não oferece funcionalidades de importação de
bibliotecas ou de criação de pacotes, sendo estas tarefas possíveis através das palavras reservadas
import e package, respectivamente.
Coordenação do curso de Tecnologia em Análise e Desenvolvimento de Sistemas
UNITINS - EAD
7
Download