Foros-FIUBA Foros HostingPortal
 FAQ  •  Buscar  •  Wiki  •  Apuntes  •  Planet  •  Mapa  •  Eyeon  •  Chat
Preferencias  •  Grupos de Usuarios
Registrarse  •  Perfil  •  Entrá para ver tus mensajes privados  •  Login
Ver tema siguiente
Ver tema anterior

Responder al tema Ver tema anteriorEnviar por mail a un amigo.Mostrar una Lista de los Usuarios que vieron este TemaGuardar este Tema como un archivoPrintable versionEntrá para ver tus mensajes privadosVer tema siguiente
Autor Mensaje
WoS
Nivel 6


Edad: 32
Registrado: 15 Jun 2011
Mensajes: 217

Carrera: No especificada
blank.gif
MensajePublicado: Mar Jun 12, 2012 8:57 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Aebi escribió:
Buenisimo, yo no probe todo esto en la computadora, pero igualemente por lo que veo en la poca teoria que nos dieron se supone que si vos haces esto por medio de una funcion, cuando declaras V[] en el prototipo, pones entre corchetes la maxima dimension posible arbitrariamente, pero la que usas al llamarla a un programa la declaras en el mismo programa.
No se si entendio bien lo que quiero decir porque no se casi nada del tema y entonces me cuesta explicarlo. Espero que corrijan facil como el ultimo parcial jaja.


Sí, entiendo lo que querés decir... yo también estoy bastante en tarlipes con lo que van a tomar porque bueh... vos sabrás como fueron estas últimas 3 clases jaja, la verdad que nos re dejaron en banda.

Un ejemplo de lo que podrías hacer en ese caso es esto:

float funcion(int dimension, int vector[]);

Fijate que entre los corchetes no puse nada porque la dimension se la doy después según lo que ingrese el usuario. Aparentemente es válido poner eso en el prototipo (los corchetes vacíos).

Y adentro del main puse esto:

cout<<"Ingrese cantidad de elementos";
cin>>d;
int vec[d]; //Declaro el vector luego de que el usuario ingreso el largo, para que tenga el largo deseado.

Acá cuando declaro el vector adentro del main sí tengo que especificar la dimensión, por eso hago que el usuario la ingrese primero y después lo declaro. Igual me gustaría que alguien que tenga un poco más de idea me diga si está bien lo que estoy diciendo o no.

_________________
Last night Darth Vader came down from planet Vulcan and he told me that if I didn't take Loraine to the dance, that he'd melt my brain!

Sagitario Género:Femenino Cabra OcultoGalería Personal de WoSVer perfil de usuarioEnviar mensaje privado
csebas
Nivel 9


Edad: 71
Registrado: 16 Feb 2009
Mensajes: 1634

Carrera: No especificada
estonia.gif
MensajePublicado: Mar Jun 12, 2012 9:08 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Lo que que vos necesitas hacer es lo siguiente
cout<<"ingresar nuero";
cin>>n;
V = new int[n];

Pero como dicen que no vieron punteros(aunque un vector definido antes es un puntero a memoria estatica) la forma que escribieron arriba de despues poner "int V[n]" es valida porque en c++ podes definir las variables donde se te cante.

_________________
━━━━━┓ \\
┓┓┓┓┓┃
┓┓┓┓┓┃ ヽ○ノ
┓┓┓┓┓┃  /
┓┓┓┓┓┃ ノ)
┓┓┓┓┓┃
┓┓┓┓┓┃
▒▒▒▒▒▒▒▒▒▒▒▒▒▒

Leo Género:Masculino Dragón OcultoGalería Personal de csebasVer perfil de usuarioEnviar mensaje privado
Huey 7
Nivel 6



Registrado: 03 Mar 2010
Mensajes: 267

Carrera: Electrónica
CARRERA.electronica.5.gif
MensajePublicado: Mar Jun 12, 2012 9:14 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Qué curso tan raro...

WoS escribió:
[...] Y adentro del main puse esto:

cout<<"Ingrese cantidad de elementos";
cin>>d;
int vec[d]; //Declaro el vector luego de que el usuario ingreso el largo, para que tenga el largo deseado.

Eso válido en C, nomás, donde un array del estilo de vec se llama variable length array (VLA). O sea, un array cuyo tamaño es fijo pero se conoce en tiempo de ejecución (en ese ejemplo, cuando se lee d de cin).

C++ estándar no soporta VLAs, porque hace lo mismo con otra cosa (los std::vectors y demás cosas de su biblioteca estándar). Muchos compiladores de C++ igual aceptan código así como extensión no estándar, porque C lo acepta. Supongo que debe ser este caso.

Pero siendo que esto es 75.01, estaba por preguntar si en el curso mencionan algo de punteros. Porque si no, teóricamente tampoco pueden "saber" por qué el ejemplo de CSebas para "devolver un array" (que en realidad devuelve un puntero al primer elemento) funciona...

Sin usar punteros, VLAs, std::vectors, memoria dinámica (new), ni nada (:P), la solución "clásica" es declarar un array de tamaño fijo (conocido en tiempo de compilación) y suficientemente grande, pero después usar sólo la cantidad de elementos que se necesitan, almacenado en otra variable. Como dijo DiegoSLTS:

#define TMAX 100 //Tamano maximo que se puede llegar a necesitar

//No hace falta poner el tamano entre corchetes en el prototipo por razones que no se pueden explicar sin saber punteros Smile

void funcion(int dimension, int vector[]){
//Hacer algo con el vector
}

int main(){

int vec[TMAX]; //vec tiene realmente 100 elementos, y se sabe en tiempo de compilación...

cout<<"Ingrese cantidad de elementos";
cin>>d;

if (d >= TMAX)
{
//Explotar
//...
return 1;
}

//... pero solo se usa vec[0] a vec[d-1], el resto se desperdicia.

funcion(d, vec);

//etc. etc. etc.

return 0;}

Eso sí es C++ estándar (feo).

_________________
Comisión de Estudiantes de Ingeniería Electrónica (ComElec)
Lista de correo - Página Web - Facebook

 Género:Masculino  OfflineGalería Personal de Huey 7Ver perfil de usuarioEnviar mensaje privado
Polito!
Nivel 7


Edad: 35
Registrado: 09 Feb 2010
Mensajes: 332

Carrera: Mecánica
argentina.gif
MensajePublicado: Mie Jun 13, 2012 5:41 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Gente yo tengo varios ejercicios de matrices y vectores, manden mp que les paso por mail todo lo que les pueda servir!

_________________
Riquelme esta felí

Libra Género:Masculino Dragón OfflineGalería Personal de Polito!Ver perfil de usuarioEnviar mensaje privado
WoS
Nivel 6


Edad: 32
Registrado: 15 Jun 2011
Mensajes: 217

Carrera: No especificada
blank.gif
MensajePublicado: Vie Jun 15, 2012 11:36 am  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Muchas gracias a todos por ayudar y por la buena onda! El parcial fue ayer, espero que me haya ido bien, pero es medio difícil saberlo a esta altura porque hay diferencias abismales en los criterios de corrección de cada profesor...

_________________
Last night Darth Vader came down from planet Vulcan and he told me that if I didn't take Loraine to the dance, that he'd melt my brain!

Sagitario Género:Femenino Cabra OcultoGalería Personal de WoSVer perfil de usuarioEnviar mensaje privado
Mostrar mensajes de anteriores:      
Responder al tema Ver tema anteriorEnviar por mail a un amigo.Mostrar una Lista de los Usuarios que vieron este TemaGuardar este Tema como un archivoPrintable versionEntrá para ver tus mensajes privadosVer tema siguiente

Ver tema siguiente
Ver tema anterior
Podés publicar nuevos temas en este foro
No podés responder a temas en este foro
No podés editar tus mensajes en este foro
No podés borrar tus mensajes en este foro
No podés votar en encuestas en este foro
No Podéspostear archivos en este foro
No Podés bajar archivos de este foro


Todas las horas son ART, ARST (GMT - 3, GMT - 2 Horas)
Protected by CBACK CrackerTracker
365 Attacks blocked.

Powered by phpBB2 Plus, phpBB Styles and Kostenloses Forum based on phpBB © 2001/6 phpBB Group :: FI Theme :: Mods y Créditos

Foros-FIUBA está hosteado en Neolo.com Cloud Hosting

[ Tiempo: 0.2778s ][ Pedidos: 20 (0.2077s) ]