You are on page 1of 35

Motivação

Vetores
Exercícios

Vetores e Matrizes
Maurício Severich
Departamento de Informática
Universidade Estadual de Ponta Grossa

Maurício Severich Vetores e Matrizes


Motivação
Vetores
Exercícios

Sumário

1 Motivação

2 Vetores
Vetor unidimensional
Vetor bidimensional ou matriz
Vetor dinâmico

3 Exercícios

Maurício Severich Vetores e Matrizes


Motivação
Vetores
Exercícios

Lembrando pontos importantes

Um algoritmo é um processo sistemático para a


resolução de um problema;
Necessita de estruturas para manipular dados,
efetuar controle e repetição;
Dois tipos de dados comuns são: inteiro (int),
caracter (char);
Como manipular um dado como uma palavra
com vários caracteres, ou uma seqüência de
números?

Maurício Severich Vetores e Matrizes


Motivação
Vetores
Exercícios

Lembrando pontos importantes

Um algoritmo é um processo sistemático para a


resolução de um problema;
Necessita de estruturas para manipular dados,
efetuar controle e repetição;
Dois tipos de dados comuns são: inteiro (int),
caracter (char);
Como manipular um dado como uma palavra
com vários caracteres, ou uma seqüência de
números?

Maurício Severich Vetores e Matrizes


Motivação
Vetores
Exercícios

Lembrando pontos importantes

Um algoritmo é um processo sistemático para a


resolução de um problema;
Necessita de estruturas para manipular dados,
efetuar controle e repetição;
Dois tipos de dados comuns são: inteiro (int),
caracter (char);
Como manipular um dado como uma palavra
com vários caracteres, ou uma seqüência de
números?

Maurício Severich Vetores e Matrizes


Motivação
Vetores
Exercícios

Lembrando pontos importantes

Um algoritmo é um processo sistemático para a


resolução de um problema;
Necessita de estruturas para manipular dados,
efetuar controle e repetição;
Dois tipos de dados comuns são: inteiro (int),
caracter (char);
Como manipular um dado como uma palavra
com vários caracteres, ou uma seqüência de
números?

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

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

Vetor bidimensional ou matriz


Gracamente, pode-se representar uma matriz
M de 6 linhas e 2 colunas como:
c1 c2
D M l1
E A l2
I T l3
N R l4
F I l5
O Z l6
Acesso através dos 2 índices: de linhas n e de l
c Ml c
colunas n . O valor de [ 6 ][ 2 ] será Z;
Maurício Severich Vetores e Matrizes
Motivação Vetor unidimensional
Vetores Vetor bidimensional ou matriz
Exercícios Vetor dinâmico

Vetor bidimensional ou matriz


Gracamente, pode-se representar uma matriz
M de 6 linhas e 2 colunas como:
c1 c2
D M l1
E A l2
I T l3
N R l4
F I l5
O Z l6
Acesso através dos 2 índices: de linhas n e de l
c Ml c
colunas n . O valor de [ 6 ][ 2 ] será Z;
Maurício Severich Vetores e Matrizes
Motivação Vetor unidimensional
Vetores Vetor bidimensional ou matriz
Exercícios Vetor dinâmico

Vetor bidimensional ou matriz

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

Maurício Severich Vetores e Matrizes


Motivação Vetor unidimensional
Vetores Vetor bidimensional ou matriz
Exercícios Vetor dinâmico

Vetor bidimensional ou matriz

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

Maurício Severich Vetores e Matrizes


Motivação Vetor unidimensional
Vetores Vetor bidimensional ou matriz
Exercícios Vetor dinâmico

Vetor bidimensional ou matriz

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

Maurício Severich Vetores e Matrizes


Motivação Vetor unidimensional
Vetores Vetor bidimensional ou matriz
Exercícios Vetor dinâmico

Vetor bidimensional ou matriz

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

Maurício Severich Vetores e Matrizes


Motivação Vetor unidimensional
Vetores Vetor bidimensional ou matriz
Exercícios Vetor dinâmico

Vetor bidimensional ou matriz

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

Maurício Severich Vetores e Matrizes


Motivação Vetor unidimensional
Vetores Vetor bidimensional ou matriz
Exercícios Vetor dinâmico

Vetor bidimensional ou matriz

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

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

Para acessar os elementos do vetor dinâmico


apresentado nesta aula é obrigatório o cálculo da
posição (L*W+C):
Implemente uma solução na linguagem C para
obter novamente acesso através de 2 indices M [][]
Implemente uma solução na linguagem C++ para
obter novamente acesso através de 2 indices M [][]

Maurício Severich Vetores e Matrizes


Motivação
Vetores
Exercícios

Exercícios

Para acessar os elementos do vetor dinâmico


apresentado nesta aula é obrigatório o cálculo da
posição (L*W+C):
Implemente uma solução na linguagem C para
obter novamente acesso através de 2 indices M [][]
Implemente uma solução na linguagem C++ para
obter novamente acesso através de 2 indices M [][]

Maurício Severich Vetores e Matrizes


Motivação
Vetores
Exercícios

Exercícios

Para acessar os elementos do vetor dinâmico


apresentado nesta aula é obrigatório o cálculo da
posição (L*W+C):
Implemente uma solução na linguagem C para
obter novamente acesso através de 2 indices M [][]
Implemente uma solução na linguagem C++ para
obter novamente acesso através de 2 indices M [][]

Maurício Severich Vetores e Matrizes

You might also like