Baixe o app para aproveitar ainda mais
Prévia do material em texto
Senac EAD Produção Textual Individual 1 Senac São Paulo – Todos os Direitos Reservados DISCIPLINA ALGORITMOS E PROGRAMAÇÃO II PROFESSOR(ES) AUTOR(ES) ALEXANDRE DOS SANTOS MIGNON Produção Textual Individual Tema Trabalhando com Vetores Texto base (texto, gráficos, tabelas, imagens) Um vetor é uma estrutura de dados que armazena uma sequência de elementos, todos do mesmo tipo, em posições consecutivas da memória RAM do computador. Essa estrutura permite acesso aleatório at ravés de um índice numérico, isto é, qualquer elemento do vetor pode ser alcançado diretamente, sem passar pelos elementos anteriores. Enunciado Escreva um programa em Java que leia uma sequência N de números inteiros (negativos, positivos e o zero) para um vetor. No início do programa é solicitado ao usuário (pelo teclado) qual é a quantidade de elementos que serão lidos para o vetor e depois disso os números são lidos para o vetor. Em seguida você deve implementar para cada um dos itens abaixo uma função: a) Calcule e retorna o valor da maior diferença entre dois elementos distintos no vetor. b) Verifica se o vetor está em ordem crescente, e retorna true caso esteja e false caso contrário. Orientações Gerais Observações do professor: As funções devem ser chamadas na função main após a leitura do vetor na ordem que aparecem acima, e para cada chamada você deve imprimir o resultado da função na tela. Orientação de Entrega: Esta atividade deverá ser entregue no item Produção Textual Individual do menu principal. Prazo de Entrega: Consultar o calendário de atividades Tamanho máximo do texto: 30 linhas ou 1 página. Uso de fontes de terceiros (citações) deve ser referenciada conforme Guia de Normalização do Senac: http://www3.sp.senac.br/hotsites/campus_santoamaro/cd/arquivos/biblioteca/guia_norma tizacao.pdf http://www3.sp.senac.br/hotsites/campus_santoamaro/cd/arquivos/biblioteca/guia_normatizacao.pdf http://www3.sp.senac.br/hotsites/campus_santoamaro/cd/arquivos/biblioteca/guia_normatizacao.pdf /* * Autor: Jhonnatan Maciel Guedes * Curso: Tecnologia em Análise e Desenvolvimento de Sistemas * Período: 2º Semestre * Turno: EAD * Instituição: Centro Universitário Senac - São Paulo */ // Esta classe precisa ser importada para ser usada na minha classe. // É esta classe que permite que se leia dados que o usuário digita no teclado. import java.util.Scanner; // Toda classe em Java precisa ter o nome começando com letra maiúscula. // E todas as outras palavras também devem começar com letra maiúscula. // Além disso, o nome da classe tem que ser exatamente igual ao nome do arquivo // de código-fonte com a extensão .java. public class TrabalhandoComVetores { public static void main(String[] args) { // Cria uma variável do tipo inteiro para guardar os números inteiros que o usuário digitar. int numeroElementos = 0; // Cria um objeto chamado teclado da classe Scanner. // Isso é necessário em Java para lermos o que o usuário digita no teclado. Scanner teclado = new Scanner(System.in); // Pede ao usuário para informar quantos elementos vai ter o vetor. System.out.print("Quantos elementos serão lidos para o vetor? "); numeroElementos = teclado.nextInt(); // Só para pular uma linha. System.out.println(""); // Cria um vetor com o tamanho que o usuário digitou. int vetor[] = new int[numeroElementos]; // Percorre o vetor preenchendo cada elemento dele com o número digitado pelo usuário. for (int i = 1; i <= numeroElementos; i++) { // Pede para o usuário digitar um número inteiro de acordo com a ordem desse número. System.out.print("Digite o " + i + "º número inteiro: "); // Guarda o número inteiro da posição i-1 do vetor. // Lembre-se que os índices dos vetores em Java começam na posição zero. vetor[i-1] = teclado.nextInt(); } // Só para pular uma linha. System.out.println(""); // Questão A da PTI. System.out.println("A maior diferença entre dois elementos do vetor é: " + maiorDiferencaEntreDoisElementos(vetor) ); // Só para pular uma linha. System.out.println(""); // Questã B da PTI. // Exibe na tela o resultado do método vetorEstaEmOrdemCrescente(). if (vetorEstaEmOrdemCrescente(vetor) == true) { System.out.println("O vetor digitado está em ordem CRESCENTE. "); } else { System.out.println("O vetor digitado NÃO está em ordem crescente."); } // Liberando o objeto para o Garbage Collector (coletor de lixo). teclado.close(); } // O método é private porque ele só pode ser acessado por esta classe. Isso se chama encapsulamento. // O método é estático (static) para que eu possa chamá-lo sem ter que criar um objeto dessa // classe antes. // O método precisa ter um retorno do tipo int. // E recebe como entrada um vetor de inteiros (int vetor[]). private static int maiorDiferencaEntreDoisElementos(int[] vetor) { // Este aqui é o método que responde à questão A da PTI. // Mas ele não exibe mensagens para o usuário pelo console. // Isso será feito pelo método main(). // Variável para guardar o maior número. O 1º número do vetor é // automaticamente o maior e o menor número ao mesmo tempo. int maiorNumero = vetor[0]; // Variável para guardar o menor número. O 1º número do vetor é // automaticamente o maior e o menor número ao mesmo tempo. int menorNumero = vetor[0]; // Variável para guardar o valor da maior diferença entre 2 lementos do vetor. int maiorDiferenca = 0; // Um loop for para percorrer pelo vetor. for (int i = 1; i < vetor.length; i++) { // Se o número lido do vetor for maior que o maior número, // então ele passa a ser o novo maior número. if (vetor[i] > maiorNumero) { maiorNumero = vetor[i]; // Se o número lido for menor que o menor número, // então ele passa a ser o novo menor número. } else if (vetor[i] < menorNumero) { menorNumero = vetor[i]; } } // A maior diferença entre dois elementos do vetor será a diferença // entre o maior número e o menor número armazenados no vetor. maiorDiferenca = maiorNumero - menorNumero; // Comando para retornar o valor inteiro com a maior diferença. // Isso é pedido na letra A do enunciado da PTI. return maiorDiferenca; } // O método é private porque ele só pode ser acessado por esta classe.Isso se chama encapsulamento. // O método é estático (static) para que eu possa chamá-lo sem ter que criar um objeto dessa // classe antes. // O método precisa ter um retorno do tipo boolean. // E recebe como entrada um vetor de inteiros (int[] vetor). private static boolean vetorEstaEmOrdemCrescente(int[] vetor) { // Este aqui é o método que responde à questão B da PTI. // Mas ele não exibe mensagens para o usuário pelo console. // Isso será feito pelo método main(). // Cria uma variável do tipo booleano. boolean vetorCrescente = false; // Cria um loop for com 2 variáveis de controle, i e j. for (int i = 0, j = 1; i < vetor.length && j < vetor.length; i++, j++) { // Se um número [i] é menor do que o seu sucessor [j], este par está // em ordem crescente e a variável vetorCescente recebe o valor TRUE (verdadeiro) // Se depois de comparar todos os elementos o elemento seguinte sempre for // maior que o elemento anterior, então o vetor é crescente (TRUE). if (vetor[i] <= vetor[j]) { vetorCrescente = true; } else { // Se um elemento [i] é maior que o seu sucessor [j], automaticamente, // o vetor não está em orde crescente e eu não preciso nem comparar mais nada. vetorCrescente = false; // Se eu já descobri que o vetor não está em ordem crescente eu não preciso // mais comparar ninguém, portanto, eu interrompo a execução do loop com // a instrução break. // Se eu não colocar o break aqui ele vai continuar fazendo avaliações // e o resultado pode dar errado. break; } } if (vetorCrescente == true) { // Se o vetor estiver em ordem crescente eu vou retornar true. return true; } else { // Se o vetor não estiver em ordem crescente eu vou retornar o valor false. return false; } } } 1 - Enunciado.pdf 2 - Critérios de Avaliação.pdf Screenshot 2022-03-06 at 04-43-48 Detalhe do critério de avaliação – SP_GRAD_686274_2201_ .png 3 - TrabalhandoComVetores.pdf
Compartilhar