Vetores e Matrizes - Maurí[email protected]/teaching/edd/vetores.pdf · Um...

35

Transcript of Vetores e Matrizes - Maurí[email protected]/teaching/edd/vetores.pdf · Um...

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