Image
Image
Métodos Computacionais no Ensino da Física
Planilha I
Planilha II
Modellus I
Modellus II
HotPotatoes
CMapTools
3 Modellus I

3.11 Testes condicionais

É muito comum, na programação, defrontar-se com uma situação na qual o(s) próximo(s) comando(s) a ser(em) executado(s) depende(m) do valor de uma variável. É necessário então inserir no programa um "teste" da variável em questão e um ponto de bifurcação tal que, dependendo do resultado do teste, o programa prossiga num caminho ou no outro.

Os recursos de programação disponíveis no Modellus são limitados, mas é possível inserir na janela de modelo testes e bifurcações simples. Como ilustração, o exemplo apresentado será modificado de maneira a fazer cada projétil parar quando ele volta ao nível de lançamento. Uma realização aproximada desta condição seria um jogo de bocha na areia fofa.

Para conseguir isto, pode-se testar o valor do tempo. Para t > T, sendo T o tempo de voo (até voltar à altura inicial), deseja-se que as coordenadas do projétil se mantenham nos valores x=A e y=0. Aqui, A é o alcance, cuja expressão já foi digitada na janela de modelo.

É preciso, então, modificar, na janela de modelo, as equações que calculam as coordenadas x e y. Procede-de da seguinte maneira. Após digitar x=, clica-se o item Condição na faixa de configuração associada à aba Modelo.

Image
Figura 3.11.1: Um botão na aba "Modelo" permite inserir uma condição na modelagem.
Isto introduz na linha de digitação um colchete que abrange duas linhas, com a possibilidade de incluir uma condição na primeira delas. A expressão digitada na primeira linha será calculada se a condição for satisfeita, senão a expressão digitada na segunda linha será usada. Digita-se então na primeira linha a expressão v0 cos(th0) t e a condição t < T. Na segunda linha, digita-se simplesmente a expressão A. Procede-se de maneira semelhante para a coordenada y.

Se você rodar o seu programa após fazer essas modificações, verificará que os projéteis param ao voltar ao nível inicial, porém, os vetores velocidade continuam indicando velocidades não nulas. Para sanar esse problema, cálculos condicionais das componentes da velocidade também devem ser incluídos. O procedimento é semelhante e o modelo assim modificado pode ser visto na captura de tela abaixo (Figura 3.11.2).

Image
Figura 3.11.2: Captura de tela da janela de modelo após inserção de condições nos cálculos das componentes da posição e da velocidade do projétil.

As duas capturas de tela abaixo mostram a animação quando 3 dos 5 projéteis ainda estão "no ar", e quando todos já estão "no chão". Para representar o chão, foi inserida uma linha horizontal fixa (Objecto Geométrico do tipo Recta).

Image Image
(a)(b)
Figura 3.11.3: Dois instantes da animação após inserção das condições: (a) dois projéteis já voltaram ao nível inicial; (b) todos os projéteis já voltaram ao nível inicial.