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

Slides:



Advertisements
Apresentações semelhantes
Pearson Education Slide 1. Pearson Education Slide 2 Cap í tulo 11 Criado por Frederick H. Colclough, Colorado Technical University Compilação Separada.
Advertisements

Pearson Education Slide 1. Pearson Education Slide 2 Cap í tulo 13 Criado por Frederick H. Colclough, Colorado Technical University Recursão.
Pearson Education Slide 1. Pearson Education Slide 2 Cap í tulo 12 Criado por Frederick H. Colclough, Colorado Technical University E/S de Arquivo e Streams.
Pearson Education Slide 1. Pearson Education Slide 2 Cap í tulo 8 Criado por Frederick H. Colclough, Colorado Technical University Sobrecarga de Operador,
Pearson Education Slide 1. Pearson Education Slide 2 Cap í tulo 9 Criado por Frederick H. Colclough, Colorado Technical University Strings.
Pearson Education Slide 1. Pearson Education Slide 2 Cap í tulo 19 Criado por Frederick H. Colclough, Colorado Technical University Standard Template.
Pearson Education Slide 1. Pearson Education Slide 2 Cap í tulo 10 Criado por Frederick H. Colclough, Colorado Technical University Ponteiros e Vetores.
Pearson Education Slide 1. Pearson Education Slide 2 Cap í tulo 17 Criado por Frederick H. Colclough, Colorado Technical University Estruturas de Dados.
03/08/2011 Professor Leomir J. Borba- –
Nivelamento de C: Vetores e Strings
Programação II Estruturas de Dados
Programação II Estruturas de Dados
Pearson Education Slide 1. Pearson Education Slide 2 Cap í tulo 3 Criado por Frederick H. Colclough, Colorado Technical University Fundamentos das Funções.
Pearson Education Slide 1. Pearson Education Slide 2 Cap í tulo 14 Criado por Frederick H. Colclough, Colorado Technical University Herança.
Pearson Education Slide 1. Pearson Education Slide 2 Capítulo 2 Criado por Frederick H. Colclough, Colorado Technical University Fluxo de Controle.
Introdução a Programação
1 Tipos definidos O programador pode definir seus próprios tipos de dados tipos complexos usados da mesma forma que os simples declaram-se variáveis utilizando-se.
Programação II Estruturas, uniões e enumerações
Linguagem C LPG-I – Variáveis Estruturadas – Vetores
UDESC - Prof. Juliano Maia
Linguagem de Programação 1
Ponteiros em C.
LPG - I: Ponteiros e Vetores/Matrizes UDESC - SBS
Vetores, Matrizes e Funções
Matrizes e Funções - Continuação
Ponteiros.
VETORES, STRINGS E MATRIZES
Sobrecarga de nomes de rotinas Rotinas recursivas Invocação de rotinas
APRESENTAÇÃO: GIANCARLO DE GUSMÃO GONÇALVES CURSO DE C AULA 08: Tipos Estruturados.
Vetores e Matrizes Laboratório de ICCN Marco Antonio Montebello Júnior
Introdução a Computação e Cálculo Numérico
Vetores em c / c++: Formato geral para declaração de variáveis:
Ponteiros Variáveis do tipo “ponteiro” armazenam endereços de memória
Aula prática 6 Vetores e Matrizes
Curso de Nivelamento LCG
UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL INTRODUÇÃO À ALGORITMOS Professora: Fabíola Gonçalves.
CADEIA DE CARACTERES (Strings)
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Introdução ao uso de vatores na linguagem PASCAL.
UNIDADE 5 ESTRUTURAS DE DADOS HOMOGÊNEAS
7 Arrays.
Paradigmas e Ferramentas de Desenvolvimento de Software – Revisão da linguagem C++ Lúbia Vinhas DPI - INPE.
Aula 3 Igor Ebrahim (ies) if669 - Introdução à Programação Monitoria de IP.
Vetores e Matrizes Ameliara Freire
JAVA Orientação a Objetos Sun Campus Ambassador Aula 5.
Oficinas de Desenvolvimento de Software
Algoritmos - Profa. Alciléia1 Profa. Maria Alciléia Alves Rocha Funções em C 2011.
Joaquim José Hangalo  Podemos entender a memória do computador como um conjunto de células que armazenam informações.  Cada célula.
Tipos de dados inteiro caracter real logico
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação Versão: _01.
Estruturas Revisando: tipos de dados simples
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação Versão: _01.
CES-10 INTRODUÇÃO À COMPUTAÇÃO
Usando vetor e matriz em java
Algoritmos e Programação MC102 Prof. Paulo Miranda IC-UNICAMP Aula 15 Ponteiros.
Pearson Education Slide 1. Pearson Education Slide 2 Cap í tulo 16 Criado por Frederick H. Colclough, Colorado Technical University Templates (Gabaritos)
Programação Computacional Aula 9: Meu primeiro programa em C
PROGRAMAÇÃO II – PARTE 6 Profa. Maria Augusta Constante Puget.
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula /08/2011 Professor Leomir J. Borba-
 O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.
Tipos de dados básicos em C++ –Formato geral para declaração de variáveis: ; = ;,,... ; =, = ; –O elemento da declaração indica o tipo de dado usado para.
Aula Prática 6 Vetores e Matrizes Monitoria
Algoritmos e Programação MC102 Prof. Paulo Miranda IC-UNICAMP Aula 15 Funções.
Programação Orientada a Objetos para Redes de Computadores Prof. Miguel Elias Mitre Campista POO para Redes de Computadores.
Linguagem de Programação
Arrays e Matrizes na Linguagem C Prof. Kariston Pereira Adaptado de Material gentilmente fornecido pelo Prof. Rui Tramontin (DCC/UDESC)
1 Programação – JAVA Unidade - 4 Arrays e Strings Prof. Aparecido V. de Freitas Mestre e Doutorando em Engenharia da Computação pela EPUSP.
Arrays Outline 7.1 Introdução 7.2 Arrays 7.3 Declarando e Criando Arrays 7.4 Exemplos usando arrays 7.5 Ordenando arrays 7.6 Procurando em.
PCI- Vetores Profa. Mercedes Gonzales Márquez. Aula 5 - VetoresAlgoritmos e Estruturas de Dados I Sequência de valores todos do mesmo tipo Nome único.
Aula Prática 6 Ponteiros Monitoria  Quando declaramos uma matriz:  tipo meuArray[tam];  O compilador aloca a matriz em uma região de memória.
Transcrição da apresentação:

Pearson Education Slide 1

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

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

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

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)

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]

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

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

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

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

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

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

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

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!

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)

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

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;

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

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

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

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

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

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

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!

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

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);

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

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…

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

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

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

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

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

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

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

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

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

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

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

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

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; } }

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

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