Jump to content


Photo

Regra De Três Em Php


  • Faça o login para participar
5 replies to this topic

#1 finish

finish

    12 Horas

  • Usuários
  • 144 posts
  • Sexo:Não informado

Posted 12/06/2006, 22:29

Galera, seguinte...

Tenho 3 valores aqui, x, y e z com os seguintes valores 100, 200 e 300 que somados da 600. Posso retirar esses 600 daí de uma vez só... porém...

Digamos que o máximo que eu posso tirar é 200(No total), como faço para tirar proporcionalmente isso aos valores x, y e z ?

Entenderam, eu tenho 600 no total, mas só posso retirar 200, e nestes 200 ainda tenho 3 valores que devem ser retirados proporcionalmente. Eis a questão, como ?

To errando alguma coisa na parte matemática aqui, aí antes que eu perca tempo procurando um erro bobo de lógica meu, peço ajuda a vocês... hehe

Abraço

#2 TopBrasil

TopBrasil

    Normal

  • Usuários
  • 72 posts
  • Sexo:Não informado

Posted 12/06/2006, 23:11

creio que vc devera ter que pegar o total e salvar numa variavel w por exemplo faz a divisão criando outra varialve T=w/3 ai vc iria conseguir ter no T o numero 200... agora num sei se vai funcionar no seu script mas pelo oque vc falou é isso
========================================
TopBrasil - * Aqui seu site tem valor *
========================================

========================================
E-mail: williamont@terra.com.br
========================================

========================================
MSN: wil_rock@hotmail.com
========================================

========================================
Doando - O TopBrasil apoia essa ideia
========================================

#3 gennf

gennf

    A Solução está ai...

  • Usuários
  • 645 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG

Posted 13/06/2006, 08:34

Pura Matematica :P

Esses numeros seriam fixos??? Ou seja, apenas tres valores realmente?

E outra coisa que não entendi.

Quando vc diz proporcional, vc quer dizer que em cima de 100 tem que ser tirado 33%, em cima de 200 33% e em cima de 300 33% ou de cada um tem que ser tirado a divisão de 200 por exemplo o que daria 66,66???

Interessante isso :P

Aguardo respostas ;)

Té mais ;)
Portal BatePapoBrasil
URL: www.batepapobrasil.com

----------------------------
Site desenvolvidos
URL:
VitrineABC :: Alugue Litoral :: OrtodontiaLago

#4 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 13/06/2006, 09:15

Pensei assim:

<?php

function subtract($aValues, $nSubtract) {

	$nValueSubtract = (array_sum($aValues) - $nSubtract) / count($aValues);
	
	foreach ($aValues as $key => $value) {
		$aValues[$key] = $value - $nValueSubtract;
	}
	
	return $aValues;
}


$aValues = array('x' => 100, 'y' => 200, 'z' => 300);

list($x,$y,$z) = array_values(subtract($aValues, 300));

?>

<ul>
	<li>x: <?= $x ?></li>
	<li>y: <?= $y ?></li>
	<li>z: <?= $z ?></li>
</ul>

Nunca fui bom em matemática, mas veja se o resultado seria esse:

x: 0
y: 100
z: 200


Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#5 gennf

gennf

    A Solução está ai...

  • Usuários
  • 645 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG

Posted 13/06/2006, 11:55

Nossa!!!

Isso que eu chamo de usar funções do PHP :P

Só não entendi porque que o X deu zero :blink:



Chegando em casa, eu tento fazer o meu pensamento :P



Té mais ;)



Dando umas fuçadas no código do Eclesiastes, cheguei a seguinte conclusão :P

Espero que ele não se importe :unsure:

Já num é mais a primeira vez. :unsure:

<?php

function subtract($aValues) {

$nValueSubtract = "100" / count($aValues) / "100";

foreach ($aValues as $key => $value) {
$aValues[$key] = $value * $nValueSubtract;
}

return $aValues;
}


$aValues = array('x' => 100, 'y' => 200, 'z' => 300);

list($x,$y,$z) = array_values(subtract($aValues));

//33,33 - 66,66 - 99,99

?>

<ul>
<li>x: <?= $x ?></li>
<li>y: <?= $y ?></li>
<li>z: <?= $z ?></li>
</ul>


Eu acho que é isso.

Té mais ;)
Portal BatePapoBrasil
URL: www.batepapobrasil.com

----------------------------
Site desenvolvidos
URL:
VitrineABC :: Alugue Litoral :: OrtodontiaLago

#6 RonsisM

RonsisM

    Super Veterano

  • Usuários
  • 15724 posts
  • Sexo:Masculino
  • Localidade:Plovdiv

Posted 25/09/2017, 18:08

Levitra Shop Preisvergleich cialis Amoxicillin Coverage Buy Viagra No Prescription




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq