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

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

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ê 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

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

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ê 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

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

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ê 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

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