Escolar Documentos
Profissional Documentos
Cultura Documentos
Vetores
Vetores
Roteiro:
Declarao de vetores
Uso correto de vetores
Vetores com tamanho varivel
Matrizes
Vetores de caracteres (texto)
2
>
Curso C - IC/UNICAMP
Introduo
Tipos de Dados:
Da
Da linguagem
linguagem C:
C:
Nmeros
Nmeros inteiros:
inteiros: int,
int, long
long int,
int, unsigned
unsigned
int, ...
int, ...
Nmeros
Nmeros fracionrios:
fracionrios: float, double, ...
float, double, ...
Caracteres:
Caracteres: char
char
Do
Do programador:
programador:
Vetores,
Vetores, estruturas,
estruturas, enumeraes,
enumeraes, etc
etc
Sinnimos
Sinnimos
3
>
Vetores
Declarao e Uso
24/03/2011 09:17 4
Curso C - IC/UNICAMP
Vetores
Nome v3 (int)
Nome nico
nico para
para aa varivel
varivel
v4 (int)
Acesso
Acesso por
por ndice
ndice v5 (int)
Tamanho
Tamanho fixo
fixo v6 (int)
Numerao
Numerao de de 00 at
at tamanho-1
tamanho-1 v7 (int)
Alocados
Alocados sequencialmente
sequencialmente na na memria
memria v8 (int)
v9 (int)
5
>
Curso C - IC/UNICAMP
Declarao
Exemplo: v6 (int)
6
>
Curso C - IC/UNICAMP
Acesso
7
>
Curso C - IC/UNICAMP
Acesso
Exemplo:
int vetor[100];
...
for (indice = 0;
indice < 100;
indice++) {
printf(%d, , vetor[indice]);
8
>
Curso C - IC/UNICAMP
Acesso
Operador de ndice:
ndice
(int)
varivel [ ]
(ref. memria) (ref. memria)
vetor[i+j] = k * 2;
i j k 2
vetor [] =
9
>
Curso C - IC/UNICAMP
Acesso
Imprimir uma listra de trs para frente:
int main(int argc, char *argv[]) {
int valores[10];
int indice;
printf("Escreva 10 nmeros inteiros: ");
for (indice = 0; indice < 10; indice++) {
scanf("%d", &valores[indice] );
}
printf("Valores em ordem reversa:\n");
for (indice = 9; indice >= 0; indice--) {
printf("%d ", valores[indice]);
}
return 0;
}
Vetores\Reverso01\Reverso01.vcproj
10
>
Curso C - IC/UNICAMP
Contedo inicial
Tamanho do Lista de n
vetor valores
Exemplo:
int impares[5] = {1, 3, 5, 7, 9};
11
>
Curso C - IC/UNICAMP
Contedo inicial
Tamanho do Lista de n
vetor omitido valores
Exemplo:
int impares[] = {1, 3, 5, 7, 9};
12
>
Vetores
24/03/2011 09:17 13
Curso C - IC/UNICAMP
Vetores
Correto:
vetor[4] = 3;
vetor[7] = 6;
14
>
Curso C - IC/UNICAMP
Vetores
Correto:
int indice;
for (indice = 0; indice < 10; indice++) {
vetor[indice] = 0;
}
15
>
Curso C - IC/UNICAMP
Vetores
Correto:
int indice;
for (indice = 0; indice < 10; indice++) {
vetorA[indice] = vetorB[indice];
}
16
>
Vetores
24/03/2011 09:17 17
Curso C - IC/UNICAMP
Soluo Simples:
Limite superior
int valores[100]; para tamanho
int numero_elementos;
Tamanho utilizado
int i;
for (i = 0; i < numero_elementos; i++) {
printf("%d", valores[i]);
}
18
>
Curso C - IC/UNICAMP
19
>
Curso C - IC/UNICAMP
Vetores
Imprimir uma lista de nmeros de trs para frente:
...
printf("Escreva os nmeros: );
for (i = 0; i < numero_valores; i++) {
scanf("%d", &valores[i] );
}
printf("Valores em ordem reversa:\n");
for (i = numero_valores-1; i >= 0; i--) {
printf("%d ", valores[i]);
}
printf(\n);
return 0;
}
Vetores\Reverso02\Reverso02.vcproj
20
>
Vetores
Declarao de Matrizes
24/03/2011 09:17 21
Curso C - IC/UNICAMP
Matrizes
Conceitos:
Tabelade
Tabela devalores
valores
Acesso
Acessopor doisndices:
pordois ndices:linha
linhaeecoluna
coluna
Numerao:
Numerao: 00at linhas1;
atlinhas 1;00at colunas11
atcolunas
int a[4][10];
Outras
Outras propriedades:
propriedades: a00 a01 a02 a03 a04 a05 a06 a07 a08 a09
Valores
Valoresdo
domesmo
mesmotipo
tipo
Acesso a10 a11 a12 a13 a14 a15 a16 a17 a18 a19
Acessoaos
aosvalores
valoresatravs
atravsde
deum
umnico
nico
nome
nomededevarivel
varivel a20 a21 a22 a23 a24 a25 a26 a27 a28 a29
Dimenses
Dimensesfixas
fixas
a30 a31 a32 a33 a34 a35 a36 a37 a38 a39
22
>
Curso C - IC/UNICAMP
Matrizes
Declarao:
tipo variavel [linhas] [colunas]
a20 a21 a22 a23 a24 a25 a26 a27 a28 a29
a30 a31 a32 a33 a34 a35 a36 a37 a38 a39
23
>
Curso C - IC/UNICAMP
Matrizes
Acesso:
Elementos do vetor:
vetor[0][0], vetor[0][1], vetor[0][2], ...
vetor[linhas-1][colunas-1]
Atribuio:
vetor[linha][coluna] = valor;
Exemplo:
int vetor[6][10];
vetor[5][1] = 3;
vetor[0][2] = vetor[1][0] + vetor[2][3];
24
>
Curso C - IC/UNICAMP
Matrizes
Acesso:
Exemplo:
int lin, col;
int matriz[4][10];
...
for (lin = 0; lin < 4; lin++) {
for (col = 0; col < 10; col++) {
printf(%d , matriz[lin][col];
}
printf(\n);
}
25
>
Curso C - IC/UNICAMP
Vetores multidimensionais
26
>
Vetores
Vetor de caracteres
(Texto)
24/03/2011 09:17 27
Curso C - IC/UNICAMP
Texto
Conceitos:
Caracteres
Caracteres individuais:
individuais:
'a',
'a', 'A',
'A', 'f',
'f', '4',
'4', '.'
'.' aspas simples!
Representam
Representam apenas
apenas um
um smbolo,
smbolo, letra
letra ou
ou
dgito
dgito
Texto:
Texto: aspas duplas!
Seqncia
Seqncia de
de caracteres
caracteres
"Algoritmos
"Algoritmos ee Programao"
Programao"
28
>
Curso C - IC/UNICAMP
Texto
Armazenamento:
Vetor
Vetor de
decaracteres
caracteres
Cada
Cadacaractere
caracteredo
dotexto
texto um umelemento
elementodo
do vetor
vetor
ltimo
ltimocaractere:
caractere:nulo
nulo (\0)
(\0)
Tamanho
Tamanhomnimo
mnimododovetor:
vetor:comprimento
comprimentodo
dotexto
texto++11
char[20] U m t e x t o e m C \0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
29
>
Curso C - IC/UNICAMP
Texto
Declarao:
char variavel [tamanho];
Tamanho mximo do
texto menos um
Exemplo:
char texto[50];
30
>
Curso C - IC/UNICAMP
Texto
Declarao:
char variavel [tamanho] = "texto";
31
>
Curso C - IC/UNICAMP
Texto
Ler e imprimir:
Impresso: char texto[] = Um texto em C;
printf(A varivel: %s, texto);
Texto
Correto:
#include <string.h>
...
strcpy(texto, Joo da Silva);
33
>
Curso C - IC/UNICAMP
Texto
Acessar caracteres:
char texto[20] = Um texto em C;
texto[12] = B;
printf(%s, texto);
char[20] U m t e x t o e m C \0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Um texto em B
34
>
Vetores
Estatistica [calcula mdia e desvio padro]
Palind [testa palindromos]
Primos [pegar primos, mtodo da peneira]
Strings1 [teste com cadeias e funes sobre cadeias]
Concat [concatena cadeias]
Anagrama [testa anagramas]
SomaMat [soma de matrizes]
QuadradMag [testa quadrado mgico]
24/03/2011 09:17 35
Vetores
Fim do Captulo
24/03/2011 09:17 36