MotivaçãoVetores
Exercícios
Vetores e Matrizes
Maurício Severich
Departamento de Informática
Universidade Estadual de Ponta Grossa
Maurício Severich Vetores e Matrizes
MotivaçãoVetores
Exercícios
Sumário
1 Motivação
2 VetoresVetor unidimensionalVetor bidimensional ou matrizVetor dinâmico
3 Exercícios
Maurício Severich Vetores e Matrizes
MotivaçãoVetores
Exercícios
Lembrando pontos importantes
Um algoritmo é um processo sistemático para aresoluçã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 palavracom vários caracteres, ou uma seqüência denúmeros?
Maurício Severich Vetores e Matrizes
MotivaçãoVetores
Exercícios
Lembrando pontos importantes
Um algoritmo é um processo sistemático para aresoluçã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 palavracom vários caracteres, ou uma seqüência denúmeros?
Maurício Severich Vetores e Matrizes
MotivaçãoVetores
Exercícios
Lembrando pontos importantes
Um algoritmo é um processo sistemático para aresoluçã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 palavracom vários caracteres, ou uma seqüência denúmeros?
Maurício Severich Vetores e Matrizes
MotivaçãoVetores
Exercícios
Lembrando pontos importantes
Um algoritmo é um processo sistemático para aresoluçã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 palavracom vários caracteres, ou uma seqüência denúmeros?
Maurício Severich Vetores e Matrizes
MotivaçãoVetores
Exercícios
Vetor unidimensionalVetor bidimensional ou matrizVetor dinâmico
Vetores
Também chamado arranjo (array), tipocomposto ou agregado;É uma estrutura de dados homogênea e deacesso aleatório;
Homogênea: contém elementos de um mesmo tipo;Acesso aleatório: todos seus elementos sãoigualmente acessíveis a qualquer momento;
Está disponível na maior parte das linguagens;É usado como base para estruturas de dadosmais complexas;Considere que o próprio acesso a memória dosistema é linear como um vetor;
Maurício Severich Vetores e Matrizes
MotivaçãoVetores
Exercícios
Vetor unidimensionalVetor bidimensional ou matrizVetor dinâmico
Vetores
Também chamado arranjo (array), tipocomposto ou agregado;É uma estrutura de dados homogênea e deacesso aleatório;
Homogênea: contém elementos de um mesmo tipo;Acesso aleatório: todos seus elementos sãoigualmente acessíveis a qualquer momento;
Está disponível na maior parte das linguagens;É usado como base para estruturas de dadosmais complexas;Considere que o próprio acesso a memória dosistema é linear como um vetor;
Maurício Severich Vetores e Matrizes
MotivaçãoVetores
Exercícios
Vetor unidimensionalVetor bidimensional ou matrizVetor dinâmico
Vetores
Também chamado arranjo (array), tipocomposto ou agregado;É uma estrutura de dados homogênea e deacesso aleatório;
Homogênea: contém elementos de um mesmo tipo;Acesso aleatório: todos seus elementos sãoigualmente acessíveis a qualquer momento;
Está disponível na maior parte das linguagens;É usado como base para estruturas de dadosmais complexas;Considere que o próprio acesso a memória dosistema é linear como um vetor;
Maurício Severich Vetores e Matrizes
MotivaçãoVetores
Exercícios
Vetor unidimensionalVetor bidimensional ou matrizVetor dinâmico
Vetores
Também chamado arranjo (array), tipocomposto ou agregado;É uma estrutura de dados homogênea e deacesso aleatório;
Homogênea: contém elementos de um mesmo tipo;Acesso aleatório: todos seus elementos sãoigualmente acessíveis a qualquer momento;
Está disponível na maior parte das linguagens;É usado como base para estruturas de dadosmais complexas;Considere que o próprio acesso a memória dosistema é linear como um vetor;
Maurício Severich Vetores e Matrizes
MotivaçãoVetores
Exercícios
Vetor unidimensionalVetor bidimensional ou matrizVetor dinâmico
Vetores
Também chamado arranjo (array), tipocomposto ou agregado;É uma estrutura de dados homogênea e deacesso aleatório;
Homogênea: contém elementos de um mesmo tipo;Acesso aleatório: todos seus elementos sãoigualmente acessíveis a qualquer momento;
Está disponível na maior parte das linguagens;É usado como base para estruturas de dadosmais complexas;Considere que o próprio acesso a memória dosistema é linear como um vetor;
Maurício Severich Vetores e Matrizes
MotivaçãoVetores
Exercícios
Vetor unidimensionalVetor bidimensional ou matrizVetor dinâmico
Vetores
Também chamado arranjo (array), tipocomposto ou agregado;É uma estrutura de dados homogênea e deacesso aleatório;
Homogênea: contém elementos de um mesmo tipo;Acesso aleatório: todos seus elementos sãoigualmente acessíveis a qualquer momento;
Está disponível na maior parte das linguagens;É usado como base para estruturas de dadosmais complexas;Considere que o próprio acesso a memória dosistema é linear como um vetor;
Maurício Severich Vetores e Matrizes
MotivaçãoVetores
Exercícios
Vetor unidimensionalVetor bidimensional ou matrizVetor dinâmico
Vetores
Também chamado arranjo (array), tipocomposto ou agregado;É uma estrutura de dados homogênea e deacesso aleatório;
Homogênea: contém elementos de um mesmo tipo;Acesso aleatório: todos seus elementos sãoigualmente acessíveis a qualquer momento;
Está disponível na maior parte das linguagens;É usado como base para estruturas de dadosmais complexas;Considere que o próprio acesso a memória dosistema é linear como um vetor;
Maurício Severich Vetores e Matrizes
MotivaçãoVetores
Exercícios
Vetor unidimensionalVetor bidimensional ou matrizVetor dinâmico
Vetor unidimensional
Gra�camente, pode-se representar um vetorunidimensional V com 6 caracteres como:
l1 Dl2 El3 Il4 Nl5 Fl6 O
A esquerda, índice ln, a direita o conteúdo. Cadaelemento dessa estrutura é acessada atravésdeste índice. O valor acessado em V [l1] será D;
Maurício Severich Vetores e Matrizes
MotivaçãoVetores
Exercícios
Vetor unidimensionalVetor bidimensional ou matrizVetor dinâmico
Vetor unidimensional
Gra�camente, pode-se representar um vetorunidimensional V com 6 caracteres como:
l1 Dl2 El3 Il4 Nl5 Fl6 O
A esquerda, índice ln, a direita o conteúdo. Cadaelemento dessa estrutura é acessada atravésdeste índice. O valor acessado em V [l1] será D;
Maurício Severich Vetores e Matrizes
MotivaçãoVetores
Exercícios
Vetor unidimensionalVetor bidimensional ou matrizVetor 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 intervaloantes de acessar o valor
1Standard Template LibraryMaurício Severich Vetores e Matrizes
MotivaçãoVetores
Exercícios
Vetor unidimensionalVetor bidimensional ou matrizVetor 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 intervaloantes de acessar o valor
1Standard Template LibraryMaurício Severich Vetores e Matrizes
MotivaçãoVetores
Exercícios
Vetor unidimensionalVetor bidimensional ou matrizVetor 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 intervaloantes de acessar o valor
1Standard Template LibraryMaurício Severich Vetores e Matrizes
MotivaçãoVetores
Exercícios
Vetor unidimensionalVetor bidimensional ou matrizVetor 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 intervaloantes de acessar o valor
1Standard Template LibraryMaurício Severich Vetores e Matrizes
MotivaçãoVetores
Exercícios
Vetor unidimensionalVetor bidimensional ou matrizVetor 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 intervaloantes de acessar o valor
1Standard Template LibraryMaurício Severich Vetores e Matrizes
MotivaçãoVetores
Exercícios
Vetor unidimensionalVetor bidimensional ou matrizVetor 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 intervaloantes de acessar o valor
1Standard Template LibraryMaurício Severich Vetores e Matrizes
MotivaçãoVetores
Exercícios
Vetor unidimensionalVetor bidimensional ou matrizVetor dinâmico
Vetor bidimensional ou matriz
Gra�camente, pode-se representar uma matrizM de 6 linhas e 2 colunas como:
c1 c2l1 D Ml2 E Al3 I Tl4 N Rl5 F Il6 O Z
Acesso através dos 2 índices: de linhas ln e decolunas cn. O valor de M[l6][c2] será Z;
Maurício Severich Vetores e Matrizes
MotivaçãoVetores
Exercícios
Vetor unidimensionalVetor bidimensional ou matrizVetor dinâmico
Vetor bidimensional ou matriz
Gra�camente, pode-se representar uma matrizM de 6 linhas e 2 colunas como:
c1 c2l1 D Ml2 E Al3 I Tl4 N Rl5 F Il6 O Z
Acesso através dos 2 índices: de linhas ln e decolunas cn. O valor de M[l6][c2] será Z;
Maurício Severich Vetores e Matrizes
MotivaçãoVetores
Exercícios
Vetor unidimensionalVetor bidimensional ou matrizVetor 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çãoVetores
Exercícios
Vetor unidimensionalVetor bidimensional ou matrizVetor 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çãoVetores
Exercícios
Vetor unidimensionalVetor bidimensional ou matrizVetor 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çãoVetores
Exercícios
Vetor unidimensionalVetor bidimensional ou matrizVetor 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çãoVetores
Exercícios
Vetor unidimensionalVetor bidimensional ou matrizVetor 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çãoVetores
Exercícios
Vetor unidimensionalVetor bidimensional ou matrizVetor 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çãoVetores
Exercícios
Vetor unidimensionalVetor bidimensional ou matrizVetor dinâmico
Vetor dinâmico
Quando não se sabe a priori o tamanho dovetor, a alocação dinâmica de memória deve serconsiderada;
Linguagem C:int M**; M=(int **) calloc( L*C;
sizeof(int));
printf(�Elemento M[1][0]: %d�,M[2]);
Linguagem C++: usando STLvector<int> M(L*C);
cout � �Elemento M[1][0]:� � M[2];
Maurício Severich Vetores e Matrizes
MotivaçãoVetores
Exercícios
Vetor unidimensionalVetor bidimensional ou matrizVetor dinâmico
Vetor dinâmico
Quando não se sabe a priori o tamanho dovetor, a alocação dinâmica de memória deve serconsiderada;
Linguagem C:int M**; M=(int **) calloc( L*C;
sizeof(int));
printf(�Elemento M[1][0]: %d�,M[2]);
Linguagem C++: usando STLvector<int> M(L*C);
cout � �Elemento M[1][0]:� � M[2];
Maurício Severich Vetores e Matrizes
MotivaçãoVetores
Exercícios
Vetor unidimensionalVetor bidimensional ou matrizVetor dinâmico
Vetor dinâmico
Quando não se sabe a priori o tamanho dovetor, a alocação dinâmica de memória deve serconsiderada;
Linguagem C:int M**; M=(int **) calloc( L*C;
sizeof(int));
printf(�Elemento M[1][0]: %d�,M[2]);
Linguagem C++: usando STLvector<int> M(L*C);
cout � �Elemento M[1][0]:� � M[2];
Maurício Severich Vetores e Matrizes
MotivaçãoVetores
Exercícios
Exercícios
Para acessar os elementos do vetor dinâmicoapresentado nesta aula é obrigatório o cálculo daposição (L*W+C):
Implemente uma solução na linguagem C paraobter novamente acesso através de 2 indices M[][]Implemente uma solução na linguagem C++ paraobter novamente acesso através de 2 indices M[][]
Maurício Severich Vetores e Matrizes
MotivaçãoVetores
Exercícios
Exercícios
Para acessar os elementos do vetor dinâmicoapresentado nesta aula é obrigatório o cálculo daposição (L*W+C):
Implemente uma solução na linguagem C paraobter novamente acesso através de 2 indices M[][]Implemente uma solução na linguagem C++ paraobter novamente acesso através de 2 indices M[][]
Maurício Severich Vetores e Matrizes
MotivaçãoVetores
Exercícios
Exercícios
Para acessar os elementos do vetor dinâmicoapresentado nesta aula é obrigatório o cálculo daposição (L*W+C):
Implemente uma solução na linguagem C paraobter novamente acesso através de 2 indices M[][]Implemente uma solução na linguagem C++ paraobter novamente acesso através de 2 indices M[][]
Maurício Severich Vetores e Matrizes