Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problemas con Bucle y ámbito de variable.

Estas en el tema de Problemas con Bucle y ámbito de variable. en el foro de PHP en Foros del Web. Amigos necesito ayuda tengo este pequeño script: <?php $capacidadAlmacen = 1000; $demandaDiaria = 70; $compraSemanal = 100; $cantidadEnAlmacen; for ($i=1; $i <= 8 ; $i++) ...
  #1 (permalink)  
Antiguo 30/10/2013, 07:12
 
Fecha de Ingreso: agosto-2013
Mensajes: 4
Antigüedad: 10 años, 6 meses
Puntos: 0
Problemas con Bucle y ámbito de variable.

Amigos necesito ayuda tengo este pequeño script:

<?php
$capacidadAlmacen = 1000;
$demandaDiaria = 70;
$compraSemanal = 100;
$cantidadEnAlmacen;


for ($i=1; $i <= 8 ; $i++) {
$cantidadEnAlmacen = $capacidadAlmacen - ($demandaDiaria * $i);

//Se realiza una compra de producto cada 7 dias
if ( $i % 7 == 0 )
{
$cantidadEnAlmacen += $compraSemanal;
}
echo $i ." - ". $cantidadEnAlmacen."<br />";
}

?>

y el resultado es:
1 - 930
2 - 860
3 - 790
4 - 720
5 - 650
6 - 580
7 - 610
8 - 440

Pero el valor de 8 debería ser 610-70 es decir 540 sin embargo no es así... me esta matando la cabeza esto tan simple...
  #2 (permalink)  
Antiguo 30/10/2013, 07:35
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 16 años, 11 meses
Puntos: 270
Respuesta: Problemas con Bucle y ámbito de variable.

El bucle no está haciendo nada...Ya que en cada iteración, está *sobreescribiendo* el valor anterior, no restándolo del previamente calculado, que es lo que creo que quieres, y, en cuyo caso, toda la linea está mal:

Primero, lo que está haciendo el código:
Código PHP:
Ver original
  1. for ($i=1; $i <= 8 ; $i++) {
  2. $cantidadEnAlmacen = $capacidadAlmacen - ($demandaDiaria * $i);
$cantidadEnAlmacen simplemente se sobreescribe cada vez, por lo que su valor va a ser el que se le asigne en el último paso del bucle, donde $i vale 8:
Código PHP:
Ver original
  1. $cantidadEnAlmacen = $capacidadAlmacen - ($demandaDiaria * 8);
  2. // Equivale a:
  3. $cantidadEnAlmacen=1000-(70*8);
  4. // Lo cual es... 440

Por lo que dices, tú lo que esperas es que en el último paso del bucle, se reste 70, es decir, $demandaDiaria.Por lo que supongo que el código que quieres es:
Código PHP:
Ver original
  1. $cantidadEnAlmacen=$capacidadAlmacen;
  2. for ($i=1; $i <= 8 ; $i++) {
  3. $cantidadEnAlmacen -= $demandaDiaria;
O, lo que es equivalente:
Código PHP:
Ver original
  1. $cantidadEnAlmacen=$capacidadAlmacen-(8*$demandaDiaria);
  #3 (permalink)  
Antiguo 30/10/2013, 08:27
 
Fecha de Ingreso: agosto-2013
Mensajes: 4
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Problemas con Bucle y ámbito de variable.

acabo de resolver con este codigo.
Código:
<?php 
	$capacidadAlmacen = 1000;
	$demandaDiaria = 70;
	$compraSemanal = 100;
	
	


	for ($i=1; $i <= 8 ; $i++) { 
		
		$capacidadAlmacen = $capacidadAlmacen - $demandaDiaria;

		if ( $i % 7  == 0 ) 
		{
			$capacidadAlmacen += $compraSemanal;					
		}
		
		echo $i ." - ". $capacidadAlmacen."<br />";
	}

	?>
y me funciono, creo que no me explique bien la duda, sin embargo tu ayuda me sirvió para darme cuenta del error, gracias por responder.

Etiquetas: bucle
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 12:41.