08.11.2017 Views

arduino_básico_Michael_McRoberts

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Capítulo 2 ■ Acendendo as luzes<br />

63<br />

if (x==5 || y==10) {.....<br />

A instrução ! (NÃO) é verdadeira apenas se o operando for falso; assim, a instrução<br />

if a seguir será executada se x for falso, ou seja, igual a zero:<br />

if (!x) {.......<br />

Você também pode aninhar condições entre parênteses, por exemplo:<br />

if (x==5 && (y==10 || z==25)) {.......<br />

Nesse caso, as condições dentro dos parênteses são processadas separadamente, e<br />

tratadas como uma única condição. Depois, são comparadas com a condição fora<br />

dos parênteses. Assim, se você esboçar uma simples tabela-verdade (Tabela 2.3) para<br />

essa instrução, poderá ver como isso funciona.<br />

Tabela 2.3 – Tabela de verdade para a condição (x==5 && (y == 10 || z == 25)<br />

O comando dentro da instrução if é<br />

changeLights();<br />

x y z Verdadeiro/Falso<br />

4 9 25 FALSO<br />

5 10 24 VERDADEIRO<br />

7 10 25 FALSO<br />

5 10 25 VERDADEIRO<br />

Esse é um exemplo de uma chamada de função. Uma função é simplesmente um<br />

bloco de código separado que recebeu um nome. Entretanto, funções também podem<br />

receber parâmetros e/ou retornar dados. Nesse caso, você não passou nenhum dado à<br />

função, nem fez com que ela retornasse dados. No futuro, falarei mais detalhadamente<br />

sobre a transmissão de parâmetros e o retorno de dados em funções.<br />

Quando changeLights() é chamada, a execução do código pula da linha atual para<br />

a função, executa o código dentro dela, e depois retorna ao ponto no código, logo<br />

depois da chamada à função.<br />

Nesse caso, se as condições da instrução if forem atendidas, o programa executará<br />

o código dentro da função e retornará para a linha seguinte, depois de changeLights(),<br />

na instrução if.<br />

O código dentro da função simplesmente altera o semáforo dos veículos para vermelho,<br />

passando pelo amarelo, e então acende a luz verde para pedestres. Depois de um<br />

intervalo de tempo definido pela variável crossTime, a luz dos pedestres pisca algumas<br />

vezes para alertar que o tempo está se esgotando, e então passa para o vermelho. Enquanto<br />

isso, o semáforo dos veículos muda de vermelho para verde, passando pelo<br />

amarelo e retornando, dessa forma, ao seu estado normal.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!