Buscar

ATIVIDADE 3 - SI - PROGRAMAÇÃO AVANÇADA

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 8 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 8 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

Prévia do material em texto

12/10/2021 10:03 Unicesumar - Ensino a Distância
1/8
ATIVIDADE 3 - SI - PROGRAMAÇÃO AVANÇADA - 54/2020
Período:12/10/2020 08:00 a 30/10/2020 23:59 (Horário de Brasília)
Status:ENCERRADO
Nota máxima:0,50
Gabarito:Gabarito será liberado no dia 31/10/2020 00:00 (Horário de Brasília)
Nota obtida:0,35
1ª QUESTÃO
O tipo "boolean" é muito utilizado em Java. As expressões dentro de ifs e whiles sempre resultam em um
valor do tipo "boolean". Também é possível armazenar um tipo "boolean" em uma variável para ser utilizado
posteriormente. Os operadores mais comuns para utilizar com um "boolean" são: "and" (símbolo &&), "or"
(símbolo ||) e negação (símbolo !).
Observe o código abaixo.
 1 public class AcessoRestrito {
 2 
 3 public static void acessar (boolean a, boolean b, boolean c, boolean d) {
 4 boolean temAcesso = !(a || d) && c && ((a && (!b || d)) || c);
 5 if (temAcesso) {
 6 System.out.println("Sim");
 7 } else {
 8 System.out.println("Não");
 9 
 10 }
 11 }
 12 
 13 public static void main(String[] parametros) {
 14 acessar(true, true, true, true);
 15 acessar(true, false, true, false);
 16 acessar(false, true, true, false);
 17 acessar(false, true, false, true);
 18 acessar(false, false, false, false);
 19 }
 20 }
Considerando o texto e o código acima, assinale a alternativa correta.
ALTERNATIVAS
O programa imprime: Sim, Não, Não, Não, Sim.
O programa imprime: Não, Sim, Sim, Não, Não.
O programa imprime: Não, Não, Sim, Não, Não.
O programa imprime: Sim, Sim, Sim, Não, Não.
O programa imprime: Não, Não, Sim, Sim, Sim.
2ª QUESTÃO
12/10/2021 10:03 Unicesumar - Ensino a Distância
2/8
Variáveis estáticas não pertencem a um objeto, mas sim a uma classe. Uma variável estática é compartilhada
entre todas as instâncias da classe. Assim, todas as instâncias vão acessar à mesma variável. Um exemplo de
utilização de variável estática é para contar o número de vezes que uma classe é instanciada.
Observe o código a seguir.
 1 public class ObjetoCriador {
 2 private static int contador = 0;
 3 
 4 public ObjetoCriador(int n) {
 5 contador++;
 6 for (int i = 0; i <n; i++) {
 7 new ObjetoCriador(n-1);
 8 }
 9 }
 10 public static void main(String[] args) {
 11 new ObjetoCriador(3);
 12 System.out.println(contador);
 13 }
 14 }
De acordo com o código acima, analise as afirmativas a seguir:
I.    Será impresso na tela o número 3.
II.   O programa entrará em um loop infinito, pois sempre que um ObjetoCriador é criado, novos objetos são
criados. Assim, o programa dá um erro.
III.  O método “main” pode acessar à variável “contador”, mesmo ela sendo privada.
IV. Já que os objetos criados não são atribuídos a uma variável, não terá como acessá-los depois.
É correto o que se afirma em:
ALTERNATIVAS
I e II, apenas.
II e III, apenas.
III e IV, apenas.
I, II e III, apenas.
II, III e IV, apenas.
3ª QUESTÃO
"Todo programa em java começa de um método main, que chama outros métodos e cria objetos de outras
classes. Enquanto as outras classes trazem os códigos necessários para resolver nosso problema, o main irá
efetivamente resolver o problema com o auxílio das classes previamente criadas."
 
JUNIOR, Edson A. O.; PEREIRA, Rogério de L. Programação Avançada. Maringá-Pr: Unicesumar, 2016. 
Considerando o texto acima, assinale a alternativa correta.
ALTERNATIVAS
12/10/2021 10:03 Unicesumar - Ensino a Distância
3/8
Todo projeto deve ter uma classe principal, que terá, obrigatoriamente, um método main.
O atributo static indica que o método main não será alterado durante a execução do programa.
O método main pode ter variáveis locais, mas não pode ter a criação de objetos que sejam instâncias da classe
principal.
A palavra "void" na assinatura do método main indica que podemos executar a classe sem passar parâmetros de
entrada.
O método main possui o parâmetro "String
args", que contém o texto que será exibido na tela quando chamados um println.
4ª QUESTÃO
Um scriptlet é um pedaço de código Java embutido em um código JSP semelhante a um código HTML. Um
scriptlet pode conter qualquer número de instruções de linguagem Java, declarações de variáveis ou
método, ou expressões que são válidas na linguagem de script da página.
 
JUNIOR, E. A. O.; PEREIRA, R. L. Programação Avançada. Maringá: Unicesumar, 2016. 
 
Considerando o exposto acima, analise o código a seguir.
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%!
 int a = 4;
 int b = 5;
 int c = 6;
%>
<html>
 <head>
 <title>Exercício</title>
 </head>
 <body>
 <% if (c > 4 && b < 3) {%>
 <h1>A</h1>
 <% } else if (c > 4) {%>
 <% if (a % 2 == 4) {%>
 <h1>B</h1>
 <% } else {%>
 <h1>C</h1>
 <% } %>
 <% } else { %>
 <% if (b == 5) {%>
 <h1>D</h1>
 <% } else { %>
 <h1>E</h1>
 <% } %>
 <% } %>
 </body>
</html>
Com isso, assinale a alternativa que contém a saída que será exibida no navegador.
ALTERNATIVAS
12/10/2021 10:03 Unicesumar - Ensino a Distância
4/8
A
B
C
D
E
5ª QUESTÃO
A criação de páginas web, muitas vezes, demanda programação para que a página web fique dinâmica e
possa responder ao usuário o conteúdo que foi processado e gerado pelo computador. Em Java, podemos
criar páginas web dinâmicas de forma um pouco similar a linguagem PHP, utilizando tags de marcação
especiais para embutir o código Java em HTML. Esses códigos embutidos são chamados de scriptlets.
Considerando o exposto acima, assinale a alternativa com o nome da tecnologia que possui os scriptlets.
ALTERNATIVAS
JSF.
JSP.
Servlets.
TomCat.
Glassfish.
6ª QUESTÃO
Um programa escrito em Java para web pode usar o arquivo especial web.xml para realizar suas
configurações. Observe o arquivo web.xml abaixo.
 
<?xml version=”1.0” encoding=”UTF-8”?>
<web-app version=”3.0” xmlns=”https://java.sun.com/xml/ns/javaee”
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=”http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd”>
 <servlet>
 <servlet-name>OlaMundo</servlet-name>
 <servlet-class>br.uem.servlet.ServletOlaMundo</servlet-class>
 </servlet>
 <servlet-mapping>
 <servlet-name>OlaMundo</servlet-name>
 <url-pattern>/olaMundo</url-pattern>
 </servlet-mapping>
 <session-config>
 <session-timeout>
 30
 </session-timeout>
 </session-config>
</web-app>
Considerando o texto acima, assinale a alternativa correta.
ALTERNATIVAS
12/10/2021 10:03 Unicesumar - Ensino a Distância
5/8
A classe OlaMundo responde no endereço padrão do site, ou seja, "/".
O programa que utiliza o web.xml acima será acessado no endereço /olaMundo
Segundo esse arquivo, a classe OlaMundo será chamada a partir do endereço relativo /olaMundo
Segundo esse arquivo, a classe ServletOlaMundo será chamada a partir do endereço relativo /olaMundo
O arquivo web.xml acima está incompleto, pois não mostra por qual endereço se dará a resposta do programa.
7ª QUESTÃO
Os construtores são métodos especiais, que são chamados no momento em que o objeto é criado. Assim,
como os métodos, os construtores também podem receber parâmetros. Normalmente, esses parâmetros
servem para inicializar os atributos do objeto. É possível ter vários construtores em uma classe e um
construtor pode chamar outro construtor.
 
 JUNIOR, E. A. O.; PEREIRA, R. L. Programação Avançada. Maringá: Unicesumar, 2016. (adaptado).
Nesse sentido, observe o código a seguir:
 1 public class InstrumentoMusical {
 2 private String nome;
 3 private String som;
 4 
 5 public InstrumentoMusical(String nome) {
 6 this.nome = nome;
 7 som = "Não possui ou está quebrado.";
 8 }
 9 
 10 public InstrumentoMusical(String nome, String som) {
 11this.nome = nome;
 12 this.som = som;
 13 }
 14 
 15 public InstrumentoMusical(InstrumentoMusical outroInstrumento) {
 16 nome = outroInstrumento.nome;
 17 som = outroInstrumento.som;
 18 }
 19 
 20 public InstrumentoMusical() {
 21 }
 22 } 
Considerando o código acima, analise as afirmativas a seguir.
I.   Uma classe pode ter vários construtores desde que eles não possuam a mesma quantidade de
parâmetros.
II. O terceiro construtor é inválido, pois ele está acessando diretamente os atributos privados de um objeto e
eles só podem ser acessados pelo próprio objeto.
III.  A classe InstrumentoMusical é válida, mesmo sem ter o método main.
IV.  O último construtor é válido mesmo tendo o corpo vazio.
É correto o que se afirma em:
ALTERNATIVAS
12/10/2021 10:03 Unicesumar - Ensino a Distância
6/8
I e II, apenas.
II e III, apenas.
III e IV, apenas.
I, II e III, apenas.
II, III e IV, apenas.
8ª QUESTÃO
Dentro dos métodos de uma classe, o desenvolvedor deve colocar as operações que o método deve realizar.
Além das operações, o desenvolvedor também precisa se preocupar, para não deixar o objeto ficar em um
estado inválido. Um estado inválido não é um erro de compilação ou execução. Um estado inválido de um
objeto pode ser quando algum valor de um atributo guarda um valor que não é adequado à lógica do seu
programa.
Observe o código abaixo.
 1 public class CaixaEletronico {
 2 double dinheiro;
 3 
 4 public void depositar(double dinheiro) {
 5 this.dinheiro += dinheiro;
 6 System.out.println("Depósito realizado com sucesso");
 7 }
 8 public void sacar(double dinheiro) {
 9 if (dinheiro > this.dinheiro) {
 10 System.out.println("O caixa não possui essa quantia");
 11 } else {
 12 this.dinheiro -= dinheiro;
 13 System.out.println("Saque realizado com sucesso");
 14 
 15 }
 16 }
 17 
 18 public static void main(String[] args) {
 19 CaixaEletronico caixa = new CaixaEletronico();
 20 caixa.depositar((double) 150);
 21 caixa.depositar ((double) 250);
 22 caixa.sacar((double) 300);
 23 caixa.sacar((double) 300);
 24 }
 25 }
Considerando o texto e o código acima, avalie as afirmações abaixo.
I – Não há necessidade de converter explicitamente os valores inteiros para "double" do jeito que está no
método "main", pois o tipo "double" é maior que o tipo inteiro e ambos são números.
II – O método "depositar" poderia ter uma verificação para a quantidade de dinheiro no caixa não ser maior
que um milhão, supondo que não caberia mais dinheiro na máquina.
III – A verificação no método "sacar" é necessária, pois ela não deixa o objeto ficar em um estado inválido,
que seria uma quantidade de dinheiro negativa.
IV – O código mostrado força o caixa a sempre ter dinheiro, não deixando que tudo seja sacado. Se alguém
tentar sacar todo o dinheiro, a mensagem "O caixa não possui essa quantia" é exibida.
É correto o que se afirma em:
12/10/2021 10:03 Unicesumar - Ensino a Distância
7/8
ALTERNATIVAS
I e II, apenas.
II e III, apenas.
III e IV, apenas.
I, II e III, apenas.
II, III e IV, apenas.
9ª QUESTÃO
A ideia de um Servlet é que ele seja tratado como um pequeno servidor, por isso o nome “servlet”, que
significa servidorzinho em inglês, capaz de atender a requisições por meio de um protocolo HTTP, por
exemplo, GET e POST, e processar estas requisições e, em seguida, devolver uma resposta por meio de um
conteúdo dinâmico que será apresentado ao cliente. Para ficar mais claro, entenda que um Servlet seria
responsável por uma página HTML coletando informações da requisição do cliente e respondendo com
outras informações como outra página em HTML.
 
JUNIOR, E. A. O.; PEREIRA, R. L. Programação Avançada. Maringá: Unicesumar, 2016. 
 
Considerando o exposto acima, analise as afirmativas a seguir.
I.   Os servlets rodam no lado do servidor e respondem ao navegador, sendo acessados a partir do caminho
raiz (/) da URL.
II.  Os servlets são mapeados no arquivo web.xml em que fica indicado qual classe responderá às
requisições.
III. A URL de acesso ao servlet pode ser personalizada pelo arquivo web.xml.
IV. Os servlets são pequenas entradas de código que podem ser embutidas junto com o HTML para
processarem informações.
É correto o que se afirma em:
ALTERNATIVAS
I e II, apenas.
II e III, apenas.
III e IV, apenas.
I, II e III, apenas.
I, II, III e IV.
10ª QUESTÃO
12/10/2021 10:03 Unicesumar - Ensino a Distância
8/8
Os construtores são métodos especiais, que são chamados no momento em que o objeto é criado. Assim
como os métodos, os construtores também podem receber parâmetros. Normalmente, esses parâmetros
servem para inicializar os atributos do objeto. É possível ter vários construtores em uma classe e um
construtor pode chamar outro construtor. Nesse sentido, observe o código abaixo:
 1 public class InstrumentoMusical {
 2 private String nome;
 3 private String som;
 4 
 5 public InstrumentoMusical(String nome) {
 6 this.nome = nome;
 7 som = "Não possui ou está quebrado.";
 8 }
 9 
 10 public InstrumentoMusical(String nome, String som) {
 11 this.nome = nome;
 12 this.som = som;
 13 }
 14 
 15 public InstrumentoMusical(InstrumentoMusical outroInstrumento) {
 16 nome = outroInstrumento.nome;
 17 som = outroInstrumento.som;
 18 }
 19 
 20 public InstrumentoMusical() {
 21 }
 22 } 
Considerando o código acima, avalie as afirmações abaixo.
I – Uma classe pode ter vários construtores, desde que eles não possuam a mesma quantidade de
parâmetros.
II – O terceiro construtor é inválido, pois ele está acessando diretamente os atributos privados de um objeto.
Os atributos privados só podem ser acessados pelo próprio objeto.
III – A classe InstrumentoMusical é válida, mesmo sem o método main.
IV – O último construtor é válido mesmo tendo o corpo vazio.
É correto o que se afirma em:
ALTERNATIVAS
I e II, apenas.
II e III, apenas.
III e IV, apenas.
I, II e III, apenas.
II, III e IV, apenas.

Continue navegando