40
Introdução a programação Vetores Professor: Saulo Henrique Cabral Silva Instituto Federal de Minas Gerais Campus Ponte Nova

Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Embed Size (px)

Citation preview

Page 1: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Introdução a programação – Vetores

Professor: Saulo Henrique Cabral Silva

Instituto Federal de Minas Gerais Campus Ponte Nova

Page 2: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Vetores…

2

Page 3: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Como funciona

• Em qual variável está a oitava nota...

Notas

3

8 5 2 1 9 7 8 3 2 9 2

0 1 2 3 4 5 6 7 8 9

Page 4: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Indíces…

• Uma vez que as variáveis que compõem o vetor têm o mesmo nome, o que distingue cada um delas é um índice, que referencia sua localização dentro da estrutura.

• Exemplo:

vet

4

0 1 2 3 4 5 6 7

Page 5: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Declaração de um vetor

tipo nomeVetor [quantidadeElementos]

Inteiro nomeVetor [ ] = {0,1,2,3,4,5,6,7,8,9}

5

8 0 0 0 0 0 0 0 0 0 0

0 1 2 3 4 5 6 7 8 9

...

Outra forma de declarar vetores

Page 6: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Ainda sobre a declaração de vetores...

• Todo vetor é um espaço linear dividido e com o tamanho que declaramos.

• Se declaramos inteiro x[4] de inteiro, na memória é representado da seguinte forma:

6

Page 7: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Ainda sobre a declaração de vetores...

• Para acessar um local específico basta indicar entre colchetes a posição desejada.

• Aquela posição recebe o nome de índice.

• O índice sempre inicia em 0.

• Um vetor de tamanho 10 vai de 0 a 9.

vet[4]

7

Page 8: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Manipulando valores de um vetor

inteiro x[4]

x[1] = 540

x[3] = 987

8

0 0 0 0

0 540 0 0

0 0 540 987

Page 9: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Ainda sobre a declaração de vetores...

• A primeira posição de um vetor tem índice 0.

• A última posição de um vetor tem índice equivalente a: (número de posições) - 1

• O sistema de execução não verifica se um dado acesso está dentro dos limites de um vetor...

9

Page 10: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Isso quer dizer que...

10

8 0 0 0 0 0 0 0 0 0 0

0 1 2 3 4 5 6 7 8 9

inteiro X [10]

Escreva (x[3])

Escreva(x[10])

Page 11: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

EXERCÍCIOS

11

Page 12: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Exercício 1

• Inserir 5 notas em um vetor, depois disso visualizar as notas inseridas.

12

Page 13: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Exercício 2

• Colocar os números de 1 a 5 em Vetor.

13

Page 14: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Exercício 3

• Leia 5 notas e as insira em um vetor. Depois disso, visualizar as notas inseridas.

14

Page 15: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Exercício 4

• Modificar o programa anterior de forma tal que depois de ter inserido as 5 notas seja calculada a média.

15

Page 16: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Exercício 5

• Construa um algoritmo que leia 300 números inteiros e imprima esses números na ordem inversa de entrada.

16

Page 17: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Exercício 6

• Dada uma coleção de n elementos, pretende-se saber se um determinado elemento valor está presente nessa coleção. Para efeitos práticos, vamos supor que essa coleção é implementada como sendo um vetor de n elementos inteiros:

vetor[0]..vetor[n-1].

17

Page 18: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Exercício 7

• Leia um vetor A, com no máximo 10 elementos. Crie um vetor B da seguinte forma: – coloque os números pares primeiro;

– coloque os números ímpares logo após os pares;

– exiba o vetor B

18

Page 19: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Exercício 8

• Ler um vetor X de 10 elementos inteiros e positivos. Criar um vetor Y da seguinte forma: – Os elementos de Y com índice par receberão os respectivos

elementos de X divididos por 2;

– Os elementos com índice ímpar receberão os respectivos elementos de X multiplicados por 3;

– Escrever o vetor X e o vetor Y .

19

12 4 6 4 5 8 2

6 12 3 12 2,5 24 1

Page 20: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Exercício 9

• Ler dois vetores: – R de 5 elementos;

– S de 10 elementos.

• Gerar um vetor X de 15 elementos cujas 5 primeiras posições contenham os elementos de R e as 10 últimas posições, os elementos de S.

• Escrever o vetor X.

20

+

Page 21: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Exercício 10

• Ler um vetor com 7 posições do tipo real... Em seguida ordene estes valores no vetor... – Imagine que cada valor deste vetor é a altura de uma pessoa.

– Adote que:

• Mais baixo: 0.60

• Mais alto: 2.51

21

0.2

Page 22: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Exercício 11

• Um dado é lançado n vezes e a cada lançamento é anotado o resultado. Faça um algoritmo que tendo como entrada o resultado de cada um dos n lançamentos, encontra a média dos lançamentos e conta quantos lançamentos estão acima da média dos lançamentos.

Exemplo: n = 5 Lançamento Resultado 1 6 2 3 3 1 4 5 5 5 Média dos Lançamentos = (6+3+1+5+5)/5 = 4 Número de Lançamentos que estão acima da média = 3 (lançamentos 1, 4 e 5)

22

Page 23: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Exercício 12

• Ler um vetor X de 10 elementos. A seguir copiar todos os valores negativos do vetor X para um vetor R e os valores positivos para um vetor S.

• Escrever o vetor X, o vetor R e o vetor S.

23

Page 24: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Exercício 13

• Crie uma agenda de contatos usando as estruturas de vetores: – Ela deve armazenar no mínimo 10 contatos;

– Deve ter a informação do nome, telefone, salário, e-mail, data de nascimento.

• A agenda deve permitir consultas por: – Nome e Sobrenome;

– Por data de nascimento

– Salário

– Faixa salarial

24

Page 25: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

MATRIZES

25

Page 26: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Matrizes

• Uma matriz é um vetor (conjunto de variáveis do mesmo tipo) que possui duas ou mais dimensões

• Matrizes podem ser consideradas como “vetores de vetores”

• Por exemplo, uma matriz bi-dimensional pode

ser visto como uma tabela

de m linhas (filas) e

n colunas.

26

Page 27: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Matrizes - declarando

• Uma matriz possui linhas x colunas variáveis de um mesmo tipo, seja ele: inteiro, real, caracter ou lógico.

• As linhas são numeradas de 0.

• As colunas são numeradas de 0.

• Declarando uma matriz m x n:

inteiro vetor [m] [n]

27

Page 28: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Matrizes – acessando uma posição de uma determinada matriz

• A forma de acessar um elemento da matriz é:

nome_da_matriz [x] [y]

• Onde x e y é uma posição à qual desejamos acessar dessa matriz.

28

Page 29: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Matrizes – acessando uma posição de uma determinada matriz

• O compilador não verifica se foram utilizados valores válidos para a linha e coluna.

– Então a verificação deve ser a mesma do tratamento dos vetores.

inteiro Nome_da_matriz[2][2]

29

Nome_da_matriz[1][3];

Nome_da_matriz[1][2];

Page 30: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Matrizes – Exercício em sala

• Criar uma matriz de 3 x 4 (3 linhas e 4 colunas) elementos. Inserir valores e logo mostrar o conteúdo da matriz.

30

Page 31: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Trabalho

• Gerar a posição de cada um dos submarinos de forma aleatória. (randi(x))

• Contabilizar a quantidade de alvos gerados. (você decide)

• Contabilizar a quantidade de alvos que você e o computador atingiram.

• Trabalhos com um plus terão notas EXTRAS.

31

Page 32: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Matrizes – Exercício em sala

• Escreva um programa que lê duas matrizes 5 x 5, e mostre-as na tela e mostre o maior valor entre elementos correspondentes em uma terceira matriz.

32

Page 33: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Matrizes – Exercício avaliativo

• Maria deseja gerenciar as vendas de passagem do mês vigente.

• É preciso ter o controle da ocupação das poltronas de cada ônibus. – Não deixe vender uma poltrona mais de uma vez heim..!!! – Se possível mostre as poltronas livres e ocupadas no ato

da compra.

• Poltronas na janela tem um acréscimo no preço igual a 0,50.

33

Page 34: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Matrizes – Exercício em sala

• Criar uma matriz quadrada 7 x 7 e mostrar os elementos da diagonal principal e da diagonal secundária.

34

Page 35: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Matrizes – Exercício em sala

• Crie um programa que leia os valores para uma matriz 3 x 3 e encontre qual é o maior valor desta matriz.

35

Page 36: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Matrizes – Exercício em sala

• Leia uma matriz 10 × 10 (aleatória). Leia também um valor X. O programa deverá fazer uma busca desse valor na matriz e, ao final escrever a localização (linha e coluna) ou uma mensagem de “não encontrado”.

36

Page 37: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Matrizes – Fechamento

Criar um programa que carregue uma matriz 12x4 com os valores das vendas de uma loja, em que cada linha represente um mês do ano, e cada coluna, uma semana do mês. Para fins de simplificação considere que cada mês possui somente 4 semanas. Calcule e imprima:

– Total vendido em cada mês do ano; – Total vendido em cada semana durante todo o ano; – Total vendido no ano.

37

Page 38: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Matrizes – Floricultura

• Uma floricultura conhecedora de sua clientela gostaria de fazer um programa que pudesse controlar sempre um estoque mínimo de determinadas plantas, pois todos os dias, pela manhã, o dono faz novas aquisições. Criar um programa que deixe cadastrar 50 tipos de plantas e nunca deixar o estoque ficar abaixo do ideal. Para cada planta, o dono gostaria de cadastrar o nome, o estoque ideal e a quantidade em estoque. Dessa forma o algoritmo pode calcular a quantidade que o dono da loja precisa comprar no próximo dia. Essa quantidade a ser comprada deve ser impressa (quando maior que zero) como uma lista para o dono da floricultura.

38

Estoque mínimo 10

Page 39: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •

Matrizes – Salão

A gerente do cabeleireiro Sempre Bela tem uma tabela em que registra os “pés” as “mãos” e o serviço de podologia das cinco manicures. Sabendo-se que cada uma ganha 50% do que faturou ao

mês, e que não consegue atender mais que 7 clientes por dia, criar um programa que possa calcular e imprimir quanto cada um vai receber, uma vez que não têm carteiras assinadas; os valores, respectivamente, são:

R$ 10,00; R$ 15,00; R$ 30,00

39

Page 40: Introdução a programação Vetores - Prof. Saulo Henrique Cabral …sauloifmg.com.br/Disciplinas/Intro/Aula 5.pdf · 2017-05-22 · • Dada uma coleção de n elementos, ... •