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
Polito!
Nivel 7


Edad: 35
Registrado: 09 Feb 2010
Mensajes: 332

Carrera: Mecánica
argentina.gif
MensajePublicado: Mar Jun 28, 2011 11:01 am  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

gente tengo que preparar el examen de vectores otra vez y la verdad no entiendo mucho u.u

como hago para desarrollar una funcion que devuelva en un vector los numeros primos entre 2 y 200?
saludos!

_________________
Riquelme esta felí

Libra Género:Masculino Dragón OfflineGalería Personal de Polito!Ver perfil de usuarioEnviar mensaje privado
Sebastian Santisi
Administrador Técnico


Edad: 42
Registrado: 23 Ago 2005
Mensajes: 17451


argentina.gif
MensajePublicado: Mar Jun 28, 2011 11:47 am  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Más sencillo, hacé una función que reciba un vector y cargue en él dichos primos.

O sea:
void claculaprimos(int vector[], int tamagno) {
...
}

_________________
Image[tex] ${. \ \ \ \ \ \ \ \ \ .}$ [/tex][tex] ${\Large Usá \LaTeX, no seas foro...}$ [/tex]

Aries Género:Masculino Perro OfflineGalería Personal de Sebastian SantisiVer perfil de usuarioEnviar mensaje privadoVisitar sitio web del usuario
Polito!
Nivel 7


Edad: 35
Registrado: 09 Feb 2010
Mensajes: 332

Carrera: Mecánica
argentina.gif
MensajePublicado: Lun Jul 04, 2011 4:00 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Gente, estoy necesitando saber como hacer un ciclo de ordenamiento de una matriz, cualquiera sea. (cuadrada M[N][N] o no M[N][O])

quiero saber si hay alguna forma directa de hacerlo, o sea sin pasarla a vectores, y sin funciones del dev++,o visual. quiero saber escribir el ciclo.

Saludos!

_________________
Riquelme esta felí

Libra Género:Masculino Dragón OfflineGalería Personal de Polito!Ver perfil de usuarioEnviar mensaje privado
Sebastian Santisi
Administrador Técnico


Edad: 42
Registrado: 23 Ago 2005
Mensajes: 17451


argentina.gif
MensajePublicado: Lun Jul 04, 2011 4:11 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

¿Ordenarla cómo?

Creo que la forma más sencilla de entender de ordenamiento es selección. Revisás toda la matriz, encontrás su elemento menor y su posición y lo intercambiás con el 0,0. Revisás toda la matriz, pero empezando desde el 1,0; buscás el elemento más chico y su posición, y lo intercambiás con el 1,0... y así.

No deberías complicarte mucho para implementar ese algoritmo.

(Al margen, no sé por qué tiene tanta pegada burbujeo, es mucho más antinatural de entender, y es más horrible en cuanto a eficiencia en cantidad de movimientos de memoria.)

_________________
Image[tex] ${. \ \ \ \ \ \ \ \ \ .}$ [/tex][tex] ${\Large Usá \LaTeX, no seas foro...}$ [/tex]

Aries Género:Masculino Perro OfflineGalería Personal de Sebastian SantisiVer perfil de usuarioEnviar mensaje privadoVisitar sitio web del usuario
koreano
Nivel 9



Registrado: 15 Jul 2010
Mensajes: 1796

Carrera: No especificada
blank.gif
MensajePublicado: Lun Jul 04, 2011 4:19 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

La pregunta es demasiado genérica: como definís el orden en una matriz? Qué es un "ciclo de ordenamiento", el bucle principal de algun algoritmo de sorteo? Asumiendo que la matriz se ordena de menor a mayor de izq a derecha y de arriba a abajo, te recomiendaría empezar por algo como un bubble sort, tratando a la matriz como un vector lineal (haciendo cuentas con los tamaños de las filas y las columnas dentro del cíclo).


   OcultoGalería Personal de koreanoVer perfil de usuarioEnviar mensaje privado
Sebastian Santisi
Administrador Técnico


Edad: 42
Registrado: 23 Ago 2005
Mensajes: 17451


argentina.gif
MensajePublicado: Lun Jul 04, 2011 4:33 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Lo del tratamiento en forma lineal es (asumiendo row major order); si la matriz mide NxM es equivalente a un vector de NxM elementos donde el elemento i,j de la matriz se encuentra en la posición i*M+j del vector; y la posición k del vector corresponde a la fila k/M, y columna k%M de la matriz.

Armando ese cambio de variables, podés aplicar el método que más te guste.

_________________
Image[tex] ${. \ \ \ \ \ \ \ \ \ .}$ [/tex][tex] ${\Large Usá \LaTeX, no seas foro...}$ [/tex]

Aries Género:Masculino Perro OfflineGalería Personal de Sebastian SantisiVer perfil de usuarioEnviar mensaje privadoVisitar sitio web del usuario
koreano
Nivel 9



Registrado: 15 Jul 2010
Mensajes: 1796

Carrera: No especificada
blank.gif
MensajePublicado: Lun Jul 04, 2011 4:52 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

May de for be with you


   OcultoGalería Personal de koreanoVer perfil de usuarioEnviar mensaje privado
Polito!
Nivel 7


Edad: 35
Registrado: 09 Feb 2010
Mensajes: 332

Carrera: Mecánica
argentina.gif
MensajePublicado: Mar Jul 05, 2011 12:55 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

de menor a mayor por fila me refiero... este ciclo seria el correcto?
respuestas[10][10]
//organizo de menor a mayor las filas de la matriz
for(i=0; i<10; i++){
for(j=0; j<10; j++){
for(k=j; k<10>respuestas[i][k]){
h=respuestas[i][j];
respuestas[i][j]=respuestas[i][k];
respuestas[i][k]=h;
}

_________________
Riquelme esta felí

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


Edad: 35
Registrado: 09 Feb 2010
Mensajes: 332

Carrera: Mecánica
argentina.gif
MensajePublicado: Mar Jul 05, 2011 12:56 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

corrijo,

seria este?

for(i=0; i<10; i++){
for(j=0; j<10; j++){
for(k=j; k<10>respuestas[i][k]){
h=respuestas[i][j];
respuestas[i][j]=respuestas[i][k];
respuestas[i][k]=h;

_________________
Riquelme esta felí

Libra Género:Masculino Dragón OfflineGalería Personal de Polito!Ver perfil de usuarioEnviar mensaje privado
Sebastian Santisi
Administrador Técnico


Edad: 42
Registrado: 23 Ago 2005
Mensajes: 17451


argentina.gif
MensajePublicado: Mar Jul 05, 2011 2:18 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Ah, o sea, cada fila la ordenarías de menor a mayor, independientemente de las otras.

Entonces ahí no te interesa mucho el tema matrices.

El algoritmo es:
Para cada fila:
Ordeno la fila.

Tu código tiene algo mal, no podés estar ordenando sin hacer ninguna comparación entre elementos... algún if() sí o sí tiene que aparecer en el código.

De todos modos, por como usaste los índices, entiendo que sí vas por el camino correcto. Te falta hacer que eso sea un algoritmo de ordenamiento, pero el recorrido está bien planteado.

_________________
Image[tex] ${. \ \ \ \ \ \ \ \ \ .}$ [/tex][tex] ${\Large Usá \LaTeX, no seas foro...}$ [/tex]

Aries Género:Masculino Perro OfflineGalería Personal de Sebastian SantisiVer perfil de usuarioEnviar mensaje privadoVisitar sitio web del usuario
Polito!
Nivel 7


Edad: 35
Registrado: 09 Feb 2010
Mensajes: 332

Carrera: Mecánica
argentina.gif
MensajePublicado: Mar Jul 05, 2011 2:50 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

uh puse dos veces lo mismo soy un pelotudo jajajaja

perdonen nose como editar el ciclo ya lo saque Smile sisi va un if que no salio en el msj

_________________
Riquelme esta felí

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


Edad: 35
Registrado: 09 Feb 2010
Mensajes: 332

Carrera: Mecánica
argentina.gif
MensajePublicado: Mar Jul 05, 2011 9:53 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Gente tengo una duda... quiero hacer funicones recursivas con vectores...
pero me tira error

La funcion es suma.


#include <iostream>
#include <cmath>
#include <cstdlib>
using namespace std;
int suma(int,int);
int main(int argc, char *argv[]) {
int i;
int v[20];
cout<<"la suma es: "<<suma(v,i);
return 0;
}

int suman(int v[],int i)
{
if(i==0)
return 0;
else
if (i==1)
return i;
else
return v[i]+suman(v,i-1);
}
y de error me dice...
"error: invalid conversion from 'int*' to 'int'"

_________________
Riquelme esta felí

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



Registrado: 15 Jul 2010
Mensajes: 1796

Carrera: No especificada
blank.gif
MensajePublicado: Mar Jul 05, 2011 10:11 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

El tipo de int v[] es int* (en el prototipo/declaración de la función).

Y asumo que donde dice int i; tenés que inicalizarlo con el tamaño del vector. Y el nombre de la función tiene que ser o suma o suman pero la misma.


   OcultoGalería Personal de koreanoVer perfil de usuarioEnviar mensaje privado
Polito!
Nivel 7


Edad: 35
Registrado: 09 Feb 2010
Mensajes: 332

Carrera: Mecánica
argentina.gif
MensajePublicado: Mar Jul 05, 2011 10:25 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

sabes que pongo como vos me decis y me sigue tirando el error, y me lo marca en el ultimo renglon

return v[i]+suman(v,i-1);

_________________
Riquelme esta felí

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



Registrado: 15 Jul 2010
Mensajes: 1796

Carrera: No especificada
blank.gif
MensajePublicado: Mar Jul 05, 2011 10:49 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Ahí lo tenés funcionando: http://www.ideone.com/zdqT7

Expansión de la recursividad:

int v[3] = {1, 2, 3};
suma(v, 3)
= v[3-1] + suma(v, 2) = v[2] + suma(v, 2) = 3 + suma(v, 2)
= 3 + v[2-1] + suma(v, 1) = 3 + v[1] + suma(v, 1) = 3 + 2 + suma(v, 1)
= 3 + 2 + v[1-1] + suma(v, 0) = 3 + 2 + v[0] + suma(v, 0) = 3 + 2 + 1 + suma(v, 0) = 3 + 2 + 1 + 0 = 6

Cosas que tenías mal:
- Consistencia nombrando la función: tiene que ser exactamente el mismo nombre
- Usando índices que empiezan en 1 en vez de 0 para el vector
- Condición de corte errónea (la de i == 1)


   OcultoGalería Personal de koreanoVer 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.2033s) ]