Thread View: chile.comp.programacion
2 messages
2 total messages
Started by AlejandroArias
Thu, 06 Mar 2008 17:04
Optimizar Switch
Author: AlejandroArias
Date: Thu, 06 Mar 2008 17:04
Date: Thu, 06 Mar 2008 17:04
71 lines
2446 bytes
2446 bytes
Saludos, tengo una funcion PHP:
function calculartarifa($cod, $min){
switch ($cod):
case 31:
if ($min < 4)
$pre =150;
elseif ($min < 11)
$pre = 122;
else
$pre = 79;
break;
case 41:
if ($min < 4)
$pre =114;
elseif ($min < 11)
$pre = 94;
else
$pre = 65;
break;
case 51:
if ($min < 4)
$pre =125;
elseif ($min < 11)
$pre = 108;
else
$pre = 75;
break;
case 61:
if ($min < 4)
$pre =321;
elseif ($min < 11)
$pre = 295;
else
$pre = 184;
break;
case 71:
if ($min < 4)
$pre =287;
elseif ($min < 11)
$pre = 236;
else
$pre = 156;
break;
case 81:
if ($min < 4)
$pre =405;
elseif ($min < 11)
$pre = 385;
else
$pre = 245;
break;
case 91:
if ($min < 4)
$pre =501;
elseif ($min < 11)
$pre = 400;
else
$pre = 325;
break;
default:
print "<i>No es un Codigo de Area Valido - </i>";
break;
endswitch;
return $pre * $min;
}
Dependiendo del cod del area y de los minutos tomados es el precio del
minuto, existe alguna manera de hacerlo mas optimo? en menos lineas?
Re: Optimizar Switch
Author: Jos� Miguel Santib��ez
Date: Thu, 06 Mar 2008 21:04
Date: Thu, 06 Mar 2008 21:04
107 lines
4467 bytes
4467 bytes
En el cap�tulo anterior (news:290af3a9-6793-4bc3-b49d-318c65272c71
@y77g2000hsy.googlegroups.com), AlejandroArias <jalejandro0211@gmail.com>
dijo:
> Saludos, tengo una funcion PHP:
>
> function calculartarifa($cod, $min){
> switch ($cod):
> case 31:
> if ($min < 4)
> $pre =150;
> elseif ($min < 11)
> $pre = 122;
> else
> $pre = 79;
> break;
> case 41:
> if ($min < 4)
> $pre =114;
> elseif ($min < 11)
> $pre = 94;
> else
> $pre = 65;
> break;
> case 51:
> if ($min < 4)
> $pre =125;
> elseif ($min < 11)
> $pre = 108;
> else
> $pre = 75;
> break;
> case 61:
> if ($min < 4)
> $pre =321;
> elseif ($min < 11)
> $pre = 295;
> else
> $pre = 184;
> break;
> case 71:
> if ($min < 4)
> $pre =287;
> elseif ($min < 11)
> $pre = 236;
> else
> $pre = 156;
> break;
> case 81:
> if ($min < 4)
> $pre =405;
> elseif ($min < 11)
> $pre = 385;
> else
> $pre = 245;
> break;
> case 91:
> if ($min < 4)
> $pre =501;
> elseif ($min < 11)
> $pre = 400;
> else
> $pre = 325;
> break;
> default:
> print "<i>No es un Codigo de Area Valido - </i>";
> break;
> endswitch;
>
> return $pre * $min;
>
> }
>
> Dependiendo del cod del area y de los minutos tomados es el precio del
> minuto, existe alguna manera de hacerlo mas optimo? en menos lineas?
>
hmmm....
function calculartarifa($cod, $min){
$pre[31][0] = 150;
$pre[31][1] = 122;
$pre[31][2] = 79;
$pre[41][0] = 114;
$pre[41][1] = 94;
$pre[41][2] = 65;
...
if (isset($pre[cod])) {
if ($min < 4)
return $pre[cod][0] *$min;
elseif ($min < 11)
return $pre[cod][1] *$min;
else
return $pre[cod][2] *$min;
} else {
print "<i>No es un Codigo de Area Valido - </i>";
}
--
Apoye a la campa�a de alfabetizaci�n y | Jose M. Santiba�ez A.
ordenaci�n de las news, cada post en su | <jms@nivel5.cl>
lugar y el lugar exacto para cada post | <http://caos.cl/jms>
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads