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
else
necessita de umif
que venha antes dele. Além disso, não pode haver nenhum comando entre oif
e 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 if
forem necessários, desde que se obedeça a ordem:if, else if, ..., else if, else
. A utilização doelse
quando oelse if
for 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)