Foros del Web » Programación para mayores de 30 ;) » C/C++ »

que hace esta instrucción?

Estas en el tema de que hace esta instrucción? en el foro de C/C++ en Foros del Web. Hola.... Estoy leyendo un problema y asomo esto cout << ( fila % 2 ? "<" : ">" ) que es lo que está haciendo... ...
  #1 (permalink)  
Antiguo 21/11/2007, 20:36
 
Fecha de Ingreso: noviembre-2007
Mensajes: 19
Antigüedad: 16 años, 6 meses
Puntos: 0
que hace esta instrucción?

Hola....

Estoy leyendo un problema y asomo esto

cout << ( fila % 2 ? "<" : ">" )

que es lo que está haciendo... entiendo que esta mostrando en la pantalla < y > pero porque está expresado así ... por favor si han visto por ahi esto, me lo podrían explicar...?

GRACIAS
  #2 (permalink)  
Antiguo 22/11/2007, 03:34
Avatar de r0d
r0d
 
Fecha de Ingreso: noviembre-2007
Mensajes: 86
Antigüedad: 16 años, 6 meses
Puntos: 3
Re: que hace esta instrucción?

hola,

-> cout es un objeto un poco particular del STL. Es una instancia especializada de la clase template iostream. En líneas generales, ella redirige el flujo sobre la consola.

-> el operador % corresponde al modulo, en matemáticas. Por ejemplo: a = b % c => a= el resto de la operación (b dividido por c). Así, a%2 == 0 si a es par. En c/c++, '(a%2)' es equivalente a '!(a&1)'.

-> el operador ternero:
(condición) ? Bloc1 : Bloc2
es casi equivalente a la instrucción:
if (condición)
{bloc1}
else
{bloc2}.

Entonces, el codigo
cout << ( fila % 2 ? "<" : ">" )
puede escribirse así:
if ( fila%2 != 0 )
{
cout << "<";
}
else
{
cout << ">";
}

Estas dos maneras de escribir la misma cosa, con gcc o visualtools (el compilador de visual studio) va a producir el mismo codigo asm .

Última edición por r0d; 22/11/2007 a las 09:19
  #3 (permalink)  
Antiguo 24/11/2007, 11:49
 
Fecha de Ingreso: noviembre-2007
Mensajes: 19
Antigüedad: 16 años, 6 meses
Puntos: 0
De acuerdo Re: que hace esta instrucción?

Suuuuuuuuuuper Bien.... muchas gracias!!!!
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 21:48.