Introdução às Estruturas de Dados/Vetores e Matrizes

Vetor (Array)

editar

Em computação um Vetor (Array) ou Arranjo é o nome de uma matriz unidimensional considerada a mais simples das estruturas de dados. Geralmente é constituída por dados do mesmo tipo (homogêneos)e tamanho que são agrupados continuamente na memória e acessados por sua posição (indíce - geralmente um número inteiro) dentro do vetor. Na sua inicialização determina-se o seu tamanho que geralmente não se modifica mesmo que utilizemos menos elementos do que determinado à príncipio.

Abaixo temos o exemplo de um vetor. Os valores internos seriam os dados alocados no vetor , enquanto seu tamanho é dado pelo número de casas disponíveis (no caso 8) e o índice representa a posição do dado no vetor ( por exemplo podemos definir que 0 tem o índice 1, 2 tem índice 2, 8 tem índice 3 e assim sucessivamente).

0 2 8 9 10 11 15 18


  • Declaração e inicialização de um vetor

A declaração de um vetor em português estruturado pode ser da seguinte forma:

                             Nome_Vetor:vetor[tamanho]tipo


Assim temos como exemplo de declarações:

                             VECTOR:vetor [10] numérico
                             MEDIA: vetor [3] numérico

Tomemos o primeiro exemplo (inteiro vector [10]) onde declaramos que estamos criando um vetor para números chamado de VECTOR com dez posições. Desta forma o computador entende que deve alocar 10 espaços para 10 números inteiros no computador que serão inseridos conforme especificado pelo programa . Por exemplo, vamos construir dois laços de repetição:

                       VECTOR:vetor [10] numérico
                       INDICE:numérico
                       INDICE<-0
                       para INDICE de 0 até VECTOR<9 passo 1 faça
                       exibe Escreva um número 
                       recebe VECTOR [INDICE]
                       fecha_para
                       para INDICE de 0 até VECTOR<9 passo 1 faça
                       exibeVECTOR [INDICE]
                       recebe VECTOR [INDICE]
                       fecha_para

Conforme vimos, o primeiro laço para vai entender que ao entrar índice<-0 , quando o usuário digitar o primeiro valor será alocado este valor em vector[índice].Quando chegar ao final do para ele fará o teste. Se o índice continuar menor do que 10 ele entra no laço e recebe o segundo valor, chegando ao final do laço e fazendo novamente o processo até obter os dez valores quando sai do laço.

No segundo laço acessamos estes dados e exibimos na tela aplicando o mesmo príncipio do primeiro laço.

Operações com Vetores

editar

Podemos trabalhar com vetores numéricos, executando operações sobre eles da mesma forma como executaríamos com variáveis numéricas comuns. Devemos assumir que ao declararmos um determinado vetor[índice], com um índice específico, estamos fazendo referência a um número.

Matrizes

editar

Matrizes são arranjos ordenados que ao contrário dos vetores podem ter n dimensões, sendo que estas dimensões lhes dão o nome n-dimensional . Uma matriz de duas dimensões será chamada bi-dimensional, uma de três dimensões tri-dimensional e assim consecutivamente. Funciona praticamente da mesma forma que um vetor exceto que utilizaremos o número n de índices para acessar um dado que queremos. Para efeitos de estudo por enquanto nos limitaremos somente às matrizes bidimensionais (duas dimensões linha X colunas). Assim se possuimos uma matriz bidimensional de duas linhas e duas colunas:

3 4

5 6

Consideramos que para acessarmos o valor 3, localizamos o índice por sua linha (1) e coluna (1) , deste modo seu índice é (1,1). O valor quatro por exemplo será (1, 2).


  • Declaração e inicialização de um matriz

A declaração de uma matriz em português estruturado pode ser da seguinte forma:

tipo Nome_Matriz [tamanho_linha][tamanho_coluna]


Assim temos como exemplo de declarações:

                                    inteiro matrix [10][10] 
                                    real media [3][3]

Em uma matriz como o inteiro matrix que criamos acima é criado espaço para 100 elementos (10x10).Criaremos abaixo um algoritmo em que o usuário digita 100 elementos e estes aparecem na tela.


inteiro matrix [10][10]
inteiro i , j (i será o índice linha e j o índice coluna)
para (início: i=0 fim i<10 iteraçãoi+1 )
para (início: j=0 fim j<10 iteraçãoj+1 )
exibe Escreva um número
recebe matriz [i][j]
fecha_para
fecha_para
para (início: i=0 fim i<10 iteraçãoi+1 )
para (início: j=0 fim j<10 iteraçãoj+1 )
exibe Estes são os números digitados:
exibe matriz [i][j]
fecha_para
fecha_para


Operações com matrizes

editar

Soma e subtração entre matrizes

editar
inteiro matriz_A [2][2]
inteiro matriz_B [2][2]
inteiro matriz_soma [2][2]


para (início: i=0 fim i<2 iteraçãoi+1 )
para (início: j=0 fim j<10 iteraçãoj+1 )
matriz_soma[i][j]= matriz_A [i][j]+ matriz_B [i][j]
fim_para
fim_para


Multiplicação por um escalar

editar
inteiro escalar
inteiro matriz_A [2][2]
inteiro matriz_multiplicacao [2][2]


para (início: i=0 fim i<2 iteraçãoi+1 )
para (início: j=0 fim j<2 iteraçãoj+1 )
matriz_multiplicacao[i][j]= escalar * matriz_B [i][j]
fim_para
fim_para

Multiplicação entre matrizes

editar
inteiro matriz_A [2][2]
inteiro matriz_B [2][2]
inteiro matriz_multiplicacao [2][2]


para (início: i=0 fim i<2 iteraçãoi+1 )
para (início: j=0 fim j<2 iteraçãoj+1 )
para (início: k=0 fim k<2 iteraçãok+1 )
matriz_multiplicacao[i][j]= matriz_multiplicacao [i][j]+ matriz_A [i][k]*matriz_B[k][j]
fim_para
fim_para

Calcular a diagonal e a transposta

editar
inteiro matriz_A [2][2]
inteiro diagonal=0


para (início: i=0 fim i<2 iteraçãoi+1 )
para (início: j=0 fim j<10 iteraçãoj+1 )
se (i=j)
diagonal= diagonal+ matriz_A [i][j]
fim_se
fim_para
fim_para


inteiro matriz_A [2][2]
inteiro inversa=0
inteiro maximo=2


para (início: i=0 fim i<2 iteraçãoi+1 )
para (início: j=0 fim j<2 iteraçãoj+1 )
se (i+j=(maximo*2)-1)
inversa= inversa + matriz_A [i][j]
fim_se
fim_para
fim_para

Resumo

editar

Exercícios

editar

Receber dez valores inteiros e positivos no vetor A.Costruir um vetor B com os elementos do vetor A negativos . Apresentar os elementos dos dois vetores.

Ligações externas

editar

Bibliografia

editar