elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  duda de como usar el incremento en una operación
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: duda de como usar el incremento en una operación  (Leído 2,695 veces)
RaquelAG

Desconectado Desconectado

Mensajes: 6


Ver Perfil
duda de como usar el incremento en una operación
« en: 27 Enero 2013, 22:18 pm »

Hola, verás, tengo una pequeña duda sobre la diferencia que puede tener el poner ++i o i++ en una operación, pues acabo de observar según un libro que no es lo mismo. Dejo aquí el ejemplo que plantea, para que lo podáis visualizar:

#include <iostream>
main(){
   int m = 45, n = 75;
   cout<< "m = " << m<< " n = "<< n << endl;
   // Aquí se entiende que m=45 y n=75
   ++m;
    --n;
   cout<< "m = " << m <<", n = " << n << endl;
   // Aquí también entiendo que m se ha incrementado enj 1 su valor y n ha
   // disminuido su valor, tal y como indica el libro
   m++;
   n--;
   cout<< " m = "<< m <<", n = " << n << endl;
   // Y es aquí cuando nada me cuadra, porque según el libro m=46 y n=73,
  // ¿Alguien me lo podría explicar? Gracias por todo
   return 0;
}


En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: duda de como usar el incremento en una operación
« Respuesta #1 en: 27 Enero 2013, 22:36 pm »

Realizan la misma operación: Incrementar uno. En el ejemplo que has puesto no se ve a simple vista porque has cambiado m y n previamente. Pero se puede ver si los vuelves a poner a estado normal:

Código
  1. #include <iostream>
  2. main(){
  3.   int m = 45, n = 75;
  4.   cout<< "m = " << m<< " n = "<< n << endl;
  5.   // Aquí se entiende que m=45 y n=75
  6.   ++m;
  7.    --n;
  8.   cout<< "m = " << m <<", n = " << n << endl;
  9.  // Reseteamos los valores
  10.   m = 45;
  11.   n = 75;
  12.  
  13.   m++; // Incrementamos
  14.   n--; // Decrementamos
  15.   cout<< " m = "<< m <<", n = " << n << endl;
  16.   // Ahora te deberia salir m = 46 y n = 74
  17.   return 0;
  18. }

Ponerlo en sufijo o prefijo no supone ninguna diferencia en operaciones simples. La diferencia sucede en operaciones más complejas:

Código
  1. C = A + ++B;
Primero se incrementa B y despues se suma.

Código
  1. C = A + B++;

Se suma primero y despues se incrementa el resultado.



« Última modificación: 27 Enero 2013, 22:42 pm por amchacon » En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
RaquelAG

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: duda de como usar el incremento en una operación
« Respuesta #2 en: 27 Enero 2013, 22:54 pm »

Sigo sin entenderlo, porque en el 2º paso del cout, no entiendo por qué dices que sigue siendo lo mismo, cuando antes de ello, ya se ha dicho que  ++m y --n, quedándome lo que se supone que tendría que salirme, m=46 y n=74. En el paso 3, según el libro, y es aquí donde no lo veo nada claro, antes de que salga en pantalla el reultado, dice que m++ y n--, pero que según mi guía, me tendría que salir que m=46 y n=73.


Gracias por contestar tan rápido, lo de las operaciones más complejas si lo entendí^^
En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: duda de como usar el incremento en una operación
« Respuesta #3 en: 27 Enero 2013, 23:11 pm »

Sigo sin entenderlo, porque en el 2º paso del cout, no entiendo por qué dices que sigue siendo lo mismo, cuando antes de ello, ya se ha dicho que  ++m y --n, quedándome lo que se supone que tendría que salirme, m=46 y n=74. En el paso 3, según el libro, y es aquí donde no lo veo nada claro, antes de que salga en pantalla el reultado, dice que m++ y n--, pero que según mi guía, me tendría que salir que m=46 y n=73.
Vuelve a mirar bien estas lineas que te he pasado:

Código
  1.  // Reseteamos los valores
  2.   m = 45;
  3.   n = 75;

Despues de la primera operación, vuelvo a dejar los dos valores como estaba y hago la segunda.

Simplemente quería enseñarte que ambas operaciones daban lo mismo, si lo compilas lo podrás comprobar:



En cuanto al libro, debe ser una errata. Te debería dar n = 47 y m = 73
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
RaquelAG

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: duda de como usar el incremento en una operación
« Respuesta #4 en: 27 Enero 2013, 23:29 pm »

¡Ya lo entendí! Muchas gracias por todo, ahora lo veo más claro^^
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
duda sobre como usar el editor hexadecimal
Ingeniería Inversa
elipse 8 12,772 Último mensaje 17 Agosto 2006, 19:03 pm
por _GeMiNi_
como incremento mi internet motorola sb4200
Redes
abys 2 2,573 Último mensaje 7 Mayo 2010, 16:01 pm
por Martin-Ph03n1X
Como hacer esta operación con Ubuntu 10.04
GNU/Linux
Meta 2 3,194 Último mensaje 12 Mayo 2010, 21:17 pm
por Meta
Pequeña duda informes access añadir campo con operacion
Bases de Datos
Anonymous250 4 3,688 Último mensaje 12 Enero 2012, 15:49 pm
por Anonymous250
[Duda] Usar un SSD como cache para el HDD
Hardware
raul_samp 2 4,563 Último mensaje 19 Mayo 2012, 23:06 pm
por raul_samp
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines