Jump to content

Algoritmo para contar quantas vezes uma variável mudou de valor.


Samuel Nassif
 Share

Recommended Posts

Olá pessoal,

preciso de uma ajuda imensa. Só sei o básico do básico em C e preciso de um algoritmo que me retorne o valor de quantas vezes uma outra variável alterou seu valor durante uma determinada condição.

Eu tenho as variáveis A e B do tipo Int;

B está sempre alterando seu valor;

Quando A for verdadeira começo a contar quantas vezes B muda de valor;

Por exemplo:

Suponhamos que o valor inicial de B é 10.;

Quando A torna-se verdadeiro eu começo a contar quantas vezes B muda de valor. Se  por exemplo, B alterar seu valor para 9,8,7,6,5 deverei saber que foram 5 mudanças.

Quando A for falso devo zerar esse contador.

 

Alguma idéia?

Desde já agradeço a ajuda.

 

 

Link to comment
Share on other sites

Na programação orientada a objetos existe o conceito de encapsulamento, que resumidamente é o conceito de não alterar uma variável diretamente mas sim usando uma função. Isso faz com que a variável fique "encapsulada" dentro do objeto e permite que qualquer lógica seja aplicada na alteração daquela variável.

E é exatamente o que você quer fazer... Toda vez que as variáveis A e B são alteradas existe uma certa lógica ocorrendo com elas, não é? Então eu sugeriria você colocar tudo dentro de uma struct e implementar funções para modificar os valores de A e B. Tipo assim:
 

struct var {
	bool mode; // A
  	int value; // B
  	int counter;
};

void var_mode(struct var *variable, bool mode)
{
  // etc...
}

void var_value(struct var *variable, int value)
{
  // etc...
}

 

  • l33t 1
Link to comment
Share on other sites

Obrigado pela dica Felipe.

No meu caso essa variável B seria a posição de TAP de um transformador, que sempre está alterando o seu valor.

Não sei que tipo de função usar para monitorar quantas vezes esse TAP mudou de valor.

Link to comment
Share on other sites

  • 2 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...