Exercício 1 – Faça um programa que leia uma nota e mostra na tela se o aluno foi aprovado (nota >=6) ou reprovado. Seu programa de repeBr enquanto a nota digitada for menor igual a 10. Ao final o programa deve mostrar: • a média total das notas • a quanBdade de alunos aprovados • a quanBdade de alunos reprovados. • E se eu quisesse mostrar a nota de todos os alunos abaixo da média? Introdução • Até agora as variáveis apresentadas eram unitárias: – elementos únicos pertencentes a determinados conjuntos (Bpos). • O problema desta abordagem ocorre: – ao lidar com muitos valores simultaneamente. – Exemplo: • Para armazenar as notas de um conjunto de 100 alunos seriam necessárias 100 variáveis. • Dessa forma, a elaboração de um algoritmo pode ser tornar inviável. 3 Vetores • São uBlizados para armazenar um conjunto de dados, cujos elementos podem ser acessados por um único índice. • Vetores são matrizes com apenas uma dimensão. • Podemos ter vetores inteiros, reais, lógicos e literais. 4 Vetores • Exemplo: supondo que as notas de 10 alunos estejam armazenadas em uma variável composta idenBficada por nota, o vetor teria a seguinte representação: nota 0 1 2 3 4 5 6 7 8 9 62 70 90 60 75 91 100 50 78 80 • OBS.: Em C, os índices sempre começam em 0 (zero). 5 Vetores • nota 0 1 2 3 4 5 6 7 8 9 62 70 90 60 75 91 100 50 78 80 • Para referenciar o quarto elemento desta variável: • nota[3] • o conteúdo armazenado nesta posição é 60 e o índice é a constante inteira 3. 6 Vetores nota 0 1 2 3 4 5 6 7 8 9 62 70 90 60 75 91 100 50 78 80 • UBlizando-­‐se a variável i como índice de uma nota, pode-­‐se ter acesso a qualquer uma das notas armazenadas através da notação: – nota[i] • Se i=5 – nota[i] é igual a nota[5], cujo valor é 91. 7 Exemplo nota 0 1 2 3 4 5 6 7 8 9 60 70 90 60 75 91 100 50 78 80 6 7 8 9 • Quanto vale nota[7] ? • O que faz nota[3]=1000? • O que acontece no código abaixo? i=4; nota[i] = nota[i] + 4; 0 nota 1 2 3 4 5 Exemplo nota 0 1 2 3 4 5 6 7 8 9 60 70 90 60 75 91 100 50 78 80 • Como eu faço para pegar o valor 80? • O que acontece no código abaixo? for(i=1;i<10;i=i+1) nota[i]=nota[i-­‐1]+10; 0 nota 1 2 3 4 5 6 7 8 9 CUIDADO!!! nota • • • • 0 1 2 3 4 5 6 7 8 9 60 70 90 60 75 91 100 50 78 80 nota[-­‐1] ? nota[-­‐2] ? nota[10] ? nota[100] ? Vetores • Exemplo de declaração: int vetor[5]; Vetor de inteiros com 5 posições (índices de 0 a 4) Tamanho do Vetor vetor vetor[0]=60 0 1 2 3 4 vetor[1]=70 60 70 90 60 75 vetor[2]=90 vetor[3]=60 vetor[4]=75 11 Vetores – Problema exemplo: • Problema: calcular a média de uma turma com 10 alunos e imprimir a quanBdade de notas acima da média calculada. 12 Resolução 1: sem vetores main() { int A, B, C, D, E, F, G, H, I, J, NotaAcima; float Media; NotaAcima = 0; scanf(“%d %d %d %d %d %d %d %d %d %d”, &A, &B, &C, &D, &E, &F, &G, &H, &I, &J); Media = (A+B+C+D+E+F+G+H+I+J)/10; if (A > Media) { NotaAcima = } if (B > Media) { NotaAcima = } if (C > Media) { NotaAcima = } if (D > Media) { NotaAcima = } NotaAcima + 1; NotaAcima + 1; NotaAcima + 1; NotaAcima + 1; } if (E > Media) { NotaAcima = NotaAcima } if (F > Media) { NotaAcima = NotaAcima } if (G > Media) { NotaAcima = NotaAcima } if (H > Media) { NotaAcima = NotaAcima } if (I > Media) { NotaAcima = NotaAcima } if (J > Media) { NotaAcima = NotaAcima } printf (“notas acima=%d”, NotaAcima); + 1; + 1; + 1; + 1; + 1; + 1; 13 Resolução 2: com vetores main() { int vetor[10]; float Soma, Media; int NotaAcima, x; Soma = 0; NotaAcima = 0; for(x =0; x<10; x = x+1) scanf (“%d”, &vetor[x]); for(x =0; x<10; x = x+1) Soma = Soma + vetor[x]; Media = Soma / 10; for(x =0; x<10; x = x+1) if (vetor[x] > Media) NotaAcima = NotaAcima + 1; printf (“notas acima=%d”,NotaAcima); } 14 Exercício 1 – Faça um programa que leia 20 números reais e armazene-­‐os em um vetor com tamanho igual a 20 e em seguida mostre todos os números na tela. 15 Exercício 2 – Faça um programa que leia 20 notas e mostra na tela se o aluno foi aprovado (nota >=6) ou reprovado. Ao final o programa deve mostrar: – a média total das notas – a nota de todos os alunos acima da média da turma. Exercício 3 -­‐ Escreva um algoritmo que leia um vetor com 100 números inteiros e ainda um número inteiro k. O algoritmo deve apresentar como resultado o número de ocorrências de k no vetor lido. 17