Você está na página 1de 12

Estrutura de Dados

Parte 2

Material compilado para utilização na disciplina


de Estrutura de Dados, do curso de Tecnologia
em Sistemas Para Internet UAB/IFMT.

Prof. Orlando P. S. Júnior


orlando.junior@cba.ifmt.edu.br
Sumário
1. Variáveis Indexadas........................................................................................................................... 1
1.1. Introdução..................................................................................................................................... 1
1.2. Vetores .......................................................................................................................................... 1
1.2.1. Conceito ................................................................................................................................ 1
1.2.2. Declaração............................................................................................................................. 1
1.2.3. Acesso ao vetor e suas posições ........................................................................................... 2
1.3. Matrizes ........................................................................................................................................ 4
1.3.1. Conceito ................................................................................................................................ 4
1.3.2. Declaração............................................................................................................................. 5
1.3.3. Acesso ao vetor e suas posições ........................................................................................... 6
1.4. Exercícios....................................................................................................................................... 8
1.4.1. Exercícios Resolvidos............................................................................................................. 8
1. Variáveis Indexadas

1.1. Introdução
Alguns algoritmos envolvem a utilização de dados organizados em memória de maneira mais sofisticada
que as variáveis comuns. Esta organização permite a construção de algoritmos sofisticados que buscam
resolver problemas mais complexos de maneira otimizada.

As variáveis indexadas são úteis neste contexto, onde podem fornecer uma espécie de armazenamento
de dados de acordo com endereços determinados. As variáveis indexadas são estruturas homogêneas, ou
seja, são formadas pelo mesmo tipo de dado.

1.2. Vetores
1.2.1. Conceito
Os vetores são estruturas de dados que permitem o acesso a uma grande quantidade de dados em
memória usando-se apenas um nome de variável e um endereço. Esta variável especial é declarada de tal
maneira que o programador passa a ter acesso à muitas posições de memória de maneira controlada.

Em uma analogia, podemos comparar Vetores com um guarda-roupas, onde as roupas estão todas
alocadas de maneira organizada e de fácil acesso. Porém, ao buscar uma determinada peça de roupa,
sabe-se que é necessário acessar o guarda-roupas em um determinado compartimento.

O endereço a ser utilizado é proporcional ao tamanho do vetor, que indica a quantidade de elementos
que o mesmo poderá armazenar. Sendo assim, em um vetor de tamanho 15, que poderá armazenar até
15 elementos, o endereço a ser utilizado poderá contemplar as posições de 1 a 15. O acesso a uma posição
inexistente causará erro na execução do algoritmo.

1.2.2. Declaração
Para exemplificar a declaração de variáveis usando vetores, consideremos a necessidade de alocar uma
variável especial com 200 posições para utilizamos.

Veja a seguir o exemplo utilizando portugol.

Figura 1: Declaração de Vetor

1
Como visto na Figura 1, na linha 3, uma variável chamada “vet” do tipo Vetor está sendo declarada.
Observe que a declaração da variável vetor possui alguns detalhes que a diferencia em relação às variáveis
comuns. A declaração nos informa que tal variável, sendo única, possui 200 posições, ou seja, dentro da
variável “vet” podemos armazenar até 200 números inteiros diferentes.

Por se tratar de uma estrutura de dados homogêneos, a variável “vet” só poderá conter um tipo de dado
para todas as suas respectivas posições, ou seja, em todas as posições do vetor só poderão ser
armazenados números inteiros.

Veja mais alguns exemplos de declaração de vetores:

Figura 2: Exemplos de Declaração de Vetores

1.2.3. Acesso ao vetor e suas posições


Por não se tratar de uma variável comum, o tratamento da variável “vet” não pode ser convencional, ou
seja, é necessária outra informação adicional para o tratamento de “vet”. Essa informação adicional é
conhecida como endereço ou índice do vetor, que indica em qual das 200 posições deverá ser
lido/colocado um determinado valor.

Em Portugol o acesso às posições do vetor inicia de 1 podendo chegar ao limite do tamanho do vetor, de
200, conforme a declaração do vetor da Figura 1. Tanto para recuperar o valor contido em uma
determinada posição do vetor, quanto para alimentar uma determinada posição, é necessário informar o
índice de acesso.

Figura 3: Ilustração de um vetor de 200 posições

O indice pode ser representado por um número inteiro ou através de uma variável do tipo inteiro que
cumpra o papel de representar o índice do vetor. Veja a figura abaixo:

2
Figura 4: Acesso ao vetor por número como posição

O índice para acesso a uma posição do vetor também pode ser representado por uma variável. Tal
variável deve ser do tipo inteiro. Veja o exemplo:

Figura 5: Acesso ao vetor por variável como posição

O acesso às posições do vetor pode ser realizado com o auxílio das estruturas de repetição. Dentre as
estruturas de repetição, a que mais se adequa ao papel é a instrução para-ate-faca, pois a mesma se dá
muito bem com quantidades de repetições pré-definidas. Veja o exemplo abaixo:

3
Figura 6: Para-Ate-Faca

A variável b é lida na linha 6 e será utilizada para designar a quantidade de iterações do laço. Na linha 8,
onde está colocada a instrução Para-Até-Faça, contém a delimitação do laço, ou seja, o intervalo é definido
entre 0 e b-1. Para ilustrar o funcionamento, caso o usuário informe 5 como entrada para a variável b, o
intervalo será de 0 até 5-1, ou seja, de 0 a 4. Vê-se que a quantidade de iterações é fixa e não baseada no
julgamento de uma condição.

1.3. Matrizes
1.3.1. Conceito
Enquanto os vetores são estruturas de apenas uma dimensão, as matrizes são estruturas que possuem
duas dimensões. Isto implica em que os acessos às posições de memória de uma matriz são feitos com
base em duas informações: o índice para a linha e o índice para a coluna. Assim como o vetor a matriz
também só pode armazenar dados do mesmo tipo, portanto, homogêneos.

Em uma analogia, podemos comparar Matrizes com um gaveteiro do guarda-roupas, que por sua vez é
subdividida em outros compartimentos. Ao buscar um determinado objeto no guarda-roupas, sabe-se
que é necessário acessar o guarda-roupas em um determinado compartimento, a gaveta, e ainda em uma
determinada subdivisão da gaveta.

4
Figura 7: Escaninho

Para quem já conhece ou já trabalho, existe um móvel chamado Escaninho, muito comum em
restaurantes e lanchonetes, que organizam os pedidos. O Escaninho é uma representação perfeita de uma
matriz, conforme figura abaixo:

1.3.2. Declaração
Para exemplificar a declaração de variáveis usando matrizes, consideremos a necessidade de alocar uma
variável especial com 3 posições e para cada uma destas posições, alocar outras 3. Veja a seguir o exemplo,
utilizando Portugol.

Figura 8: Declaração de Matriz

Como visto na Figura 8, na linha 3, uma variável chamada “mat” do tipo Vetor está sendo declarada.
Observe que a declaração da variável vetor possui alguns detalhes que a diferencia em relação às variáveis
comuns, e até mesmo em relação aos vetores unidimensionais. A declaração nos informa que tal variável,
sendo única, possui um intervalo de 3 posições, subdivididas em outras 3 posições.

5
Por se tratar de uma matriz, ou seja, um vetor de vetores, cada uma das 3 posições acima, terão outras 3
posições vinculadas, formando uma espécie de tabela, que naturalmente é dividida em linhas e colunas.

Assim como os vetores são estruturas de dados homogêneos, as matrizes também o são. Nesta declaração
a variável “mat” só poderá conter um tipo de dado para todas as suas respectivas subdivisões.

1.3.3. Acesso ao vetor e suas posições


Por não se tratar de uma variável comum, o tratamento da variável “mat” não pode ser convencional, ou
seja, são necessárias outras duas informações adicionais para o tratamento de “mat”. Essas informações
adicionais são conhecidas como índices da matriz, que indica em qual das 9 posições possíveis deverá ser
lido/colocado um determinado valor.

Figura 9: Ilustração de um vetor de 3 colunas e 3 linhas

Para esta declaração, o acesso às posições do vetor inicia de 1, podendo chegar ao limite de 3 para o
acesso lateral (coluna) e também de 1 até 3 para o acesso vertical (linha), conforme a declaração do vetor.
Tanto para recuperar o valor contido em uma determinada posição do vetor, quanto para alimentar uma
determinada posição, é necessário informar os dois índices de acesso, lateral e vertical.

Os índices podem ser representados por um número inteiro, propriamente dito, ou através de uma
variável do tipo inteiro que cumpra o papel de representar o índice do vetor. Veja a figura abaixo.

Figura 10: Acesso a matriz por número como posição para as linhas e colunas

6
Os índices para acesso a uma posição (subdivisão) da matriz também podem ser representados por
variáveis. Tais variáveis devem ser do tipo inteiro. Veja o exemplo:

Figura 11: Acesso a matriz por variável como posição

7
1.4. Exercícios
1.4.1. Exercícios Resolvidos
a. Construa um algoritmo para ler 20 valores inteiros e armazená-los em um vetor. Após a leitura,
percorra o vetor para encontrar o menor elemento, o maior elemento e a soma de todos os
elementos.

8
b. Crie um algoritmo para fazer a leitura de 30 números e armazená-los em um vetor de inteiros. Após
a leitura, imprima os elementos do vetor na posição inversa da leitura. Evite a entrada de números
iguais a zero e evite a entrada de números duplicados, ou seja, que já tenham sido incluídos.

9
c. Crie um algoritmo para fazer a leitura de uma matriz de 25. Após a leitura, apresente a soma de cada
linha da matriz.

d. Crie um algoritmo para fazer a leitura de uma matriz de ordem 6x4. Após a leitura, apresente o maior
elemento por coluna.

10

Você também pode gostar