• Lunes 29 de Abril de 2024, 20:34

Autor Tema:  Solucionen este conveniente II Gracias  (Leído 1683 veces)

yedson

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Solucionen este conveniente II Gracias
« en: Miércoles 25 de Agosto de 2010, 05:08 »
0
Por ahy leyendo libros interprete que:
Código: C++
  1. i++;
  2.  
es equivalente a:
Código: C++
  1. i=i+1
  2.  
pero cuando resuelvo problemas si pongo i++; me da otro resultado y si pongo i=i+1; me da otro resultado la pregunta es:
¿Como se lee cada uno delos codigos es decir como los interpreto?

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Solucionen este conveniente II Gracias
« Respuesta #1 en: Miércoles 25 de Agosto de 2010, 13:05 »
0
i++ es post-incremento, ++i es pre-incremento, tal vez por eso vez una diferencia ... pero despues de ser ejecutados el resultado debe ser el mismo (incrementar en uno).

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

yedson

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Solucionen este conveniente II Gracias
« Respuesta #2 en: Jueves 26 de Agosto de 2010, 01:52 »
0
Cita de: "Eternal Idol"
i++ es post-incremento, ++i es pre-incremento, tal vez por eso vez una diferencia ... pero despues de ser ejecutados el resultado debe ser el mismo (incrementar en uno).

Claro entiendo que el inclemento es de uno pero para mejor entendimiento dejo este codigo:
Código: C++
  1. #include<iostream.h>
  2. void main()
  3. {
  4.  int nf,ni,i,c=0;
  5.  cout<<"Num. Inicial:"; cin>>ni;
  6.  cout<<"Num. Final:"; cin>>nf;
  7.  i=ni+1;
  8.         while(i<nf)
  9.                 {
  10.                  c=c+1;
  11.                  i=i+1;
  12.                 }
  13.         cout<<"Cantidad de Numeros Enteros Comprendidos entre "<<ni<<" y "<<nf<<" es:"<<c;
  14. }
  15.  
con ese codigo cuando se compila y pones los datos ni=5 y nf=9 bota como resultado 4, ahora haciendo el pequeño cambio de remplazar i=i+1; por i++; el resultado cambia a 3 lo que quiero entender es como se lee eso,  con este ejemplo notaran que la respuesta no es la misma por consiguiente i=i+1; no es lo mismo que i++; quiero que me expliquen porfa se agradece su colaboracion

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Solucionen este conveniente II Gracias
« Respuesta #3 en: Jueves 26 de Agosto de 2010, 11:46 »
0
No, eso siempre da 3 ...

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Solucionen este conveniente II Gracias
« Respuesta #4 en: Jueves 26 de Agosto de 2010, 19:27 »
0
A mi tambien me da 3 con los valores que mencionas, con ese programa, cambiando solamente i=i+1 y c=c+1 por i++, c++, (lo probe de las 4 formas y da lo mismo) asi que me parece que el error lo tienes tu, debes estar cambiando algo mas aparte de los contadores para que te de un resultado diferente.

Saludos :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

yedson

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Solucionen este conveniente II Gracias
« Respuesta #5 en: Viernes 27 de Agosto de 2010, 05:55 »
0
Bueno chicos Gracias por la revisión, pero tambien estuve averiguando pero al parecer, el problema es el software para compilar, yo estoy usando el Borland 4.5, ahy si sale las dos respuestas mencionadas, probe con otros compiladores como el turbo, dev, y otros mas y la verdad que sí, siempre da el mismo resultado ya sea con i++ ó i=i+1, supongo que sera un bug del borland 4.5 pero por si hay dudas compilen con borland 4.5 y me cuentan sus experiencias Gracias por las respuestas...

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Solucionen este conveniente II Gracias
« Respuesta #6 en: Lunes 30 de Agosto de 2010, 16:15 »
0
No, mejor no uses productos de Borland ... son de mala calidad  :devil:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Amilius

  • Miembro HIPER activo
  • ****
  • Mensajes: 665
    • Ver Perfil
Re: Solucionen este conveniente II Gracias
« Respuesta #7 en: Lunes 30 de Agosto de 2010, 18:40 »
0
Tal vez exista alguna opción de compilación para respetar el estándar y obtener los mismos resultados que otros compiladores. De lo contrario sería un compilador terriblemente desastroso. :(
¿Probaste desactivando optimización, o declarando esas variables como "volatile"?