Como declarar um Array em C++
Assim como as variáveis que usamos até o momento, em nossa apostila, para declarar um vetor, você primeiramente precisa declarar o tipo de dado dele (char, int, double, float etc). Em seguida, precisa dar um nome também.Agora vem a parte diferente, em array: você precisa dizer o tamanho do seu array, ou seja, quantas variáveis únicas aquele vetor vai conter, e isso é informado entre colchetes [ ].
Vamos declarar algumas variáveis?
- int RG[10]: array com 10 inteiros pra armazenar números de RG's
- float notas[5]: array com 5 números floats, pra armazenar notas
- char nome[100]: array com espaços para 100 caracteres, para armazenar um nome ou texto (também chamado de strings, que estudaremos futuramente nosso curso)
Só isso: tipo, nome do array e quantos elementos ele deve ter.
Como inicializar um Array
Ao declarar, você já pode de cara inicializar os elementos do array. Para isso, colocamos os valores entre colchetes { }.Por exemplo, um array de 2 elementos inteiros de valores 21 e 12:
- int rush[2] = { 21, 12 };
Se você quiser inicializar um array de mil elementos, todos com valor 0, basta fazer:
- int num[1000] = {};
Automaticamente o C++ vai preencher todas as variáveis com valor inicial nulo.
Você não precisa nem declarar o número de elementos se for inicializar diretamente, o C++ vai contar quantos elementos você informou e declarar o array com tamanho exato daquilo que está usando, basta deixar os colchetes vazios.
Por exemplo, inicializando uma string (array de caracteres) com o nome do nosso curso e exibir uma mensagem de boas vindas:
#include <iostream> using namespace std; int main() { char site[] = {"C++ Progressivo"}; cout << "Bem vindos ao "<< site <<endl; }
Como acessar os elementos de um Array
Vamos supor que tenhamos um array de 3 inteiros:int num[3];
A primeira variável é: num[0]
A segunda variável é: num[1]
A terceira variável é : num[2]
Note uma coisa essencial: o primeiro elemento tem SEMPRE índice 0
O primeiro é num[0] e não num[1].
Você pode declarar um vetor de 10, 100, mil, milhão...o primeiro elemento é acessado usando o índice 0:
Primeiro elemento: num[0]
Segundo elemento: num[1]
n-ésimo elemento : num[n-1]
Ou seja, se seu array tem tamanho X, você acessa os elementos a partir do índice 0, até o índice (X-1), ok ?
Como usar Arrays em C++
Vamos colocar a mão na massa e ver como se usa arrays em C++? De verdade?Como vamos tratar com uma grande quantidade de variáveis, praticamente sempre que usamos arrays, usamos também laços para acessar mais rapidamente e de maneira mais dinâmica e flexível, os vetores. Vamos ver na prática.
Exemplo 1
Coloque os números 0, 1, 2, 3, ..., 9 em um array de 10 elementos.#include <iostream> using namespace std; int main() { int num[10], cont; for(cont=0 ; cont<10 ; cont++) num[cont] = cont; }
Nossa variável auxiliar é 'cont', e ela recebe valores de 0 até 9.
A variável de índice 0 recebe o valor 0.
A variável de índice 1 recebe o valor 1.
...
A variável de índice 9 recebe o valor 9.
Isso é feito com a linha de comando: num[cont] = cont;
Exemplo 2
Coloque os números 1, 2, 3, ..., 10 em um array de 10 elementos, em seguida exiba eles no formato 'Elemento 1', 'Elemento 2', ..., 'Elemento 10'.#include <iostream> using namespace std; int main() { int num[10], cont; for(cont=0 ; cont<10 ; cont++) num[cont] = cont+1; for(cont=0 ; cont<10 ; cont++) cout << "Elemento " << cont+1 << ": " << num[cont] << endl; }
Agora fizemos com um detalhe de diferença:
A variável de índice 0 recebe o valor 1.
A variável de índice 1 recebe o valor 2.
...
A variável de índice 9 recebe o valor 10.
Isso é feito com a linha de comando: num[cont] = cont+1;
Veja bem, nós programadores, contamos a partir do 0. Mas as pessoas normais (?????!), contam a partir do 1. Então, temos que exibir 'elemento 1' como o primeiro, e não elemento 0. Por isso, adicionamos 1 à variável cont,
Exemplo 3
Crie um programa que peça a nota de 5 alunos, armazene essas notas num array, depois exiba elas, bem como a sua média.#include <iostream> using namespace std; int main() { float grade[5], sum=0; int cont; for(cont=0 ; cont<5 ; cont++){ cout<<"Insira a nota "<<cont+1<<": "; cin >> grade[cont]; sum += grade[cont]; } for(cont=0 ; cont<5 ; cont++) cout<<"Nota "<<cont+1<<": "<<grade[cont]<<endl; sum /= 5; cout<<"Media: "<<sum<<endl; }Vamos armazenar as notas no array 'grade', e a soma das notas na variável 'sum'. Nosso contador é o 'cont'.
Primeiro, usamos um laço FOR para pedir as 5 notas ao usuário.
Cada vez que ele digita uma nota, ela é atribuída a um elemento do array, em seguida é somada a variável sum (que deve inicializar em 0).
Depois, exibimos todas as notas digitadas.
Por fim, basta dividir a variável 'sum' por 5 e teremos a média das notas digitadas.
Note que o tamanho do código seria o mesmo pra 1 milhão de notas, bastaria mudar o número 5 pra 1000000. Viu como os arrays deixam nossas possibilidades de criar programas bem mais flexíveis?
Exemplo 4
Crie um array de 101 elementos. Em cada elemento do array, armazene o valor do dobro do índice. Ou seja, a variável num[x] deve ter armazenado o valor 2x. Depois, exibe a lista dos 100 números primeiros números pares.#include <iostream> using namespace std; int main() { const int ARRAY_SIZE = 101; int num[ARRAY_SIZE], cont; for(cont=0 ; cont<ARRAY_SIZE ; cont++) num[cont] = 2*cont; for(cont=1 ; cont<ARRAY_SIZE ; cont++) cout<<"Dobro de "<<cont<<": "<<num[cont]<<endl; }Os arrays sempre devem ser inicializados com um valor literal (um número diretamente) ou por uma variável, de preferência constante (const). Aliás, é recomendável você declarar uma constante no começo do programa e ficar usando variável durante o código, fica mais fácil para futuras alterações.
Exemplo 5
Peça para que 6 funcionários de uma empresa digitem seus salários. Em seguida, seu programa deve dizer quanto de imposto de renda cada um deles deve pagar por mês. A taxa é de 15%.#include <iostream> using namespace std; int main() { const int ARRAY_SIZE = 6; float func[ARRAY_SIZE]; int cont; for(cont=0 ; cont<ARRAY_SIZE ; cont++){ cout<<"Funcionario "<<cont+1<<": "; cin >> func[cont]; } cout<<"Imposto a pagar: "<<endl; for(cont=0 ; cont<ARRAY_SIZE ; cont++) cout<<"Funcionario "<<cont+1<<": R$"<<func[cont]*0.15<<endl; }
muito bom!
ResponderExcluirPosso complicar?
Como posso armazenar um valor lido na porta analógica a cada 200 milisegundos?
Você pode usar a função millis() do Arduino para controlar o tempo entre as leituras da porta analógica. Aqui está um exemplo de como você pode fazer isso:
Excluirconst int analogPin = A0; // substitua por sua porta analógica
unsigned long previousMillis = 0;
const long interval = 200; // intervalo de 200 ms
int value = 0; // variável para armazenar o valor lido
void setup() {
Serial.begin(9600);
}
void loop() {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
value = analogRead(analogPin);
Serial.println(value);
}
}
Neste código, a função analogRead() é chamada a cada 200 milissegundos para ler o valor da porta analógica e armazená-lo na variável value. O valor é então impresso no monitor serial para visualização. Lembre-se de substituir A0 pela porta analógica que você está usando.
Você pode usar a função `millis()` do Arduino para controlar o tempo entre as leituras da porta analógica. Aqui está um exemplo de como você pode fazer isso:
Excluir```cpp
const int analogPin = A0; // substitua por sua porta analógica
unsigned long previousMillis = 0;
const long interval = 200; // intervalo de 200 ms
int value = 0; // variável para armazenar o valor lido
void setup() {
Serial.begin(9600);
}
void loop() {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
value = analogRead(analogPin);
Serial.println(value);
}
}
```
Neste código, a função `analogRead()` é chamada a cada 200 milissegundos para ler o valor da porta analógica e armazená-lo na variável `value`. O valor é então impresso no monitor serial para visualização. Lembre-se de substituir `A0` pela porta analógica que você está usando.
Você pode usar a função `millis()` do Arduino para controlar o tempo entre as leituras da porta analógica. Aqui está um exemplo de como você pode fazer isso:
ResponderExcluir```cpp
const int analogPin = A0; // substitua por sua porta analógica
unsigned long previousMillis = 0;
const long interval = 200; // intervalo de 200 ms
int value = 0; // variável para armazenar o valor lido
void setup() {
Serial.begin(9600);
}
void loop() {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
value = analogRead(analogPin);
Serial.println(value);
}
}
```
Neste código, a função `analogRead()` é chamada a cada 200 milissegundos para ler o valor da porta analógica e armazená-lo na variável `value`. O valor é então impresso no monitor serial para visualização. Lembre-se de substituir `A0` pela porta analógica que você está usando.