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:

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.
algoritmo "vetores"
var
indice: inteiro
vet: vetor [1..10] de real
inicio
para indice de 1 ate 10 faca
escreva(" Digite um número real: ")
leia (vet[indice])
fimpara
escreval("")
para indice de 1 ate 10 faca
escreval(" | indice: | ", indice, " | elemento: | ", vet[indice])
fimpara
fimalgoritmo
Listagem 1: Armazenando e imprimindo dez números reais em um Array.


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ção | indice | para indice de 1 até 10 | leia ( vet [ indice ] ) |
| 1 | 1 | i = 1 | vet[1] = 5.6 |
| 2 | 2 | i = 2 | vet[2] = 8.7 |
| 3 | 3 | i = 3 | vet[3]= 1.2 |
| 4 | 4 | i = 4 | vet[4] = 3 |
| 5 | 5 | i = 5 | vet[5] = 9 |
| 6 | 6 | i = 6 | vet[6] = 10.7 |
| 7 | 7 | i = 7 | vet[7] = 3.5 |
| 8 | 8 | i = 8 | vet[8] = 81.7 |
| 9 | 9 | i = 9 | vet[9] = 123.07 |
| 10 | 10 | i = 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ção | indice | para indice de 1 até 10 | imprime indice | imprime vet[indice] |
| 1 | 1 | i = 1 | 1 | vet[1] = 5.6 |
| 2 | 2 | i = 2 | 2 | vet[2] = 8.7 |
| 3 | 3 | i = 3 | 3 | vet[3] = 1.2 |
| 4 | 4 | i = 4 | 4 | vet[4] = 3 |
| 5 | 5 | i = 5 | 5 | vet[5] = 9 |
| 6 | 6 | i = 6 | 6 | vet[6] = 10.7 |
| 7 | 7 | i = 7 | 7 | vet[7] = 3.5 |
| 8 | 8 | i = 8 | 8 | vet[8] = 81.7 |
| 9 | 9 | i = 9 | 9 | vet[9] = 123.07 |
| 10 | 10 | i = 10 | 10 | vet[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
#include <stdio.h>
#include <stdlib.h>
int main()
{
float Vetor[10];
int indice;
for(indice=0; indice<10; indice++){
printf(" Digite um numero real: ");
scanf("%f",&Vetor[indice]);
}
for(indice=0; indice<10; indice++){
printf(" Indice %d \n", indice);
printf(" Vetor[indice] %.2f \n " , Vetor[indice]);
}
return 0;
}
Pascal
program arrays;
uses wincrt, crt;
var
vet : array[1..10] of real;
indice : integer;
begin
//populando o vetor
for indice:=1 to 10 do
begin
write(' Escreva um número real: ');
readln(vet[indice]);
end;
//imprimindo o vetor
for indice:=1 to 10 do
begin
writeln(' | indice = ' , indice , ' | vet [ índice ] = ', vet[indice]:2:2 , ' | ');
end;
readkey();
end.
Java
package vetores;
import java.util.Scanner;
public class Vetores {
public static void main(String[] args) {
int indice;
double[] vetor = new double[10];
Scanner s = new Scanner(System.in);
for (indice = 1; indice < 10; indice++) {
System.out.println(" Digite um número real: ");
vetor[indice] = s.nextDouble();
}
for (indice = 1; indice < 10; indice++) {
System.out.println(" | Índice: " + indice + " | Vetor [ indice ]: " + vetor[indice]);
}
}
}
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.










Gostei muito do seus artigos. Tem como fazer downloads . Estruturas de Dados…..
Você pode usar o EVERNOTE para salvar como PDF em seu computador ta bom. [ ]s
Excelente matéria. Parabens!
muito obrigada Euclides!!