vetor

Descrição

Um vetor (array) é uma coleção de variáveis que são acessadas com um número índice. Vetores na linguagem C++, na qual o Arduino é baseado, podem ser complicados, mas usar vetores simples é relativamente fácil.

Criando-se um Vetor

Todos os métodos abaixo são formas válidas de criar (declarar) um vetor.

int meusInts[6]; int meusPinos[] = {2, 4, 8, 3, 6}; int meusValSens[6] = {2, 4, -8, 3, 2}; char mensagem[6] = "hello";
  • Você pode declarar um vetor sem inicializá-lo, como em meusInts.
  • Em meusPinos, nós declaramos um vetor sem explicitamente escolher um tamanho. O compilador conta os elementos e cria um vetor de tamanho apropriado.
  • Finalmente você pode inicializar e também especificar o tamanho do vetor, como em meusValSens.
  • Note que quando declarar um vetor do tipo char, um elemento a mais que sua inicialização é requerido, para armazenar o caractere null necessário.

Acessando-se um Vetor

Vetores são indexados a partir de 0, isto é, referindo-se a inicialização dos vetores acima, o primeiro elemento do vetor está no índice 0, então

meusValSens[0] == 2, meusValSens[1] == 4, e assim por diante.

Isso também significa que em um vetor com dez elementos, o índice nove é o último elemento. Então:

int meuVetor[10] = {9, 3, 2, 4, 3, 2, 7, 8, 9, 11}; // meuVetor[9] contém 11 // meuVetor[10] é inválido e contém informação aleatória (endereço de memória fora do vetor)

Por esse motivo, você deve ser cuidadoso ao acessar vetores. Acessar um elemento depois do final de um vetor (usar um índice maior que o tamanho declarado - 1) é ler de uma parte da memória que pode estar em uso para outros propósitos. Ler desses locais provavelmente não vai fazer mais que retornar dados inválidos. Escrever em locais aleatórios da memória é definitivamente uma má ideia e pode frequentemente levar a péssimos resultados como crashes ou mal funcionamento do programa. Isso pode também ser um bug difícil de encontrar.

Diferentemente de BASIC ou JAVA, o compilador C++ não faz checagem para confirmar se o acesso a um elemento está dentro dos limites do tamanho declarado do vetor.

Para atribuir um valor a um elemento do vetor:

meusValSens[0] = 10;

Para ler um elemento de um vetor:

x = mySensVals[4];

Vetores e loops For

Vetores são frequentemente manipulados dentro de loops for, onde o contador do loop é usado como o índice para cada elemento. Por exemplo, para imprimir os elementos de um vetor através da porta serial, você pode fazer algo do tipo:

for (byte i = 0; i < 5; i = i + 1) { Serial.println(meusPinos[i]); }

Código de Exemplo

Para um programa completo que demonstra o uso de vetores, veja o exemplo da Super Máquina dos Tutoriais Arduino (Em Inglês).

Ver Também

Linguagem : PROGMEM

Please note: These are affiliate links. If you buy the components through these links, We may get a commission at no extra cost to you. We appreciate it.