Post on 16-Aug-2020
Introdução a programação – Vetores
Professor: Saulo Henrique Cabral Silva
Instituto Federal de Minas Gerais Campus Ponte Nova
Vetores…
2
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
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
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
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
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
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
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
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])
EXERCÍCIOS
11
Exercício 1
• Inserir 5 notas em um vetor, depois disso visualizar as notas inseridas.
12
Exercício 2
• Colocar os números de 1 a 5 em Vetor.
13
Exercício 3
• Leia 5 notas e as insira em um vetor. Depois disso, visualizar as notas inseridas.
14
Exercício 4
• Modificar o programa anterior de forma tal que depois de ter inserido as 5 notas seja calculada a média.
15
Exercício 5
• Construa um algoritmo que leia 300 números inteiros e imprima esses números na ordem inversa de entrada.
16
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
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
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
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
+
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
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
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
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
MATRIZES
25
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
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
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
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];
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
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
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
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
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
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
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
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
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
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