Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/pi-2q... · Em...

33
1 Vetores – Parte 1 (Arrays / Arranjos ) Prof. Jesús P. Mena-Chalco CMCC/UFABC Q2/2018 Processamento da Informação

Transcript of Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/pi-2q... · Em...

Page 1: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/pi-2q... · Em concreto Um vetor é uma coleção de valores. Três importantes características:

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/pi-2q... · Em concreto Um vetor é uma coleção de valores. Três importantes características:
Page 3: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/pi-2q... · Em concreto Um vetor é uma coleção de valores. Três importantes características:

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/pi-2q... · Em concreto Um vetor é uma coleção de valores. Três importantes características:

4

Vetores, são realmente úteis?

Page 5: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/pi-2q... · Em concreto Um vetor é uma coleção de valores. Três importantes características:

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/pi-2q... · Em concreto Um vetor é uma coleção de valores. Três importantes características:

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/pi-2q... · Em concreto Um vetor é uma coleção de valores. Três importantes características:

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/pi-2q... · Em concreto Um vetor é uma coleção de valores. Três importantes características:

8

Memória (hardware)

RAM HDD SSD

......

Page 9: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/pi-2q... · Em concreto Um vetor é uma coleção de valores. Três importantes características:

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/pi-2q... · Em concreto Um vetor é uma coleção de valores. Três importantes características:

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/pi-2q... · Em concreto Um vetor é uma coleção de valores. Três importantes características:

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/pi-2q... · Em concreto Um vetor é uma coleção de valores. Três importantes características:

12

Exemplo 01: Definição

Page 13: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/pi-2q... · Em concreto Um vetor é uma coleção de valores. Três importantes características:

13

Exemplo 02: Atribuição

Page 14: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/pi-2q... · Em concreto Um vetor é uma coleção de valores. Três importantes características:

14

Exemplo 03: Tamanho

Page 15: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/pi-2q... · Em concreto Um vetor é uma coleção de valores. Três importantes características:

15

Exemplo 04: Inicialização

Page 16: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/pi-2q... · Em concreto Um vetor é uma coleção de valores. Três importantes características:

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/pi-2q... · Em concreto Um vetor é uma coleção de valores. Três importantes características:

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/pi-2q... · Em concreto Um vetor é uma coleção de valores. Três importantes características:

18

Criando vetores de diferentes tipos de dados

Page 19: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/pi-2q... · Em concreto Um vetor é uma coleção de valores. Três importantes características:

19

Exercícios

Page 20: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/pi-2q... · Em concreto Um vetor é uma coleção de valores. Três importantes características:

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/pi-2q... · Em concreto Um vetor é uma coleção de valores. Três importantes características:

21

Exercício 1: Soma dos elementos

Page 22: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/pi-2q... · Em concreto Um vetor é uma coleção de valores. Três importantes características:

22

Exercício 1: Soma dos elementos

Page 23: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/pi-2q... · Em concreto Um vetor é uma coleção de valores. Três importantes características:

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/pi-2q... · Em concreto Um vetor é uma coleção de valores. Três importantes características:

24

Exercício 2: Busca de um elemento

Page 25: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/pi-2q... · Em concreto Um vetor é uma coleção de valores. Três importantes características:

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/pi-2q... · Em concreto Um vetor é uma coleção de valores. Três importantes características:

26

Programação elegante?

Direitos de autor: Dezignus

Page 27: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/pi-2q... · Em concreto Um vetor é uma coleção de valores. Três importantes características:

27

Exercício 2: Busca de um elemento

Page 28: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/pi-2q... · Em concreto Um vetor é uma coleção de valores. Três importantes características:

28

Programação elegante

Page 29: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/pi-2q... · Em concreto Um vetor é uma coleção de valores. Três importantes características:

Programação elegante

Page 30: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/pi-2q... · Em concreto Um vetor é uma coleção de valores. Três importantes características:

30

Exercício 2: Busca de um elemento

Page 31: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/pi-2q... · Em concreto Um vetor é uma coleção de valores. Três importantes características:

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/pi-2q... · Em concreto Um vetor é uma coleção de valores. Três importantes características:

32

Exercício 3: Maior elemento

Page 33: Vetores – Parte 1 (Arrays / Arranjos )professor.ufabc.edu.br/~jesus.mena/courses/pi-2q... · Em concreto Um vetor é uma coleção de valores. Três importantes características:

33

Exercício 3: Maior elemento