Article View: chile.comp.programacion
Article #531Re: Optimizar Switch
From: 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>
Technical Details
Message-ID:
<Xns9A59AC181B13jmsnews@201.238.250.229>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!news.glorb.com!newsfeed101.telia.com!nf02.dk.telia.net!fu-berlin.de!news.nivel5.cl!news.vcd.cl!not-for-mail!not-for-mailReferences:
<290af3a9-6793-4bc3-b49d-318c65272c71@y77g2000hsy.googlegroups.com>Show Full Headers
Complete Article Headers
X-Google-Thread: 1593cb,e793ae4739a04232
X-Google-Attributes: gid1593cb,public,usenet
X-Google-Language: SPANISH,ASCII
Newsgroups: chile.comp.programacion
Subject: Re: Optimizar Switch
From: "Jos� Miguel Santib��ez" <jms.nospam@nivel5.cl>
References: <290af3a9-6793-4bc3-b49d-318c65272c71@y77g2000hsy.googlegroups.com>
Organization: Caos Consultores
Message-ID: <Xns9A59AC181B13jmsnews@201.238.250.229>
User-Agent: Xnews/5.04.25
X-Face: +|NgjgFM{<rs%\Q|vUu16]a6,}?MJTA<!PEEI+x&Gw-Gyq+?$}fvo+.(,-r;)~Qzn)#{{nxU,OT?w^s<7m4ckCJ*L$c#I)yHL7b)GdU*#l
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
NNTP-Posting-Host: 91-248-222-201.adsl.terra.cl
X-Original-NNTP-Posting-Host: 91-248-222-201.adsl.terra.cl
Date: 6 Mar 2008 17:04:41 -0400
X-Trace: news.vcd.cl!not-for-mail 1204833881 201.222.248.91 (6 Mar 2008 17:04:41 -0400)
X-Original-Trace: 6 Mar 2008 17:04:41 -0400, 91-248-222-201.adsl.terra.cl
Lines: 107
X-Authenticated-User: jms
Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!news.glorb.com!newsfeed101.telia.com!nf02.dk.telia.net!fu-berlin.de!news.nivel5.cl!news.vcd.cl!not-for-mail!not-for-mail