Upload
everson-wolf
View
614
Download
0
Embed Size (px)
DESCRIPTION
Trabalho sobre vetores.
Citation preview
UNIVERSIDADE DO ESTADO DE MATO GROSSO/UNEMAT
CAMPUS UNIVERSITÁRIO DO VALE DO TELES PIRES
LICENCIATURA PLENA EM COMPUTAÇÃO
ESTRUTURAS DE DADOS E TÉCNICAS DE PROGRAMAÇÃO -I
VETOR
COLIDER/2012
UNIVERSIDADE DO ESTADO DE MATO GROSSO/UNEMAT
CAMPUS UNIVERSITÁRIO DO VALE DO TELES PIRES.
LICENCIATURA PLENA EM COMPUTAÇÃO
ESTRUTURAS DE DADOS E TÉCNICAS DE PROGRAMAÇÃO - I
VETOR
Trabalho acadêmico
apresentado como subsídios
para a avaliação da disciplina
de ESTRUTURAS DE DADOS
E TÉCNICAS DE
PROGRAMAÇÃO - I do curso
de Licenciatura em
Computação, ministrado pela
Professora Elaine Alves da
Rocha.
COLIDER/2012
IDENTIFICAÇÃO
Título: Vetor
Departamento: Licenciatura em Computação
Disciplina: Estruturas de dados e técnicas de programação - I
Discentes: Alexandro Nardeli Leite, Douglas Silva da Rocha, Everson Wolf.
Docente: Elaine Alves da Rocha
Público Alvo: Acadêmicos do 4º semestre do Curso de Licenciatura em Computação
INTRODUÇÃO
Vetor ou arranjo também conhecido como array é muito utilizado na programação
para armazenar dados, ou seja, números fixos de elementos de mesmo tipo. São entidades
“estáticas” no sentido de que, uma vez criadas, mantêm o mesmo tamanho, embora uma
referência de array possa ser atribuída a um novo array de tamanho diferente. As arrays são
usadas em listas, filas, pilhas e árvores que podem crescer e encolher enquanto os programas
são executados.
JUSTIFICATIVA
O objetivo deste trabalho é atender os educandos, para que os mesmos possam
conhecer o uso de vetores ou arrays na programação orientada a objetos e sua grande
importância onde todos os softwares que utilizam essas estruturas, contribuindo para a
ampliação de seus conhecimentos e no desenvolvimento do ensino-aprendizagem.
OBJETIVOS GERAIS
Proporcionar ao acadêmico o conhecimento do uso de vetores na programação,
através de apresentação de um software feito na linguagem Java, permitindo que a partir daí o
mesmo possa apreender e compreender estes conceitos.
OBJETIVOS ESPECÍFICOS
-Apresentar a estrutura de dados de arrays.
-Entender o uso de arrays para armazenar, classificar e pesquisar listas e tabelas de valores.
-Entender como declarar uma array, inicializar uma array e referir-se a elementos individuais
de um array.
METODOLOGIA
Através de pesquisas na internet e livros, foram recolhidas informações sobre o
sistema vetores (arrays). Através desta pesquisa foram montados slides para apresentar o
trabalho realizado em sala de aula, utilizando data show e notebooks e apresentação de um
software.
CONTEUDO DESENVOLVIDO
Vetores
Vetores, também muito conhecidos como arrays, são variáveis que servem para
guardar vários valores do mesmo tipo de forma uniforme na memória. Por exemplo, se
tivemos que criar 20 variáveis do mesmo tipo que querem dizer a mesma coisa, nós não
criaríamos => int var1, var2, var3, var4, var5,... Ao invés disso, criaríamos apenas uma
variável de vetor para guardar todos os 20 números de uma vez. Como um vetor pode guardar
vários valores temos que definir quantos valores ele deve guardar para que seja reservado o
espaço necessário em memória. Primeiramente, vamos aprender como declarar um vetor. Para
declarar um vetor devemos especificar o tipo ou classe de dado que será armazenado nele.
Após isso, damos um nome a esse vetor. E, para finalizar, indicamos que ele é um vetor,
simplesmente abrindo e fechando colchetes ([ ] ). Portanto, se quiséssemos um vetor de
números inteiro chamado meu vetor, declararíamos da seguinte forma:
int meuVetor [ ];
Agora que já declaramos o vetor, devemos dar um tamanho a ele, para que seja
reservado espaço suficiente em memória. Para fazermos isso, utilizaremos um instanciador
chamado new. New é muito importante, pois ele irá criar de fato o vetor.
Para indicarmos o tamanho usamos o instanciador new, depois o tipo de dado do vetor
e entre colchetes o tamanho do vetor. Tomando o exemplo acima, vamos indicar que
meuVetor terá o tamanho 4.
int meuVetor [ ] = new int [4];
O array é um grupo de posições contíguas na memória que possuem o mesmo nome e
o mesmo tipo. Para referir-se a uma localização ou elemento particular no array,
especificamos o nome do array e o número da posição (ou índice ou subscrito) do elemento
particular no array.
Declarando e alocando arrays
Os arrays são objetos que ocupam espaço na memória. Todos em Java devem ser
alocados dinamicamente com o operador new. Para um array, o programador especifica o tipo
dos elementos do array e o número de elementos como parte da operação new. Exemplo de
alocação de elementos em java:
int meuVetor[ ] = new int [ 4 ];
A declaração precedente também pode ser executada em duas etapas, como segue:
int meuVetor[ ]; // declara o array
meuVetor = new int[ 4 ]; // aloca o array
Na memória é representado da seguinte forma:
Agora, para acessarmos um local específico dessa memória devemos indicar entre
colchetes a posição desejada no vetor que chamamos de index. O importante mesmo é saber
que não importa o tamanho do vetor, o index (número que indica a posição) sempre começa
em 0. Ou seja, um vetor de tamanho 20 vai da posição 0 a 19, um vetor de tamanho 180 vai da
posição 0 a 179. Portanto, um vetor de tamanho 4 vai da posição 0 a 3.
Agora, se quisermos atribuir os valores 540 na posição 1 e 8456 na posição 3,
faríamos: meuVetor [1]=540; meuVetor [3]=8456. Não podemos nunca nos esquecer de que o
limite do vetor é sempre seu tamanho menos 1. Usando o exemplo: vetor de tamanho 4,
posição máxima é 3 (pois 4-1=3). Então, se atribuirmos um valor a posição 4 ocorrerá um
erro. Resumidamente, jamais poderíamos fazer meuVetor [4]=200.
Quando se aloca uma array, cada elemento do array recebe por default um valor zero
para variáveis numéricas do tipo de dados primitivos, false para variáveis booleana ou null
para referências (qualquer tipo não primitivo).
Podemos declarar arrays de qualquer tipo de dados.
byte[] meuVetorDeBytes;
short[] meuVetorDeShorts;
long[] meuVetorDeLongs;
float[] meuVetorDeFloats;
double[] meuVetorDeDoubles;
boolean[] meuVetorDeBooleans;
char[] meuVetorDeChars;
String[] meuVetorDeStrings;
Inicializando uma array
Um programa pode alocar e inicializar os elementos de um array na declaração
seguindo a declaração com um sinal de igual e uma lista de inicializadores separados por
vírgulas colocados entre chaves ( { } ). Nesse caso, o tamanho do array é determinado pelo
número de elementos na lista de inicializadores. Por exemplo, a declaração, int n [] = {10, 20,
30, 40, 50 }; cria um array de cinco elementos com os subscritos 0, 1, 2, 3 e 4. Observe que a
declaração precedente não precisa do operador new para criar o objeto array. Quando o
compilador encontra uma declaração de array que inclui uma lista de inicializadores, o
compilador conta a quantidade de inicializadores na lista e configura uma operação (new)
para alocar o número apropriado de elementos de arrays.
Com as arrays podemos fazer a soma delas se for numérica, armazenar nomes de
pessoas-cliente, é utilizada em todos os softwares existentes, pois eles sempre precisam
armazenar algum dado, mesmo que temporário.
Classificando arrays
Classificar dados (isto é, colocar os dados em alguma ordem particular como crescente
ou decrescente) é uma das aplicações mais importantes da computação. O banco classifica
todos os cheques pelo número da conta, de modo que possa preparar extratos bancários
individuais no final de cada mês. As empresas de telefonia classificam suas listas de
assinantes por sobrenome e, dentro desta classificação, pelo primeiro nome, para facilitar a
localização de números de telefone. Praticamente todas as organizações precisam classificar
seus dados de alguma maneira e, em muitos casos, quantidades enormes de dados. Classificar
dados é um problema intrigante que tem atraído alguns dos esforços mais intensos de pesquisa
no campo da ciência da computação.
A técnica que utiliza para classificar uma array se chama classificação de bolhas
(buble sort) ou classificação por aprofundamento, porque os valores menores “borbulham”
gradualmente para o topo do array, isto é, em direção ao primeiro elemento, como bolhas de
ar subindo na água, enquanto os valores maiores afundam para o fundo do array. A técnica
usa laços aninhados para fazer várias passagens pelo array. Em cada passagem, pares de
elementos sucessivos são comparados. Se um par estiver na ordem crescente ou os valores
iguais, a buble sort deixa os valores como estão. Se um par estiver na ordem crescente, a
buble sort troca seus valores no array.
macarrao =["spaghetti","tubetti","farfalle","ziti","penne"];
macarrao.sort();
trace (macarrao);
saída --> farfalle,penne,spaghetti,tubetti,ziti
Arrays multidimensionais
Os arrays multidimensionais com dois subscritos são utilizados frequentemente para
apresentar tabelas de valores que consistem em informações organizadas em linhas e colunas.
Para identificar um elemento específico da tabela, devemos especificar os dois subscritos –
por convenção, o primeiro identifica a linha do elemento e o segundo identifica a coluna do
elemento. Os arrays que exigem dois subscritos para identificar um elemento específico são
chamados de arrays bidimensionais. Observe que arrays multidimensionais podem ter mais de
dois subscritos. Java não suporta diretamente arrays multidimensionais, mas permite que o
programador, especifique arrays de um índice subscrito (unidimensionais) cujos elementos
também são arrays unidimensional, alcançando, assim, o mesmo efeito.
Os arrays multidimensionais podem ser inicializados com listas de inicializadores em
declaração, da mesma forma que um array unidimensional. O array bidimensional b [2][2]
poderia ser declarado e inicializado com int b [ ] [ ] = {{1,2}, {3,4}};
Os valores são agrupados por linha entre chaves. Assim, 1 e 2 inicializam b[0][0] e
b[0][1] e 3 e 4 inicializam b[1][0] e b[1][1]. O compilador determina o número de linhas
contando o número de sublistas de inicializadores ( representadas por conjuntos de chaves) na
lista de inicializadores. O compilador determina o número de colunas em cada linha contando
o número de valores inicializadores na sublistas de inicializadores dessa linha.
Os arrays multidimensionais são mantidos como arrays de arrays. A declaração
int b [ ] [ ] = {{1,2}, {3, 4, 5}}; cria o array de inteiros b com a linha 0 contendo dois
elementos (1 e 2) e a linha 1 contendo três elementos (3, 4, 5).
Também pode ser declarado dessa forma, int b [ ] [ ] = new int[10][10];
Exemplo de uso dos vetores
Método que inicia o vetor, recebendo o valor digitado pelo usuário.
public void inicia() { // aqui é declarado o método e abaixo o corpo do método
int valor = 0;
String entrada; // esta é a variável que receberá o valor digitado.
for (int i = 0; i < vetor.length; i++) {
entrada = JOptionPane
.showInputDialog("Entre com um valor inteiro!!!");
valor = Integer.parseInt(entrada); /* valor recebe o valor da
entrada */
vetor[i] = valor; // passa o valor para o vetor
}
}
Jogo da forca construído na linguagem Java
O jogo tem o estilo do jogo da forca feito de papel. O programa escolhe as palavras de
forma aleatória.
Código para centralizar o frame:
Coleção das palavras que irão ser escolhidas pelo programa:
Aqui é feita o sorteio das palavras do jogo de forma
dinâmica:
Nesta parte do código do programa verifica se a letra digitada pelo usuário já foi
digitada:
Nesta parte as janelas apresentam se caso o usuário acertou a palavra dará parabéns
senão irá dizer que foi enforcado:
Nesta parte do jogo e onde possui estes códigos, eles são utilizados para tocar um som
especificado pelo desenvolvedor:
CONCLUSÃO
Java armazena listas de valores em arrays ou vetores. O array é um grupo contíguo de
posições de memória relacionadas. Essas posições são relacionadas pelo fato de todas terem o
mesmo nome e o mesmo tipo. Para se referir a uma posição ou a um elemento em particular
dentro do array, especificamos o nome do array e o subscrito do elemento. Com ele podemos
construir inúmeras aplicações desde um simples algoritmo que armazenam dados, até
sistemas de empresas e jogos diversificados.
CRONOGRAMA
Ações Tempo de execução
Pesquisa 8 horas
Elaboração 2 horas e 30min.
Estudo para apresentação 4 horas
Apresentação 30 min.
Total: 15 horas
REFERÊNCIAS BIBLIOGRAFICAS
JUNIOR, P. J.; “Java guia do programador”, 2007. São Paulo-SP.
DEITEL, H. M. e DEITEL, P. J.; “Java como programar”, 2002. Porto Alegre-RS.
SIERRA, K.; e BATES, B.; “Use a cabeça! Java”, 2010. Rio de Janeiro-RJ.
HUBBARD. J.; “Programação com Java 2ª edição”. 2006. Porto Alegre-RS.
GOODRICH. M. T.; e TAMASSIA. R.; “Estruturas de dados em algoritmos em
Java”. 2007. Porto Alegre-RS.
HORSTMANN. C.S.; e CORNEEL G.; “Core Java”. 2010. São Paulo-SP.
Disponível em: http://www.tiexpert.net. Acesso em outubro 2012.