Cuando inicializar las variables en cero y cuando no

Cuando empecé a aprender a programar en c++ (creo que uno nunca acaba) me enseñaron que siempre hay que inicializar en cero o en algún otro valor las variables, porque si no, pueden tomar valores raros que podrían arruinar nuestro programa.

Vamos a ver si la leyenda es cierta:

#include
using namespace std;

int main()
{
    int var1;
    cout << var1;
}

Pues con mi compilador sí lo es, una variable sin inicializar toma valores raros. Pero si se han fijado en mis programas, yo no siempre inicializo mis variables, ¿por qué? Pues porque no siempre es necesario.

La regla es bastante simple: “Si la primera instrucción en la que usamos nuestra variable es de asignación, no es necesario inicializarla.” Por ejemplo:

cin >> var1; // no es necesario inicializarla
var2 = 14; // no es necesario inicializarla
cout << var3; // es necesario inicializarla
var4 = cos(45); // no es necesario inicializarla
var5++; // es necesario inicializarla
if(var6 != 7) // es necesario inicializarla
cin.getline(var7); // no es necesario inicializarla

Podemos seguir inicializando todas las variables que usemos, pero si únicamente inicializamos las necesarias vamos a dar la impresión de que sabemos lo que estamos haciendo😄

33 thoughts on “Cuando inicializar las variables en cero y cuando no

  1. que tal Thebatzuk es un gusto conocer a personas como tu a las que les gusta compartir lo que saben, es así como colaboramos el aprendizaje mutuo, gracias por tu apoyo.
    los comentarios que aparecen en tu blog ayudan en mucho mis actividades como iniciadora en c++.
    gracias y espero sigas compartiendo lo que sabes y has experimentado..

      1. nesesito ayuda.. coomo hacer la serie de senx en una funcion en c++.. y ññamarla en la funcion principal osea main.

  2. hola tengo que hacer un programa muy complicado para mi me podes ayudar?tengo que vender 5 productos de los cuales debo obtener la siguiente informacion
    1-cargar para los 5 productos que vendo los diferentes montos que se fueron vendiendo en un periodo de tiempo.
    2-obtener los promedios de montos por priducto.
    3-Obtener un promedio general del monto vendido
    4-Obtener el producto que mas ganancia le ha dado al mercado
    5-Obtener el producto que menos ganancia le ha dado al mercado.

    Quiero hacerlo con un switch,while, debe tener c
    los montos de dinero se ingresan con 2 decimales
    Los promedios deben darse con dos decimales

  3. Asi es, pero también hay que agregar que es importante inicilizar en cero las variables que van a albergar totales para prevenir resultados inesperados.

  4. hola soy evaristo estoy trabajando con un programa llamado pseint y estoy sacando unas coordenada y cuando le doy que leea los segundo me sale variable no inicializada como ago gracias amigo

  5. en vfox, fox, dbase, se pueden inicializar varias variables en una misma instrucción (store 0 to nvar1, nvar2,…,nvarn, en c++, se puede hacer lo mimso?
    Saludos

  6. hola amigo soy nuevo en aqui y me gustaria saber si me pueden ayudar…
    necesito hacer un programa en turbo c
    que haga y contenga lo sieguiente:
    1.- MENU.
    2.- POLINDROMICA(que diga si una palabra es o no es)
    3.-que cuente las letras que forman la palabra ingresada..
    4.-salir.

    si alguien me puede ayuadr antes que se llegue el dia miércoles se lo agardeceria mucho!!!

  7. muy buen post yo soy estudiante de sistemas y durante mi carrera e aplendido c y c# completos osea lo basico para programar. Al principio fue algo dificil darse cuenta de cuando poner “;” por esa misma razon mis primeros programas en c fueron basicos y cortitos. Con c# fue mas sencillo ya que con el inter ligen empesavamos a escribir el for lo reconocia tecla tab y se escribia solo lo unico que asiamos nosotros era configurarlo para que funciones como nosotros queriamos. Igual tubimos bastantes incapie como todos pero con la plactica fuimos mejorando y asiendo menos conplicada la programacion.

    Respecto a la idea del c++ lo estava buscando ase rato ya que este permite trabajar con las bibliotecas ogre (bibliotecas graficas). Y ademas es un buen lenguaje y seguramente vale la pena darle su tiempo a aprenderlo.

  8. Porfa Si Son Tan Amables Necesito Un Programa Para C++ Y No Se Como Resolverlo Y Tengo 24 Horas Para Entregarlo El Enunciado Es:
    En la clase de programacion C++ se tienen 35 alumnos al iniciar el semestre, el maestro aplico cinco examenes parciales durante el semestre yal termino del semestre realiza los calculos correspondientes para obtener el promedio de cada alumno. Desarrolle un programa en C++ en el cual, el maestro de como entrada la matricula del alumno y sus correspondientes calificaciones para obtener por medio de funciones el promedio de cada alumno asi como el numero de alumnos reprobados. Mostrar en pantalla la matricula del alumno y su promedio, asi como el numero de alumnos reprobados.

    Si Pueden Resolverlo Y Enviarmelo Estaria Muy Agradecido Mi Correo Es cris-evan@hotmail.com

  9. hola disculpa no podrias poner un ejemplo de un porgrama que reciba los valores de dos matrices de 3×3 calcule la sumad e estas matrices y muestre el resultado.

  10. Sinceramente sin este blog no entendiera mucho de lo que hago, mi profesora nos dio problemas y dijo que averiguaramos nosotros, muchas gracias (:

  11. oye disculpa me podrias ayudar con este problema porfavor lo que pasa esque no le entiendo gracias.
    –En un arreglo, capturar las palabras de los números del 1 al 10. Después ordenar las palabras de los números del uno al diez, en orden alfabético. Mostrar el orden numérico y alfabético en forma ascendente y descendente según lo muestra el siguiente formato:
    Ascendente descendente
    5 CINCO ……….1 UNO
    4 CUATRO ……3 TRES
    10 DIEZ……….. 7 SIETE
    2 DOS…………… 6 SEIS
    9 NUEVE……… 8 OCHO
    8 OCHO……….. 9 NUEVE
    6 SEIS ………….2 DOS
    7 SIETE ………10 DIEZ
    3 TRES…………. 4 CUATRO
    1 UNO…………… 5 CINCO

  12. Me ayudan Por favor
    Se desea escribir un programa para una fábrica de resortes que tiene un número no determinado de
    clientes y de los cuales se conoce:
    ◦ El número de legajo del cliente.
    ◦ La categoría a la que pertenece (puede ser “A” , “B” o “C”).
    ◦ Y el monto mensual de compras promedio.
    Se pide que el programa permita el ingreso de datos y emita por pantalla:
    • la cantidad de clientes de la categoría “A” con un promedio mensual mayor a
    $5.000,00.-,
    • cuántos clientes tiene la categoría “B”,
    • el número de clientes de la categoría “C” con un promedio mensual mayor a
    $1.000,00.-,
    • el promedio de compras por categoría y
    • el promedio general de compras de todos los clientes.
    Se debe tener en cuenta que:
    ✔ El programa debe escribirse utilizando la sintaxis del lenguaje ANSI C.
    ✔ Se debe validar la entrada de datos.
    ✔ El fin de los datos se finaliza con legajo = “-1” y en ese caso no se debe ingresar ni
    categoría, ni monto mensual promedio.
    ✔ El programa debe funcionar al momento de la entrega y estar preparado para posibles
    modificaciones futuras.

  13. #include
    int main()
    {
    float Kg=13;
    float N;
    float hecho;
    char si;
    char no;
    float jaja;
    cout<<"Buenos dias y bienvenido a la tortilleria EL OSCAR"<<endl;
    cout<>N;
    hecho=Kg*N;
    cout<>si;
    if (si==si)
    {
    hecho=Kg*N+0.50;
    }
    if (si==no)
    {
    hecho=Kg*N;
    }
    jaja=hecho+150;
    cout<<" son en total: $ "<<hecho;
    cout<<" y por ser usted son: $"<<jaja;
    cin.get();cin.get();
    cin.get();cin.get();
    }
    es un codigo sencillo pero no se que tiene ya que yo quiero que cuando pregunte "quieres papel? y conteste si le agregue .50 pero cuando responda no no le agregue nada… me podrias ayudar?

  14. ola tengo una urgencia tengo que realizar una biblioteca en c++ esta debe tener un menu como: capturar, mostrar, buscar, eliminar pero es para el viernes…tengo la idea pero no estoy muy segura podras ayudarme

  15. Hola! Mi problema en la codificación es que cuando creé un programa para que me mostrara los numeros primos en turbo c++ usando while y for; al compilar no tenía ningún error ni warning, pero al correrlo mi máquina se trabo y no se a que se deba ésta situación. Me marca un error al principio cuando pongo el #include pero por más que reviso no sé cual sea mi error. POrfavor ayudenme! Muchas gracias! (:

  16. nesecito ayuda para aser un programa en c++ system32 cpp tranformar un numero de entero a binario pero sin RECURCION

  17. ola este necesito ayuda tengo que aser un programa para un consultori medico donde solicite los datos personales del paciente ( nombre completo del paciente, direccion, telefono y demas datos necesarios )
    solicitar tambien la estatura y el peso con los siguientes criterios:

    si el paciente mide 1.70, su peso debera de estar entre 60kg y 70kg, si llega a ser menos de 60kg que indique que le hace falta peso, si sobre pasa los 70 kg que muestre que tiene sobrepeso

    porfavor ayudenme!!🙂

  18. oye, pregunto en que entorno de desarrollo estan plasmados tus codigos
    bueno te explico: actualmente estoy probando tus codigos en dev-c++ en su version 4.9.9.2 y la verdad casi ningun codigo me compila de los tuyos me puedes decir con que software probarlos o cual es el tu usas porfa… gracias de antemano.

  19. hola, disculpa es que tengo un trabajo de introduccion de progracion orientada a objetos. aver si depronto me puedes ayudar con eso por que no entiendo como hacer la division en clases.

    Ejercicio 1. Camiones
    Una empresa de transporte lleva un registro diario de 3 camiones, identificados con las
    placas: “ABC321”, “PLE845” y “WWW007” respectivamente. Cada camión realiza 3 rutas
    de envió de carga diarias, las cuales constan de una hora, peso y precio.
    La empresa transportadora le ha encomendado a usted realizar un programa que le
    permita por medio de un menú elegir las opciones que el usuario requiera:
    1. Ingresar/Modificar la información correspondiente de cada ruta de envió para
    cada camión.
    2. Determinar cuál fue el envió que se realizó más temprano y más tarde.
    3. Determinar que camión fue el que llevo la carga más pesada.
    4. Determinar que camión llevó la carga de mayor precio.
    5. Calcular el dinero total recaudado por los 3 camiones.
    Toda la información referente a los camiones se tiene en el garaje de la empresa.
    Ayuda:Implementar las clases: Camión, Ruta, Garaje (la cual contendrá los camiones).

  20. hola me gusta tu programa c++ soy nueva en esto y el profe nos dejo esto sera que me puedes ayudar por favor para mi esta bien difícil,gracias;
    Se desea calcular el salario extra neto semanal de los trabajadores de una empresa de acuerdo a las siguientes normas:

    * Horas semanales trabajadas < 38 a una tasa dada.
    * Horas extras (38 o más) a una tasa 50 por ciento mayor a la tasa dada.

    e) Dado como datos cuatro números reales, identifique cuál es el mayor. Considere que los números pueden ser iguales.

    f) El costo de las llamadas telefónicas internacionales depende de la zona geográfica en la que se encuentre el país destino y del número de minutos hablados. En la siguiente tabla se presenta el costo del minuto por zona. A cada zona se le ha asociado una clave.

    CLAVE ZONA PRECIO

    12 América del Norte 2
    15 América Central 2.55
    18 América del Sur 4.90
    19 Europa 3.5
    23 Asia 6
    25 África 7.6
    29 Oceanía 5

    g) En una tienda efectúan un descuento a los clientes dependiendo del monto de la compra. El descuento se efectúa con base en el siguiente criterio:

    a.Si el monto es menor que Q.500.00, no hay descuento e indíqueselo al usuario.
    b.Si el monto está comprendido entre Q.500.00 y Q.1000.00 inclusive, el5% de descuento.
    c. Si el monto está comprendido entre Q.1000.00 y Q.7000.00 inclusive, el11% de descuento.
    d.Si el monto está comprendido entre Q.7000.00 y Q.15000.00 inclusive,el 18% de descuento.
    e.Si el monto es mayor a Q.15000.00, el descuento e del 30% de descuento si es fin de semana, en caso contrario es del 25%.

    Todos los descuentos habrán de notificarse al usuario.

    GRACIA Y PERDON POR MOLESTARTE

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s