Buscar

Linguagens de Programação e Estruturas de Dados Avaliação Final (Discursiva) - Individual

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 3 páginas

Prévia do material em texto

22/08/23, 16:45 Avaliação Final (Discursiva) - Individual
about:blank 1/3
Prova Impressa
GABARITO | Avaliação Final (Discursiva) - Individual
(Cod.:826644)
Peso da Avaliação 4,00
Prova 67505158
Qtd. de Questões 2
Nota 8,50
A utilização de subprogramas é uma prática para desenvolvimento de software que, com o 
passar do tempo, foi adotada em larga escala pelas linguagens de programação. Linguagens 
modernas, como Java, C#, Phyton, Ruby, Scala, PHP, entre outras, utilizam a estratégia de divisão em 
subprogramas para determinar o funcionamento dos softwares escritos nas mesmas. Considerando o 
que foi exposto, disserte sobre as principais vantagens da utilização de funções/métodos na escrita de 
software.
Resposta esperada
Os subprogramas auxiliam a dividir o problema a ser resolvido em partes menores, reduzindo
proporcionalmente a sua complexidade. Através de sua utilização, é possível determinar
funcionalidades específicas para cada subprograma, o que auxilia a correção de bugs no código
fonte. Da mesma forma, se cada subprograma possui uma função específica, o trabalho de
manutenção do código também se torna mais fácil, visto que, caso uma nova funcionalidade seja
desejada, em geral bastaria adicionar um novo método ou função.
Minha resposta
A utilização de funções/métodos na escrita de software oferece diversas vantagens significativas.
Abaixo estão algumas das principais vantagens: 1 Modularidade: Funções/métodos permitem
dividir um programa complexo em partes menores e independentes, chamadas de módulos Cada
função/método é responsável por realizar uma tarefa específica. 2 Reutilização de código:
Funções/métodos podem ser reutilizados em diferentes partes do programa ou em programas
diferentes. Uma vez que uma função/método é definido, ele pode ser chamado várias vezes em
diferentes partes do código 3 Legibilidade e clareza: Funções/métodos permitem nomear partes
específicas de um programa, tornando o código mais legível e compreensível. Em vez de
escrever um bloco de código longo e complexo, as funções/métodos fornecem uma abstração
que encapsula uma funcionalidade específica. 4 Manutenção simplificada: Com a divisão do
programa em funções/métodos, a manutenção do código se torna mais fácil. Quando uma
alteração precisa ser feita, geralmente é necessário modificar apenas a função/método relevante,
em vez de todo o programa 5 Encapsulamento e abstração: Funções/métodos permitem
encapsular a lógica do programa e fornecer uma interface para interagir com ela. Isso ajuda a
ocultar os detalhes de implementação e a fornecer uma camada de abstração, permitindo que
outros desenvolvedores usem a função/método sem precisar conhecer os detalhes internos. 6
Testabilidade: Funções/métodos isolados são mais fáceis de testar em comparação com um
programa inteiro. Ao dividir o código em funções/métodos independentes, é possível criar testes
unitários específicos para cada função/método, verificando se eles produzem os resultados
esperados. Isso facilita a detecção e correção de erros, melhorando a qualidade do software.
 VOLTAR
A+
Alterar modo de visualização
1
22/08/23, 16:45 Avaliação Final (Discursiva) - Individual
about:blank 2/3
Retorno da correção
Parabéns, acadêmico(a)! Sua resposta se aproximou dos objetivos da questão, mas poderia
apenas ter apresentado mais argumentos acerca dos conteúdos disponibilizados nos materiais
didáticos e estudos. Confira no quadro "Resposta esperada" a sugestão de resposta para esta
questão.
O collections framework do Java possui alguns tipos que podem ser comparados com arrays, 
porém estes possuem mais recursos, eficiência e vantagens em relação ao array ou vetor normal. 
Além disso, o collections framework permite ordenar os objetos através de algum critério desejado, 
bastando implementá-lo. Um exemplo deste tipo de ordenação seria por nome, utilizando-se o 
atributo nome de uma classe Pessoa. Para desenvolver a comparação, deve ser feita a implementação 
da interface Comparable na classe desejada, além do método "compareTo". Neste contexto, 
desenvolva uma classe qualquer, na linguagem de programação Java, que realize a ordenação de uma 
lista de objetos através da interface Comparable. Apresente as duas classes criadas, uma com a 
implementação da interface Comparable, e a outra com um exemplo de execução da ordenação de 
uma lista do objeto do tipo da classe com implementação Comparable.
Resposta esperada
O acadêmico deve desenvolver uma classe com a interface Comparable, como a classe Carro
implements Comparable a seguir exemplificada, na qual deve ter obrigatoriamente o método
"compareTo". Além disso, deve ser desenvolvida uma segunda classe, conforme exemplo
"ExemploComparable", para instanciar a classe anterior (Comparable), como nas linhas 9 a 12,
adicionando-a à lista (lista.add), linhas 16 a 20, e então invocar o método sort
("Collections.sort(lista)").
Minha resposta
exemplo de implementação da interface Comparable em uma classe chamada "Person" e outro
exemplo de execução da ordenação de uma lista de objetos do tipo "Person": import
java.util.ArrayList; import java.util.Collections; import java.util.List; class Person implements
Comparable { private String name; private int age; public Person(String name, int age) {
this.name = name; this.age = age; } public String getName() { return name; } public int getAge()
{ return age; } @Override public int compareTo(Person other) { // Comparação com base no
nome da pessoa return this.name.compareTo(other.getName()); } } public class Main { public
static void main(String[] args) { List personList = new ArrayList<>(); personList.add(new
Person("John", 30)); personList.add(new Person("Alice", 25)); personList.add(new
Person("Bob", 35)); // Ordenação da lista de pessoas Collections.sort(personList); // Impressão
da lista ordenada for (Person person : personList) { System.out.println("Name: " +
person.getName() + ", Age: " + person.getAge()); } } } A classe "Person" implementa a interface
Comparable e sobrescreve o método compareTo para comparar duas instâncias da classe com
base no atributo "name". Em seguida, na classe "Main", é criada uma lista de objetos do tipo
"Person" e adicionados alguns elementos. A lista é ordenada usando o método
Collections.sort(personList), que utiliza a implementação da interface Comparable para realizar a
ordenação. Por fim, é feita a impressão da lista ordenada. Ao executar esse código, a lista de
pessoas será ordenada em ordem alfabética com base no nome, resultando na seguinte saída:
Name: Alice, Age: 25 Name: Bob, Age: 35 Name: John, Age: 30 Dessa forma, é possível utilizar
a interface Comparable para definir critérios de ordenação personalizados em classes Java e
2
22/08/23, 16:45 Avaliação Final (Discursiva) - Individual
about:blank 3/3
aproveitar os recursos e vantagens do collections framework para manipular e ordenar objetos de
forma eficiente.
Retorno da correção
Olá, acadêmico(a)! Sua resposta abordou alguns dos elementos da questão com base nos
materiais disponibilizados, porém, poderia ter explorado mais os conteúdos fundamentais da
disciplina. Confira no quadro "Resposta esperada" a sugestão de resposta para esta questão.
Imprimir

Continue navegando