A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Pearson Education Slide 1. Pearson Education Slide 2 Cap í tulo 5 Criado por Frederick H. Colclough, Colorado Technical University Vetores.

Apresentações semelhantes


Apresentação em tema: "Pearson Education Slide 1. Pearson Education Slide 2 Cap í tulo 5 Criado por Frederick H. Colclough, Colorado Technical University Vetores."— Transcrição da apresentação:

1 Pearson Education Slide 1

2 Pearson Education Slide 2 Cap í tulo 5 Criado por Frederick H. Colclough, Colorado Technical University Vetores

3 Pearson Education Slide 3 Objetivos do Estudo Introdução aos Vetores Declarando e referenciando vetores Loops for e vetores Vetores na Memória Vetores em Funções Vetores como argumentos de Funções, valores de retorno Programando com Vetores Vetores parcialmente preenchidos, busca, ordenação Vetores Multidimensionais

4 Pearson Education Slide 4 Introdução aos Vetores Definição de vetor : Uma coleção de dados do mesmo tipo Agregado de dados do mesmo tipo Significa agrupar int, float, double e char são tipos de dados simples Usado para listar dados semelhantes Pontos marcados, temperaturas, nomes, etc. Evita a declaração múltipla de variáveis simples Pode manipular listas como uma entidade

5 Pearson Education Slide 5 Declarando Vetores Declarar o vetor alocar na memória int nota[5]; Declara o vetor de 5 inteiros chamado nota Semelhante a declaração de 5 variáveis: int nota[0], nota[1], nota[2], nota[3], nota[4] Partes individuais chamadas de diversas formas : Variáveis indexadas ou subscritas Elementos do vetor Valor entre colchetes chamado índice ou subscrito Numerados a partir do 0 (Zero)

6 Pearson Education Slide 6 Acessando Vetores Acesso usando o índice/subscrito cout << nota[3]; Note os dois usos dos colchetes: Na declaração, especifica o TAMANHO do vetor Em qualquer outro lugar, especifica um subscrito Tamanho e subscrito precisam ser literais int nota[NOTAS_MAXIMAS]; nota[n+1] = 99; Se n for 2, é idêntico a: nota[3]

7 Pearson Education Slide 7 Uso do Vetor Poderoso Mecanismo de Armazenamento Pode-se usar comandos como: Faça isso com a i a variável indexada onde, i é calculada pelo programa Mostre todos os elementos do vetor nota Preencha o vetor nota com os dados digitados Encontre o valor mais alto no vetor nota Encontre o valor mais baixo no vetor nota

8 Pearson Education Slide 8 Exemplo de Programa com Vetor Painel 5.1 página 118

9 Pearson Education Slide 9 Exemplo de Programa com Vetor (cont) Painel 5.1 página 119

10 Pearson Education Slide 10 Loops For com Vetores Loop natural de contagem Trabalha bem contando elementos através de um vetor Exemplo: for (idc = 0; idc<5; idc++) { cout << nota[idc] << off by << max – nota[idc] << endl; } Variável de controle do loop (idc) conta de 0 até 5

11 Pearson Education Slide 11 Vetor: Armadilha Os índices do vetor sempre começam com 0! Zero é o primeiro número para os cientistas da computação C++ permitirá que você vá além do limite Resultados imprevisíveis O compilador não detecta esses erros! O programador : é responsável por ficar dentro do limite

12 Pearson Education Slide 12 Exemplo de Vetor: Armadilha Os índices vão de 0 até (tamanho_declarado – 1) Exemplo: double temperatura[24]; // 24 é o tamanho // Declara um vetor de 24 valores double chamado temperatura Eles estão indexados como: temperatura[0], temperatura[1] … temperatura[23] Erro comum: temperatura[24] = 5; O índice 24 está fora da escala! Nenhum aviso e o resultado poderá ser desastroso

13 Pearson Education Slide 13 Constante Definida como Tamanho de Vetor Sempre utilize uma constante definida para o tamanho do vetor Exemplo: const int NUMERO_DE_ALUNOS = 5; int nota[NUMERO_DE_ALUNOS]; Melhora a legibilidade Melhora a versatilidade Torna fácil a manutenção

14 Pearson Education Slide 14 Uso de Constante Definida Utilize sempre que o tamanho do vetor for necessário Em um loop for: for (idc = 0; idc < NUMERO_DE_ALUNOS; idc++) { // Manipular o vetor } Em cálculos envolvendo tamanho: lastIndex = (NUMERO_DE_ALUNOS – 1); Quando passar vetores para funções Se o tamanho muda requer só UMA mudança no programa!

15 Pearson Education Slide 15 Vetores na Memória Recordando variáveis simples: Alocadas na memória em um endereço Declarações de vetor alocam memória para o vetor inteiro Alocação seqüencial Significa endereços alocados um depois do outro Permite cáclulos indexados A adição do vetor é simples começando do (índice 0)

16 Pearson Education Slide 16 Um Vetor na Memória Painel 5.2 página 121

17 Pearson Education Slide 17 Inicializando Vetores As variáveis simples podem ser inicializadas na declaração: int preco = 0;// 0 é o valor inicial Vetores também podem : int criancas[3] = {2, 12, 1}; Eqüivalente a: int criancas[3]; criancas[0] = 2; criancas[1] = 12; criancas[2] = 1;

18 Pearson Education Slide 18 Auto-Inicialização de Vetores Se menos valores que o tamanho fornecido: Preenche do começo Preenche o resto com zero do tipo base do vetor Se o tamanho do vetor for omitido Declare o vetor como tamanho baseado no número de valores de inicialização Exemplo: int b[] = {5, 12, 11}; Aloca o vetor b para o tamanho de 3

19 Pearson Education Slide 19 Vetores em Funções Como argumentos para funções variáveis indexadas Um elemento individual de um vetor pode ser parâmetro de um função Vetores completos Todos os elementos do vetor podem ser passados como uma entidade Como valor retornado de uma função Pode ser feito capítulo 10

20 Pearson Education Slide 20 Variáveis Indexadas como Argumentos Variável indexada é manipulada como uma variável de tipo-base do vetor Dada a declaração de função : void minhaFuncao (double par1); E essas declarações: int i; double n, a[10]; Podemos fazer essas chamadas: minhaFuncao(i);// i é convertido para double minhaFuncao(a[3]);// a[3] é double minhaFuncao(n);// n é double

21 Pearson Education Slide 21 Sutileza da Indexação Considere: minhaFuncao(a[i]); O valor de i é determinado primeiro Determina qual variável indexada é enviada minhaFuncao(a[i*5]); Perfeitamente Legal, do ponto de vista do compilador O programador é o responsável por permane- cer dentro dos limites do vetor

22 Pearson Education Slide 22 Vetores Completos como Argumentos Parâmetro formal pode ser um vetor completo O argumento passado na chamada de função é o nome do vetor Chamado parâmetro vetorial Também envia o tamanho do vetor Como um segundo parâmetro Parâmetro formal tipo int

23 Pearson Education Slide 23 Exemplo de Vetor Completo como Argumento Painel 5.3 página 133

24 Pearson Education Slide 24 Exemplo de Vetor Inteiro como Argumento Dado o exemplo anterior: Em alguma definição de função main(), considere essas chamadas: int nota[5], numeroDeNotas = 5; preenche(nota, numeroDeNotas); 1 o argumento é um vetor completo 2 o argumento é um inteiro Nenhum colchetes no argumento vetorial!

25 Pearson Education Slide 25 Vetor como Argumento: Como? O que realmente é passado? Pense no vetor como 3 partes Endereço da primeira variável indexada (arrName[0]) Tipo-base de vetor Tamanho do vetor Somente a 1 a parte é passada! Exatamente o endereço inicial do vetor Muito parecido com passar por referência

26 Pearson Education Slide 26 Parâmetros Vetoriais Pode parecer estranho Nenhum colchetes no argumento vetorial! Precisa enviar o tamanho separadamente! Uma propriedade legal: Podemos usar a mesma função para preencher um vetor de qualquer tamnho Isso é um exemplo das propriedades de reutilização das funções Exemplo: int nota[5], tempo[10]; preenche(nota, 5); preenche (tempo, 10);

27 Pearson Education Slide 27 O Parâmetro Modificador const Lembre-se: O parâmentro vetorial atual- mente passa o endereço do 1 o elemento Parecido com passar por referência A função pode então modificar o vetor! Freqüentemente desejado, algumas vezes não! Proteje o conteúdo do vetor contra modificações Utilize o modificador const antes do parâmetro vetorial Chamado parâmentro vetorial constante Diz ao compilador para não permitir modificações

28 Pearson Education Slide 28 Funções que Retornam um Vetor Funções não podem retornar um vetor da mesma forma que retornam um valor de tipo int ou double Isso requer o uso de um ponteiro Será discutido no capítulo 10…

29 Pearson Education Slide 29 Programando como Vetores Muitas utilidades Vetores parcialmente preenchidos Deve ser declarado algum tamanho máximo Ordenação Busca

30 Pearson Education Slide 30 Vetores Parcialmente Preenchidos Difícil saber o tamanho exato necessário Declarar o vetor com o maior tamanho possível Precisa guardar o caminho do dado válido no vetor É necessário uma variável para caminho int numeroUsado; Segue o número atual de elementos em um vetor

31 Pearson Education Slide 31 Exemplo de Vetores Parcialmente Preenchidos Painel 5.5 página 133

32 Pearson Education Slide 32 Constantes Globais vs. Parâmetros Constantes tipicamente globais Declaradas acima de main() Funções então têm escopo para a constante de tamanho do vetor Não é necessário então enviar como parâmetro? Tecnicamente sim O que deveríamos fazer de qualquer jeito? A definição de função talvez em arquivo separado A função talvez usada por outros programas

33 Pearson Education Slide 33 Busca em um Vetor Uso muito comum de vetores Painel 5.6 no próximo slide

34 Pearson Education Slide 34 Busca em um Vetor (Cont) Painel 5.6 página 135

35 Pearson Education Slide 35 Busca em um Vetor (Cont) Painel 5.6 página 136

36 Pearson Education Slide 36 Ordenando um Vetor Algorítmo de Ordenação por Seleção Painel 5.7 página 137

37 Pearson Education Slide 37 Exemplo de Ordenação de um Vetor Painel 5.8 página 137

38 Pearson Education Slide 38 Exemplo de Ordenação de um Vetor (cont) Painel 5.8 página 138

39 Pearson Education Slide 39 Exemplo de Ordenação de um Vetor (cont) Painel 5.8 página 139

40 Pearson Education Slide 40 Vetores Multidimensionais Vetores com mais de um índice char pagina[30][100]; Dois índices: um vetor de vetores Visualize as: pagina[0][0], pagina[0][1], …, pagina[0][99] pagina[1][0], pagina[1][1], …, pagina[1][99] … pagina[29][0], pagina[29][1], …, pagina[29][99] C++ permite qualquer número de índices Comumente não mais que 2

41 Pearson Education Slide 41 Parametros Vetoriais Multidimensionais Semelhante a um vetor de uma dimensão 1 a dimensão não dada Fornecida como segundo parâmetro 2 a dimensão é dada Exemplo: void mostraPagina(const char p[][100], int tamanhoDimensao1) { for (int indice1=0; indice1<tamanhoDimensao1; indice1++) { for (int indice2=0; indice2 < 100; indice2++) cout << p[indice1][indice2]; cout << endl; } }

42 Pearson Education Slide 42 Sumário 1 Vetor é uma coleção de dados do mesmo tipo Variáveis indexadas de vetor usadas exata- mente como qualquer outra variável Loop for é uma boa forma de se percorrer os ítens de um vetor O Programador é o responsável por permane- cer dentro dos limites do vetor Parâmentro vetorial é um novo tipo Parecido com passar por referência

43 Pearson Education Slide 43 Sumário 2 Elementos armazenados seqüencialmente Porções adjacentes de memória Somente o endereço do 1 o elemento é Passado às funções Vetores parcialmente preenchidos mais uma varíavel para controlar quando o vetor é usado Parâmetro vetorial constante Previne modificações no conteúdo do vetor Vetores Multidimensionais Cria vetor de vetores


Carregar ppt "Pearson Education Slide 1. Pearson Education Slide 2 Cap í tulo 5 Criado por Frederick H. Colclough, Colorado Technical University Vetores."

Apresentações semelhantes


Anúncios Google