Skip to content

Commit

Permalink
paraCada (foreach)
Browse files Browse the repository at this point in the history
  • Loading branch information
renlopes committed Feb 12, 2019
1 parent f6c530d commit 6d7f9dd
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 0 deletions.
4 changes: 4 additions & 0 deletions TABELA_DE_INSTRUCOES.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@ Estruturas de controle são estruturas do tipo condicional, que irão analisar u
| se | Analisa se a condição dentro do parâmetro é verdadeira e executa uma ação. | se(a == b) { <br> // ação caso "a = b" <br> } |
| senao | Executa uma ação se o parâmetro da condição ``se`` for falso. | se(a == b) { <br> // ação caso "a = b" <br> } <br> senao { <br> // ação caso "a ≠ b" <br> } |
| para | Executa um bloco de instruções enquanto uma condição for satisfeita. É utilizado um contador para incrementar, ou decrementar, e terminar o loop. | para(x = 0; x < 2; x = x+1) { <br> /\* executa este bloco enquanto "x" for menor que 2 \*/ <br> } |
| paraCada | Executa uma varredura em um vetor/matriz enquanto não se chegar ao fim do mesmo ou ser forçada uma quebra de laço
| paraCada(celula,vetor){
/*executa esse bloco ate o fim do vetor ser atingido */ }
|
| contarAte | Aplicação da função ``para`` onde se escolhe o número de iterações. | contarAte(5) { <br> /\* executa este bloco de instruções 5 vezes \*/ <br> } |
| enquanto | Esta função executa continuamente enquanto o teste do parâmetro for verdadeiro. | enquanto(x == 2) { <br> /\* ações a serem executadas enquanto o parâmetro for verdadeiro, ou seja, enquanto "x = 2" \*/ <br> } |
| comparar....caso | Compara o parâmetro da função com os casos definidos. No exemplo, "x" é comparado com os valores 1 e 2. É utilizado a instrução ``sair`` para que não se realize os próximos testes se algum já for o verdadeiro. | comparar(x) { <br><br> caso 1: <br> /\* ação caso "x = 1" \*/ <br> sair; <br><br> caso 2: <br> /\* ação caso "x = 2" \*/ <br> sair; <br><br> padrao: <br> /\* executa se não for nenhum dos casos \*/ <br> sair; <br> } |
Expand Down
59 changes: 59 additions & 0 deletions examples/paraCada/paraCada.ino
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
/*
paraCada(A,B)
Um melhoramento da função para(for) que auxilia o programador a percorrer um vetor ou matriz de dados até os seu fim.
Uso:
paraCada(A,B)
{
imprima(A);
}
Variáveis:
A (Variável a ser preenchida com os valores do vetor/matriz que está sendo lido. É
necessário que tenha o mesmo tipo do vetor).
B (Vetor/matriz a ser percorrido durante o laço).
O laço irá executar até o fim do vetor/matriz ser atingido ou uma condição de quebra seja
forçada.
Este exemplo de código está em domínio público.
criado em 28 de abril de 2018
modificado em 12 de fevereiro de 2019
Desenvolvido por Alesson Renato.
Contribuição a biblioteca Brasilino.
Este exemplo é baseado em código aberto referente a linguagem C++.
*/

// Inclue a biblioteca Brasilino
#include <Brasilino.h>

// A funcao configurar executa uma vez quando a placa é ligada ou quando o botão de reset é pressionado
funcao configurar() {
// Inicializa a comunicação serial com a placa
iniciarSerial();
}

// A funcao repetir executa para sempre
funcao repetir() {
// Cria a variável celula que armazenará o conteudo das celulas do vetor, cria posição que demonstrará a posição ca leula atual e por fim cria um vetor com valores inteiros
inteiro celula posicao=1; vetor[10]{10,9,8,7,6,5,4,3,2,1};
// Chama a função paraCada que guardará em celula um valor de posição do vetor que cada iteração
paraCada(celula,vetor){
// Escreve Posicao na serial
escreverSerial("Posicao:");
// Escreve a posição lida atual
escreverSerial(posicao);
// Escreve um espaço entre os valores e a palavra Valor:
escreverSerial(" Valor:");
// Escreve o valor contido na celula atual e pula uma linha
escreverSerialn(celula);
esperar(0.5); // espera meio segundo
posição++; // atualiza posição
}
/*
OBS: O exemplo foi criado usando o tipo de dado inteiro, contudo a função é compatível com
qualquer tipo de dado primitivo ou composto compatível com a linguagem C++
*/

0 comments on commit 6d7f9dd

Please sign in to comment.