Variables "infinitas"

Iniciado por enol826, 28 Noviembre 2014, 22:19 PM

0 Miembros y 1 Visitante están viendo este tema.

enol826

Buenas,

Me estoy iniciando en C++, ya he hecho algún programa y me ha surgido una duda. Imaginemos que quiero hacer un programa para sumar números.

Si quiero sumar dos número, debo declarar dos variables, si quiero sumar tres, debo declarar tres, pero ¿a alguien se le ocurre la forma de hacer que el usuario pueda introducir tantos números como quiera? Por ejemplo, si quiere introducir 100 números, no tener que declarar 100 variables.

Gracias :)

engel lex

Existen los array (arreglos)

Quenes como tal una varible de multiples posiciones

Ej
Código (cpp) [Seleccionar]
int cantidad = 3;
int arreglo[cantidad];

arreglo[0] = 10;
arreglo[1] = 20;
arreglo[2] = arreglo[0] + arreglo[1];


Si tienes un arreglo declarado y quieres cambiar el tamaño, es mas complicado
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Orubatosu

Depende de muchas cosas, pero en realidad para sumar muchos números, solo necesitas un par de variables. Una para cada entrada de número, y otra para acumular

Por ejemplo:

Código (cpp) [Seleccionar]

int main(){
    int numero;
    int acumulado=0;
    while (cin >> numero){
        acumulado += numero;
    }
    cout << acumulado;
}


Así en plan bruto (se puede hacer mucho mejor obviamente) puedes hincharte a meter números... decenas, cientos... la suma va a parar a una variable, y solo usas una para capturar el dato actual.

Si la pregunta es almacenar números, o cualquier otra cosa, como muy bien te han contestado existen varios métodos, el mas usado el array o "arreglo" como también se le llama.

Existen otros tipos, como los vectores, que son básicamente arreglos donde puedes meter datos y el tamaño del mismo va creciendo según las necesidades, y donde teóricamente solo estás limitado a las capacidades de tu máquina. Mientras haya memoria para almacenar números (o lo que sea) el programa "traga".

Generalmente es raro tener que declarar una cantidad enorme de variables. Si pensamos (por ejemplo) en que quieres sacar un calculo de un enorme fichero con cientos, o miles incluso de números (ya almacenado en un archivo) el procedimiento es el mismo... una variable va leyendo números, uno por vez y acumulas, y si los necesitas para alguna otra cosa (por lo que sea) entonces recurres a un arreglo (array), un vector o cualquier otro tipo de contenedor.

Luego hay diferentes maneras de acceder a esto. Puedes pensar en un arreglo como en una cajonera, donde tu dices "quiero un mueble con 10 cajones"... estupendo, tienes un mueble llamado (por ejemplo) "Mueble" (nombre de variable) y que puede contener 10 elementos (ya sean enteros, coma flotante o lo que elijas al crearlo), y luego accedes al mismo como has visto como "Mueble[0], Mueble[1]..."

A medida que vayas avanzando verás que existen incluso otros métodos (literalmente) para hacer eso, que puedes incluso agrupar diferentes tipos de variables en nuevos tipos de variables, que puedes agruparlos en arreglos de tamaño variable y muchas cosas mas, pero poco a poco.


"When People called me freak, i close my eyes and laughed, because they are blinded to happiness"
Hideto Matsumoto 1964-1998

enol826

Muchas gracias por vuestra ayuda, ya lo he conseguido :)

Miky Gonzalez

Aunque el problema parece resolvido, podrías incluso hacerlo usando una única variable:

int numero = 0;
while(cin +>> numero) if((cin +>>numero) == 0)break; else continue; // para finalizar poner un numero negatio suficientemente alto.
Mi blog personal, con información acerca de programación, seguridad, desarrollo y electrónica:

EN CONSTRUCCIÓN