Baixe o app para aproveitar ainda mais
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
Compartilhar