Buscar

ECT1203 - Aula09 - 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 29 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 29 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 29 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 
 
 
 
Prof. Luiz Eduardo Cunha Leite 
 
Aula 09 – 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 >> 17; 
 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; 
} 
Problemas semelhantes na ciência e 
engenharia 
• Redes de sensores 
• Processamento de sinais 
• Matemática (vetores) 
• Controlar múltiplos programas 
 
• Conjunto de informações 
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 referenciada 
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 
variável vetor 
Organização da Memória do Computador 
01 
02 
03 
04 
05 
... 
01 
02 
03 
04 
05 
... 
Declaração de vetores 
 float dados[40]; 
tipo nome[número de elementos]; 
Declaração de um vetor 
chamado dados para 
guardar 40 números reais 
O valor que dimensiona o vetor deve ser 
uma constante inteira. 
Acessando os elementos de um vetor 
• Para acessar o elemento de um vetor, devemos 
especificar a sua posição: 
dados[8] 
• A posição do vetor é determinada por meio de um 
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 5 6 7 8 37 38 39 
6.5 7,8 5.3 
dados 
9.8 9.1 4.7 7,8 7.8 3.6 2.4 9.8 1.5 2.8 4.6 ... 
Atribuindo valores 
dados[2] = 2.9; 
cin >> dados[2]; 
O índice do primeiro elemento de um vetor é zero. 
float dados[40]; 
 tamanho do vetor 
dados[2] = 2.9; 
 índice do elemento 
dados[2] = dados[0] + dados[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 só é capaz de armazenar 
UMA informação por vez. 
• Os vetores, porém, armazenam diversas 
informações. 
• Comandos de repetição podem ser utilizados para 
armazenar informações em um vetor? 
int i, dados[3]; 
for (i=0 ; i<3 ; i++){ 
 cin >> dados[i]; 
} 
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 
Faça um programa que receba do usuário dois 
vetores com n (n <= 50) componentes cada um, 
calcular e imprimir a soma deles. 
Exercício 2 
Faça um programa que receba do usuário um vetor 
com n (n <= 20) números e informe se existe algum 
elemento repetido no mesmo. Se não forem 
encontrados números repetidos, a mensagem “Sem 
repetições” deve ser exibida. 
Exercício 3 
Faça um programa que receba do usuário 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üênciade 
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