• Aucun résultat trouvé

Hardware Installation

Dans le document Installation/ Service HP 64700 Series (Page 100-106)

Scratch

A elaboração de um programa que forneça a aproximação da raiz quadrada de um número real positivo qualquer é, em nossa visão, uma tarefa mais complexa do que o desenho de um quadrado. Para elaborar um programa assim o sujeito precisa: conhecer algum método numérico para estimar a raiz quadrada, representar esse método utilizando comandos do Scratch e pensar em uma forma de coletar os dados referentes ao número cuja aproximação da raiz quadrada deseja-se determinar.

Para ilustrar essa situação apresentamos na Figura 3.5 e Figura 3.6 um programa que estima a raiz quadrada de um número real positivo qualquer. Na Figura 3.5 são apresentados os comandos gerais do programa e a chamada da rotina denominada “aproximação da raiz quadrada” que será apresentada separadamente.

Figura 3.5 - Exemplo de programa que estima a raiz quadrada de um número inteiro positivo – Parte 1.

Fonte: Autores.

Para que o discente consiga elaborar um programa similar a este, ele precisa pensar em um modo de coletar os dados referentes ao número que o usuário deseja calcular a aproximação da raiz quadrada, para isso usamos o comando “pergunte” fazendo com que o bloco “resposta” representasse nossa variável inicial, conforme é apresentado na Figura 3.5.

O comando “aproximação da raiz quadrada” é uma subrotina do código principal e o método de aproximação adotado foi o método de Newton. Nesta parte do programa, utilizamos o comando pergunte para que o usuário pudesse informar o número que deseja descobrir a aproximação da raiz quadrada, a resposta fornecida será o valor inicial da variável “resposta”. Além disso, programamos mensagens de erro caso o usuário insira um valor negativo, como pode ser visto na Figura 3.5, os operadores de comparação foram utilizados como variáveis não-numéricas (verdadeiro/falso). Trabalhar com variáveis não-numéricas pode desafiar e expandir a concepção de função dos estudantes visto que, no contexto escolar, esse conceito usualmente é associado apenas às variações entre quantidades que podem ser representadas em gráfico cartesiano (KILHAMN; BRÂTING, 2019).

O Método de Newton consiste num método iterativo que possibilita calcular a aproximação da raiz quadrada de números reais. Considere uma função diferenciável 𝑓(𝑥) e uma aproximação inicial 𝑥(0) da raiz 𝑥̅ de 𝑓. Então a sequência gerada pela fórmula recursiva:

𝑥(𝑘+1) = 𝑥(𝑘)−𝑓(𝑥 (𝑘))

(𝑥(𝑘)) , 𝑘 = 0, 1, 2, … (1)

A sequência 𝑥(𝑘) convergirá para a raiz de 𝑓(𝑥) (BURDEN; FAIRES, 2013).

Para ajustar a equação (1) de modo que possamos calcular a raiz quadrada de um número 𝑛, sendo 𝑛 ∈ ℤ+, basta tomar 𝑥 = √𝑛 assim 𝑛 = 𝑥2, ou seja, 𝑥2− 𝑛 = 0. Considerando 𝑓(𝑥) = 𝑥2− 𝑛, temos que 𝑓(𝑥) = 2𝑥. Substituindo na equação (1) segue que:

𝑥(𝑘+1)= 𝑥(𝑘)−(𝑥

(𝑘))2− 𝑛

2𝑥(𝑘) (2)

A equação (2) foi utilizada como referência para elaborar o programa apresentado nas figuras 3.5 e 3.6. Os comandos utilizados para encontrar a raiz quadrada com o método de Newton são apresentados na Figura 3.6.

Figura 3.6 - Exemplo de programa que estima a raiz quadrada de um número inteiro positivo – Parte 2.

Fonte: Autores.

Após resolver o problema da coleta de dados, o educando precisa representar a equação (2) usando os comandos do Scratch, conforme apresentado na Figura 3.5. Observe que a equação (2) tem uma variável “fixa” (𝑛) e uma variável “iterativa” (𝑥(𝑘)), por isso criamos uma variável chamada inteiro para representar 𝑛 e outra chamada entrada para representar 𝑥(𝑘).

Na Figura 3.6, vemos que na primeira iteração a variável entrada corresponde à variável resposta, para associar as duas variáveis usamos o comando “defina entrada a

em todas as iterações, por essa razão ele foi associado a variável inteiro, para isso usamos o comando “defina inteiro a resposta” antes que o processo iterativo se inicie. O comando “repita 8 vezes” marca o início do processo iterativo, quanto maior o número de vezes que esse processo se repete melhor é a aproximação, a quantidade de repetições foi escolhida arbitrariamente15.

Para representar a equação (2) usamos os comandos de operadores, conforme mostra a Figura 3.6, destacamos que no Scratch colocar um operador dentro de outro funciona de forma similar aos parênteses em álgebra. Por exemplo, inserir uma soma dentro de um operador de multiplicação significa que a soma será resolvida primeiro para então realizar a multiplicação, colocar uma multiplicação dentro de um operador de soma significa que a multiplicação ocorrerá primeiro para então realizar a soma.

Como a variável entrada muda a cada iteração utilizamos o comando “defina entrada a ...” para garantir que a cada ciclo o valor anterior da entrada será atualizado, pois a equação (2) trata-se de uma equação de recorrência.

Na representação algébrica da equação (2) a relação entre a nova aproximação (𝑥(𝑘+1)) e a anterior (𝑥(𝑘)) é estabelecida usando o sinal de igualdade, porém, no Scratch o estabelecimento da relação é feito pelo comando “defina a ...”, conforme apresenta a Figura 3.5.

Vale destacar que na álgebra não faz sentido atualizar o valor de uma variável já existente. Considerando a equação 𝑦 = 𝑥 + 1 pode ser percebido que apesar de ser possível alterar os valores das variáveis 𝑥 e 𝑦, cada par de valores assumidos estaria relacionado a diferentes casos da equação. Por exemplo, se 𝑥 = 1 então 𝑦 = 2, mas se 𝑥 = 2 então 𝑦 = 3. Assim, não podemos atribuir um valor a 𝑥 e depois substituir esse valor por outro no mesmo caso, isso constituiria uma contradição (𝑥 = 1 e 𝑥 = 2 implica que 1 = 2), no entanto isso usualmente acontece na programação quando é preciso fazer um laço ou processo iterativo como o deste exemplo (KILHAMN; BRÂTING, 2019).

Por fim, para informar ao usuário o resultado da aproximação utilizamos os comandos “diga”. A aproximação da raiz quadrada do número 𝑛 informado no começo do programa será

15 Optamos por repetir o comando 8 vezes para facilitar o processo de elaboração do programa. Contudo, geralmente o número de iterações é definido com base em um critério de parada como |𝑥𝑘− 𝑥𝑘−1| ≤ ℇ, sendo ℇ

a variável entrada após todas as iterações, por isso o último comando é “diga entrada”. O Quadro 3.6 apresenta uma síntese dos aspectos algébricos, computacionais e de codificação no

Scratch abordados nesse programa.

Quadro 3.6 - Síntese dos aspectos algébricos, computacional e de codificação no Scratch. Aspectos algébricos Aspectos computacionais Aspectos de codificação no Scratch

Manipular variáveis numéricas. Manipular variáveis não-numéricas. Generalizar. Ordem de operações. Relacionar variáveis. Iteração. Estabelecer sequências lógicas.

Estabelecer condições com base na ação do usuário e comparações entre números.

Ciclos computacionais. Coletar e atualizar dados (variáveis resposta, entrada e inteiro).

Usar a estrutura de controle “repetir” para executar processos iterativos.

Usar o comando “se, então” para gerar condicionais lógicas.

Usar comando de blocos para modularizar processos.

Usar o comando “diga” para informar o usuário.

Usar o comando “pergunte” para obter dados numéricos.

Utilizar o bloco “resposta” como variável numérica.

Utilizar o comando “defina a __” para atualizar variáveis.

Fonte: Autores.

No Quadro 3.6 observamos que o desenvolvimento desse programa trabalha com generalizações simbólicas, exigindo do programador o domínio e entendimento sobre diferentes conceitos algébricos. Percebemos também que esse programa trabalha com todos os conceitos computacionais, além das práticas de iteração, depuração e abstração. Compreendemos que a elaboração e análise de um programa similar a este requer um alto nível de desenvolvimento do PA.

A programação pode proporcionar oportunidades para que o educando identifique, generalize e expresse padrões, além disso pode ampliar compreensões sobre objetos e conceitos matemáticos. Assim, defendemos que ensinar a Matemática via programação pode contribuir para o desenvolvimento do PA e do PC.

Dans le document Installation/ Service HP 64700 Series (Page 100-106)

Documents relatifs