Buscar

Conceitos adicionais sobre vetores em C

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

23/04/2018 AVA UNINOVE
https://ava.uninove.br/seu/AVA/topico/container_impressao.php 1/13
Conceitos adicionais sobre vetores
em C
APRESENTAR CONCEITOS ADICIONAIS SOBRE VETOR E APLICAR ESSES CONCEITOS UTILIZANDO A
LINGUAGEM C.
AUTOR(A): PROF. DANIEL TREVISAN BRAVO
Inicialização de Vetor
Assim como uma variável simples, um vetor pode ser inicializado no momento de sua declaração. Nesse
caso, os valores iniciais devem ser fornecidos entre chaves e separados por vírgula. O trecho de código a
seguir mostra a declaração e inicialização de um vetor de valores reais.
float moeda[5] = {1.00, 0.50, 0.25, 0.10, 0.05};
Os valores da inicialização são armazenados no vetor a partir da posição 0 na ordem em que são fornecidos.
Por exemplo, o valor 0.10 é armazenado em moeda[3].
Os valores utilizados para a inicialização de vetor devem ser constantes. O uso de variáveis causa erro de
compilação.
 
Exemplo 1
A seguir, apresentamos um exemplo completo de um programa em linguagem C que utiliza inicialização de
vetor. O enunciado é: Criar um programa que leia uma determinada quantia a ser retirada em um caixa
eletrônico e apresente a quantidade mínima de cédulas equivalente. As cédulas são de 50, 20 e 10. Utilizar
sempre que possível cédulas de maior valor. O valor da quantia a ser retirada deve ser múltiplo de 10.
Guardar em um vetor a quantidade de cada cédula. Apresentar os dados do vetor de cédulas na tela.
01 / 12
23/04/2018 AVA UNINOVE
https://ava.uninove.br/seu/AVA/topico/container_impressao.php 2/13
Uso da diretiva #define
A codificação de programas deve ser feita de forma que uma pequena alteração não provoque grandes
mudanças no código. Vamos estudar o seguinte programa, que lê um vetor de 10 valores inteiros e
apresenta os dados do vetor na tela.
1. #include <stdio.h>
2. #include <stdlib.h>
3. main () {
4. // declaracao e inicializacao do vetor de cedulas
5. int cedulas[3] = {50, 20, 10};
6. // vetor que armazena a quantidade de cada cedula
7. int quantidade[3];
8. int i;
9. // leitura da quantia
10. int quantia;
11. printf ("Quantia: ");
12. scanf ("%d", &quantia);
13. // verifica se o valor da quantia é multiplo de 10
14. if (quantia % 10 != 0) {
15. printf ("O valor deve ser multiplo de 10!\n");
16. }
17. else {
18. // calcula a quantia de cada cedula 
19. for (i = 0; i < 3; i++) {
20. quantidade[i] = quantia / cedulas[i];
21. quantia %= cedulas[i];
22. }
23. // apresenta a quantidade de cada cedula na tela
24. for (i = 0; i < 3; i++) {
25. printf ("R$ %d = %d\n", cedulas[i], quantidade[i]);
26. }
27. }
28. system ("PAUSE");
29. }
02 / 12
23/04/2018 AVA UNINOVE
https://ava.uninove.br/seu/AVA/topico/container_impressao.php 3/13
Suponhamos agora que não queremos mais guardar 10 elementos e sim 15. Teríamos que alterar todas as
ocorrências do valor 10 que indica o tamanho do vetor.
Como se trata de um programa pequeno o trabalho não será muito, mas imagina se o programa fosse de
milhares de linhas de código.
A solução para esse problema está no uso de constantes simbólicas para especificar o tamanho do vetor.
Uma vez que o valor da constante simbólica é alterado ele é propagado para todas as suas ocorrências.
1. #include <stdio.h>
2. #include <stdlib.h>
3. main () {
4. int vetor[10]; 
5. int i;
6. for (i = 0; i < 10; i++) { 
7. printf ("Valor[%d]: ", i);
8. scanf ("%d", &vetor[i]);
9. }
10. printf ("\n*** Dados do vetor ***\n");
11. for (i = 0; i < 10; i++) {
12. printf ("%d ", vetor[i]);
13. } 
14. printf ("\n\n");
15. system ("PAUSE");
16. }
1. int vetor[10];
2. 
3. for (i = 0; i < 10; i++)
4. {
5. for (i = 0; i < 10; i++)
6. {
03 / 12
23/04/2018 AVA UNINOVE
https://ava.uninove.br/seu/AVA/topico/container_impressao.php 4/13
Dessa forma, é possível declarar uma constante simbólica utilizando a diretiva #define. Vamos agora usá-la
para declarar uma constante simbólica que corresponde ao tamanho do vetor. Analise a nova versão do
programa.
Nessa nova versão declaramos uma constante simbólica denominada TAM e associamos a ela o valor 10,
que corresponde ao tamanho do vetor. Sempre que quisermos referenciar o tamanho do vetor basta
usarmos o nome da constante. No programa acima, referenciamos o tamanho do vetor nas seguintes linhas:
1. #include <stdio.h>
2. #include <stdlib.h>
3. // constante simbólica que representa o tamanho do vetor
4. #define TAM 10
5. main () {
6. int vetor[TAM]; 
7. int i;
8. for (i = 0; i < TAM; i++) {
9. printf ("Valor[%d]: ", i);
10. scanf ("%d", &vetor[i]);
11. }
12. printf ("\n*** Dados do vetor ***\n");
13. for (i = 0; i < TAM; i++) {
14. printf ("%d ", vetor[i]);
15. } 
16. printf ("\n\n");
17. system ("PAUSE");
18. }
1. int vetor[TAM];
2. for (i = 0; i < TAM; i++) {
3. for (i = 0; i < TAM; i++) {
04 / 12
23/04/2018 AVA UNINOVE
https://ava.uninove.br/seu/AVA/topico/container_impressao.php 5/13
Se quisermos agora modificar o nosso programa para que o vetor armazene 15 elementos basta
modificarmos o valor associado a constante TAM. A alteração ficaria assim:
#define TAM 15
O restante do código não precisa ser alterado.
Exemplo 2
Vamos estudar outro exemplo de utilização de vetor, agora usando constantes para representar o tamanho
do vetor. O enunciado é: Criar um programa que leia três vetores (A, B e C) com 5 elementos inteiros cada.
Construir um vetor D, sendo esse a junção dos três outros vetores. Desta forma, D deve ter o triplo de
elementos dos outros 3 vetores. Apresentar os elementos do vetor D.
05 / 12
23/04/2018 AVA UNINOVE
https://ava.uninove.br/seu/AVA/topico/container_impressao.php 6/13
1. #include <stdio.h>
2. #include <stdlib.h>
3. // declara uma constante para o tamanho dos vetores A, B, C
4. #define TAM_ABC 5
5. // declara uma constante para o tamanho do vetor D
6. #define TAM_D 15
7. main () {
8. // declaração dos vetores
9. int A[TAM_ABC], B[TAM_ABC], C[TAM_ABC], D[TAM_D];
10. int i;
11. // leitura do vetor A
12. printf ("*** Informe os valores do vetor A ***\n");
13. for (i = 0; i < TAM_ABC; i++) {
14. printf ("A[%d]: ", i);
15. scanf ("%d", &A[i]); 
16. }
17. // leitura do vetor B
18. printf ("\n*** Informe os valores do vetor B ***\n");
19. for (i = 0; i < TAM_ABC; i++) {
20. printf ("B[%d]: ", i);
21. scanf ("%d", &B[i]); 
22. }
23. // leitura do vetor C
24. printf ("\n*** Informe os valores do vetor C ***\n");
25. for (i = 0; i < TAM_ABC; i++) {
26. printf ("C[%d]: ", i);
27. scanf ("%d", &C[i]); 
28. }
29. // criação do vetor D
30. for (i = 0; i < TAM_ABC; i++) {
31. D[i] = A[i];
32. D[i + 5] = B[i];
33. D[i + 10] = C[i]; 
34. }
35. // impressao do vetor D
36. printf ("\n*** Valores do vetor D ***\n");
37. for (i = 0; i < TAM_D; i++) {
38. printf ("D[%d] = %d\n", i, D[i]); 
39. }
40. printf ("\n\n");
41. system ("PAUSE");
42. }
06 / 12
23/04/2018 AVA UNINOVE
https://ava.uninove.br/seu/AVA/topico/container_impressao.php 7/13
Exemplo 3
 
  Neste programa é efetuado o cálculo de uma tabuada (1 ao 9) de um número qualquer informado pelo
usuário e os resultados são armazenados em um vetor. No final do programa, os valores armazenados no
vetor são apresentados.Exemplo 4
1. #include <stdio.h>
2. #include <stdlib.h>
3. 
4. // constante que armazena o tamanho do vetor
5. #define TAM 9
6. 
7. main () {
8. // declaracao do vetor
9. int tabuada[TAM];
10. int i;
11. // leitura de um numero
12. int num;
13. printf ("Numero: ");
14. scanf ("%d", &num);
15. // calculo e armazenamento da tabuada no vetor
16. for (i = 0; i < TAM; i++) {
17. tabuada[i] = num * (i + 1);
18. }
19. // impressao do vetor
20. printf ("\n*** Dados do vetor ***\n");
21. for (i = 0; i < TAM; i++) {
22. printf ("Valor[%d] = %d\n", i, tabuada[i]);
23. }
24. system ("PAUSE");
25. }
07 / 12
23/04/2018 AVA UNINOVE
https://ava.uninove.br/seu/AVA/topico/container_impressao.php 8/13
Neste exemplo, o programa faz a leitura de um vetor A com 10 elementos numéricos inteiros. Em seguida, é
feito o cálculo do total de elementos ímpares existentes no vetor e, também, o percentual do valor total de
números ímpares em relação à quantidade total de elementos armazenados no vetor.
Exemplo 5
1. include <stdio.h>
2. #include <stdlib.h>
3. 
4. // constante que armazena o tamanho do vetor
5. #define TAM 10
6. 
7. main () {
8. // declaracao do vetor
9. int vetor[TAM];
10. int i;
11. // leitura do vetor
12. for (i = 0; i < TAM; i++) {
13. printf ("Valor[%d]: ", i);
14. scanf ("%d", &vetor[i]);
15. }
16. // conta a quantidade de impares
17. int quantidade = 0;
18. for (i = 0; i < TAM; i++) {
19. if (vetor[i] % 2 != 0) {
20. quantidade++;
21. }
22. }
23. // calcula o percentual em relacao ao total de valores
24. float percentual = (float) quantidade / TAM;
25. printf ("Quantidade de impares = %d\n", quantidade);
26. printf ("Percentual = %.2f %%\n", percentual * 100);
27. system ("PAUSE");
28. }
08 / 12
23/04/2018 AVA UNINOVE
https://ava.uninove.br/seu/AVA/topico/container_impressao.php 9/13
Este programa inicializa um vetor A com os seguintes elementos 1, 3, 4, 2,5, 8, 7, 6, 9, 12, 15. Na sequência,
um vetor B de mesmo tipo e dimensão, é construído observando a seguinte lei de formação: “todo elemento
do vetor A que for ímpar deve ser multiplicado por 2; caso contrário, deve permanecer constante”. Por fim, o
vetor B é apresentado.
Exemplo 6
Neste exemplo, no programa é feita a leitura de um vetor de 12 elementos de valores reais e, em seguida, o
menor, o maior e a média dos valores lidos são apresentados na tela.
1. #include <stdio.h>
2. #include <stdlib.h>
3. 
4. // constante que armazena o tamanho do vetor
5. #define TAM 11
6. 
7. main () {
8. // declaracao do vetor
9. int A[TAM] = {1, 3, 4, 2, 5, 8, 7, 6, 9, 12, 15};
10. int B[TAM];
11. int i;
12. // criacao do vetor B
13. for (i = 0; i < TAM; i++) {
14. if (A[i] % 2 != 0) {
15. B[i] = A[i] * 2;
16. } 
17. else {
18. B[i] = A[i];
19. }
20. }
21. // impressao do vetor B
22. printf ("\n*** Dados do Vetor B ***\n");
23. for (i = 0; i < TAM; i++) {
24. printf ("%d ", B[i]);
25. }
26. printf ("\n\n");
27. system ("PAUSE");
28. }
09 / 12
23/04/2018 AVA UNINOVE
https://ava.uninove.br/seu/AVA/topico/container_impressao.php 10/13
Agora que você já estudou essa aula acesse a plataforma AVA, resolva os exercícios e verifique o seu
conhecimento. Caso fique alguma dúvida, leve a questão ao Fórum e divida com seus colegas e professor.
1. #include <stdio.h>
2. #include <stdlib.h>
3. #define TAM 12
4. main () {
5. // declaração do vetor
6. float numeros[TAM];
7. int i;
8. // leitura dos valores do vetor
9. printf ("*** Informe os valores do vetor ***\n");
10. for (i = 0; i < TAM; i++) {
11. printf ("Valor[%d]: ", i);
12. scanf ("%f", &numeros[i]);
13. }
14. // assume inicialmente que primeiro elemento do vetor é o
15. // maior e menor valor
16. float menor = numeros[0];
17. float maior = numeros[0];
18. float soma = numeros[0];
19. // começa pelo segundo elemento já que o primeiro foi considerado
20. for (i = 1; i < TAM; i++) {
21. soma += numeros[i];
22. if (numeros[i] < menor) {
23. menor = numeros[i];
24. }
25. if (numeros[i] > maior) {
26. maior = numeros[i];
27. }
28. }
10 / 12
23/04/2018 AVA UNINOVE
https://ava.uninove.br/seu/AVA/topico/container_impressao.php 11/13
ATIVIDADE FINAL
Considere o seguinte código:
 
int main()
{
          int x = -1;
          int v [5] = {2,3,9,10,1};
         int i;
         for (i = 0; i < 5; i++){
             if (v[i] > x){
                 x = v[i];
             } 
         } 
         printf("x: %d\n", x);
}
 
Qual valor será exibido na console?
A. x: 1.
B. x: 9.
C. x: 10.
D. x: 3.
REFERÊNCIA
MIZRAHI, V. V. Treinamento em linguagem C, São Paulo: Pearson, 2008.
11 / 12
23/04/2018 AVA UNINOVE
https://ava.uninove.br/seu/AVA/topico/container_impressao.php 12/13
SCHILDT, H. C — Completo e Total. São Paulo: Pearson, 2006.
12 / 12
23/04/2018 AVA UNINOVE
https://ava.uninove.br/seu/AVA/topico/container_impressao.php 13/13

Outros materiais

Materiais relacionados

Perguntas relacionadas

Materiais recentes

Perguntas Recentes