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

Pequeña duda en la inicializacion de una variable

Estas en el tema de Pequeña duda en la inicializacion de una variable en el foro de C/C++ en Foros del Web. Hola a todos, Les comento rapidito, me estoy metiendo en C++ y resulta que me dieron este pequeño ejercicio para hacer que es el siguiente... ...
  #1 (permalink)  
Antiguo 14/02/2012, 16:59
 
Fecha de Ingreso: julio-2010
Mensajes: 126
Antigüedad: 14 años, 4 meses
Puntos: 5
Pequeña duda en la inicializacion de una variable

Hola a todos,

Les comento rapidito, me estoy metiendo en C++ y resulta que me dieron este pequeño ejercicio para hacer que es el siguiente...

El programa te pide que ingreses numeros, hasta que pongas 0... ahi es cuando se detiene el programa y te da el resultado de todos los numeros que ingresaste.

El ejercicio lo logre hacer y supongo que de la mejor forma posible, pero me quedo una duda respecto a una variable... mi codigo es el siguiente:

Código C++:
Ver original
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.     int num, resultado = 0;
  8.  
  9.     while(num != 0)
  10.     {
  11.         cout << "ingresar numero :";
  12.         cin >> num;
  13.         resultado += num;
  14.     }
  15.  
  16.     cout << "El Resultado de todos los numeros es: " << resultado;
  17.     return 0;
  18. }

Mi duda tiene que ver con la variable resultado, del porque me es necesario iniciarlizarla con un valor de 0... porque si no lo hago al final del programa cuando me da el resultado de toda la suma me tira un numero equivocado (con bastantes cifras)... No se supone que al crear una variable por defecto se inicializa con un valor de 0? Por lo que tengo entendido es asi, cabe aclarar que vengo de programar en Pawn (y conocimientos bastante basicos de php y python) y siempre asumi que las variables se inicializan en 0, pero por una cuestion de legibilidad del codigo se les asigna el valor de 0 en ciertas ocaciones necesarias.

Igual debo suponer que no se inicializan en 0, ya que sino no me tendria porque funcionar el while, siendo que a la variable num no le estoy asignando ningun valor.

Bueno, basicamente esa es mi duda... y si ven algo en lo que se pueda optimizar el codigo, bienvenido sea. Gracias de antemano.
  #2 (permalink)  
Antiguo 14/02/2012, 19:17
 
Fecha de Ingreso: diciembre-2011
Ubicación: Crespo - Entre Rios
Mensajes: 155
Antigüedad: 12 años, 11 meses
Puntos: 25
Respuesta: Pequeña duda en la inicializacion de una variable

mira la respuesta a la pregunta en este link

http://www.forosdelweb.com/f14/inici...bles-c-201036/
  #3 (permalink)  
Antiguo 14/02/2012, 20:07
 
Fecha de Ingreso: julio-2010
Mensajes: 126
Antigüedad: 14 años, 4 meses
Puntos: 5
Respuesta: Pequeña duda en la inicializacion de una variable

Me sirvio bastante, muchas gracias... aun asi me gustaria que me expliquen si es posible, de que trata esa "basura" que se le da a la variable al no setearle ningun valor. Mas que nada por cuestion de curiosidad... o simplemente es eso? basura agregada por el lenguaje sin sentido alguno? O tiene algun sentido y significa algo?

Gracias.
  #4 (permalink)  
Antiguo 15/02/2012, 08:45
 
Fecha de Ingreso: enero-2011
Ubicación: Venezuela, Táchira
Mensajes: 96
Antigüedad: 13 años, 10 meses
Puntos: 10
Respuesta: Pequeña duda en la inicializacion de una variable

Cita:
Iniciado por Ciel Ver Mensaje
Me sirvio bastante, muchas gracias... aun asi me gustaria que me expliquen si es posible, de que trata esa "basura" que se le da a la variable al no setearle ningun valor. Mas que nada por cuestion de curiosidad... o simplemente es eso? basura agregada por el lenguaje sin sentido alguno? O tiene algun sentido y significa algo?

Gracias.
mira tu variable resultado es un acumulador, y por ende almacenara valores , te imaginas que tu por ejemplo el proposito de tu vida es que seas un acumulador de panes y derrepente apareces acumulando atunes ?? esta es la importancia de asignarle valores iniciales a los contadores y acumuladores .. SIEMPRE SIEMPRE inicia estos en un valor, en algunos casos si no los inicias te puede correr el programa y dar el resultado correcto cm tambien puede que te arroje un resultado incorrecto, espero que hayas aclarado un poco tus dudas
  #5 (permalink)  
Antiguo 15/02/2012, 10:42
 
Fecha de Ingreso: julio-2010
Mensajes: 126
Antigüedad: 14 años, 4 meses
Puntos: 5
Respuesta: Pequeña duda en la inicializacion de una variable

@ gorystyle

Creo que dentro de todo lo entendi, sin embargo todavia tengo la duda del porque por defecto el lenguaje no le asigna un valor de 0 y aparte, quisiera saber que es exactamente lo que se le asigna por defecto a una variable creada de valor entero.

Es decir, yo ahora creo una variable de tipo int y sin asignarle ningun valor la imprimo en pantalla, lo acabo de probar y me arroja el siguiente valor 2147328000 lo que yo quiero saber es de donde saca ese numero... solamente de curioso :p y para entender un poco mas a fondo el lenguaje.
  #6 (permalink)  
Antiguo 15/02/2012, 17:40
 
Fecha de Ingreso: enero-2011
Ubicación: Venezuela, Táchira
Mensajes: 96
Antigüedad: 13 años, 10 meses
Puntos: 10
Respuesta: Pequeña duda en la inicializacion de una variable

no estoy seguro de donde salen esos numeros "basura" que se muestran en una variable sin valor asignado. y creo que el lenguaje no asigna por defecto el cero porque por ejemplo en algunos casos necesitas que un contador/acumulador inicie en un valor mayor a 0
  #7 (permalink)  
Antiguo 15/02/2012, 18:57
 
Fecha de Ingreso: diciembre-2011
Ubicación: Crespo - Entre Rios
Mensajes: 155
Antigüedad: 12 años, 11 meses
Puntos: 25
Respuesta: Pequeña duda en la inicializacion de una variable

texto extraido de http://c.conclase.net/curso/index.php?cap=006:

Cita:
En C++, contrariamente a lo que sucede con otros lenguajes de programación,
las variables no inicializadas tienen un valor indeterminado, y contienen lo que normalmente se denomina
"basura". Cuando se declara una variable se reserva un espacio de memoria para
almacenarla, pero no se hace nada con el contenido de esa memoria, se deja el
valor que tuviera previamente, y ese valor puede interpretarse de distinto modo,
dependiendo del tipo.
o sea que si por ejemplo, declaras un entero y no lo inicializas y en el lugar de memoria de tu entero se encuentra almacenado el valor 45, tu variable contendra el valor 45 aunque tu no hayas hecho nada
  #8 (permalink)  
Antiguo 15/02/2012, 21:37
 
Fecha de Ingreso: julio-2010
Mensajes: 126
Antigüedad: 14 años, 4 meses
Puntos: 5
Respuesta: Pequeña duda en la inicializacion de una variable

Comprendido... ya no tengo mas dudas, muchas gracias ^^

Etiquetas: ejercicio, funcion, pequeña, programa, variables
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 15:44.