Article View: es.comp.lenguajes.c++
Article #173Re: Duda IF ?
From: josedaniel.garcia
Date: Tue, 25 Aug 2009 07:33
Date: Tue, 25 Aug 2009 07:33
70 lines
3812 bytes
3812 bytes
Creo que la pregunta no es cual génera menos código máquina. Parece
que esa pregunta hace la asunción de que a menos código máquina menos
tiempo de ejecución. Eso no tiene por qué ser cierto siempre.
La pregunta correcta es cuál ejecuta más rápido. La mejor manera de
saberlo es compilar las solcuiones y medir en la máquina destino.
Mi impresión inicial es que si vas a comparar con 3 o 4 valores da
igual, excepto que se trate de una comparación que se encuentre muy
anidada dentro de bucles. Ahora bien si se trata de una cantidad
enorme de valores, tiene sentido usar la solución basada en vector.
On 24 ago, 12:12, ELfun <virtial.di...@gmail.com> wrote:
> On 24 ago, 10:42, "josedaniel.garcia"<josedaniel.garcia.u...@gmail.com> wrote:
> > No entiendo bien la pregunta. ¿Sintácticamente correcto? ¿Correcto
> > desde el punto de vista de estilo?
>
> > Primero. La segunda condición debería ser (var==7) ¿verdad?
>
> Si, fue un error al teclear....
>
>
>
>
>
> > Segundo. Si se quiere comparar con muchos valores parece un poco
> > largo.
>
> > Alternativa 1:
>
> > switch (var) {
> > case 3:
> > case 7:
> > case 15:
> > std::cout << "El valor es 3, 7 o 15" << std::endl;
>
> > }
>
> > Alternativa 2: Personalmente me gusta más
>
> > int v[] = {3, 7, 15};
> > int * end = v + sizeof(v)/sizeof(v[0]);
> > if ( end != std::find(v, end, var)) {
> > std::cout << "El valor es ";
> > std::copy(v, end, std::ostream_iterator<int>(std::cout, " "));
>
> > }
>
> OK, es lo que quería saber las diferentes alternativas, pero me surge
> otra pregunta de las tres posibles soluciones cual es la que genera
> menos código maquina por el compilador?..
>
>
>
> > On 23 ago, 13:06, ELfun <virtial.di...@gmail.com> wrote:
>
> > > Hola, os agradecería que me comentaseis si es correcto esta forma de
> > > usar IF
>
> > > if ((var ==3) || (var7 ==7) || (var ==15)){
> > > printf ("La variable es 3 , 7 o 15");- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -
Technical Details
Message-ID:
<927f5cab-c229-4ee3-8bfb-501f3f31cda3@26g2000yqk.googlegroups.com>Path:
arc1-ca.pugleaf.net!g2news2.google.com!postnews.google.com!26g2000yqk.googlegroups.com!not-for-mailReferences:
<ba8c3ca3-0dd7-4a24-8633-4737b0b6c25f@k30g2000yqf.googlegroups.com> <2c2ca95b-9d5f-48c7-8104-a4294280f02d@z24g2000yqb.googlegroups.com> <23333fe1-d3be-4152-8b56-111af0f830e9@b15g2000yqd.googlegroups.com>Show Full Headers
Complete Article Headers
X-Google-Thread: d2efa0cfdc,706742b0d1c7e367 X-Google-Attributes: gidd2efa0cfdc,public,usenet X-Google-NewGroupId: yes X-Google-Language: SPANISH,ASCII Path: arc1-ca.pugleaf.net!g2news2.google.com!postnews.google.com!26g2000yqk.googlegroups.com!not-for-mail From: "josedaniel.garcia" <josedaniel.garcia.uc3m@gmail.com> Newsgroups: es.comp.lenguajes.c++ Subject: Re: Duda IF ? Date: Tue, 25 Aug 2009 00:33:54 -0700 (PDT) Organization: http://groups.google.com Lines: 71 Message-ID: <927f5cab-c229-4ee3-8bfb-501f3f31cda3@26g2000yqk.googlegroups.com> References: <ba8c3ca3-0dd7-4a24-8633-4737b0b6c25f@k30g2000yqf.googlegroups.com> <2c2ca95b-9d5f-48c7-8104-a4294280f02d@z24g2000yqb.googlegroups.com> <23333fe1-d3be-4152-8b56-111af0f830e9@b15g2000yqd.googlegroups.com> NNTP-Posting-Host: 163.117.148.211 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: posting.google.com 1251185634 6144 127.0.0.1 (25 Aug 2009 07:33:54 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Tue, 25 Aug 2009 07:33:54 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: 26g2000yqk.googlegroups.com; posting-host=163.117.148.211; posting-account=9JbdoAoAAABBMcTZCBn244HTTxTuDMJb User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; GTB6; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2; OfficeLiveConnector.1.3; OfficeLivePatch.0.0),gzip(gfe),gzip(gfe)