Conectar-se
Quem está conectado
24 usuários online :: 3 usuários cadastrados, Nenhum Invisível e 21 Visitantes

gart30, Tedi Ripper, Willy

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
Data de inscrição : 29/01/2011
Número de Mensagens : 800
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

[Trancado] Um problema com cálculo misto.

em Qui 04 Jul 2013, 09:36
O problema é outra coisa, há várias maneiras pra resolver, mas preciso mesmo de um CÁLCULO. Sem chance de ifs: não posso usar um operador de comparação. Usando 0 ou 1 (não importa como), tenho que inverter o valor das duas colunas fazendo um cálculo com essas duas variáveis (A e B).

Os valores não são esses, mas só pra exemplificar:

A | B
------
1 | 2
2 | 3
3 | 1

Veja bem, não deve haver dois cálculos, um pra A e outro pra B. É um cálculo só, pra ambas. Quando a situação for 0 (zero), a coluna continua do jeito que está, mas quando a situação for (1), os valores se invertem. Não estou procurando o 0 e 1 porque já tenho a situação de 0 e 1. Só quero que eles entrem no cáculo e simplifiquem a coisa.

Como exemplo, seria mais ou menos isso:

coluna := A + B – coluna;

Fácil, né. Tenho impressão de que estou complicando à toa, mas deve haver um jeito mais fácil ainda usando só 0/1 e eu não estou conseguindo resolver. Alguma ideia?
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: [Trancado] Um problema com cálculo misto.

em Qui 04 Jul 2013, 10:09
Não entendi muito bem o que você quer. Um script que inverta, linha por linha, o valor das duas colunas? Isso você já fez.
Código:
var soma, saidaA, saidaB;
soma := argument0 + argument1;
saidaA := soma - argument0; // A
saidaB := soma - argument1; // B
Rode esse script em cada linha, pronto. Mas não pode ser isso, porque isso você já fez.

Que tipo de "situação" pode ser 0 ou 1? Uma condição pra rodar o script ou não? Estou interpretando isso. Uma condição que retorne 0 ou 1 e que isso entre no script como argumento. Se a condição for falsa, não faz nada, se for verdadeira, roda-se o script em todas as linhas.
Até parece possível, sim, mas acho que um if vai acelerar o processamento.
Código:
var soma, saidaA, saidaB, condicao, sinal;
condicao := argument0;
sinal := sign(condicao - 0.5);
soma := (argument1 + argument2) * condicao;
saidaA := soma - argument0 * sinal; // A
saidaB := soma - argument1 * sinal; // B
Data de inscrição : 29/01/2011
Número de Mensagens : 800
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [Trancado] Um problema com cálculo misto.

em Qui 04 Jul 2013, 10:26

Cara, eu compliquei à toa. A sua solução era exatamente o que eu precisava! Obrigado!

----- Edit -----

Consegui aqui, mas valeu pela ajuda. Na verdade, eu tinha que repassar um argumento pro script que seria um número de 0 a 11, e o valor de 0 e 1 que eu comentei era modulado nisso, aí eu me virei mais ou menos:

Código:
coluna = abs((A + B) * ((argument0 div 3) mod 2) - coluna);

Valeu!
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum