Sequência Didática
Aula 4

Estruturas de Repetição no App Inventor

Na quarta aula se espera reforçar os conceitos apresentados na aula anterior revisando a construção do aplicativo de índice de massa corporal; compreender o que são e como utilizar diferentes estruturas de repetição no App Inventor; criar um aplicativo para calcular o fatorial de um número.

Três Momentos Pedagógicos


Discutir com os alunos como ocorre a utilização de uma estrutura de repetição no dia-a-dia. Em quais situações reais utilizamos uma estrutura de repetição? Quais problemas podem ser resolvidos ou otimizados com o suporte de uma estrutura de repetição? Quais artefatos podem ser utilizados durante a sua aplicação para o controle do número de repetições, evitando a execução infinita?

Compreender o que é uma estrutura de repetição nas suas diferentes formas, apresentar seu conceito e demonstrar a sua construção no App Inventor através do desenvolvimento de exemplos práticos.

Da mesma forma, conceituar a respeito do uso de contadores para auxiliar no controle do número de vezes que uma mesma instrução ocorre.



Retomar a discussão sobre a aplicabilidade das estruturas de repetição, agora instigando os alunos a pensarem em problemas que poderiam ser solucionados a partir do desenvolvimento de aplicativos com essa funcionalidade e qual tipo de estrutura é mais adequada para cada situação.

Como tarefa, lançar o desafio de desenvolver um aplicativo para o cálculo do fatorial de um número.

Revisão do Desafio da Aula 3

Escaneie ou clique no QR Code ao lado para baixar o arquivo do projeto do App Inventor (*.aia) com a resolução do desafio proposto na aula anterior. Aproveite para revisar e comparar com o aplicativo de cálculo do Índice de Massa Corporal que você desenvolveu.


Estruturas de Repetição

São utilizadas em situações onde é necessário repetir uma tarefa mais de uma vez. Dessa forma, possibilitam a repetição de um conjunto de instruções sem que seja necessário escrevê-las várias vezes.

As estruturas de repetição podem ser classificadas em dois tipos:

  • Condicional - repetição ocorre enquanto a condição lógica testada for verdadeira (ENQUANTO);

  • Incondicional - tem um número pré-determinado de repetições (PARA);

Vamos entender na prática?

Observe as figuras ao lado e reflita a respeito da aplicação de estruturas de repetição no seu dia-a-dia. Como podemos explicar o processo que realizamos para nos alimentarmos? Ou então, para lavar a louça suja após uma refeição? Ainda, como realizamos o cálculo da tabuada de um número?







Estrutura de Repetição PARA

A estrutura de repetição "Para" é ideal em situações onde o número exato de repetições é conhecido (ASCENCIO; CAMPOS, 2012). Seu funcionamento consiste em repetir a instrução enquanto uma variável de controle (var_controle) for menor ou igual ao valor final (vlr_fim). A variável de controle é iniciada através de um comando de atribuição (vlr_ini) e é incrementada pelo valor da cláusula passo (<inc>), conforme a estrutura abaixo.

para <var_controle> = vlr_ini até vlr_fim passo <inc> faça

bloco de comandos

fim-para


No App Inventor, uma estrutura de repetição "Para" pode ser utilizada a partir de um bloco de controle, conforme a figura ao lado, já composto por três blocos numéricos de matemática para inicialização da variável de controle, definição do valor final e do passo.

Vamos entender na prática?

No App Inventor, vamos criar um aplicativo que exiba na tela os números de 1 a 10 utilizando um bloco de repetição do tipo "Para".

  • Na janela de Designer, arrastar para a tela um componente “Botão”, renomea-lo para “btRepeticao" e alterar a propriedade Texto para Repetição;

  • Arrastar para a tela um componente “Legenda”, renomea-lo para txtResultadoe apagar o conteúdo da propriedade Texto(em branco);

  • Na janela de Blocos, nos blocos dobtRepeticao”, inserir o evento Clique[1];

  • Nos blocos dotxtResultado”, inserir o método ajustar txtResultado.Texto parae atribuir o valor (em branco) a partir de um bloco de Texto[2];

  • Nos blocos de Controle”, inserir a estrutura "para cada número desde" [3] e alterar o valor final (até) para 10[4];

  • Inserir outro método ajustar txtResultado.Texto para” e atribuir o valor do próprio txtResultado.Texto” em conjunto com o valor da variável número” e um bloco de Textocom a descrição \npara realizar a quebra de linha a cada repetição. Para isso, inserir o bloco juntardo tipo “Texto” [5];

















Estrutura de Repetição ENQUANTO

A estrutura de repetição "Enquanto" é ideal em situações onde o número exato de repetições não é conhecido (ASCENCIO; CAMPOS, 2012). Seu funcionamento consiste em repetir a instrução (0 ou "n" vezes) enquanto a condição for verdadeira. A condição é testada no início da instrução (V ou F), sendo a execução finalizada caso a condição se torne falsa. Sua escrita é representada abaixo.

enquanto <condição> faça

bloco de comandos

fim-enquanto


No App Inventor, uma estrutura de repetição "Enquanto" pode ser utilizada a partir de um bloco de controle, conforme a figura ao lado.


Contador

Diferentemente da estrutura de repetição "Para" que já inicia e incrementa uma variável de controle, a estrutura "Enquanto" requer a implementação dessa variável dentro do bloco de comandos. Essa variável costuma receber o nome de "contador".

Uma variável "contador" é utilizada para o controle do número de vezes que um bloco de instruções é repetido. A variável recebe ela mesma, mais um determinado valor (normalmente "1") e costuma ser inicializada com "0" (zero), sendo a instrução de incremento exibida abaixo.

i = i + 1

Vamos entender na prática?

No App Inventor, vamos alterar o aplicativo que exibe na tela os números de 1 a 10, agora utilizando um bloco de repetição do tipo "Enquanto".

  • Na janela de Blocos, inserir uma variável, alterar seu nome para "controle" e inicializá-la com "0" [1];

  • Abaixo do bloco "ajustar txtResultado.Texto para", alterar o valor da variável "controle" para "0" inserindo o bloco "ajustar global controle para" [2]. Essa atribuição é essencial para que o algoritmo possa ser executado mais de uma vez;

  • Nos blocos de "Controle", inserir a estrutura "enquanto testar" no local da estrutura "para" do exemplo anterior [3];

  • Nos blocos de "Matemática", inserir o operador relacional "<=" e testar se a variável "controle" é menor ou igual a 10 [4];

  • Manter a atribuição do "txtResultado" do exemplo anterior, inserir outro bloco "ajustar global controle para" e um novo bloco de "Matemática" para atribuir o próprio valor da variável "controle", acrescido de "1" [5];









Desafio

Aproveite os conhecimentos obtidos no exemplo trabalhado em aula e implemente um novo aplicativo para o cálculo do fatorial de um número. Não se esqueça que só é possível calcular o fatorial de números positivos.


Clique abaixo para realizar o download da aula 4.

Vamos aprofundar os conhecimentos?

Para saber mais sobre estruturas de repetição, explore o material abaixo que contém vídeos sobre a temática abordada na aula 4.

Aula sobre estruturas de repetição, Prof. Dr. Junior Freitas (IFC)

Aula sobre estruturas de repetição, Prof. Gustavo Guanabara

Aula sobre estruturas de repetição no App Inventor, projeto de extensão "Pensando em Códigos" (UNIFAL)

Referências

ASCENCIO, Ana F. G.; CAMPOS, Edilene A. V. de. Fundamentos da Programação de Computadores: Algoritmos, Pascal, C/C++ e Java. 3. ed. São Paulo: Pearson, 2012.