Buscar

1 - PTI de Algoitmos e Programação II (Nota 10 de 10) (Com Muitos Comentários Para Você Estudar)

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

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

Continue navegando