Prévia do material em texto
INTRODUÇÃO A LINGUAGEM DE PROGRAMAÇÃO Prof.: Danilo Coimbra (coimbra.danilo@ufba.br) Danilo Peleteiro (dan.pltr@gmail.com) 2018 -1 Vetores 1 Introdução “As maneiras de organizar a informação são limitadas: aprenda as formas, procure variantes e começará a fazer ligações e opções que levam a compreensão.” Richard Saul Wurman É importante conhecer as diversas estruturas de dados para aplicar, a cada situação, a estrutura mais adequada para atingir da melhor maneira os resultados esperados 2 Introdução Para determinadas situações faz-se necessário armazenar valores em estrutura de dados específicas a fim de resolver um determinado problema Exemplos? Uma variável ou uma mesma posição de memória pode guardar vários valores de um mesmo tipo? 3 Vetores - Definição Uma das estruturas mais simples para armazenar valores/variáveis de um mesmo tipo Também chamado de array Definições Um vetor é um conjunto de elementos de um mesmo tipo que são acessados e referenciados individualmente Por meio de uma posição de índices É uma variável composta (formada por um número finito de variáveis) homogênea (possuem um mesmo tipo) unidimensional (possui apenas uma dimensão) 4 Vetores - Sintaxe Um vetor é declarado utilizando a seguinte sintaxe: Tipo de dado Identificador [n]; Tipo de dado: int, float, ... Identificador: nome [n]: quantidade Exemplo: int idades [5]; 5 Vetores - Representação vetor “idades” Como responder as seguintes perguntas? Há alguma pessoa com idade acima de 60 anos? Há alguma pessoa com 41 anos de idade? Com 31? 6 35 24 46 31 21 0 1 2 3 4 posição Valores (idades) Tamanho do vetor é 5 Primeiro índice Vetores - Representação vetor “idades” Não confundir o índice que aponta para uma posição no vetor, com o conteúdo de uma posição do vetor Ex.: idades[2] tem como resultado 46 7 35 24 46 31 21 0 1 2 3 4 posição Valores (idades) Tamanho do vetor é 5 Primeiro índice Vetores Declarando vetor Exemplos int a[2]; double resultados[4*x]; int m=14; float valores[m]; 8 Vetores Antes Como armazenar 100 notas? 9 float nota1, nota2, nota3, …, nota99, nota100; cin >> nota1; cin >> nota2; /* ... */ cin >> nota100; cin >> nota1 >> nota2 >> … >> nota100; Vetores Antes Como armazenar 100 notas? É possível otimizar a leitura? Como? 10 float notas[100]; cin >> notas[0]; cin >> notas[1]; /* ... */ cin >> notas[99]; //ou cin >> nota1 >> nota2 >> … >> nota100; Vetores Depois Como armazenar 100 notas? 11 float notas[100]; int i; for(int i=0; i<=99; i++){ cin >> notas [i]; } Vetores Como acessar valores de um vetor? 12 int vetor[2]; vetor[0]=4; vetor[1]=5; _____________ int indice =2; vetor[indice] = 100; _____________ vetor[3*indice] = vetor[2]*2; _____________ char v[6] = {‘M’,’A’,’T’,’A’,’3’,’7’}; Vetores Como acessar valores de um vetor? 13 int valores[] = {3,5,7}; //detecta automaticamente a quantidade ______________ int valores[5] = {2,4,6}; //mesmo que int valores[5] = {2,4,6,0,0}; ______________ int valor; int vetor[5]; valor = vetor[0]; //errado Vetores - Exercício 1 Par ou ímpar Descrição Dada a sequência de n números, imprimir as posições ímpares e pares da mesma. Entrada A primeira linha contém um inteiro n (0 <= n <= 1000), representando a quantidade de elementos da sequência. A segunda linha contém n inteiros. Saída A primeira linha deve conter os números de posição par na sequência do vetor, separados por espaço, na ordem em que foram dados. A segunda linha deve conter os números de posição ímpar na sequência, separados por espaço, na ordem em que foram dados. 14 Vetores - Exercício 1 Resposta 15 #include <iostream> using namespace std; int main(){ int a[1000]; int i, n; // Lê a quantidade de elementos cin >> n; // Lê n elementos for(i = 0; i < n; i++) { cin >> a[i]; } // Imprime as posições pares for(i = 0; i < n; i += 2) { cout << a[i]<< " "; } cout << endl; // Imprime as posições ímpares for(i = 1; i < n; i += 2) { cout << a[i]<< " "; } cout << endl; return 0; } Vetores - Exercício 2 Quadrado dos n números inteiros Descrição Armazenar em um vetor o quadrado dos 100 primeiros números inteiros positivos Entrada Saída Deve ser impresso uma única linha contendo os valores, separados por espaço 16 Vetores - Exercício 2 Resposta 17 #include <iostream> using namespace std; int main(){ int i, quad[100]; for(i = 0; i < 100; i++) { quad[i]= i * i; } // Imprime os quadrados for(i = 0; i < 100; i ++) { cout << quad[i]<< " "; } cout << endl; return 0; }