Autor Tema: Ayuda con c++: matriz dinamica  (Leído 10291 veces)

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

Desconectado watch

  • Trade Count: (0)
  • The newbie
  • *
  • Thank You
  • -Given: 0
  • -Receive: 1
  • Mensajes: 12
Ayuda con c++: matriz dinamica
« : abril 09, 2011, 07:30:54 pm »
hola soy nuevo en el foro y ps ando viendo por ahi como crear una matriz dinamica en c++? si alguien tiene alguna idea  :phew: digamela por favor se lo voy agradecer mucho........... gracias de antemano  :thumbsup:
« Última Modificación: abril 27, 2011, 05:40:51 pm por vlad »

Desconectado JaiMe

  • Global Moderator
  • Trade Count: (0)
  • The Communiter-
  • *
  • Thank You
  • -Given: 43
  • -Receive: 413
  • Mensajes: 1485
  • λ | h+
"Unless you try to do something beyond what you have already mastered, you will never grow."
― Ralph Waldo Emerson

Desconectado Jaru

  • Trade Count: (21)
  • The Communiter-
  • *
  • Thank You
  • -Given: 782
  • -Receive: 1555
  • Mensajes: 13248
  • -text
Re: ayuda......c++ : /
« Respuesta #2 : abril 09, 2011, 08:52:53 pm »
vaya

podes hacer esto

Código: [Seleccionar]
include("matriz.tcl");
dim i as byte

reserve space for matriz::matriz (){
space reserved = 1;
}

$matriz = new matriz_matriz.matriz->matriz();

${matriz} = make_dynamic()->my_matriz({this.i});

$matriz++

MOV [$matriz+EAX], CL ;

goto 10

next

return 0;

correlo y me contas  :drinks:
« Última Modificación: abril 09, 2011, 08:55:31 pm por naruto »
N/A

Desconectado cvilanova

  • Trade Count: (0)
  • Sv Member
  • ***
  • Thank You
  • -Given: 10
  • -Receive: 1
  • Mensajes: 428
  • Samurai Tux
    • Hornos, Cocinas y Todo lo relacionado al Arte Metalico
Re: ayuda......c++ : /
« Respuesta #3 : abril 09, 2011, 09:12:57 pm »
lee esto

http://www.svcommunity.org/forum/programacioacuten/svcommunity-no-es-para-pedir-que-les-hagan-las-tareas/

luego, edita tu tema.


Disculpa man, péro creo que las reglas las deberias de leer tu, el compañero no esta diciendo "haganme una tarea que guarde una cantidad de numeros en una matriz que sea dinamica y que haga esto y lo otro!!"

te invito a que leas su pregunta Nuevamente:  :thumbsup:

hola soy nuevo en el foro y ps ando viendo por ahi como crear una matriz dinamica en c++? si alguien tiene alguna idea  :phew: digamela por favor se lo voy agradecer mucho........... gracias de antemano  :thumbsup:


Ya naruto le respondio... de todas maneras!!   :drinks:


Cocinas, Campanas Extractoras
Hornos para Pan y Pizza
Planchas, Cocinas Industriales
y Mucho más...
Visita: ArteMetalico.co.cc

7459 1228, 7624 4427 y 2293 2691

Desconectado chester08

  • Trade Count: (0)
  • Sv Member
  • ***
  • Thank You
  • -Given: 45
  • -Receive: 16
  • Mensajes: 400
  • ahora tengo otro motivo para no dormir... thnks
    • My Web site
Re: ayuda......c++ : /
« Respuesta #4 : abril 09, 2011, 09:49:38 pm »
Sinceramente al ejemplo de naruto no le entendi para na'a  :roll:

Pero podes hacer esto:
Código: [Seleccionar]
    int **matriz;
    int fila;
    int col;
    matriz = new int *[fila];
      for(int i = 0; i<=fila; i++)
       {
         matriz[i] = new int[col];
       }
En las variables fila y col podrias poner valores predeterminados
O
asignarles un valor ramdom (aleatorio) con la funcion rand();

Creo q tenes que importar la libreria "stdlib.h"
Suerte!!  :drinks:

Disculpa man, péro creo que las reglas las deberias de leer tu, el compañero no esta diciendo "haganme una tarea que guarde una cantidad de numeros en una matriz que sea dinamica y que haga esto y lo otro!!"

te invito a que leas su pregunta Nuevamente:  :thumbsup:

Ya naruto le respondio... de todas maneras!!   :drinks:

Como te atreves a levantarle la voz al gran JAime  :shockd:
------------------- Ch3st3r08-----------------------

Desconectado watch

  • Trade Count: (0)
  • The newbie
  • *
  • Thank You
  • -Given: 0
  • -Receive: 1
  • Mensajes: 12
Re: ayuda......c++ : /
« Respuesta #5 : abril 09, 2011, 09:57:08 pm »
gracias por sus comentarios ps voy a ver esos codigos a ver q ondas(si les entiendo xD) .......y ps si no estoy pidiendo que me agan el programita xD solo ayuda para una creacion dinamica que no me sale : /
« Última Modificación: abril 09, 2011, 09:59:21 pm por watch »

Desconectado ~

  • Trade Count: (0)
  • The Communiter-
  • *
  • Thank You
  • -Given: 0
  • -Receive: 156
  • Mensajes: 1408
    • Ciencia de Computación, OSes y Herramientas
Re: ayuda......c++ : /
« Respuesta #6 : abril 09, 2011, 10:04:45 pm »
gracias por sus comentarios ps voy a ver esos codigos a ver q ondas(si les entiendo xD) .......y ps si no estoy pidiendo que me agan el programita xD solo ayuda para una creacion dinamica que no me sale : /

¿Con lo de "matriz dinámica", nos estamos refiriendo a una matriz matemática, o a un arreglo que pueda cambiar de tamaño dinámicamente cuando el programa corra?
Mi sitio web:
---- IP para archivo hosts (todos mis subdominios):
190.150.9.244 archefire.org

Desconectado chester08

  • Trade Count: (0)
  • Sv Member
  • ***
  • Thank You
  • -Given: 45
  • -Receive: 16
  • Mensajes: 400
  • ahora tengo otro motivo para no dormir... thnks
    • My Web site
Re: ayuda......c++ : /
« Respuesta #7 : abril 09, 2011, 10:09:52 pm »
¿Con lo de "matriz dinámica", nos estamos refiriendo a una matriz matemática, o a un arreglo que pueda cambiar de tamaño dinámicamente cuando el programa corra?
COlochito de eñe se que la pregunta no es para mi. pero yo creo que es la segunda opcion.
Pero esperemos haber que dice el chamaco.

HEyyy ya probaste los codigos?  :tick:

XD
------------------- Ch3st3r08-----------------------

Desconectado hkadejo

  • Global Moderator
  • Trade Count: (0)
  • The Communiter-
  • *
  • Thank You
  • -Given: 277
  • -Receive: 929
  • Mensajes: 3319
    • AndroidJutsu
Re: ayuda......c++ : /
« Respuesta #8 : abril 09, 2011, 10:10:23 pm »
He aqui una explicacion del codigo de naruto


Código: [Seleccionar]
include("matriz.tcl");



Iniciamos incluyendo la libreria matriz.tcl obviamente!!!

Código: [Seleccionar]
dim i as byte


Dimensionamos una variable de tipo byte porque claro todos sabemos que los bytes estan en las matrices.

Código: [Seleccionar]
reserve space for matriz::matriz (){
space reserved = 1;
}


Hay que reservar espacion en memoria para nuestra matriz sino donde se va a guardar??
Código: [Seleccionar]
$matriz = new matriz_matriz.matriz->matriz();

${matriz} = make_dynamic()->my_matriz({this.i});

$matriz++


Y aqui esta la magia del codigo, la creacion dinamica de todo. Se entiende a simple vista no??

Código: [Seleccionar]
MOV [$matriz+EAX], CL ;

goto 10

next

return 0;


Y esto solo es fanfaroneria de naruto demostrandonos como elegantemente se puede incluir un codigo de ensamblador para emsamblar (claro esta) un programa de....c++?

Y el resultado despues de correrlos es que empezaras a ver tu cuarto asi:



Ahora chester si entiendes el ejemplo??  :roll:

Amigo watch porque no posteas el codigo que has desarrollado, digo asi es sera mas facil que alguien te ayude con tu tarea  :roll:
Ayudo a no programadores y programadores novatos con tutoriales, código y consejos a convertirse en desarrolladores Android profesionales y crear apps geniales.

DESCARGA MI GUÍA -> https://androidjutsu.com/guia-crea-tu-primera-aplicacion-android/

Desconectado chester08

  • Trade Count: (0)
  • Sv Member
  • ***
  • Thank You
  • -Given: 45
  • -Receive: 16
  • Mensajes: 400
  • ahora tengo otro motivo para no dormir... thnks
    • My Web site
Re: ayuda......c++ : /
« Respuesta #9 : abril 09, 2011, 10:21:06 pm »
He aqui una explicacion del codigo de naruto

Iniciamos incluyendo la libreria matriz.tcl obviamente!!!

Dimensionamos una variable de tipo byte porque claro todos sabemos que los bytes estan en las matrices.

Hay que reservar espacion en memoria para nuestra matriz sino donde se va a guardar??
Y aqui esta la magia del codigo, la creacion dinamica de todo. Se entiende a simple vista no??

Y esto solo es fanfaroneria de naruto demostrandonos como elegantemente se puede incluir un codigo de ensamblador para emsamblar (claro esta) un programa de....c++?

Y el resultado despues de correrlos es que empezaras a ver tu cuarto asi:



Ahora chester si entiendes el ejemplo??  :roll:

Amigo watch porque no posteas el codigo que has desarrollado, digo asi es sera mas facil que alguien te ayude con tu tarea  :roll:


BUeno , gracias por la explicacion, Don hkadejo-me dejo-moder-el-huezo

para mi hay que hacer el ejemplo lo mas SENCILLO posible.

Pero tengo una DUDA
matriz.tcl?? es alguna libreria estandar o q?.

ademas como podemos deducir, el chico esta aprendiendo, y si le tiras de un solo un codigo , como el de naruto, pues lo va a confundir...  :-/  .

Eso es lo que opino,  :drinks:

------------------- Ch3st3r08-----------------------

Desconectado ~

  • Trade Count: (0)
  • The Communiter-
  • *
  • Thank You
  • -Given: 0
  • -Receive: 156
  • Mensajes: 1408
    • Ciencia de Computación, OSes y Herramientas
Re: ayuda......c++ : /
« Respuesta #10 : abril 09, 2011, 10:24:40 pm »
El mayor problema de asignarle un tamaño dinámicamente a un arreglo es que por fuerza tenemos que aprender a manejar las funciones de memoria de C/C++.

Esto es así porque como sabemos, un programa que está en el disco duro ya tiene un tamaño determinado cuando lo examinamos. Eso mismo pasa en memoria. Lo que necesitamos es usar las funciones de librería para que la plataforma nos reserve o libere memoria de acuerdo a lo que necesitemos.

Aunque C++ sea orientado a objetos, todavía es de muy bajo nivel, y se espera que nosotros seamos los que nos encarguemos de este tipo de tareas.

Todos los programas que usan memoria dinámica tienen necesidades diferentes. Todos los problemas que necesitan memoria dinámica necesitan implementarse de formas muy diferentes.

Podemos empezar estudiando las funciones de la librería estándar (malloc, calloc, realloc y free).

Básicamente se trata de asignar una cantidad de memoria cuando el programa esté corriendo, y después usar un type cast para manejar esa memoria cruda de acuerdo al tipo de datos que debería representar (sean enteros, flotantes, caracteres, estructuras, etc.).


La programación de memoria dinámica es uno de los temas más extensos de las aplicaciones. No vamos a poder evitar aburrirnos y confundirnos si no tenemos un problema concreto que resolver en el que se requiera.

Pero aquí hay un ejemplo y un sitio web que podría servir como un comienzo simple puramente demostrativo:

http://www.cplusplus.com/doc/tutorial/dynamic/

También tenemos que tener en cuenta que C++, con todo su potencial y opciones, es mucho más complicado que C, y eso también va a hacer que aprender sobre memoria dinámica, programando en C++, sea más difícil de entender como para aplicarlo en cualquier otro lenguaje (tratar de aprender algo ya de por sí complejo usando un lengjaue de programación complejo es una muy mala opción).


________________________________________________________
________________________________________________________
________________________________________________________

vaya

podes hacer esto

Código: [Seleccionar]
include("matriz.tcl");
dim i as byte

reserve space for matriz::matriz (){
space reserved = 1;
}

$matriz = new matriz_matriz.matriz->matriz();

${matriz} = make_dynamic()->my_matriz({this.i});

$matriz++

MOV [$matriz+EAX], CL ;

goto 10

next

return 0;

correlo y me contas  :drinks:


Esto quizás podría ser más útil si explicara qué recursos está usando. Y otros problemas:

Parece que cada línea de este programa está en un lenguaje diferente (TCL, Basic, C++ o similar, PHP, ensamblador...).

No se sabe qué es lo que contiene matriz.tcl.

No se sabe qué es, o qué hace make_dynamic().

No se sabe qué valor tiene EAX o qué representa, ni en dónde se obtiene su valor, y lo mismo para CL (registros del CPU). Tampoco se sabe cómo los afectan las partes presentes, o posible código futuro, del programa.

No se sabe qué línea es la 10 del goto, aunque si contamos todas las líneas que tienen código o símbolos de código (como llaves), sería un bucle infinito porque la línea es la misma en la que está el goto 10.

¿Para qué el next incondicional si también hay un goto incondicional?

Los nombres de variables no son muy consistentes (matriz_matriz, matriz y my_matriz).
Mi sitio web:
---- IP para archivo hosts (todos mis subdominios):
190.150.9.244 archefire.org

Desconectado hkadejo

  • Global Moderator
  • Trade Count: (0)
  • The Communiter-
  • *
  • Thank You
  • -Given: 277
  • -Receive: 929
  • Mensajes: 3319
    • AndroidJutsu
Re: ayuda......c++ : /
« Respuesta #11 : abril 09, 2011, 10:31:46 pm »

Esto quizás podría ser más útil si explicara qué recursos está usando. Y otros problemas:

Parece que cada línea de este programa está en un lenguaje diferente (TCL, Basic, C++ o similar, PHP, ensamblador...).

No se sabe qué es lo que contiene matriz.tcl.

No se sabe qué es, o qué hace make_dynamic().

No se sabe qué valor tiene EAX o qué representa, ni en dónde se obtiene su valor, y lo mismo para CL (registros del CPU). Tampoco se sabe cómo los afectan las partes presentes, o posible código futuro, del programa.

No se sabe qué línea es la 10 del goto, aunque si contamos todas las líneas que tienen código o símbolos de código (como llaves), sería un bucle infinito porque la línea es la misma en la que está el goto 10.

¿Para qué el next incondicional si también hay un goto incondicional?

Los nombres de variables no son muy consistentes (matriz_matriz, matriz y my_matriz).


 :offtopic:
Esta es una lista de síntomas del Síndrome de Asperger. No todas las personas con Asperger tienen todos los síntomas, dada su variabilidad en los niveles de autismo que existen.
La gente con síndrome de Asperger:
A menudo no comprenden cuando alguien está bromeando o usa un lenguaje que no es preciso en su ámbito.
Mas informacion http://es.wikipedia.org/wiki/S%C3%ADndrome_de_Asperger
« Última Modificación: abril 09, 2011, 10:36:25 pm por hkadejo »
Ayudo a no programadores y programadores novatos con tutoriales, código y consejos a convertirse en desarrolladores Android profesionales y crear apps geniales.

DESCARGA MI GUÍA -> https://androidjutsu.com/guia-crea-tu-primera-aplicacion-android/

Desconectado chester08

  • Trade Count: (0)
  • Sv Member
  • ***
  • Thank You
  • -Given: 45
  • -Receive: 16
  • Mensajes: 400
  • ahora tengo otro motivo para no dormir... thnks
    • My Web site
Re: ayuda......c++ : /
« Respuesta #12 : abril 09, 2011, 10:35:07 pm »
Virguilia , vos hablaste de Malloc etc..
pero en C++ para realizar la administración de la memoria dinámica, estan los operadores new y delete.

Claro q se puede usar usasr malloc en c++.

pero no son mas eficientes new , delete?

:offtopic:
Esta es una lista de síntomas del Síndrome de Asperger. No todas las personas con Asperger tienen todos los síntomas, dada su variabilidad en los niveles de autismo que existen.
La gente con síndrome de Asperger:
A menudo no comprenden cuando alguien está bromeando o usa un lenguaje que no es preciso en su ámbito.
Mas informacion http://es.wikipedia.org/wiki/S%C3%ADndrome_de_Asperger



 :roll: lo esta defendiendo, lo estas defendiendo  :yono
------------------- Ch3st3r08-----------------------

Desconectado ~

  • Trade Count: (0)
  • The Communiter-
  • *
  • Thank You
  • -Given: 0
  • -Receive: 156
  • Mensajes: 1408
    • Ciencia de Computación, OSes y Herramientas
Re: ayuda......c++ : /
« Respuesta #13 : abril 09, 2011, 10:41:33 pm »
:offtopic:
Esta es una lista de síntomas del Síndrome de Asperger. No todas las personas con Asperger tienen todos los síntomas, dada su variabilidad en los niveles de autismo que existen.
La gente con síndrome de Asperger:
A menudo no comprenden cuando alguien está bromeando o usa un lenguaje que no es preciso en su ámbito.
Mas informacion http://es.wikipedia.org/wiki/S%C3%ADndrome_de_Asperger


No, no es por eso. Ya se me hacía que era o un tipo de broma o que hay algo que no nos ha dicho. Si este es un tema de programación, hay que aprovechar a discutir de programación.


Virguilia , vos hablaste de Malloc etc..
pero en C++ para realizar la administración de la memoria dinámica, estan los operadores new y delete.

Claro q se puede usar usasr malloc en c++.

pero no son mas eficientes new , delete?

 :roll: lo esta defendiendo, lo estas defendiendo  :yono


Depende del problema. new y delete pueden ser más fáciles de usar, pero las funciones de bajo nivel como malloc se pueden necesitar para casos específicos. Puede que las funciones tipo malloc sean más eficientes en el sentido de que son menos complejas y flexibles para cosas que new y delete no fueron diseñadas. new y delete hacen muchas cosas tras bambalinas de una forma ya establecida, y eso es algo que no siempre le conviene a un programador ni al problema a resolver.

Pero ambas son opciones válidas, una mejor que la otra en diferentes situaciones. Pero para aprender es necesario entender las dos.
Mi sitio web:
---- IP para archivo hosts (todos mis subdominios):
190.150.9.244 archefire.org

Desconectado JaiMe

  • Global Moderator
  • Trade Count: (0)
  • The Communiter-
  • *
  • Thank You
  • -Given: 43
  • -Receive: 413
  • Mensajes: 1485
  • λ | h+
Re: ayuda......c++ : /
« Respuesta #14 : abril 09, 2011, 11:00:55 pm »
Disculpa man, péro creo que las reglas las deberias de leer tu, el compañero no esta diciendo "haganme una tarea que guarde una cantidad de numeros en una matriz que sea dinamica y que haga esto y lo otro!!"

te invito a que leas su pregunta Nuevamente:  :thumbsup:

Ya naruto le respondio... de todas maneras!!   :drinks:


En efecto, esa solución es maravillosamente perfecta.

Gracias por la sugerencia cvilanova, pero no es necesaria.

Veo por que simpatizas con el OP, puesto que vos tambien has hecho preguntas similares

      http://www.svcommunity.org/forum/net/enumeradores/msg756187/#msg756187
      
Citar
      Algun ejemplo con enumeradores y vectores usando foreach en vb.net???

      Gracias desde ya amigos!!!


Ambas son preguntas muy generales, que pueden ser solucionadas haciendo una simple busqueda en un search engine. Y mientras implicitamente no pidan que les hagan la tarea, la carencia de detalles y falta de esfuerzo de parte del OP en hacer la pregunta es frustrante e inefectiva, puesto que conyeva a que

      
  • usuario con experiencia pierda el tiempo buscando en google y ponga un link hacia algun resultado. El OP ha logrado que alguien le ayude en efecto a hacer una busqueda en google.
  • usuario que da ayuda de choto, pregunte cual es el problema en especifico, puesto que el universo de posibilidades es grande.
  • usuario que puede solucionar tu problema ignore por completo el mensaje del OP puesto que es ambiguo y tendria que estar 'chinieando' al OP y andar en circulos tratando de decifrar que es exactamente lo que quiere.
      
Asi es que cvilanova y watch, los invito a leer el enumerado (2) de las reglas aca:

http://www.svcommunity.org/forum/programacioacuten/svcommunity-no-es-para-pedir-que-les-hagan-las-tareas/

Para hacer las cosas mas faciles de entender, aqui esta la parte mas relevante:

      Colocar el código ya trabajado y explicar  que es lo que no entienden/funciona.


Los usuarios que ayudamos de gratis (hablo por mi) apreciariamos si los usuarios que quieren ayuda, se tomaran el tiempo en hacer sus preguntas.

Gracias.

"Unless you try to do something beyond what you have already mastered, you will never grow."
― Ralph Waldo Emerson