·

Sistemas de Informação ·

Linguagens de Programação

Send your question to AI and receive an answer instantly

Ask Question

Preview text

Laboratório de Programação Array Unidimensional vetor Sistemas Introdução Considere o seguinte problema escrever um programa em Java para ler e armazenar 10 números inteiros O seu programa deverá calcular e imprimir a soma dos números no vídeo declaração de 10 variáveis import javautilScanner public class Exemplo public static void mainString args int n1 n2 n3 n4 n5 int n6 n7 n8 n9 n10 soma Scanner entrada new ScannerSystemin para entrada de dados muita repetição de SystemoutprintlnDigite o primeiro valor n1 entradanextInt SystemoutprintlnDigite o segundo valor n2 entradanextInt repete todo o processo para as outras variáveis soma n1n2n3n4n5n6n7n8n9n10 SystemoutprintlnSoma dos números soma código inviável para uma quantidade grande de variáveis Qual o total de variáveis para resolver o problema descrito Para quem pensou em 150 variáveis acertou Declarar 150 variáveis parece algo muito complicado e também nada prático Introdução Sistemas de Informação Considere a seguinte situação prática Um professor tem um total de 50 alunos O professor gostaria de armazenar para processamento as duas notas referentes às provas aplicadas e também calcular e armazenar a média de cada aluno Array Unidimensional Vetor Introdução Sistemas de Informação Qual a solução para esse problema Um array unidimensional ou vetor é definido formalmente como um conjunto de variáveis ou seja um conjunto de posições de memória contínuas que são referenciadas pelo mesmo nome Os elementos armazenados em um vetor são do mesmo tipo de dado estrutura homogêneae são referenciados pelo mesmo nome Array unidimensional vetor Definição Sintaxe completa para declaração de um vetor tamanho valor inteiro e positivo Sistemas de Informação tipo nomearray new tipotamanho ou tipo nomearray new tipotamanho int numero new int10 ou int numero new int10 double nota new double50 ou double nota new double50 String nome new String50 ou String nome new String50 Array unidimensional vetor Exemplos de declaração completa Sistemas de Informação tipo nomearray ou tipo nomearray int x ou int x Array unidimensional vetor A declaração de um vetor pode ser feita em duas etapas declaração e instanciação Sintaxe para declaração Exemplo de declaração Sistemas de Informação nomearray new tipotamanho Array unidimensional vetor Depois de declarar um vetor é necessário instanciálo A instanciação é o processo pelo qual um endereço de memória é alocado para um objeto A sintaxe para a declaração de um vetor é Exemplo de instanciação Muito cuidado com essa linha de código não usa colchetes obrigatório definir o tamanho do array Não compila falta o tamanho do array Sistemas de Informação int x new int x new int40 Um índice descreve a posição de um elemento dentro do vetor Em Java o índice do primeiro elemento é o número zero Os índices são valores inteiros e positivos sequenciais Array unidimensional vetor Sistemas de Informação A partir do momento que um vetor foi definido como podemos acessar os seus elementos Como podemos adicionar novos elementos a um vetor Um elemento individual dentro de um vetor é acessado pelo uso de um índice ou subscrito int x new int10 Array unidimensional vetor Como exemplo considere a seguinte declaração de um vetor Conceitualmente podemos imaginar o vetor da seguinte forma 10 5 2 1 0 25 55 3 100 7 0 1 2 3 4 5 6 7 8 9 valores armazenados no vetor índice dos elementos armazenados no vetor Sistemas de Informação Array unidimensional vetor Exemplo double dados new double10 dados variável de referência armazena o endereço de memória dadoslength Os arrays têm comprimento fixo e não podem ser alterados Os arrays têm elementos de um tipo específico Observação length não é um método comando length é uma propriedade de todo objeto array length determina o tamanho do array Sistemas de Informação A variável dados é uma referência a um array de números double Array unidimensional vetor int teste new int4 teste variável de referência do array int mesmo efeito 0 0 0 0 0 1 2 3 objeto array int int teste teste new int4 valores índices Sistemas de Informação Manipulando um array unidimensional Considere a seguinte declaração int vetor new int6 Dessa forma temos vetor0 vetor1 vetor2 vetor3 vetor4 vetor5 Armazenar o valor 15 na primeira posição do vetor vetor0 15 a primeira posição do vetor tem índice 0 e não 1 15 vetor0 vetor1 vetor2 vetor3 vetor4 vetor5 Sistemas de Informação Manipulando um array unidimensional Armazenar na última posição do vetor o triplo do valor da primeira posição vetor5 vetor03 a última posição tem índice 5 vetorvetorlength1 vetor03 tem o mesmo efeito da linha anterior 15 45 vetor0 vetor1 vetor2 vetor3 vetor4 vetor5 Armazenar na quarta posição do vetor a diferença entre o valor da última posição e da primeira vetor3 vetor5 vetor0 a quarta posição tem índice 3 vetor3 vetorvetorlength1 vetor0 tem o mesmo efeito da linha anterior 15 30 45 vetor0 vetor1 vetor2 vetor3 vetor4 vetor5 Sistemas de Informação Manipulando um array unidimensional Como armazenar um valor em um array nomedoarrayindice valor int vetor new int7 índice 0 1 2 3 4 5 6 vetor vetor1 18 erro o índice 1 não existe vetor7 100 erro o índice 7 não existe vetor4 99 não é a posição 4 e sim a posição de índice 4 5ª posição vetor6 110 posição de índice 6 7ª posição Sistemas de Informação 99 110 Manipulando um array unidimensional Qual o conteúdo do array após a execução do código abaixo int numbers new int8 numbers1 3 numbers4 7 numbers6 5 int x numbers1 numbersx 2 numbersnumbers4 9 Sistemas de Informação Manipulando um array unidimensional Qual o conteúdo do array após a execução do código abaixo numbers1 3 numbers4 7 numbers6 5 int x numbers1 numbersx 2 numbersnumbers4 9 0 1 2 3 4 5 6 7 0 0 0 0 0 0 0 0 Sistemas de Informação int numbers new int8 Manipulando um array unidimensional Qual o conteúdo do array após a execução do código abaixo int numbers new int8 numbers1 3 numbers4 7 numbers6 5 int x numbers1 numbersx 2 numbersnumbers4 9 0 1 2 3 4 5 6 7 0 3 0 0 0 0 0 0 Sistemas de Informação Manipulando um array unidimensional Qual o conteúdo do array após a execução do código abaixo int numbers new int8 numbers1 3 numbers4 7 numbers6 5 int x numbers1 numbersx 2 numbersnumbers4 9 0 1 2 3 4 5 6 7 0 3 0 0 7 0 0 0 Sistemas de Informação Manipulando um array unidimensional Qual o conteúdo do array após a execução do código abaixo int numbers new int8 numbers1 3 numbers4 7 numbers6 5 int x numbers1 numbersx 2 numbersnumbers4 9 0 1 2 3 4 5 6 7 0 3 0 0 7 0 5 0 Sistemas de Informação int x numbers1 Manipulando um array unidimensional Qual o conteúdo do array após a execução do código abaixo int numbers new int8 numbers1 3 numbers4 7 numbers6 5 0 1 2 3 4 5 6 7 numbersx 2 x numbersnumbers4 9 Sistemas de Informação 3 0 3 0 0 7 0 5 0 Manipulando um array unidimensional Qual o conteúdo do array após a execução do código abaixo int numbers new int8 numbers1 3 numbers4 7 numbers6 5 int x numbers1 numbersx 2 numbersnumbers4 9 0 1 2 3 4 5 6 7 0 3 0 2 7 0 5 0 x Sistemas de Informação 3 Manipulando um array unidimensional Qual o conteúdo do array após a execução do código abaixo int numbers new int8 numbers1 3 numbers4 7 numbers6 5 int x numbers1 0 1 2 3 4 5 6 7 0 3 0 2 7 0 5 9 x Sistemas de Informação numbersx 2 numbersnumbers4 9 3 Manipulando um array unidimensional Qual o tamanho de um array meuArraylength Pontos importantes Qual o índice do último elemento do vetor em termos do seu tamanho length Sistemas de Informação Manipulando um array unidimensional Qual o tamanho de um array meuArraylength Pontos importantes Qual o índice do último elemento do vetor em termos do seu tamanho length meuArraylength 1 Qual o índice do último elemento do vetor em termos do seu tamanho length Sistemas de Informação Arrays laços de repetição int numbers new int8 forint i 0 i numberslength i numbersi 2 i índice 0 1 2 3 4 5 6 7 valor Sistemas de Informação 0 2 4 6 8 10 12 14 int primos new int5 Inicialização de arrays Declara e depois inicializa primos0 2 primos1 3 primos2 5 primos3 7 primos4 11 Inicialização no momento da declaração O tamanho do vetor será igual a quantidade de elementos informada Sistemas de Informação int primos 2 3 5 7 11 Exemplo 1 Programa em Java para armazenar o nome de 5 alunos public class Exemplo public static void mainString args int vetor new int10 int i armazena os valores no vetor fori 0 i 10 i vetori i imprime os valores do vetor fori 0 i vetorlength i Systemoutprintlnvetori Sistemas de Informação Exemplo 2 Programa em Java para preencher e imprimir um vetor import javautilScanner public class Exemplo public static void mainString args String nomes new String5 int i Scanner entrada new ScannerSystemin ler os nomes via teclado fori 0 i nomeslength i SystemoutprintlnDigite o nome nomesi entradanextLine Sistemas de Informação Exercício 1 Escreva um programa em Java que preencha um vetor de 1000 posições com valores fornecidos pelo usuário Imprima no vídeo o maior e o menor valor armazenado 2 Escreva um programa em Java que preencha um vetor de 1000 posições com valores fornecidos pelo usuário Imprima no vídeo a quantidade de números pares e ímpares digitados 3 Escreva um programa em Java para preencher um vetor de 1000 posições com valores fornecidos pelo usuário Imprima no vídeo apenas os números primos armazenados no vetor Um número é primo quando ele tem apenas 2 divisores 1 e ele mesmo Sistemas de Informação Exercício 4 Escreva um programa que leia a temperatura máxima diária da última semana de domingo a sábado Imprima no vídeo os dias em que a temperatura esteve acima da média da semana 5 Para o exercício anterior imprima no vídeo um histograma da variação da temperatura durante a semana Deverá ser impresso no vídeo uma linha com uma quantidade de caracteres de tamanho proporcional à temperatura Domingo 2ª feira Sistemas de Informação Exercício 6 Algumas universidades estão adotando o critério de atribuir notas aos alunos como um número inteiro entre 0 e 100 Você deverá escrever um programa em Java para calcular a porcentagem de alunos que estão acima da média da sala O programa deverá funcionar da seguinte maneira 1 o número de salas de aulas deverá ser informado 2 para cada sala de aula deverá ser informado o número de alunos e na sequência a média final de cada aluno da sala O programa deverá calcular e imprimir no vídeo a porcentagem de alunos que estão acima da média da sala na impressão da porcentagem deverá ter 3 casas decimais e também o símbolo de porcentagem Veja na tabela abaixo alguns valores para você testar o seu programa considerando 5 salas de aula Total de alunos Médias Porcentagem 5 50 50 70 80 100 40000 7 100 95 90 80 70 60 50 57143 3 70 90 80 33333 3 70 90 81 66667 9 100 99 98 97 96 95 94 93 91 55556 Sistemas de Informação Um número aleatório é um número que pertence a uma série numérica e não pode ser previsto a partir dos membros anteriores da série O conceito de número aleatório é um conceito relativo à série numérica a que o número pertence Números verdadeiramente aleatórios são muito difíceis de obter por isso devemos nos contentar com números pseudo aleatórios gerados por algoritmos Geração de números aleatórios Sistemas de Informação A linguagem Java disponibiliza funcionalidades para a geração de números aleatórios em uma classe denominada Random do pacote javautil Geração de números aleatórios Sistemas de Informação Os números aleatórios são utilizados de diversas formas em programas de computador Eles são importantes no desenvolvimento de jogos na área de segurança de informações exemplo para gerar senhas ou textos e em programas de mineração de dados e análise estatística apenas para citar alguns exemplos Random nomedavariavel new Random Geração de números aleatórios Inicialmente definese uma variável do tipo Random usando a seguinte sintaxe Após a definição da variável do tipo Random métodos são utilizados para a geração de valores Os principais métodos são nextInt gera números inteiros positivos ou negativos dentro da faixa de valores inteiros do Java nextIntn gera um número inteiro entre 0 e n1 nextDouble gera números entre 0 e 1 nextFloat gera números entre 0 e 1 Sistemas de Informação Geração de números aleatórios exemplo 1 import javautilRandom public class Aleatorio public static void mainString args definição da variável Random Random gerador new Random imprime sequência de 10 números inteiros aleatórios for int i 0 i 10 i SystemoutprintlngeradornextInt Sistemas de Informação Geração de números aleatórios exemplo 2 import javautilRandom public class Aleatorio public static void mainString args definição da variável Random Random gerador new Random imprime sequência de 10 números inteiros aleatórios entre 0 e 25 for int i 0 i 10 i SystemoutprintlngeradornextInt26 Sistemas de Informação Geração de números aleatórios exemplo 3 import javautilRandom public class Aleatorio public static void mainString args definição da variável Random Random r new Random SystemoutprintlnrnextDouble SystemoutprintlnrnextFloat Sistemas de Informação Geração de números aleatórios observações Sistemas de Informação Suponha que você precise gerar um número aleatório entre 1 e 6 Se você simplesmente usar o método nextInt6 obterá números entre 0 e 5 algo que você não deseja Resolver a situação é simples bastando aplicar o seguinte recurso int valor geradornextInt6 1 Imagine que você precise gerar um número real qualquer entre 0 e 90 por exemplo Os métodos nextDouble e nextFloat retornam sempre números entre 0 e 1 Então como podemos resolver a situação A resposta é simples basta multiplicar o número gerado por 90 double valor geradornextDouble 90 Exercício 7 Escreva um programa em Java que preencha um vetor de 10 posições com números aleatórios inteiros não duplicados Sistemas de Informação Bibliografia XAVIER Gley F C Lógica de Programação 12ª ed Editora Senac São Paulo 2011 Introdução e Capítulo 3 SOUZA M A F SOARES M V GOMES M M CONCILIO R Algoritmos e Lógica de Programação 1ª e 2ª ed São Paulo Cengage Learning 2011 Capítulo 4 páginas 125 130 Sistemas de Informação 41 Bibliografia PUGA S RISSETTI G Lógica de programação e estruturas de dados 2ª ed São Paulo Editora Pearson 2009 Capítulo 5 DEITEL H DEITEL P Java Como Programar 8ª ed Editora Pearson 2010 Capítulo 3 Sistemas de Informação 42