Programación General => C/C++ => Mensaje iniciado por: yedson en Miércoles 25 de Agosto de 2010, 05:08
Título: Solucionen este conveniente II Gracias
Publicado por: yedson en Miércoles 25 de Agosto de 2010, 05:08
Por ahy leyendo libros interprete que:
Código: C++
i++;
es equivalente a:
Código: C++
i=i+1
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?
Título: Re: Solucionen este conveniente II Gracias
Publicado por: Eternal Idol en Miércoles 25 de Agosto de 2010, 13:05
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).
Título: Re: Solucionen este conveniente II Gracias
Publicado por: yedson en Jueves 26 de Agosto de 2010, 01:52
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++
#include<iostream.h>
void main()
{
int nf,ni,i,c=0;
cout<<"Num. Inicial:";cin>>ni;
cout<<"Num. Final:";cin>>nf;
i=ni+1;
while(i<nf)
{
c=c+1;
i=i+1;
}
cout<<"Cantidad de Numeros Enteros Comprendidos entre "<<ni<<" y "<<nf<<" es:"<<c;
}
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
Título: Re: Solucionen este conveniente II Gracias
Publicado por: Eternal Idol en Jueves 26 de Agosto de 2010, 11:46
No, eso siempre da 3 ...
Título: Re: Solucionen este conveniente II Gracias
Publicado por: ProfesorX en Jueves 26 de Agosto de 2010, 19:27
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 :)
Título: Re: Solucionen este conveniente II Gracias
Publicado por: yedson en Viernes 27 de Agosto de 2010, 05:55
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...
Título: Re: Solucionen este conveniente II Gracias
Publicado por: Eternal Idol en Lunes 30 de Agosto de 2010, 16:15
No, mejor no uses productos de Borland ... son de mala calidad :devil:
Título: Re: Solucionen este conveniente II Gracias
Publicado por: Amilius en Lunes 30 de Agosto de 2010, 18:40
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"?