Buscar

Aula19 - Vetores

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

ECT1203 Linguagem de Programação 
2014.2 
Prof. Caroline Rocha 
 
Aula 19– Vetores 
Universidade Federal do Rio Grande do Norte 
Escola de Ciências e Tecnologia 
Hora de silenciar o celular 
• Manter o celular sempre desligado/silencioso quando 
estiver em sala de aula 
• Nunca atender o celular em sala de aula 
int main(){ 
 float n1, n2, n3, n4, media; 
 cout << "Entre com a nota 1: "; 
 cin >> n1; 
 cout << "Entre com a nota 2: "; 
 cin >> n2; 
 cout << "Entre com a nota 3: "; 
 cin >> n3; 
 cout << "Entre com a nota 4: "; 
 cin >> n4; 
 media = (n1 + n2 + n3 + n4)/4; 
 cout << "Media: " << media << endl; 
 return 0; 
} 
int main(){ 
 float n1, n2, n3, n4, n5, n6, n7, n8, n9, n10; 
 float n11, n12, n13, n14, n15, n16, n17, n18; 
 float n19, n20, n21, n22, n23, n24, n25, media; 
 cout << "Entre com a nota 1: "; cin >> n1; 
 cout << "Entre com a nota 2: "; cin >> n2; 
 cout << "Entre com a nota 3: "; cin >> n3; 
 cout << "Entre com a nota 4: "; cin >> n4; 
 cout << "Entre com a nota 5: "; cin >> n5; 
 cout << "Entre com a nota 6: "; cin >> n6; 
 cout << "Entre com a nota 7: "; cin >> n7; 
 cout << "Entre com a nota 8: "; cin >> n8; 
 cout << "Entre com a nota 9: "; cin >> n9; 
 cout << "Entre com a nota 10: "; cin >> n10; 
 cout << "Entre com a nota 11: "; cin >> n11; 
 cout << "Entre com a nota 12: "; cin >> n12; 
 cout << "Entre com a nota 13: "; cin >> n13; 
 ... 
 
 cout << "Entre com a nota 14: "; cin >> n14; 
 cout << "Entre com a nota 15: "; cin >> n15; 
 cout << "Entre com a nota 16: "; cin >> n16; 
 cout << "Entre com a nota 17: "; cin >> n17; 
 cout << "Entre com a nota 18: "; cin >> n18; 
 cout << "Entre com a nota 19: "; cin >> n19; 
 cout << "Entre com a nota 20: "; cin >> n20; 
 cout << "Entre com a nota 21: "; cin >> n21; 
 cout << "Entre com a nota 22: "; cin >> n22; 
 cout << "Entre com a nota 23: "; cin >> n23; 
 cout << "Entre com a nota 24: "; cin >> n24; 
 cout << "Entre com a nota 25: "; cin >> n25; 
 media = (n1+n2+n3+n4+n5+n6+n7+n8+n9+n10+n11 
 +n12+n13+n14+n15+n16+n17+n18+n19+n20 
 +n21+n22+n23+n24+n25)/25; 
 cout << "Media: " << media << endl; 
 return 0; 
} 
Resolvendo o problema com vetores 
int main() { 
 float notas[25], media; 
 int i; 
 for(i=0;i<25;i++) { 
 cout << "Entre com a nota "<< i+1 <<": "; 
 cin >> notas[i]; 
 } 
 media = 0; 
 for(i=0;i<25;i++) { 
 media = media + notas[i]; 
 } 
 media = media/25; 
 cout << "Media: "<< media << endl; 
 return 0; 
} 
Objetivo da aula 
Apresentar vetores em C++: 
 Motivação para utilização de vetores 
 Declaração de vetores 
 Exemplos de utilização de vetores 
Vetor 
• Coleção de variáveis do mesmo tipo referenciadas 
por um nome comum 
• Matriz unidimensional 
• Também chamado de Array ou Lista 
• Os elementos de um vetor são armazenados em 
posições contíguas na memória 
• Cada elemento é acessado por meio de um índice 
Declaração de vetores 
 float notas[40]; 
tipo nome[número de elementos]; 
O valor que dimensiona o vetor deve ser 
uma constante inteira. 
Declaração de um vetor 
chamado notas para 
guardar 40 números reais: 
 
Acessando os elementos de um vetor 
notas[4] 
• Para acessar o elemento de um vetor, devemos 
especificar a sua posição. 
• A posição do vetor é dada pelo número inteiro entre 
colchetes: uma constante, uma expressão aritmética ou 
uma variável entre colchetes. 
• Também chamada de índice. 
 0 1 2 3 4 37 38 39 
notas 
2.4 
Índices: 
9.6 0.3 7.1 5.5 4.2 8.7 8.0 … 
Atribuindo valores 
notas[2] = 2.9; cin >> notas[i]; 
O índice do primeiro elemento de um vetor é zero. 
float dados[40]; 
 tamanho do vetor 
dados[2] = 2.9; 
 índice do elemento 
notas[2] = notas[0] + notas[1]; 
Exercício 
Considere o vetor v a seguir e as variáveis x=3 e y=2. 
Escreva o valor correspondente às solicitações abaixo: 
 
 
 
 0 1 2 3 4 5 6 7 8 9 10 11 
6 7,8 5 
v 
4 2 4 7,8 5 3 2 2 1 2 6 
(a) v[x+1] (b) v[x+2] (c) v[x+3] (d) v[x+4] 
 
(e) v[x*1] (f) v[x*2] (g) v[x*3] (h) v[v[x+4]] 
 
(i) v[x+y] (j) v[8-v[2]] (k) v[v[4]] (l) v[v[v[7]]] 
 
(m) v[v[1]*v[4]] (n) v[x+4] 
Quanto espaço um vetor ocupa? 
Total de bytes = sizeof(tipo) * tamanho do vetor 
char s[10]; 
total_de_bytes = sizeof(char)*10; 
total_de_bytes = sizeof(s); 
int x[4]; 
total_de_bytes = sizeof(int)*4; 
total_de_bytes = sizeof(x); 
Vetores e as estruturas de repetição 
• O comando de atribuição é capaz de armazenar somente 
UMA informação por vez. 
• Os vetores, porém, armazenam diversas informações. 
• Como armazenar informações em um vetor de maneira 
automática? 
int i, dados[5]; 
for (i=0; i<5; i++){ 
 cin >> dados[i]; 
} 
Usando 
estruturas de 
repetição! 
Qual o erro deste programa? 
int main() { 
 float notas[10], media; 
 int i; 
 for(i=1; i<=10; i++) { 
 cout << "Entre com a nota " << i << ": "; 
 cin >> notas[i]; 
 } 
 media = 0; 
 for(i=1; i<=10; i++) { 
 media = media + notas[i]; 
 } 
 media = media/10; 
 cout << "Media: " << media << endl; 
 return 0; 
} 
Resposta: 
1. O índice do primeiro elemento é zero. 
2. O vetor tem tamanho 10, portanto não 
existe elemento de índice 10. 
A linguagem C++ não realiza verificação de limites de vetores. 
 
Acesso a posições inválidas pode sobrepor dados da memória! 
Inicializando vetores 
//Programa que calcula o total de dias transcorridos no ano 
int main() { 
 int dmes[12] = {31,28,31,30,31,30,31,31,30,31,30,31}; 
 int dia, mes, ano; 
 char ch; 
 cout << "Digite a data (DD/MM/AAAA): "; 
 cin >> dia >> ch >> mes >> ch >> ano; 
 
 mes--; 
 if(ano%4==0 && ano%100!=0 || ano%400==0) 
 dmes[1] = 29; 
 
 int total = dia; 
 for(int i=0; i<mes; i++) 
 total += dmes[i]; 
 cout << "Total de dias transcorridos: "<< total << endl; 
 return 0; 
} 
Inicializando vetores 
float notas[3]; 
notas = {4.5, 7.0, 8.2}; 
Exercício 1 
Dados dois vetores com n (n <= 50) componentes 
cada um, calcular e imprimir a soma deles. 
Exercício 2 
Leia um conjunto com n (n <= 20) números e informe 
se existe algum elemento repetido no conjunto. 
Exercício 3 
Leia n (n <= 30) números quaisquer e imprima-os 
sem repetições. 
Exemplo: 
 Entrada: 1,1,3,4,3,5,-8 
 Saída: 1,3,4,5,-8 
Exercício 4 
Dadas duas seqüências com n (n <= 100) números 
inteiros entre 0 e 9, interpretadas como dois números 
inteiros de n algarismos, calcular a seqüência de 
números que representa a soma dos dois inteiros. 
Exemplo: 
 n = 8 
1ª seqüência 8 2 4 3 4 2 5 1 
2ª seqüência + 3 3 7 5 2 3 3 7 
 = 1 1 6 1 8 6 5 8 8 
Exercício 5 
Faça um programa para imprimir as n (n <= 100) 
primeiras linhas do triângulo de Pascal usando apenas 
um vetor, com o valor de n fornecido pelo usuário. 
Triângulo de Pascal para n = 6: 
1 
1 1 
1 2 1 
1 3 3 1 
1 4 6 4 1 
1 5 10 10 5 1

Outros materiais