Sequência Didática
Aula 2

Algoritmos no App Inventor

Na segunda aula se espera discutir como é estruturado o processo de resolução de um problema computacional; apresentar as partes que constituem um algoritmo; como se dá a escrita de um algoritmo no App Inventor; introduzir os conceitos de variável e operadores; criar um aplicativo de cálculo de média de notas.

Três Momentos Pedagógicos


Discutir com os alunos como se dá o processo de resolução de um problema computacional ou não. Quais os passos necessários desde o entendimento de um problema até a construção e validação de uma solução adequada? Quais problemas reais podem ser resolvidos ou otimizados a partir da construção de um algoritmo?

Ainda, apresentar as partes que compõem um algoritmo e propor que os alunos analisem o primeiro aplicativo desenvolvido na aula anterior procurando identificar tais partes e a importância de cada uma delas.

Conceituar as partes de um algoritmo e realizar uma atividade prática colaborativa no Google Jamboard procurando esclarecer a composição de um algoritmo de cálculo de média entre dois números. Após a construção do quadro pelos alunos, fomentar a discussão a respeito de como os pilares do pensamento computacional podem ser aplicados na resolução desse cálculo.

Apresentar os conceitos de variável e operadores e como ocorre a escrita de um algoritmo no App Inventor. Desenvolver de um aplicativo para cálculo de média de duas notas.



Retomar a discussão sobre o processo de resolução de problemas computacionais, agora procurando empregar os conceitos apresentados (ex: quais variáveis e operadores seriam utilizados para a construção dos algoritmos sugeridos na problematização inicial?).

Lançar o desafio de incrementar o aplicativo de cálculo de média desenvolvido em aula, sendo capaz de obter a média de quatro notas.

Revisão do Desafio da Aula 1

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 a interface de login do sistema acadêmico que você desenvolveu.



Como resolver problemas?

Existem diferentes formas de se pensar a solução de um problema, seja ele computacional ou não. No entanto, guiar-se através de uma sequência lógica pode otimizar o processo de resolução. Com base nos preceitos do pensamento computacional, podemos seguir os seguintes passos para solucionar um problema:

  • Entendimento do problema;

  • Análise considerando os pilares do pensamento computacional (decomposição, reconhecimento de padrões, abstração);

  • Criação de uma sequência de operações para a solução (algoritmo);

  • Execução dessa sequência;

  • Verificação da adequação da solução;

Partes de um algoritmo

Os algoritmos normalmente possuem uma estrutura dividida em 3 partes: entrada, processamento e saída (MANZANO; OLIVEIRA, 2016). O entendimento de como começar a construção do algoritmo e como conduzir o seu desenvolvimento passa pela compreensão destas partes.

  • Entrada de dados: informações necessárias para que o algoritmo possa ser executado (usuário -> computador);

  • Processamento de dados: avaliadas todas as expressões algébricas, relacionais e lógicas existentes no algoritmo;

  • Saída de dados: resultados do processamento (computador -> usuário);

Num algoritmo computacional, a entrada normalmente ocorre a partir do teclado ou de dados armazenados em memória. No processamento esses dados são tratados para que possam resolver o problema ao qual o algoritmo se propõe. Essa é a principal e mais complexa parte do trabalho. Por fim, os resultados são exibidos em um ou mais dispositivos de saída, como: monitor, impressora ou a memória do dispositivo (ASCENCIO; CAMPOS, 2012).








Entrada | Processamento | Saída

Vamos entender na prática?

Utilize o Google Jamboard para realizar uma atividade coletiva colaborativa de construção das partes de um algoritmo para o cálculo da média entre dois números, dividindo o quadro em "Entrada | Processamento | Saída" e solicitando aos participantes que insiram notas autoadesivas em cada uma das partes.

Após, discuta com os participantes como é possível abordar a resolução desse problema utilizando os pilares do pensamento computacional.

Escrita de Algoritmos

Independentemente da linguagem de programação utilizada, a escrita de um algoritmo deve sempre considerar:

  • Sintaxe: forma como os comandos devem ser escritos para que sejam interpretados e entendidos pelo dispositivo;

se (<expressão>) então
<instrução>

  • Semântica: é o significado, conjunto de ações executadas a partir dos comandos;

se o valor da expressão for verdadeiro,
a instrução será executada

Além disso, um algoritmo computacional costuma seguir uma estrutura básica com a definição de nome, declaração de variáveis e blocos de comandos com início e fim delimitados, a exemplo:

algoritmo_nome
declaração de variáveis globais
início_bloco
bloco de comandos
fim_bloco
fim_algoritmo

Podem existir um ou mais blocos de comandos em um algoritmo, cada qual contendo: declaração de variáveis locais, comentários, comandos de E/S e atribuição, estruturas de seleção e repetição e chamadas de funções (MANZANO; OLIVEIRA, 2016).







Algoritmos no App Inventor

O fato do App Inventor ser uma linguagem de programação visual em blocos acaba por simplificar a construção de aplicativos, uma vez que abstrai parte da estrutura tradicional de um algoritmo.

No App Inventor os trechos de comandos são limitados pelos próprios blocos [1] que, por sua vez, são divididos entre internos [2] e de componentes [3], tendo a sua funcionalidade categorizada por diferentes cores (MIT, 2020).


Variáveis

Variáveis são entidades destinadas a guardar uma determinada informação (números, palavras, arquivos, etc.) (MANZANO; OLIVEIRA, 2016). Cada variável possui um nome único e, no App Inventor, a sua declaração ocorre através de um bloco de inicialização [4]. Também existem blocos específicos para alterar [5] ou obter [6] o valor da variável enquanto o aplicativo é executado.


Operadores

Operadores são utilizados para a construção de algoritmos no App Inventor e se dividem em (MIT, 2020):

  • Aritméticos: conjunto de símbolos que representam as operações básicas da matemática (soma, subtração, multiplicação, divisão, etc) [7];




  • Relacionais: utilizados para comparar valores entre variáveis e expressões do mesmo tipo. O retorno é sempre um valor booleano/lógico (V ou F) [8];




  • Lógicos: fazem comparações com o objetivo de avaliar expressões em que o resultado pode ser verdadeiro ou falso (lógica booleana) [9];

Vamos entender na prática?

Execute a sequência de passos abaixo para criar um aplicativo de cálculo de média de dois números.

  • Selecionar o componente “Screen1” e alterar as propriedades:

- Theme = Device Default

- Título = Calcula Média

  • Arrastar para a tela um componente “Legenda” e alterar:

- FonteNegrito = V

- TamanhoDaFonte = 16

- Largura = Preencher principal...

- Texto = Calcula Média

- AlinhamentoDoTexto = centro:1

  • Arrastar para a tela um componente “Legenda” e alterar:

- Texto = Nota 1

  • Arrastar para a tela um componente “CaixaDeTexto” e alterar:

- Renomear = txtNota1

- Dica = Informe a primeira nota

- SomenteNúmeros = V

  • Arrastar para a tela um componente “Legenda” e alterar:

- Texto = Nota 2

  • Arrastar para a tela um componente “CaixaDeTexto” e alterar:

- Renomear = txtNota2

- Dica = Informe a segunda nota

- SomenteNúmeros = V

  • Arrastar para a tela um componente “OrganizaçãoHorizontal” e alterar:

- Largura = Preencher principal...

  • Arrastar um componente “Botão” para dentro do “OrganizaçãoHorizontal” e alterar:

- Renomear = btnCalcular

- FonteNegrito = V

- Largura = Preencher principal...

- Texto = Calcular

  • Arrastar outro componente “Botão” para dentro do “OrganizaçãoHorizontal” e alterar:

- Renomear = btnLimpar

- FonteNegrito = V

- Largura = Preencher principal...

- Texto = Limpar

  • Arrastar para a tela um componente “Legenda” e alterar:

- FonteNegrito = V

- Largura = Preencher principal...

- Texto = A sua média é:

- AlinhamentoDoTexto = centro:1

  • Arrastar para a tela um componente “Legenda” e alterar:

- Renomear = txtMedia

- FonteNegrito = V

- Largura = Preencher principal...

- Texto = ---

- AlinhamentoDoTexto = centro:1


  • Na janela de Blocos, inserir variáveis para o cálculo e inicializá-las com “0” (bloco “Matemática”) [1];


  • Nos blocos do “btnCalcular”, inserir o evento “Clique” e definir as variáveis globais conforme as notas informadas pelo usuário [2];


  • Nos blocos de “Matemática”, inserir o bloco de adição e somar as variáveis de notas [3];


  • Nos blocos de “Matemática”, inserir o bloco de divisão, incluir o bloco de soma no primeiro parâmetro, informar o número de notas no segundo parâmetro (com outro bloco “Matemática”) e atribuir para a variável media[4];


  • Nos blocos do “txtMedia”, inserir o método “ajustar txtMedia.Texto para” e atribuir o valor da variável media[5];


  • Nos blocos do “btnLimpar”, inserir o evento “Clique” e definir a propriedade “Texto” dos campos nota e media [6];












Desafio

No aplicativo de cálculo de média construído em aula, implemente a possibilidade de inclusão de mais notas, de modo que seja possível realizar o cálculo da média de ao menos quatro números, conforme a figura ao lado.

Clique abaixo para realizar o download da aula 2.

Vamos aprofundar os conhecimentos?

Para saber mais sobre algoritmos, variáveis e operadores, explore o material abaixo que contém vídeos sobre a temática abordada na aula 2.

Curso "Introdução a Algoritmos", Prof. Gustavo Guanabarra

O que é "o tal do Algoritmo?", Prof. Dionatan Simioni

Aula sobre variáveis, comandos de entrada e saída, atribuição e operadores, Prof. Dr. Junior Freitas (IFC)

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.


MANZANO, J.; OLIVEIRA, J. Algoritmos - Lógica para desenvolvimento de Programação. 28. ed. São Paulo: Saraiva, 2016.


MIT. MIT App Inventor. 2020. Disponível em: http://appinventor.mit.edu. Acesso em: 25 de mar. de 2020.