# Variáveis dinâmicas no AnyLogic

Já temos os estoques, os fluxos e os parâmetros. Agora e hora das variáveis dinâmicas.&#x20;

As taxas de conversão de clientes por marketing ou boca a boca são exemplos de cálculos que devem ser realizados dinamicamente, isto é: conforme o número de potenciais clientes diminui e o de clientes aumenta, essas taxas devem ser recalculadas.

O AnyLogic possui um tipo de variável específica para isso: a **Dynamic Variable**. Vamos criar uma **Dynamic Variable** para a "conversão por marketing”, denominada: **conversaoMktg**. Não se confunda: uma **Dynamic Variable** não tem aquele pequeno pedaço de pizza do **Parameter**:

![](https://lh4.googleusercontent.com/xtnxLX4J5M5tnAkGCuPWGSDELm4XN7DYEJbfXT1iUYQgnWASKP6k84hcRdwYSlFzZ9fIHX5tO7xl_RNM7ljLfeOBqzzEiy1XHqyxOYSlPMxx7A4xn9ES5zLIleWl_uWahFNmQx4w)

Em modelos de dinâmica de sistemas, devem ser representados todos os **Links** existentes entre estoques, variáveis, fluxos e parâmetros. Assim, com base no diagrama de laços causais, crie as ligações entre os parâmetros usando o **Link** da paleta de comandos:

![](https://lh6.googleusercontent.com/vTVC-dmkXkiyXmhm8WettjMSHJYe_AcTNSeGyYMHk3Dd7_Iit4H5RSq1JtoyflxtkR7_13uD9DSFs-XCe9TzkQz2lCJ5dyeQc-CXb0hB0mCJBz0E1MzIcQKvOlLFkuFGRrQzMv0Q)

O elemento **Link** possui como propriedade o seu sinal. Assim, clique no respectivo elemento e, na janela de **Properties** à direita, selecione o respectivo sinal do **Link**.

![](https://lh5.googleusercontent.com/KPWcRjQ_CXV7ZqVVWSufjXOKFaffvDNp9JQUy4ifUp4BbyzxRP7TYjy9qoKBHjS5q6cVKEPPxTPA3LDOwS_BLLDR1IPQs2agQxp1lv0aR5pmYpLeNyo0EywDoBFQQ-2DY7B4XiQf)

Chegamos ao final: construir a equação que rege a variável dinâmica. Clique na variável dinâmica **conversaoMktg** e localize, nas suas propriedades, um campo com o título **“conversaoMktg=”**.&#x20;

Queremos colocar ali a expressão que retorna o número de clientes potenciais convertidos. Contudo, se o número de meses de simulação for maior que o parâmetro **meses**, a conversão deve receber o valor 0.&#x20;

No AnyLogic, a função que retorna o tempo de simulação (na unidade de tempo do modelo) é `time()`. Assim, precisamos de algo como:

*`se`*` ``time() <= meses`` `*`então:`*

&#x20;    `conversaoMktg = ClientesPotenciais x eficaciaMktg`

*`senão:`*

&#x20;    `conversaoMktg = 0`

Tenho uma boa notícia: o AnyLogic possui uma forma de lidar com condições “se-então-senão” parecido com o que você possivelmente já utilizou em planilhas eletrônicas:

`“=SE(condição; caso verdadeiro; caso falso)”`.&#x20;

No AnyLogic (e no Java) você utiliza o sinal de interrogação "?" para a pergunta e o sinal de dois pontos ":" para as ações:

`condição ? caso verdadeiro : caso falso`

Assim, no caso da startup, basta colocarmos no campo da variável **conversaoMktg**:

`time() <= meses ? ClientesPotenciais x eficaciaMktg : 0`

Embora você já consiga fazer isso com o **Ctrl(⌘)+Espaço**, nesta etapa iremos por outro caminho: note um pequeno “x” vermelho ao lado do campo, o AnyLogic está informando existir um erro no respectivo campo (e dá até para adivinhar o que seja):

![](https://lh3.googleusercontent.com/HR1CHkORjFU2TjQXP33Z3PBY68uigHkmJIz6I4WB1-rCromaoZvHcNIkfH0MZRvht0ZkO_6fwdQeOlAlMOvudulvwPg_4ruYTPqihoi3bQB2kluVkCo3k20ak2FazS5RiTf0dfRP)

&#x20;Neste campo, o AnyLogic esconde mais um facilitador que acelera o processo de desenvolvimento:

* Clique **dentro do campo** com problema (clique *dentro* do box, hein);
* Deve aparecer um “X” dentro de uma bola vermelha (lembrando o símbolo dos [X-Men](https://pt.wikipedia.org/wiki/X-Men)). Clique nele, e note que o AnyLogic apresenta uma lista de opções: ou você adiciona uma variável/parâmetro/estoque que tem **Link** com o elemento atual ou, simplesmente, você elimina o **Link**.&#x20;

Assim, montar a equação ficou fácil:

![](https://lh3.googleusercontent.com/n1IQEeVMlsZiZeRrrIoKYxufDA6q_ZP8w1m1_21V5SMLT-a5my2wO1m_btitwpiHtNuZW6UyG8uaOYTx9APnSao3CnXllXCDdlhYwiwHpqYBdWL1FFiobcYiV1p085HASatHWprT)

Resolvida a **conversaoMktg**, passemos ao fluxo **taxaDeConversao**. Note que ele tem um **Link** (vindo da **conversaoMktg**) que também não fizemos a equação ainda:

![](https://lh3.googleusercontent.com/RcD7K7HweGGg5QMBKwio_arwq1r9bJilgewha2CxHXxQcWi1xcWBogcPrg_BpC1Q9gNxMIcy6SfhnVbj6-8bdflr9d_s-inwB1DZg5w2ugwSVW5JC_wBqrlvE6lZSMzaPcPzV-V8)

Pronto, já pode… SIMULAR!

![](https://lh4.googleusercontent.com/IC2PR48PBI-RsimYboFJOZQ6A0krD8zIeLhlSetcfDbzImFaS6_wP16rsuDZqun8iqXWuGBg1Ngqqu1DMiBh6Oe5xvvx94_5is22e70oVw4ztGV-XIPlcwg5hX9aZHTvg7BVxgK6)

Se você quiser acelerar ou desacelerar a simulação, utilize os botões na barra inferior do app:

![](https://lh5.googleusercontent.com/C6DfnLo1QfzD5ihbAZqXUhtRM3q4_BU552FCZCbLFOwZn27HKbB_NkgsVdo0TlEmuwuoJQf3SOCPbi_hrjXIV2Mitv72EHij2pkfzkgnRIdBCAMkaK6nV9rAR-j1Mwy3kAVb9T7W)

Se tudo der certo, surge o fluxo de pessoas do estoque **ClientesPotenciais** para o estoque **Clientes** pelos primeiros 6 meses e depois esse fluxo se encerra. Em breve você vai aprender a controlar a duração da simulação. Por enquanto, continue a construção do modelo, agora representando o ciclo de conversão boca a boca.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://tutorial-ds.anylogicbrasil.com.br/variaveis-dinamicas-no-anylogic.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
