vetores – parte 1 (arrays / arranjos...
TRANSCRIPT
![Page 1: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/bc0505-2q-2018/PI... · (Arrays / Arranjos ) Prof. Jesús P. Mena-Chalco CMCC/UFABC Q2/2018 Processamento](https://reader030.vdocuments.pub/reader030/viewer/2022021722/5c610b7809d3f2256a8c7470/html5/thumbnails/1.jpg)
1
Vetores – Parte 1(Arrays / Arranjos )
Prof. Jesús P. Mena-ChalcoCMCC/UFABC
Q2/2018
Processamento da Informação
![Page 2: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/bc0505-2q-2018/PI... · (Arrays / Arranjos ) Prof. Jesús P. Mena-Chalco CMCC/UFABC Q2/2018 Processamento](https://reader030.vdocuments.pub/reader030/viewer/2022021722/5c610b7809d3f2256a8c7470/html5/thumbnails/2.jpg)
![Page 3: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/bc0505-2q-2018/PI... · (Arrays / Arranjos ) Prof. Jesús P. Mena-Chalco CMCC/UFABC Q2/2018 Processamento](https://reader030.vdocuments.pub/reader030/viewer/2022021722/5c610b7809d3f2256a8c7470/html5/thumbnails/3.jpg)
3
Armazenar 10 inteiros em um programa...
Usando variáveis:
Usando um vetor:
Para acessar a um elemento, use um índice. a[0] → 6 a[4] → 100
![Page 4: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/bc0505-2q-2018/PI... · (Arrays / Arranjos ) Prof. Jesús P. Mena-Chalco CMCC/UFABC Q2/2018 Processamento](https://reader030.vdocuments.pub/reader030/viewer/2022021722/5c610b7809d3f2256a8c7470/html5/thumbnails/4.jpg)
4
Vetores, são realmente úteis?
![Page 5: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/bc0505-2q-2018/PI... · (Arrays / Arranjos ) Prof. Jesús P. Mena-Chalco CMCC/UFABC Q2/2018 Processamento](https://reader030.vdocuments.pub/reader030/viewer/2022021722/5c610b7809d3f2256a8c7470/html5/thumbnails/5.jpg)
5
Vetores, são realmente úteis?
Permitem organizar e armazenar grandes quantidades de dados.
Por exemplo: Todos os RAs de todos os alunos da UFABC 300 números associados a experimentos. 1 milhão de caracteres de um livro. 4 bilhões de nucleotídeos de um sequência de DNA. …
![Page 6: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/bc0505-2q-2018/PI... · (Arrays / Arranjos ) Prof. Jesús P. Mena-Chalco CMCC/UFABC Q2/2018 Processamento](https://reader030.vdocuments.pub/reader030/viewer/2022021722/5c610b7809d3f2256a8c7470/html5/thumbnails/6.jpg)
6
Vetor
Um vetor (ou array) é o nome a uma matriz unidimensional.
![Page 7: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/bc0505-2q-2018/PI... · (Arrays / Arranjos ) Prof. Jesús P. Mena-Chalco CMCC/UFABC Q2/2018 Processamento](https://reader030.vdocuments.pub/reader030/viewer/2022021722/5c610b7809d3f2256a8c7470/html5/thumbnails/7.jpg)
7
Vetor
Os elementos de um vetor são armazenados/alocados de forma consecutiva na memória.
Os elementos são acessados por seu índice dentro do array.
10 4 -95 37 2910X:= 0 1 2 3 4 …
![Page 8: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/bc0505-2q-2018/PI... · (Arrays / Arranjos ) Prof. Jesús P. Mena-Chalco CMCC/UFABC Q2/2018 Processamento](https://reader030.vdocuments.pub/reader030/viewer/2022021722/5c610b7809d3f2256a8c7470/html5/thumbnails/8.jpg)
8
Memória (hardware)
RAM HDD SSD
......
![Page 9: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/bc0505-2q-2018/PI... · (Arrays / Arranjos ) Prof. Jesús P. Mena-Chalco CMCC/UFABC Q2/2018 Processamento](https://reader030.vdocuments.pub/reader030/viewer/2022021722/5c610b7809d3f2256a8c7470/html5/thumbnails/9.jpg)
9
Memória (hardware)
Geralmente o endereço do 1ro byte é o endereço do objeto.
0
N
![Page 10: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/bc0505-2q-2018/PI... · (Arrays / Arranjos ) Prof. Jesús P. Mena-Chalco CMCC/UFABC Q2/2018 Processamento](https://reader030.vdocuments.pub/reader030/viewer/2022021722/5c610b7809d3f2256a8c7470/html5/thumbnails/10.jpg)
Terminologia
01010111
11000011
01100100
11100010
0x37FD00
0x37FD01
0x37FD02
0x37FD03
......
4 bytes
![Page 11: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/bc0505-2q-2018/PI... · (Arrays / Arranjos ) Prof. Jesús P. Mena-Chalco CMCC/UFABC Q2/2018 Processamento](https://reader030.vdocuments.pub/reader030/viewer/2022021722/5c610b7809d3f2256a8c7470/html5/thumbnails/11.jpg)
11
Vetor em Java
Declaração de uma variável que representa um vetor de 13 inteiros
10 4 -95 37 2910 -6vetor :=0 1 2 3 4 5 6 7 8 9 10 11 12
10 4 -95 37 2910 3 0
Índice / Deslocamento
1 2 3 4 5 6 7 8 9 10 11 12 13
0 1 2 3 4 5 6 7 8 9 10 11 12
PosiçãoO array contém 13 Elementos
![Page 12: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/bc0505-2q-2018/PI... · (Arrays / Arranjos ) Prof. Jesús P. Mena-Chalco CMCC/UFABC Q2/2018 Processamento](https://reader030.vdocuments.pub/reader030/viewer/2022021722/5c610b7809d3f2256a8c7470/html5/thumbnails/12.jpg)
12
Exemplo 01: Definição
![Page 13: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/bc0505-2q-2018/PI... · (Arrays / Arranjos ) Prof. Jesús P. Mena-Chalco CMCC/UFABC Q2/2018 Processamento](https://reader030.vdocuments.pub/reader030/viewer/2022021722/5c610b7809d3f2256a8c7470/html5/thumbnails/13.jpg)
13
Exemplo 02: Atribuição
![Page 14: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/bc0505-2q-2018/PI... · (Arrays / Arranjos ) Prof. Jesús P. Mena-Chalco CMCC/UFABC Q2/2018 Processamento](https://reader030.vdocuments.pub/reader030/viewer/2022021722/5c610b7809d3f2256a8c7470/html5/thumbnails/14.jpg)
14
Exemplo 03: Tamanho
![Page 15: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/bc0505-2q-2018/PI... · (Arrays / Arranjos ) Prof. Jesús P. Mena-Chalco CMCC/UFABC Q2/2018 Processamento](https://reader030.vdocuments.pub/reader030/viewer/2022021722/5c610b7809d3f2256a8c7470/html5/thumbnails/15.jpg)
15
Exemplo 04: Inicialização
![Page 16: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/bc0505-2q-2018/PI... · (Arrays / Arranjos ) Prof. Jesús P. Mena-Chalco CMCC/UFABC Q2/2018 Processamento](https://reader030.vdocuments.pub/reader030/viewer/2022021722/5c610b7809d3f2256a8c7470/html5/thumbnails/16.jpg)
16
Em concreto
Um vetor é uma coleção de valores.
Três importantes características:
Os vetores representam um grupo de dados relacionados.
Todos os dados devem ter o mesmo tipo.
O tamanho do vetor é definido na sua criação/definição.
![Page 17: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/bc0505-2q-2018/PI... · (Arrays / Arranjos ) Prof. Jesús P. Mena-Chalco CMCC/UFABC Q2/2018 Processamento](https://reader030.vdocuments.pub/reader030/viewer/2022021722/5c610b7809d3f2256a8c7470/html5/thumbnails/17.jpg)
17
Terminologia : Palavra reservada new
Usada para criar um novo objeto. Em Java, um vetor é um objeto.
Não trataremos de detalhes de Programação Orientada a Objetos nessa disciplina.
Apenas saiba que com new podemos criar um objeto que represente uma coleção de elementos.
![Page 18: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/bc0505-2q-2018/PI... · (Arrays / Arranjos ) Prof. Jesús P. Mena-Chalco CMCC/UFABC Q2/2018 Processamento](https://reader030.vdocuments.pub/reader030/viewer/2022021722/5c610b7809d3f2256a8c7470/html5/thumbnails/18.jpg)
18
Criando vetores de diferentes tipos de dados
![Page 19: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/bc0505-2q-2018/PI... · (Arrays / Arranjos ) Prof. Jesús P. Mena-Chalco CMCC/UFABC Q2/2018 Processamento](https://reader030.vdocuments.pub/reader030/viewer/2022021722/5c610b7809d3f2256a8c7470/html5/thumbnails/19.jpg)
19
Exercícios
![Page 20: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/bc0505-2q-2018/PI... · (Arrays / Arranjos ) Prof. Jesús P. Mena-Chalco CMCC/UFABC Q2/2018 Processamento](https://reader030.vdocuments.pub/reader030/viewer/2022021722/5c610b7809d3f2256a8c7470/html5/thumbnails/20.jpg)
20
Exercício 1: Soma dos elementos
Crie um método que permita somar todos os elementos de um vetor de inteiros.
Assinatura: static int somarElementos( int v[ ] )
Exemplo: v = [1, 3, 5] Resultado: 9
v = [10, 20, 30, 40 ] Resultado: 100
![Page 21: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/bc0505-2q-2018/PI... · (Arrays / Arranjos ) Prof. Jesús P. Mena-Chalco CMCC/UFABC Q2/2018 Processamento](https://reader030.vdocuments.pub/reader030/viewer/2022021722/5c610b7809d3f2256a8c7470/html5/thumbnails/21.jpg)
21
Exercício 1: Soma dos elementos
![Page 22: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/bc0505-2q-2018/PI... · (Arrays / Arranjos ) Prof. Jesús P. Mena-Chalco CMCC/UFABC Q2/2018 Processamento](https://reader030.vdocuments.pub/reader030/viewer/2022021722/5c610b7809d3f2256a8c7470/html5/thumbnails/22.jpg)
22
Exercício 1: Soma dos elementos
![Page 23: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/bc0505-2q-2018/PI... · (Arrays / Arranjos ) Prof. Jesús P. Mena-Chalco CMCC/UFABC Q2/2018 Processamento](https://reader030.vdocuments.pub/reader030/viewer/2022021722/5c610b7809d3f2256a8c7470/html5/thumbnails/23.jpg)
23
Exercício 2: Busca de um elemento
Crie um método que permita procurar um elemento em um vetor. → Se existir o elemento devolva seu índice no vetor.→ Caso contrário devolva -1
Assinatura: static int buscaElemento (int v[], int x)
Exemplos:
v = [1,2,3]x = 3Resposta: 2
v = [1,2,3]x = 30Resposta: -1
![Page 24: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/bc0505-2q-2018/PI... · (Arrays / Arranjos ) Prof. Jesús P. Mena-Chalco CMCC/UFABC Q2/2018 Processamento](https://reader030.vdocuments.pub/reader030/viewer/2022021722/5c610b7809d3f2256a8c7470/html5/thumbnails/24.jpg)
24
Exercício 2: Busca de um elemento
![Page 25: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/bc0505-2q-2018/PI... · (Arrays / Arranjos ) Prof. Jesús P. Mena-Chalco CMCC/UFABC Q2/2018 Processamento](https://reader030.vdocuments.pub/reader030/viewer/2022021722/5c610b7809d3f2256a8c7470/html5/thumbnails/25.jpg)
25
Lorem ipsum dolor sit amet, consectetur adipiscing elit . Curabitur vel est augue. Donec aliquam laoreet ipsum , ac sagittis odio aliquam quis. In eleifend est tortor, dapibus posuere odio consectetur id. Donec varius eget est eu luctus . Phasellus scelerisque, nunc laoreet feugiat sagittis, risus neque condimentum nisi, eget feugiat turpis purusquis urna. Mauris tempor eros in turpis tincidunt, bibendum euismod est pretium. Praesent ligula dui, fermentum a porttitor vitae, pulvinar ut odio. Suspendisse vitae pretium dolor, at sodales mauris .
Sed consequat purus nec bibendum suscipit. Donec ultricies euismod enim, quis interdum mi ornare et . Ut facilisis elit vitae elementum fringilla. Pellentesque sed orci iaculis, imperdiet elit et, mollis enim.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur vel est augue. Donec aliquam laoreet ipsum, ac sagittis odio aliquam quis. In eleifend est tortor, dapibus posuere odio consectetur id. Donec varius eget est eu luctus. Phasellus scelerisque, nunc laoreet feugiat sagittis, risus neque condimentum nisi, eget feugiat turpis purus quis urna. Mauris tempor eros in turpis tincidunt, bibendum euismod est pretium. Praesent ligula dui, fermentum a porttitor vitae, pulvinar ut odio. Suspendisse vitae pretium dolor, at sodales mauris.
Sed consequat purus nec bibendum suscipit. Donec ultricies euismod enim, quis interdum mi ornare et. Ut facilisis elit vitae elementum fringilla. Pellentesque sed orci iaculis, imperdiet elit et, mollis enim.
![Page 26: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/bc0505-2q-2018/PI... · (Arrays / Arranjos ) Prof. Jesús P. Mena-Chalco CMCC/UFABC Q2/2018 Processamento](https://reader030.vdocuments.pub/reader030/viewer/2022021722/5c610b7809d3f2256a8c7470/html5/thumbnails/26.jpg)
26
Programação elegante?
Direitos de autor: Dezignus
![Page 27: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/bc0505-2q-2018/PI... · (Arrays / Arranjos ) Prof. Jesús P. Mena-Chalco CMCC/UFABC Q2/2018 Processamento](https://reader030.vdocuments.pub/reader030/viewer/2022021722/5c610b7809d3f2256a8c7470/html5/thumbnails/27.jpg)
27
Exercício 2: Busca de um elemento
![Page 28: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/bc0505-2q-2018/PI... · (Arrays / Arranjos ) Prof. Jesús P. Mena-Chalco CMCC/UFABC Q2/2018 Processamento](https://reader030.vdocuments.pub/reader030/viewer/2022021722/5c610b7809d3f2256a8c7470/html5/thumbnails/28.jpg)
28
Programação elegante
![Page 29: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/bc0505-2q-2018/PI... · (Arrays / Arranjos ) Prof. Jesús P. Mena-Chalco CMCC/UFABC Q2/2018 Processamento](https://reader030.vdocuments.pub/reader030/viewer/2022021722/5c610b7809d3f2256a8c7470/html5/thumbnails/29.jpg)
Programação elegante
![Page 30: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/bc0505-2q-2018/PI... · (Arrays / Arranjos ) Prof. Jesús P. Mena-Chalco CMCC/UFABC Q2/2018 Processamento](https://reader030.vdocuments.pub/reader030/viewer/2022021722/5c610b7809d3f2256a8c7470/html5/thumbnails/30.jpg)
30
Exercício 2: Busca de um elemento
![Page 31: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/bc0505-2q-2018/PI... · (Arrays / Arranjos ) Prof. Jesús P. Mena-Chalco CMCC/UFABC Q2/2018 Processamento](https://reader030.vdocuments.pub/reader030/viewer/2022021722/5c610b7809d3f2256a8c7470/html5/thumbnails/31.jpg)
31
Exercício 3: Maior elemento
Crie um método que permita devolver o maior elemento contido em um vetor.
Assinatura: static int maiorElemento (int v[])
Exemplos:
v = [1,2,3]Resposta: 3
![Page 32: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/bc0505-2q-2018/PI... · (Arrays / Arranjos ) Prof. Jesús P. Mena-Chalco CMCC/UFABC Q2/2018 Processamento](https://reader030.vdocuments.pub/reader030/viewer/2022021722/5c610b7809d3f2256a8c7470/html5/thumbnails/32.jpg)
32
Exercício 3: Maior elemento
![Page 33: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/bc0505-2q-2018/PI... · (Arrays / Arranjos ) Prof. Jesús P. Mena-Chalco CMCC/UFABC Q2/2018 Processamento](https://reader030.vdocuments.pub/reader030/viewer/2022021722/5c610b7809d3f2256a8c7470/html5/thumbnails/33.jpg)
33
Exercício 3: Maior elemento