Prévia do material em texto
GRA0246 ESTRUTURA DE DADOS Atividade A1 // ENUNCIADO // Implemente um programa para cadastro de alunos de uma disciplina utilizando a linguagem Java, seguindo os seguintes critérios: // PARTE 1 // 1.1. Criar uma estrutura heterogênea (array) do tipo string para cadastrar o nome de 25 alunos; // 1.2. Garantir que a estrutura seja totalmente preenchida // importar bibliotecas necessárias import java.util.Arrays; import java.util.Scanner; public class AtividadeA1 { // declarar o array "alunos", que receberá os nomes dos alunos cadastrados public static void main(String[] args) { // na criação do array "alunos", deve ser passada a quantidade de elementos que o array receberá String[] alunos = new String[25]; // para garantir que a estrutura seja totalmente preenchida, será utilizada a iteração for for(int i = 0; i< alunos.length; i++) { Scanner nome = new Scanner(System.in); System.out.println("Digite o nome do(a) aluno(a) " + (i + 1) + ":"); alunos[i] = nome.nextLine();} // impressão dos resultados System.out.println(""); System.out.println("Lista de alunos:"); System.out.println(Arrays.toString(alunos)); System.out.println(""); // Ao executar o programa, serão solicitados os nomes dos 25 alunos a serem cadastrados // Ao final do programa, é exibido o array com os nomes dos 25 alunos cadastrados // [alunos[1], alunos[2], alunos[3], ..., alunos[25]] // // PARTE 2 // Após implementar o programa e preencher o array com o nome dos alunos, cadastre mais 5 novos alunos. // declarar array que recebe lista dos novos alunos: String[] novos_alunos = new String[5]; // realizar a iteração para receber os nomes dos novos alunos System.out.println("Cadastro de 5 novos alunos"); for(int i = 0; i< novos_alunos.length; i++) { Scanner nome_novo_aluno = new Scanner(System.in); System.out.println("Digite o nome do(a) novo(a) aluno(a) " + (i + 26) + ":"); novos_alunos[i] = nome_novo_aluno.nextLine();} // declarar array para receber a lista consolidada, e concatenar as duas listas por meio do método arraycopy String[] nova_lista = new String[30]; System.arraycopy(alunos, 0, nova_lista, 0, 25); System.arraycopy(novos_alunos, 0, nova_lista, 25, 5); // impressão dos resultados System.out.println(""); System.out.println("Nova lista de alunos:"); System.out.println(Arrays.toString(nova_lista)); } } // Qual a dificuldade de inserir os novos alunos nessa estrutura de dados? Justifique a sua resposta direcionando aos conceitos de gerenciamento de memória. // A dificuldade de inserir os novos 5 alunos ocorre porque, em Java, a estrutura array é uma estrutura estática. Uma estrutura de dados estática possui tamanho fixo, que deve ser declarado no código. // Diferente do que ocorre com as estruturas dinâmicas, que possuem tamanho variável, quando uma variável estática é criada, seu tamanho não pode ser alterado até que o programa seja finalizado (VIEIRA, 2022). // Dessa forma, no nosso caso, uma vez que o array original foi declarado com 25 alunos, não pode ser mais alterado para a inclusão dos novos 5 alunos. // Como forma de contornar esse problema, a opção adotada foi criar um novo array para receber a lista dos 5 novos alunos e, em seguida, criar um terceiro array correspondente à lista completa. // A concatenação das duas listas foi realizada por meio do método "arraycopy", que copiou os dados dos dois arrays no terceiro array resultante. // // Referências bibliográficas: // VIEIRA, A P S B. ESTRUTURA DE DADOS: UNIDADE 1 – ESTRUTURA BÁSICA DE DADOS. Apostila da disciplina Estrutura de Dados GRA 0246. Universidade Anhembi Morumbi, 2022. Visualização do terminal: Digite o nome do(a) aluno(a) 1: Jonas Digite o nome do(a) aluno(a) 2: Hannah Digite o nome do(a) aluno(a) 3: Ines Digite o nome do(a) aluno(a) 4: Daniel Digite o nome do(a) aluno(a) 5: Martha Digite o nome do(a) aluno(a) 6: Magnus Digite o nome do(a) aluno(a) 7: Mikkel Digite o nome do(a) aluno(a) 8: Ulrich Digite o nome do(a) aluno(a) 9: Katharina Digite o nome do(a) aluno(a) 10: Tronte Digite o nome do(a) aluno(a) 11: Jana Digite o nome do(a) aluno(a) 12: Helene Digite o nome do(a) aluno(a) 13: Agnes Digite o nome do(a) aluno(a) 14: Franziska Digite o nome do(a) aluno(a) 15: Elisabeth Digite o nome do(a) aluno(a) 16: Peter Digite o nome do(a) aluno(a) 17: Charlotte Digite o nome do(a) aluno(a) 18: Helge Digite o nome do(a) aluno(a) 19: Bernd Digite o nome do(a) aluno(a) 20: Greta Digite o nome do(a) aluno(a) 21: Bartosz Digite o nome do(a) aluno(a) 22: Regina Digite o nome do(a) aluno(a) 23: Aleksander Digite o nome do(a) aluno(a) 24: Claudia Digite o nome do(a) aluno(a) 25: Egon Lista de alunos: [Jonas, Hannah, Ines, Daniel, Martha, Magnus, Mikkel, Ulrich, Katharina, Tronte, Jana, Helene, Agnes, Franziska, Elisabeth, Peter, Charlotte, Helge, Bernd, Greta, Bartosz, Regina, Aleksander, Claudia, Egon] Cadastro de 5 novos alunos Digite o nome do(a) novo(a) aluno(a) 26: Doris Digite o nome do(a) novo(a) aluno(a) 27: Noah Digite o nome do(a) novo(a) aluno(a) 28: Silja Digite o nome do(a) novo(a) aluno(a) 29: Jennipher Digite o nome do(a) novo(a) aluno(a) 30: Nils Nova lista de alunos: [Jonas, Hannah, Ines, Daniel, Martha, Magnus, Mikkel, Ulrich, Katharina, Tronte, Jana, Helene, Agnes, Franziska, Elisabeth, Peter, Charlotte, Helge, Bernd, Greta, Bartosz, Regina, Aleksander, Claudia, Egon, Doris, Noah, Silja, Jennipher, Nils]