Professional Documents
Culture Documents
Vetores
Exercícios
Vetores e Matrizes
Maurício Severich
Departamento de Informática
Universidade Estadual de Ponta Grossa
Sumário
1 Motivação
2 Vetores
Vetor unidimensional
Vetor bidimensional ou matriz
Vetor dinâmico
3 Exercícios
Vetores
Também chamado arranjo (array), tipo
composto ou agregado;
É uma estrutura de dados homogênea e de
acesso aleatório;
Homogênea: contém elementos de um mesmo tipo;
Acesso aleatório: todos seus elementos são
igualmente acessíveis a qualquer momento;
Está disponível na maior parte das linguagens;
É usado como base para estruturas de dados
mais complexas;
Considere que o próprio acesso a memória do
sistema é linear como um vetor;
Maurício Severich Vetores e Matrizes
Motivação Vetor unidimensional
Vetores Vetor bidimensional ou matriz
Exercícios Vetor dinâmico
Vetores
Também chamado arranjo (array), tipo
composto ou agregado;
É uma estrutura de dados homogênea e de
acesso aleatório;
Homogênea: contém elementos de um mesmo tipo;
Acesso aleatório: todos seus elementos são
igualmente acessíveis a qualquer momento;
Está disponível na maior parte das linguagens;
É usado como base para estruturas de dados
mais complexas;
Considere que o próprio acesso a memória do
sistema é linear como um vetor;
Maurício Severich Vetores e Matrizes
Motivação Vetor unidimensional
Vetores Vetor bidimensional ou matriz
Exercícios Vetor dinâmico
Vetores
Também chamado arranjo (array), tipo
composto ou agregado;
É uma estrutura de dados homogênea e de
acesso aleatório;
Homogênea: contém elementos de um mesmo tipo;
Acesso aleatório: todos seus elementos são
igualmente acessíveis a qualquer momento;
Está disponível na maior parte das linguagens;
É usado como base para estruturas de dados
mais complexas;
Considere que o próprio acesso a memória do
sistema é linear como um vetor;
Maurício Severich Vetores e Matrizes
Motivação Vetor unidimensional
Vetores Vetor bidimensional ou matriz
Exercícios Vetor dinâmico
Vetores
Também chamado arranjo (array), tipo
composto ou agregado;
É uma estrutura de dados homogênea e de
acesso aleatório;
Homogênea: contém elementos de um mesmo tipo;
Acesso aleatório: todos seus elementos são
igualmente acessíveis a qualquer momento;
Está disponível na maior parte das linguagens;
É usado como base para estruturas de dados
mais complexas;
Considere que o próprio acesso a memória do
sistema é linear como um vetor;
Maurício Severich Vetores e Matrizes
Motivação Vetor unidimensional
Vetores Vetor bidimensional ou matriz
Exercícios Vetor dinâmico
Vetores
Também chamado arranjo (array), tipo
composto ou agregado;
É uma estrutura de dados homogênea e de
acesso aleatório;
Homogênea: contém elementos de um mesmo tipo;
Acesso aleatório: todos seus elementos são
igualmente acessíveis a qualquer momento;
Está disponível na maior parte das linguagens;
É usado como base para estruturas de dados
mais complexas;
Considere que o próprio acesso a memória do
sistema é linear como um vetor;
Maurício Severich Vetores e Matrizes
Motivação Vetor unidimensional
Vetores Vetor bidimensional ou matriz
Exercícios Vetor dinâmico
Vetores
Também chamado arranjo (array), tipo
composto ou agregado;
É uma estrutura de dados homogênea e de
acesso aleatório;
Homogênea: contém elementos de um mesmo tipo;
Acesso aleatório: todos seus elementos são
igualmente acessíveis a qualquer momento;
Está disponível na maior parte das linguagens;
É usado como base para estruturas de dados
mais complexas;
Considere que o próprio acesso a memória do
sistema é linear como um vetor;
Maurício Severich Vetores e Matrizes
Motivação Vetor unidimensional
Vetores Vetor bidimensional ou matriz
Exercícios Vetor dinâmico
Vetores
Também chamado arranjo (array), tipo
composto ou agregado;
É uma estrutura de dados homogênea e de
acesso aleatório;
Homogênea: contém elementos de um mesmo tipo;
Acesso aleatório: todos seus elementos são
igualmente acessíveis a qualquer momento;
Está disponível na maior parte das linguagens;
É usado como base para estruturas de dados
mais complexas;
Considere que o próprio acesso a memória do
sistema é linear como um vetor;
Maurício Severich Vetores e Matrizes
Motivação Vetor unidimensional
Vetores Vetor bidimensional ou matriz
Exercícios Vetor dinâmico
Vetor unidimensional
Gracamente, pode-se representar um vetor
V
unidimensional com 6 caracteres como:
1 D l
2 E l
3 I l
4 N l
5 F l
6 O l
l
A esquerda, índice n , a direita o conteúdo. Cada
elemento dessa estrutura é acessada através
deste índice. O valor acessado em [ 1 ] será D; Vl
Maurício Severich Vetores e Matrizes
Motivação Vetor unidimensional
Vetores Vetor bidimensional ou matriz
Exercícios Vetor dinâmico
Vetor unidimensional
Gracamente, pode-se representar um vetor
V
unidimensional com 6 caracteres como:
1 D l
2 E l
3 I l
4 N l
5 F l
6 O l
l
A esquerda, índice n , a direita o conteúdo. Cada
elemento dessa estrutura é acessada através
deste índice. O valor acessado em [ 1 ] será D; Vl
Maurício Severich Vetores e Matrizes
Motivação Vetor unidimensional
Vetores Vetor bidimensional ou matriz
Exercícios Vetor dinâmico
Vetor unidimensional
Linguagem C:
Declaração:
int V[2]; V[0]=10; V[1]=20;
Acesso:
printf(Segundo valor de V: %d,V[1]);
Linguagem C++: usando STL1
Declaração: necessário #include
<vector>
vector<int> V(2); V[0]=10; V[1]=20;
Acesso:
cout Segundo valor de V: V[1];
//ou V.at(1); para verificar o intervalo
antes de acessar o valor
1 Standard Template Library
Maurício Severich Vetores e Matrizes
Motivação Vetor unidimensional
Vetores Vetor bidimensional ou matriz
Exercícios Vetor dinâmico
Vetor unidimensional
Linguagem C:
Declaração:
int V[2]; V[0]=10; V[1]=20;
Acesso:
printf(Segundo valor de V: %d,V[1]);
Linguagem C++: usando STL1
Declaração: necessário #include
<vector>
vector<int> V(2); V[0]=10; V[1]=20;
Acesso:
cout Segundo valor de V: V[1];
//ou V.at(1); para verificar o intervalo
antes de acessar o valor
1 Standard Template Library
Maurício Severich Vetores e Matrizes
Motivação Vetor unidimensional
Vetores Vetor bidimensional ou matriz
Exercícios Vetor dinâmico
Vetor unidimensional
Linguagem C:
Declaração:
int V[2]; V[0]=10; V[1]=20;
Acesso:
printf(Segundo valor de V: %d,V[1]);
Linguagem C++: usando STL1
Declaração: necessário #include
<vector>
vector<int> V(2); V[0]=10; V[1]=20;
Acesso:
cout Segundo valor de V: V[1];
//ou V.at(1); para verificar o intervalo
antes de acessar o valor
1 Standard Template Library
Maurício Severich Vetores e Matrizes
Motivação Vetor unidimensional
Vetores Vetor bidimensional ou matriz
Exercícios Vetor dinâmico
Vetor unidimensional
Linguagem C:
Declaração:
int V[2]; V[0]=10; V[1]=20;
Acesso:
printf(Segundo valor de V: %d,V[1]);
Linguagem C++: usando STL1
Declaração: necessário #include
<vector>
vector<int> V(2); V[0]=10; V[1]=20;
Acesso:
cout Segundo valor de V: V[1];
//ou V.at(1); para verificar o intervalo
antes de acessar o valor
1 Standard Template Library
Maurício Severich Vetores e Matrizes
Motivação Vetor unidimensional
Vetores Vetor bidimensional ou matriz
Exercícios Vetor dinâmico
Vetor unidimensional
Linguagem C:
Declaração:
int V[2]; V[0]=10; V[1]=20;
Acesso:
printf(Segundo valor de V: %d,V[1]);
Linguagem C++: usando STL1
Declaração: necessário #include
<vector>
vector<int> V(2); V[0]=10; V[1]=20;
Acesso:
cout Segundo valor de V: V[1];
//ou V.at(1); para verificar o intervalo
antes de acessar o valor
1 Standard Template Library
Maurício Severich Vetores e Matrizes
Motivação Vetor unidimensional
Vetores Vetor bidimensional ou matriz
Exercícios Vetor dinâmico
Vetor unidimensional
Linguagem C:
Declaração:
int V[2]; V[0]=10; V[1]=20;
Acesso:
printf(Segundo valor de V: %d,V[1]);
Linguagem C++: usando STL1
Declaração: necessário #include
<vector>
vector<int> V(2); V[0]=10; V[1]=20;
Acesso:
cout Segundo valor de V: V[1];
//ou V.at(1); para verificar o intervalo
antes de acessar o valor
1 Standard Template Library
Maurício Severich Vetores e Matrizes
Motivação Vetor unidimensional
Vetores Vetor bidimensional ou matriz
Exercícios Vetor dinâmico
Linguagem C:
Declaração:
int M[2][2]; M[0][1]=10; M[1][0]=20;
Acesso:
printf(Elemento M[1][0]: %d,M[1][0]);
Linguagem C++: usando STL
Declaração:
vector<int> M(2*2); M[0]=10; M[2]=20;
Acesso:
cout Elemento M[1][0]: M[2];
Linguagem C:
Declaração:
int M[2][2]; M[0][1]=10; M[1][0]=20;
Acesso:
printf(Elemento M[1][0]: %d,M[1][0]);
Linguagem C++: usando STL
Declaração:
vector<int> M(2*2); M[0]=10; M[2]=20;
Acesso:
cout Elemento M[1][0]: M[2];
Linguagem C:
Declaração:
int M[2][2]; M[0][1]=10; M[1][0]=20;
Acesso:
printf(Elemento M[1][0]: %d,M[1][0]);
Linguagem C++: usando STL
Declaração:
vector<int> M(2*2); M[0]=10; M[2]=20;
Acesso:
cout Elemento M[1][0]: M[2];
Linguagem C:
Declaração:
int M[2][2]; M[0][1]=10; M[1][0]=20;
Acesso:
printf(Elemento M[1][0]: %d,M[1][0]);
Linguagem C++: usando STL
Declaração:
vector<int> M(2*2); M[0]=10; M[2]=20;
Acesso:
cout Elemento M[1][0]: M[2];
Linguagem C:
Declaração:
int M[2][2]; M[0][1]=10; M[1][0]=20;
Acesso:
printf(Elemento M[1][0]: %d,M[1][0]);
Linguagem C++: usando STL
Declaração:
vector<int> M(2*2); M[0]=10; M[2]=20;
Acesso:
cout Elemento M[1][0]: M[2];
Linguagem C:
Declaração:
int M[2][2]; M[0][1]=10; M[1][0]=20;
Acesso:
printf(Elemento M[1][0]: %d,M[1][0]);
Linguagem C++: usando STL
Declaração:
vector<int> M(2*2); M[0]=10; M[2]=20;
Acesso:
cout Elemento M[1][0]: M[2];
Vetor dinâmico
Quando não se sabe a priori
o tamanho do
vetor, a alocação dinâmica de memória deve ser
considerada;
Linguagem C:
int M**; M=(int **) calloc( L*C;
sizeof(int));
printf(Elemento M[1][0]: %d,M[2]);
Linguagem C++: usando STL
vector<int> M(L*C);
cout Elemento M[1][0]: M[2];
Maurício Severich Vetores e Matrizes
Motivação Vetor unidimensional
Vetores Vetor bidimensional ou matriz
Exercícios Vetor dinâmico
Vetor dinâmico
Quando não se sabe a priori
o tamanho do
vetor, a alocação dinâmica de memória deve ser
considerada;
Linguagem C:
int M**; M=(int **) calloc( L*C;
sizeof(int));
printf(Elemento M[1][0]: %d,M[2]);
Linguagem C++: usando STL
vector<int> M(L*C);
cout Elemento M[1][0]: M[2];
Maurício Severich Vetores e Matrizes
Motivação Vetor unidimensional
Vetores Vetor bidimensional ou matriz
Exercícios Vetor dinâmico
Vetor dinâmico
Quando não se sabe a priori
o tamanho do
vetor, a alocação dinâmica de memória deve ser
considerada;
Linguagem C:
int M**; M=(int **) calloc( L*C;
sizeof(int));
printf(Elemento M[1][0]: %d,M[2]);
Linguagem C++: usando STL
vector<int> M(L*C);
cout Elemento M[1][0]: M[2];
Maurício Severich Vetores e Matrizes
Motivação
Vetores
Exercícios
Exercícios
Exercícios
Exercícios