Buscar

Linguagem C - 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 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

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

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

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Informática Aplicada - Linguagem C 
Vetores 
Profª Náthalee Cavalcanti de Almeida 
Email: nathalee.almeida@ufersa.edu.br 
04/02/2014 
• O que é um vetor 
• Declaração de vetores 
• Carga inicial automática de vetores 
• Índices e posições dos elementos no vetor 
• Definição de constantes em C 
• Diferenças entre const e #define 
• Passagem de vetores para funções 
Agenda 
Introdução 
• Tipos básicos de dados em C (char, int, float e double) 
 
• Estruturas de controle (if, switch, while, for e do... 
while) 
 
• Vamos estudar a forma como podemos processar 
conjuntos de dados/valores do mesmo tipo. 
 
 
 
 
 
 
 
 
Introdução 
• Um vetor ou Array é um conjunto de elementos consecutivos, todos do 
mesmo tipo, que podem ser acessados individualmente a partir de um 
único nome. 
• Exemplo: 
- Conjunto de comissões mensais associadas a um determinado 
empregado ao longo de um ano 
 
- Vetor de comissões do Sr. Justino (Vetor simples de Inteiros). 
- Cada posição corresponde ao valor recebido nesse mês (Ex: 12000 – 
janeiro) 
- Dessa forma, evita-se declarar uma variável para cada mês (12 
variáveis), colocando toda a informação numa variável só. 
 
 
 
 
 
 
 
12000 5000 2300 1230 7400 ... 
Declaração de Vetores 
• tipo nome_variável [n° de elementos] 
 
• Tipo – corresponde ao tipo de dados de cada um dos 
elementos do vetor. 
 
• Nome_Variável – indica o nome pelo qual esse vetor 
vai ser conhecido. 
 
• N° de elementos – valor constante que indica quantos 
elementos tem o vetor. 
Declaração de Vetores 
Um vetor pode conter elementos de qualquer tipo de 
dados. No entanto, os elementos do vetor são todos do 
mesmo tipo, o qual é definido na declaração do mesmo. 
• Para declarar um vetor com 20 inteiros 
 
 int g[20]; 
 
• Para declarar um vetor com 100 números reais 
 
 float renda [100]; 
 
 
 
Declaração de Vetores 
• Numa declaração como 
 float renda [100]; 
float – Tipo de cada um dos elementos do vetor. 
100 – N° de elementos do vetor. 
renda – Nome do Vetor. 
renda [i] – Aquilo que está na posição índice i do vetor 
renda. 
 
Ex: Declaração de um vetor com seis números inteiros 
denominado vetor. 
 int vetor [6]; 
Vetor 
[0] 
Vetor 
[1] 
 
Vetor 
[2] 
 
Vetor 
[3] 
 
Vetor 
[4] 
 
Vetor 
[5] 
 
Declaração de Vetores 
Em C os índices de um vetor com n elementos variam sempre 
entre o e n-1. 
O índice do primeiro elemento, de qualquer vetor em C, é 
sempre 0 (ZERO). 
Ex: Coloque o valor 123 na primeira posição do vetor: 
 
 vetor [0] = 123; 
123 
Vetor[0] Vetor[1] Vetor[2] Vetor[3] Vetor[4] Vetor[5] 
Declaração de Vetores 
Coloque na última posição do vetor o dobro do valor do 
primeiro elemento. 
vetor [5] = vetor [0] *2; 
 
 
 
 
Coloque no terceiro elemento do vetor a soma do primeiro 
com o último elemento. 
 
vetor[2] = vetor[0] +vetor[5]; 
 
 
 
123 246 
Vetor[0] Vetor[1] Vetor[2] Vetor[3] Vetor[4] Vetor[5] 
123 369 246 
Vetor[0] Vetor[1] Vetor[2] Vetor[3] Vetor[4] Vetor[5] 
Declaração de Vetores 
Em um vetor o n-ésimo elemento está sempre na posição n-1. 
for (i = 0; i<6; i++) 
 vetor[i] = i; 
0 1 2 3 4 5 
O índice de um elemento pode ser representado por qualquer expressão que devolva 
um valor inteiro. 
 
vetor[1]=2; 
vetor[3-2]=23; 
vetor[1+vetor[1]]=513; 
 
Vetores 
Carga Inicial Automática de Vetores 
 
• É possível iniciar automaticamente todos os elementos de um 
vetor através da seguinte sintaxe: 
tipo var[n] = {valor1, valor2, ...., valorn}; 
 
Exemplo: Declare e inicie um vetor com todas as vogais do alfabeto. 
 char vogal [5] = {„a‟, ‟e‟, „i‟, „o‟, „u‟}; 
 
Evita-se, assim, escrever o seguinte conjunto de código: 
char vogal [5]; 
vogal [0] = „a‟; 
vogal [1] = „e‟; 
vogal [2] = „i‟; 
vogal [3] = „o‟; 
vogal [4] = „u‟; 
 
 
Vetores 
Se um vetor for declarado com n elementos e forem colocados 
apenas k valores (k<n) na carga inicial do vetor, então os 
primeiros k elementos do vetor serão iniciados com os 
respectivos valores e os restantes serão iniciados com o valor 
ZERO. 
int v[10] = {10,10, 30}; 
 
As seguintes instruções são equivalentes 
int v[10] = {10,10, 30}; 
int v[10] = {10,10, 30,0,0,0,0,0,0,0}; 
 
Vetores 
As posições de um vetor só são iniciadas se a declaração 
deste for seguinte de = {valor ... valor}; 
Exemplo: Escreva um programa que realize a leitura dos 
salários pagos a um indivíduo durante um ano. Em seguida, o 
programa deverá mostrar os valores e o total anual. 
Vetores 
#include <stdio.h> 
main ( ) 
{ 
 float sal [12]; /* 12 meses*/ 
 float total; 
 int i; 
 
 for (i=0; i<12 ; i++){ 
 printf (“Digite o salário do mês %d:”, i+1); 
 scanf (“%f”, &sal[i];} 
 /*Mostrar os valores Mensais e calcular o total*/ 
 puts (“Mês Valor”; 
 for (i=0, total = 0.0; i<12 ; i++){ 
 printf (“3d %9.2f\n”, i+1, sal[1]); 
 total +=sal[i];} 
 printf(“Total Anual: %9.2f\n”, total);} 
 
 
 
 
Vetores 
Digite o salário do mês 1: 1000 
Digite o salário do mês 2: 2000 
Digite o salário do mês 3: 3500 
Digite o salário do mês 4: 6480.5 
Digite o salário do mês 5: 32000 
Digite o salário do mês 6: 4560.5 
Digite o salário do mês 7: 10000 
Digite o salário do mês 8: 7450 
Digite o salário do mês 9: 6471 
Digite o salário do mês 10: 1240 
Digite o salário do mês 11: 1240 
Digite o salário do mês 12: 1240 
Mês Valor 
1 1000.00 
2 2000.00 
3 3500.00 
4 6480.50 
5 32000.00 
6 4560.50 
7 10000.00 
8 7450.00 
9 6471.00 
10 1240.00 
11 1240.00 
12 1240.00 
Total Anual: 77182.00 
Vetores 
Exemplos de Declaração 
 
int v[10]; /* vetor com 10 elementos não iniciados*/ 
 
int v[3]={5,10,15}; /*vetor com 3 elementos iniciados com 5, 10 e 
15*/ 
 
int v[10]= {5, 10, 15}; /*vetor com 10 elementos. Os restantes são 
 iniciados com 0.*/ 
 
int v[ ] = {5, 10, 15}; /* vetor com 3 elementos inciados com 5, 10 
e 15*/ 
 /*Equivalente a int v[3]={5,10,15}*/ 
 
int v[ ]; /* Declaração incorreta provoca erro de compilação*/ 
Vetores 
Exemplos de Declaração 
 
int v[10]; /* vetor com 10 elementos não iniciados*/ 
 
int v[3]={5,10,15}; /*vetor com 3 elementos iniciados com 5, 10 e 
15*/ 
 
int v[10]= {5, 10, 15}; /*vetor com 10 elementos. Os restantes são 
 iniciados com 0.*/ 
 
int v[ ] = {5, 10, 15}; /* vetor com 3 elementos inciados com 5, 10 
e 15*/ 
 /*Equivalente a int v[3]={5,10,15}*/ 
 
int v[ ]; /* Declaração incorreta provoca erro de compilação*/ 
Vetores 
Passagem de Vetores para Funções 
 
• Suponha as seguintes declarações: 
 
 int v[10]; 
 int x[20]; 
 
• Suponha que v e x fosse inicializado com ZERO em todas as 
posições, e que utilizássemos uma função para isso. 
 
• Como os vetores têm dimensões diferentes, teremos que 
definir duas funções distintas (uma para vetores com 10 inteiros 
e outra com 20 inteiros). 
 
 
Vetores 
void inic1 (int s[10]) 
{ 
 int i; 
 for (i=0; i<10; i++) 
 s[i] = 0; 
} 
 
void inic2 (int s[20]) 
{ 
 int i; 
 for (i=0; i<20; i++) 
 s[i]= 0; 
} 
 
 
Vetores 
main ( ){ 
 int v[10]; 
 int x[20]; 
 inic1(v); /* iniciar o vetor v usando a função inic1*/ 
 inic2(x); /* iniciar o vetor x usando a função inic2*/ 
} 
Note que se é enviado um vetor com 10 inteiros à função, esta 
deverá ter um parâmetro do mesmo tipo da variável. 
void inic1 (int s[10]) /*Declaração da função*/ 
 main ( ){ 
 int v[10]; 
 ... 
 inic (v);} 
 
void inic1 (int s[10]) 
{ .... 
} 
Vetores 
• É possível escrever uma função que inicie qualquer vetor de 
inteiros. No entanto, é necessário indicar a essa função qual o 
número de elementos que o vetor contém. 
#include <stdio.h> 
void inic (int s[ ], int n){ 
 int i; 
 for (i=1; i<n; i++) 
 s[i]=0; 
} 
main ( ){ 
 int v[10]; 
 int x[20]; 
 
 inic (v,10); 
 inic (x,20); 
} 
Vetores 
 
• Note que a função void inic (int s[ ], int n) recebe um vetor de 
inteiros (sem indicar qual a sua dimensão) e um inteiro que indica 
qual o número de elementos a iniciar. 
 
 
• Dessa forma, é possível iniciar um vetor de inteiros (qualquer que 
seja a dimensão com que foi declarado), pois não é indicado no 
parâmetro da função qual o número de elementos que o vetor 
contém. 
Constantes 
• A escrita de programas deve ser realizada de forma que uma 
pequena alteração não provoque grandes transformações no 
código dos mesmos. 
 
#include <stdio.h> 
void inic (int s [ ] ){ 
 int i; 
 for (i=0; i<10; i++) 
 s[i]=0; } 
main ( ){ 
 int v[10], i; 
 inic (v); 
 for (i=0; i<10; i++) 
 v[i] = i; 
 for (i=10-1; i >=0, i--) 
 printf (“%d\n”, v[i]; 
] 
 
 
Constantes 
• Esse programa funciona para um vetor de 10 elementos. Se for 
necessário fazer uma alteração de 10 para 25 elementos, a solução é 
alterar todas as ocorrências do número 10 pelo 25. 
• Como se trata de um pequeno programa o trabalho não será grande, mas 
imagine se fosse milhares de linhas de código? 
 
#include <stdio.h> 
void inic (int s [ ] ){ 
 int i; 
 for (i=0; i<10; i++) 
 s[i]=0; } 
main ( ){ 
 int v[10], i; 
 inic (v); 
 for (i=0; i<10; i++) 
 v[i] = i; 
 for (i=10-1; i >=0, i--) 
 printf (“%d\n”, v[i]); 
] 
 
 
Constantes 
Definição de Constantes 
 
• Constante é um nome correspondente a um valor fixo (não se 
pode alterar ao longo da execução). 
• Devem ser definidas, em princípio, fora de qualquer função, 
de modo a serem visíveis ao longo de todo o programa. 
• Normalmente a sua definição é realizada imediatamente após 
as linhas dos #includes. 
 
 const tipo símbolo = valor 
 
 ou 
 
 #define símbolo valor 
 
 
 
 
 
Constantes 
• Exemplo: 
#include <stdio.h> 
const int num = 10; 
 
void inic (int s[ ]) { 
 int i; 
 for (i=1; i<num; i++) 
 s[i]=0;} 
main ( ){ 
 int v [num], i; 
 inic (v); 
 for (i = 0; i<num; i++) 
 v[i]=i; 
 for (i = num-1; i >=0; i--) 
 printf (“%d\n”, v[i]);} 
 
 
 
Constantes 
• Exemplo: 
#include <stdio.h> 
#define NUM 10 /*Sem Ponto-e-Vírgula*/ 
void inic (int s[ ]) { 
 int i; 
 for (i=1; i<NUM; i++) 
 s[i]=0;} 
main ( ){ 
 int v [NUM], i; 
 inic (v); 
 for (i = 0; i<NUM; i++) 
 v[i]=i; 
 for (i = NUM-1; i >=0; i--) 
 printf (“%d\n”, v[i]);} 
 
Caso pretenda alterar o programa de 10 para 25, bastará alterar a linha 
em que a constante está definida, independentemente do número de 
ocorrências desta ao longo do programa.

Continue navegando