Ir para conteúdo
gersonab

função de comparação com multiplos de 5

Recommended Posts

boa tarde

tem como simplificar criando uma função e ou outra forma para se fazer uma comparação dos múltiplos de 5 de 5 a 200 por exemplo ?

assim até funciona mas fica algo .......

////$a = 5, $b = 10 e assim por diante até 200

if ($metros > 5 && $metros <= 10){
	$mtr = bcsub($b, $metros, 3);
	$va01 = $mtr*$valorm;
	} else if ($metros > 10 && $metros <= 15){
	$mtr = bcsub($c, $metros, 3);
	$va01 = $mtr*$valorm;
    +++++++++++++++
	} else if ($metros > 195 && $metros <= 200){
	$mtr = bcsub($d, $metros, 3);
	$va01 = $mtr*$valorm;

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tentei assim:

 

<?php
$metros=7;
$valorm=7;
echo "<table><th>metros<th>mtr<th>va01";
for($i=5;$i<=200;$i=$i+5){
    if ($metros > $i && $metros <= $i+5){
	    $mtr = bcsub($i, $metros, 3);
	    $va01 = $mtr*$valorm;
        echo "<tr><td>".$metros."<td>".$mtr."<td>".$va01;}}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!
Não fui capaz de entender a questão
 

On 10/15/2023 at 3:51 PM, gersonab said:

if ($metros > 5 && $metros <= 10){

Nesse if, não vai ser considerado o 5, apenas os 6, 7, 8, 9 e 10
e 6, 7, 8, e 9, não são múltiplos de 5

Consegue descrever melhor o que precisa ser feito?

Compartilhar este post


Link para o post
Compartilhar em outros sites

preciso fazer uma comparação utilizando múltiplos de 5 tipo :

if ($mtgt > 5 && $mtgt <= 10){
	$mtr = bcsub(10, $mtgt, 3);
	$va01 = $mtr*$valorm;
	} else if ($mtgt > 10 && $mtgt <= 15){
	$mtr = bcsub(15, $mtgt, 3);
	$va01 = $mtr*$valorm;
	} else if ($mtgt > 15 && $mtgt <= 20){
	$mtr = bcsub(20, $mtgt, 3);
	$va01 = $mtr*$valorm;
	} else if ($mtgt > 20 && $mtgt <= 25){
	$mtr = bcsub(25, $mtgt, 3);
	$va01 = $mtr*$valorm;
      // indo até 200 por exemplo, imagina o tamanho ......

se o mtgt for 7 , aí o mtr será igual a 3, se for 171 o mtr vai ser 4 , espero que tenha entendido , pode ter algo mais simples de fazer, mas ainda não encontrei ....

Compartilhar este post


Link para o post
Compartilhar em outros sites
16 horas atrás, gersonab disse:

não deu, eu coloquei 171 metros e o resultado foi :

mtr = 1 deveria ser 4
va01 = 7 deveria ser 28


Obrigado por me corrigir, eu mudei o código:

<?php
$metros=171;
$valorm=7;
echo "<table><th>metros<th>mtr<th>va01";
for($i=5;$i<=200;$i=$i+5){
    if ($metros > $i && $metros <= $i+5){
	    $mtr = bcsub($i+5, $metros, 3);
	    $va01 = $mtr*$valorm;
        echo "<tr><td>".$metros."<td>".$mtr."<td>".$va01;}}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tb não entendi foi nada!
Onde entra o múltiplo de 5? Pra que serve o múltiplo de 5 nesse contexto?
 

15 horas atrás, gersonab disse:

se o mtgt for 7 , aí o mtr será igual a 3, se for 171 o mtr vai ser 4 , espero que tenha entendido

já que 7, 3, 171 e 4 não são múltiplos de 5


e o intervalo

15 horas atrás, gersonab disse:

} else if ($mtgt > 10 && $mtgt <= 15){

vai cobrir os números 11, 12, 13 e 14 q também não são múltiplos de 5

Compartilhar este post


Link para o post
Compartilhar em outros sites

funcionou, obrigado.

explicando, em uma obra quantas placas de 5 metros quadrado vou precisar para cobrir 171 metros ?

serão necessárias 35 placas.
e essa sobra de 4 metros quadrados ? vai ser cobrada como ? normal ou preço de custo ?

apenas para definir a sobra de material.

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, gersonab disse:

funcionou, obrigado.

explicando, em uma obra quantas placas de 5 metros quadrado vou precisar para cobrir 171 metros ?

serão necessárias 35 placas.
e essa sobra de 4 metros quadrados ? vai ser cobrada como ? normal ou preço de custo ?

apenas para definir a sobra de material.


Valeu pela explicação, eu fiquei preso na função do PHP bcsub( ), ainda não sei como usá-la. A equação que eu montei foi baseada no famoso método da tentativa e erro, assim, eu recomendo fazer mais testes antes de tornar oficial no código. Outro problema do meu código é que ele faz muitos ciclos, ou seja, trata-se de uma gambiarra. Ele não merece o rótulo de acadêmico.

Compartilhar este post


Link para o post
Compartilhar em outros sites
<style>
  *{
    font-family: sans-serif;
  }
</style>
<?php

// SCRIPT PARA CALCULAR QUANTAS PLACAS DE Xm² cabem num espaço de Ym²
// e quantas placas adicionais serão necessárias para cobrir o espaço restante, se existir

// plate's size in m²
$platesSize = 5;

// total area to cover in m²
$totalArea = 171;

// calc how many complete plates are needed to cover the area
$completePlatesNeeded = floor($totalArea / $platesSize);

// calc uncovered area
$uncoveredAreaSize = $totalArea % $platesSize;

echo "<p>Área total: <b>{$totalArea}m²</b></p>";
echo "<p>Tamanho de cada placa: <b>{$platesSize}m²</b></p>";
echo "<p>Placas completas necessárias: <b>{$completePlatesNeeded}</b></p>";
echo "<p>Área restante não coberta: <b>{$uncoveredAreaSize}m²</b></p>";

// if unvered area exists, calculate how many plates are needed
if ($uncoveredAreaSize > 0) {
  $adicionalPlatesNeeded = ceil($uncoveredAreaSize / $platesSize);
  echo "<p>Placas adicionais necessárias: <b>{$adicionalPlatesNeeded}</b></p>";
}

4VmxNJvcTCOx3yTuVnj_6Q.png

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Wash, realmente muito bom, porém a área restante ela tem q ser igual a 4 que é o q falta para completar 175 ....  olha só o q fiz aqui agora antes de ver sua resposta ...

$metros=171;
$valorm=7;
$pl = $metros / 5;
echo $pl."<br>";
$px = ceil($pl);
echo $px."<br>";
$pc = $px * 5;
echo $pc."<br>";
$total = $pc - $metros;
echo $total."<br>";
$valsobra = $total*$valorm;
echo $valsobra;

sem laço sem nada e simples.

Compartilhar este post


Link para o post
Compartilhar em outros sites
11 horas atrás, gersonab disse:

a área restante ela tem q ser igual a 4 que é o q falta para completar 175

Desculpa me intrometer, mas se a área a ser preenchida é de 171m²
foram usadas 34 placas de 5m²
34 x 5m² = 170m²
logo falta apenas 1m² para completar a área total sugerida de 171m²
Até então 175m² não existia na equação.
Afinal, de onde o sr. tirou esse 175m²???

Ficou meio fora de contexto
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cada placa tem 5 m², preciso do total de placas utilizadas, o serviço é por metro quadrado, preciso da sobra para um novo cálculo, tipo:
171 m² - cada metro vale R$ 10,00 os 4 de sobra valem R$ 5,00 para compensar a perda.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 18/10/2023 at 18:54, tetsuo disse:

Desculpa me intrometer, mas se a área a ser preenchida é de 171m²
foram usadas 34 placas de 5m²
34 x 5m² = 170m²
logo falta apenas 1m² para completar a área total sugerida de 171m²
Até então 175m² não existia na equação.
Afinal, de onde o sr. tirou esse 175m²???

Ficou meio fora de contexto
 


Baseado na sua observação, acredito que a melhor equação para calcular a sobra é essa:

 

<?php
$metros=172;
$placa=5;
$numero_placas=intval($metros/$placa)+(fmod($metros,$placa)!==0);
$sobra=$placa-fmod($metros,$placa);
echo "para cobrir $metros metros^2 vai ser preciso $numero_placas <br>
    placas de $placa metros^2, mas vai sobrar $sobra metros^2";

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, ativo. Nela tem cadastrado vários itens. No campo ativo eu coloco a letra "S" para informar que este item está ativo no sistema. Por exemplo: 1, casa, S 2, mesa, S 3, cama, S 4, moto S 5, rádio O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "produtos" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, mesa, moto 2, mesa, casa, cama 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela produtos da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "mesa". Preciso fazer com que o php me liste todos os registros da tabela "produtos" que contenham a palavra "mesa". Até aqui tudo bem eu consigo listar. Estou fazendo assim: <?php $item = "mesa" $sql = mysqli_query($conn, "SELECT * FROM produtos WHERE item1 LIKE '$item' OR item2 LIKE '$item' OR item3 LIKE '$item' LIMIT 10"); while($aux = mysqli_fetch_assoc($sql)) { $id = $aux["id"]; $item1 = $aux["item1"]; $item2 = $aux["item2"]; $item3 = $aux["item3"]; echo $id . " - " . $item1 . ", " . $item2 . ", " $item3 . "<br>"; } ?> O problema é que está listando todos os registros que contém o item mesa. Eu preciso que o php verifique os demais item e me liste somente os registro em que todos os registros estejam ativos no sistema. No exemplo acima ele não deveria listar o registro 3. pois nesse registro contém o item "radio" e este item não está ativo no sistema. Ou seja, o registro "radio" na tabela itens não possui um "S" na coluna "ativo". Alguém sabe como resolver isso?
    • Por ILR master
      Fala galera.
      Espero que todos estejam bem.
      Seguinte: Tenho um arquivo xml onde alguns campos estão com : (dois pontos), como o exemplo abaixo:
       
      <item>
      <title>
      d sa dsad sad sadasdas
      </title>
      <link>
      dsadas dsa sad asd as dsada
      </link>
      <pubDate>sadasdasdsa as</pubDate>
      <dc:creator>
      d sad sad sa ad as das
      </dc:creator>
      </item>
       
      Meu código:
       
      $link = "noticias.xml"; 
      $xml = simplexml_load_file($link); 
      foreach($xml -> channel as $ite) {     
           $titulo = $ite -> item->title;
           $urltitulo = $ite -> item->link;
           print $urltitulo = $ite -> item->dc:creator;
      } //fim do foreach
      ?>
       
      Esse campo dc:creator eu não consigo ler. Como faço?
       
      Agradeço quem puder me ajudar.
       
      Abs
       
       
    • Por First
      Olá a todos!
       
      Eu estou criando um sistema do zero mas estou encontnrando algumas dificuldades e não estou sabendo resolver, então vim recorrer ajuda de vocês.
      Aqui está todo o meu código: https://github.com/PauloJagata/aprendizado/
       
      Eu fiz um sistema de rotas mas só mostra o conteúdo da '/' não sei porque, quando eu tento acessar o register nada muda.
      E eu também quero que se não estiver liberado na rota mostra o erro de 404, mas quando eu tento acessar um link inválido, nada acontece.
      Alguém pode me ajudar com isso? E se tiver algumas sugestão para melhoria do código também estou aceitando.
       
       
      Desde já, obrigado.
    • Por landerbadi
      Olá pessoal, boa tarde
       
      Tenho uma tabela chamada "produtos" com os seguintes campos (id, produto) e outra tabela chamada "itens" com os seguintes campos (id, prod_01, prod_02, prod_03, prod_04).
       
      Na tabela produtos eu tenho cadastrado os seguintes produtos: laranja, maçã, uva, goiaba, arroz, feijão, macarrão, etc.
       
      Na tabela itens eu tenho cadastrado os itens da seguinte maneira:
       
      1, laranja, uva, arroz, feijão;
      2, maçã, macarrão, goiaba, uva;
      3, arroz, feijão, maçã, azeite
       
      Meu problema é o seguinte: 
      Eu escolho um produto da tabela "produtos", por exemplo "uva".  Preciso fazer uma consulta na tabela "itens" para ser listado todos os registros que contenham o produto "uva" e que todos os demais produtos estejam cadastrados na tabela "produtos".
       
      No exemplo acima seria listado apenas dois registros, pois o terceiro registro não contém o produto "uva". 
       
      Alguém pode me ajudar? Pois estou quebrando a cabeça a vários dias e não consigo achar uma solução.
    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, plural, ativo. Nela tem cadastrado vários itens e seu respectivo plural. No campo ativo eu coloco a letra "S" para informar que esta palavra está ativa no sistema. Por exemplo: 1, casa, casas, S 2, mesa, mesas, S 3, cama, camas, S 4, moto, motos, S 5, rádio, rádios O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "variações" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, camas, moto 2, mesas, casas, radio 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela variações da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "casa". Preciso fazer com que o php me liste todos os registros da tabela "variações" que contenham a palavra "casa". Porém se tiver algum registro com a palavra "casas" também tem que ser listado. Neste caso ele irá encontrar dois registros. Agora eu preciso que o php verifique os demais itens e faça a listagem apenas dos item que estão ativos (que contenham um "S" no campo ativo. Neste caso ele irá encontrar apenas um registro, pois o segundo registro contém a palavra "rádio". E "rádio" não está ativo na tabela itens. Como faço isso?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.