Aula 2 - Conceitos de C++
Como havia sido dito no tópico anterior, a linguagem de programação utilizada pela Arduino IDE compartilha várias funções em comum com a linguagem C++. Neste tópico, serão apresentadas algumas funções que o Arduino possui em comum com o C++.
Caso você já tenha alguma familiaridade com a linguagem C++, você pode pular para o próximo tópico.
Declarar Comentários
Você deve ter percebido que nos códigos de exemplo algumas explicações do funcionamento da função eram colocados após o operador //. O operador // é utilizado para declarar comentários em uma única linha (isto é, todo o texto que estiver posicionado após o operador não será interpretado pelo compilador, inclusive funções e operadores).
digitalWrite(13, HIGH); // Este trecho do código não será executado
delay(1000);
// digitalWrite(13, HIGH); // Esta linha também não será executada
Caso você deseje criar um comentário de várias linhas, você pode utilizar os operadores /* e */ indicando, respectivamente, o início e o fim do comentário.
digitalWrite(13, HIGH);
/* Este trecho
de texto não
será executado */
delay(1000);
Operadores Lógicos
Na linguagem de programação do Arduino IDE, é possível fazer comparação entre variáveis, comparando a magnitude de duas variáveis, analisando se duas variáveis possuem o mesmo valor, etc. Para isso, você deverá utilizar um dos operadoradores lógicos abaixo.
O primeiro tipo de operadores a serem apresentados são os comparadores de igualdade e magnitude. Ao utilizar um desses operadores lógicos, será retornado TRUE caso a comparação seja verdadeira ou FALSE caso a comparação seja falsa.
- COMPARADORES DE IGUALDADE E MAGNITUDE -
a == b Igualdade
10 == 10 TRUE
10 == 20 FALSE
a != b Diferença
10 != 10 FALSE
10 != 20 TRUE
a > b Maior que
10 > 10 FALSE
20 > 30 FALSE
30 > 20 TRUE
a => b Maior ou igual a
10 >= 10 TRUE
20 >= 30 FALSE
30 >= 20 TRUE
a < b Menor que
10 < 10 FALSE
20 < 30 TRUE
30 < 20 FALSE
a <= b Menor ou igual a
10 <= 10 TRUE
20 <= 30 TRUE
30 <= 20 FALSE
Além desses, temos os operadores do tipo comparação booleana. Esses operadores checam a validade das expressões. Por exemplo, o operador && (AND) analisa se ambas as operações retornam True e o operador || (OR) analisa se ao menos uma operação retorna True. Se a condição se satisfazer, o operador irá retornar True. Se a condição não for satisfeita, o operador retornará False.
- COMPARADORES LÓGICOS -
a && b AND (E)
False && False FALSE
False && True FALSE
True && False FALSE
True && True TRUE
a || b OR (OU)
False && False FALSE
False && True TRUE
True && False TRUE
True && True TRUE
Caso você queira fazer mais de uma comparação, pode utilizar parênteses. As comparações serão feitas primeiramente nos parênteses mais internos.
===== Passo-a-Passo =====
(50 < 40) || ((10 < 20) && (15 >= 12))
(50 < 40) || ((TRUE) && (TRUE))
(FALSE) || (TRUE)
TRUE
if, else if e else
if ()
Ao criar um código, as vezes você quer que um procedimento seja executado somente se uma condição qualquer seja satisfeita. Para fazer isso, pode ser utilizado o comando if. O comando if é um comando que irá realizar o conteúdo dentro das chaves {} somente se a condição que estiver especificada for satisfeita.
if (CONDIÇÃO)
{
//Código a ser executado
}
Para especificar condições para o if, pode-se utilizar os operadores lógicos apresentados no tópico anterior. Por exemplo:
if (20 > 10)
{
digitalWrite(13, HIGH);
}
// O LED da porta 13 será ligado caso a condição "20 > 10" seja satisfeita
Pode-se utilizar mais de um if no código, da forma que for conveniente. Se necessário, pode-se utilizar um comando if dentro de outro.
else ()
Em algumas situações, deseja-se que um comando seja realizado caso a condição do if não se concretize. Para que não precise criar outro comando if com a condição inversa, utiliza-se comumente o comando else. O comando else irá executar o conteúdo dentro das chaves {} se o if superior mais próximo não for executado.
if (20 < 10)
{
digitalWrite(13, LOW);
}
else
{
digitalWrite(13, HIGH);
}
/* Como a condição do if não foi realizada, os
comandos dentro do else serão executados */
Todo
elsenecessita de umifque venha antes dele. Além disso, não pode haver nenhum comando entre oife oelse. Se isso acontecer, ocorrerá erro de compilação do código.
if (20 < 10)
{
digitalWrite(13, LOW);
}
digitalWrite(13, LOW);
else
{
digitalWrite(13, HIGH);
}
/* Já que existe um comando entre o if e o else,
o else não possui um if correspondente.
Por isso, o código não irá compilar. */
else if ()
Em algumas outras situações, você deseja que o if só seja executado se um if anterior não for verdadeiro. Para isso, pode-se utilizar o comando else if. O comando else if executa o código dentro das chaves {} se o if anterior não for executado e a condição apresentada for verdadeira.
if (20 < 10)
{
digitalWrite(13, LOW);
}
else if (20 > 10)
{
digitalWrite(13, HIGH);
}
else
{
digitalWrite(13, LOW);
}
/* Já que o primeiro if não foi executado,
será analisado se a condição do else if
é satisfeita. Já que a condição é satisfeita,
os comandos dentro do else if são executados
e o else é ignorado. */
Pode-se utilizar quantos comandos
else ifforem necessários, desde que se obedeça a ordem:if, else if, ..., else if, else. A utilização doelsequando oelse iffor utilizado é opcional.
for ()
Se for necessário executar algum comando um número i de vezes, deve-se utilizar o comando for. O comando for necessita dos seguintes parâmetros:
for (int i = 0; i < MAXIMO; i++)
{
//Comandos a serem executados
}
Nesse caso, substitui-se MAXIMO pela quantidade de vezes que deseja que o código dentro das chaves {} seja repetido.
Atividade: Imprimir de 1 a 100
- for
- while
- functions
-
declarar variáveis
- Declarar bibliotecas (outro tópico)
