Introdução a Array

bubble sort

Oi Pessoal!!! Nos últimos artigos nós falamos sobre os comandos de controle: if, switch/case, for, while, do-while. Esses comandos são importantes para resolver alguns dos nossos problemas, mas a maioria das Linguagens de Programação fornecem, além destes, outros recursos que nos permitem resolver de maneira ainda melhor os nossos problemas, como as Estruturas de Dados! No artigo de hoje veremos uma estrutura de dados simples chamada de ARRAY.

ARRAYS

Um Array é uma Estrutura de Dados, isto significa que é uma forma de representar, manipular e armazenar dados em um computador. Um Array também é chamado de Variável Composta Homogênea, isto significa que um Array é um tipo de variável que consegue armazenar mais de um dado de um único tipo. Composta: mais de um dado; Homogêna: um único tipo. Exemplos: armazenar 10 salários, armazenar 15 nomes, armazenar 20 notas, etc. Existem vários "tipos" de Arrays, hoje veremos o Array denominado de "Variáveis Compostas Homogêneas Unidimensionais"

Variáveis Compostas Homogêneas Unidimensionais (Array de uma dimensão)

São variáveis compostas que necessitam de apenas um índice para individualizar um elemento do conjunto. Essas variáveis também são chamadas de Vetores. Observe a Figura 1:

Array de Uma Dimensão
Figura 1: Array de Uma Dimensão

A Figura 1 ilustra um Array de uma dimensão com cinco posições. Cada quadrado desse Array é correspondente a um espaço de memória que armazena um dado. Como o Array tem cinco posições, então, são cinco espaços de memória que serão utilizados para armazenar esses dados.

O índice nos ajuda a percorrer o Array, permitindo que o elemento daquela determinada posição possa ser armazenado, acessado, atualizado, excluído, enfim, manipulado. O índice pode "andar" da esquerda pra direita, por isso vocês veem escrito "i", "i + 1", e assim por diante. O índice "i" é a variável de incremento (contador) e a cada iteração que fizermos, ela é somada de um, para podermos caminhar no array.

Bom, para entendermos melhor tudo isso, vamos ver um exemplo simples: armazenar dez números do tipo real.

Listagem 1: Armazenando e imprimindo dez números reais em um Array.

Saída do programa no VisuAlg
Figura 2: Saída do programa no VisuAlg
Vetor do Exemplo
Figura 3: Vetor do Exemplo

A listagem 1 apresenta a solução em pseudocódigo para o exemplo do nosso artigo. A Figura 2 apresenta a saída do software VisuAlg, isto é, mostra o console do VisuAlg ao testarmos o nosso algoritmo. Por fim, a Figura 3 apresenta a REPRESENTAÇÃO do Vetor do nosso exemplo. Na linha 5 é feita a DECLARAÇÃO do vetor:

vet: vetor [1..10] de real

A declaração do vetor cria o espaço de memória necessário para armazenar a quantidade de posições que desejamos: vetor é a palavra chave reservada; [1..10] é a quantidade de posições que desejamos para o nosso vetor, começando sempre em 1; real é o tipo de dado que queremos armazenar neste vetor; vet é o nome do vetor, poderia ser qualquer outro nome.

Nas linhas de 9 a 12 temos o código necessário para PREENCHER o vetor e usamos o comando de controle FOR para isso, assim podemos incluir um valor em cada posição do vetor. O FOR vai ser repetido por dez vezes, conforme a linha 9 define: para ÍNDICE de 1 até 10 (começando em 1 e terminando em 10). Dentro do FOR colocamos uma mensagem para o usuário, pedindo que ele digite um valor, e o mesmo é armazenado pelo comando

leia ( vet [ indice ] )

Observe que vet[índice] é a forma que usamos para armazenar um valor no vetor em uma posição que não conhecemos, já que no FOR o valor do índice varia conforme ele é executado.

As linhas de 16 a 18 IMPRIMEM o conteúdo do ARRAY e vocês podem verificar a forma como é impresso o conteúdo na Figura 2. Vamos fazer o teste de mesa para esse código do nosso exemplo, mas por questões de espaço visual, vou dividir o código. Abaixo, a Tabela 1 apresenta o teste de mesa do código para inserir no vetor.

iteraçãoindicepara indice de 1 até 10leia ( vet [ indice ] )
11i = 1vet[1] = 5.6
22i = 2vet[2] = 8.7
33i = 3vet[3]= 1.2
44i = 4vet[4] = 3
55i = 5vet[5] = 9
66i = 6vet[6] = 10.7
77i = 7vet[7] = 3.5
88i = 8vet[8] = 81.7
99i = 9vet[9] = 123.07
1010i = 10 vet[10] = 2.4
11------

Tabela 1: Teste de Mesa - inserindo no vetor

Como vocês podem observar na Tabela 1, o teste de mesa mostra que, quando atingimos indice = 10, chegamos ao fim do algoritmo. Na primeira iteração, que é i = 1, é impressa na tela do console a mensagem para o usuário digitar um número real. Logo em seguida, esse número é obtido e armazenado em vet[índice], e o nosso índice neste momento é igual a 1, portanto, vet [1]. Na posição 1 do vetor foi armazenado o valor 5.6. Na segunda iteração, i = 2 e índice = 2, então, o próximo número que o usuário digitar, que no caso foi 8.7, será armazenado nesta posição e, assim sucessivamente, até i = 10.

A Tabela 2 apresenta o teste de mesa para a parte do código que imprime o vetor na tela.

iteraçãoindicepara indice de 1 até 10imprime indiceimprime vet[indice]
11i = 11vet[1] = 5.6
22i = 22vet[2] = 8.7
33i = 33vet[3] = 1.2
44i = 44vet[4] = 3
55i = 55vet[5] = 9
66i = 66vet[6] = 10.7
77i = 77vet[7] = 3.5
88i = 88vet[8] = 81.7
99i = 99vet[9] = 123.07
1010i = 10 10vet[10] = 2.4
11------ 

Tabela 2: Teste de Mesa - imprimindo o vetor

Na primeira iteração, i = 1 e índice também igual a 1, então, na mensagem em ESCREVAL, será impresso o valor do índice, que é 1, e o valor do conteúdo da posição vet[indice], que neste caso é vet[1]. A posição vet[1] é igual a 5.6, então este é o valor que será buscado e impresso na tela. Na segunda iteração, i = 2, indice = 2, e vet[indice] é vet[2] = 8.7, assim esses serão os valores impressos na tela. Isso ocorre sucessivamente até que i = 10.

Vamos ver agora como fica o mesmo código em outra linguagem?

C

Pascal

Java

Conclusão

Pessoal, neste artigo eu fiz uma introdução à Arrays Unidimensionais. No próximo artigo eu vou mostrar algumas coisas que podemos fazer com Arrays além de populá-los e imprimi-los. Deixarei os exercícios para o próximo artigo, ok?! Muito Obrigada.

Outros artigos da série

Operações com Arrays >>
Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Software » Introdução a Array
Comentários:
Notificações
Notificar
guest
4 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Irenil Ramos Valentim
23/10/2018 01:54

Gostei muito do seus artigos. Tem como fazer downloads . Estruturas de Dados.....

Euclides Franco de Rezende
Euclides Rezende
05/12/2016 12:45

Excelente matéria. Parabens!

Elaine Cecília Gatto
Elaine Cecília Gatto
Reply to  Euclides Rezende
08/12/2016 09:31

muito obrigada Euclides!!

Talvez você goste:

Séries



Outros da Série

Menu

WEBINAR
 
Redes Mesh para Monitoramento
e Controle de Sensores

Data: 15/07 às 14:00h Apoio: Artimar| Microchip| Tecsus
 
INSCREVA-SE AGORA »



 
close-link