Buscar

Aula04-Exercícios-Vetores (1)

Prévia do material em texto

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?	
  
3	
  
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.	
  
4	
  
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.	
  
5	
  
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:	
  
•  OBS.:	
  Em	
  C,	
  os	
  índices	
  sempre	
  começam	
  em	
  0	
  
(zero).	
  
62 
0 
70 
1 
90 
2 
60 
3 
75 
4 
91 
5 
100 
6 
50 
7 
78 
8 
80 
9 
nota 
6	
  
Vetores	
  
•  	
  	
  
•  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.	
  
62 
0 
70 
1 
90 
2 
60 
3 
75 
4 
91 
5 
100 
6 
50 
7 
78 
8 
80 
9 
nota 
7	
  
Vetores	
  
•  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.	
  
62 
0 
70 
1 
90 
2 
60 
3 
75 
4 
91 
5 
100 
6 
50 
7 
78 
8 
80 
9 
nota 
Exemplo	
  
•  Quanto	
  vale	
  nota[7]	
  ?	
  
•  O	
  que	
  faz	
  nota[3]=1000?	
  
•  O	
  que	
  acontece	
  no	
  código	
  abaixo?	
  
i=4;	
  
nota[i]	
  =	
  nota[i]	
  +	
  4;	
  	
  
60 
0 
70 
1 
90 
2 
60 
3 
75 
4 
91 
5 
100 
6 
50 
7 
78 
8 
80 
9 
nota 
0 1 2 3 4 5 6 7 8 9 
nota 
Exemplo	
  
•  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;	
  
60 
0 
70 
1 
90 
2 
60 
3 
75 
4 
91 
5 
100 
6 
50 
7 
78 
8 
80 
9 
nota 
0 1 2 3 4 5 6 7 8 9 
nota 
CUIDADO!!!	
  
•  nota[-­‐1]	
  	
  ?	
  
•  nota[-­‐2]	
  	
  ?	
  
•  nota[10]	
  ?	
  
•  nota[100]	
  ?	
  
60 
0 
70 
1 
90 
2 
60 
3 
75 
4 
91 
5 
100 
6 
50 
7 
78 
8 
80 
9 
nota 
11	
  
Vetores	
  
•  Exemplo	
  de	
  declaração:	
  
int	
  vetor[5];	
   Vetor de inteiros com 5 posições 
(índices de 0 a 4) 
60 
0 
70 
1 
90 
2 
60 
3 
75 
4 
vetor 
vetor[0]=60 
vetor[1]=70 
vetor[2]=90 
vetor[3]=60 
vetor[4]=75 
Tamanho	
  
do	
  Vetor	
  
12	
  
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.	
  	
  
13	
  
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 = NotaAcima + 1; 
 } 
 if (B > Media) { 
 NotaAcima = NotaAcima + 1; 
 } 
 if (C > Media) { 
 NotaAcima = NotaAcima + 1; 
 } 
 if (D > Media) { 
 NotaAcima = NotaAcima + 1; 
 } 
 if (E > Media) { 
 NotaAcima = NotaAcima + 1; 
 } 
 if (F > Media) { 
 NotaAcima = NotaAcima + 1; 
 } 
 if (G > Media) { 
 NotaAcima = NotaAcima + 1; 
 } 
 if (H > Media) { 
 NotaAcima = NotaAcima + 1; 
 } 
 if (I > Media) { 
 NotaAcima = NotaAcima + 1; 
 } 
 if (J > Media) { 
 NotaAcima = NotaAcima + 1; 
 } 
 printf (“notas acima=%d”, 
NotaAcima); 
} 
14	
  
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); 
} 
15	
  
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.	
  
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.	
  
17	
  
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.

Continue navegando