Foros del Web » Programando para Internet » PHP »

registradora

Estas en el tema de registradora en el foro de PHP en Foros del Web. hola a todos: Soy nueva en esto de lo de php, tengo un problemilla "como hacer una caja registradora" Bueno ingreso mediante un formulario el ...
  #1 (permalink)  
Antiguo 08/10/2003, 16:44
 
Fecha de Ingreso: octubre-2003
Mensajes: 3
Antigüedad: 21 años, 1 mes
Puntos: 0
registradora

hola a todos:

Soy nueva en esto de lo de php, tengo un problemilla "como hacer una caja registradora" Bueno ingreso mediante un formulario el Costo y el pago y con esta operación:$Cambio=$Pago- $Costo; recibo el cambio, lo que no se como hacer es lo siguiente:

tengo un formulario de billetes de 500,200,100,50,20 y otro de monedas 20,10,5,2,1,.50centavos. lo que quiero es que cuando me diga cambio=400 este me diga cuantos billetes de a 200,100,50,o 20 dar.

Gracias por la ayuda
  #2 (permalink)  
Antiguo 08/10/2003, 17:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
mmm más bien el problema es de "matemáticas" no?

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 08/10/2003, 17:15
 
Fecha de Ingreso: octubre-2003
Mensajes: 14
Antigüedad: 21 años, 1 mes
Puntos: 0
Como idea general para que la desarrolles:
Pones los valores (billetes y monedas) en variables, quizas en arrays?

Del primer valor de CAMBIO buscas el primer valor en el ARRAY, que sea inmediatamente inferior.
Ya tienes el primer VALORDECAMBIO.
La resta de ambos valores te dara el segundo valor de CAMBIO
y vuelves a empezar.

OK?
  #4 (permalink)  
Antiguo 08/10/2003, 20:09
 
Fecha de Ingreso: agosto-2003
Mensajes: 272
Antigüedad: 21 años, 2 meses
Puntos: 0
Y para que te sirve

Hola, no entiendo para que queres decirle al operador de la caja como podes dar el cambio.
Estamos de acuerdo que existen muchas formas de dar un cambio.
Vos queres dar una de las maneras o todas?
Saludos
  #5 (permalink)  
Antiguo 08/10/2003, 20:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Usando un poco de matemáticas:

Si tienes bielletes de 200,100,50,o 20

Divide ... por 200 y tendrás los billetes de 200 .. el resto lo divides por 100 y tendras los de 100 .. el resto lo divides por 50 y tendras los de 50 .. el resto lo divides por 20 y tendrás los de 20 ...

Sólo tienes que tener en cuenta que si el resto que obtienes es menor que el billete (500,200,50 ... etc) .. no has de contabilizarlo en ese grupo de billetes.

En "PHP" el resto de una división lo puedes obtener con:

$resto=$dividendo % $divisor;

Si tienes tus billetes (los rangos de billetes que puedes trabajar) en un array .. puedes recorrerlo con un bucle foreach() facilmente para hacer las operaciones pertinentes .. A su vez puedes crearte un array de "cambio billetes" ...

Sería algo así:

Código PHP:
<?
$cambio
=1571;
$billetes=array(500,200,50,20,1);
$resto=$cambio;

foreach(
$billetes as $billete){

// compruebo que el resto no sea mayor que el grupo de billetes
// que deseo ver cuantos he de entregar.
  
if ($resto >= $billete){

    
// redondeo y obtengo los billetes
    
$billetes_de=round($resto/$billete);
    
// Me los guardo en un array asociativo
    
$cambio_billetes[$billete]=$billetes_de;

    
// Obtengo el resto ..
    
$resto=$resto%$billete;
  }

}

// leo el array que contiene los totales de los billetes que he de entregar de cambio.
foreach($cambio_billetes as $billete=>$total_billetes){
   echo 
"Billete de: ".$billete." = Entregar => ".$total_billetes."<br>";
}
?>
He incluido como "billete" al 1 .. más bien seria moneda .. Si no lo quieres .. eliminalo del array de billetes .. Como verás podrías incluir en dicho array todo el rango de billetes y monedas que tenga la moneda del pais que requieras y obtendrias el cambio exacto desglosado ...

Por lo mismo .. la rutina es fácilmente adaptable a otros sistemas monetarios de otros paises ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:02.