92. Programación en C++ || Punteros || Ejercicio - Suma de matrices dinámicas con punteros

แชร์
ฝัง
  • เผยแพร่เมื่อ 26 ต.ค. 2024
  • Puedes apuntarte al curso completo en la siguiente plataforma:
    Hotmart: hotmart.com/es...
    En este vídeo vamos a resolver los siguientes ejercicios:
    Ejercicio 9: Realice un programa que calcule la suma de dos matrices dinámicas.
    Ejercicio 10: Realice un programa que lea una matriz dinámica de NxM y cree su matriz traspuesta.
    Nota: La matriz traspuesta es aquella en la que la columna i era la fila i de la matriz original.
    Descarga el código de los ejercicios 9 y 10, en el siguiente link (solo uno).
    Mega: mega.nz/#!UJQ2...
    Mediafire: www.mediafire.c...
    Visita mi sitio web para más cursos:
    programacionat...
    Sigueme por las redes sociales:
    Facebook ProgramacionATS: goo.gl/sqmEE1
    Twiter: goo.gl/WE4oaP
    Hotmail: alejandro.acb@hotmail.com
    Facebook personal: goo.gl/xL9qLl
    instagram: @alejandroats
    Cuenta paypal para donaciones: migueltaboadas@hotmail.com

ความคิดเห็น • 121

  •  6 ปีที่แล้ว +5

    💻 Apúntate al curso completo de Programación en C++:
    Hotmart: hotmart.com/es/marketplace/productos/programacion-en-c-v0ivo/N78682741H

  • @TheJanoGamer
    @TheJanoGamer 6 ปีที่แล้ว +44

    Naciste para enseñar man, muchas gracias por los videos!!!

    • @Samuvalle
      @Samuvalle 5 ปีที่แล้ว +1

      mufa

    • @LiamMorillo
      @LiamMorillo ปีที่แล้ว +1

      @@Samuvalle jajajajaja

  • @stevencerrato4975
    @stevencerrato4975 3 ปีที่แล้ว +14

    Simplemente eres Genial Alejandro, siempre te recordaremos. Descansa en paz campeón

    • @alidiaz2366
      @alidiaz2366 3 ปีที่แล้ว

      QUE ?

    • @cimo_205
      @cimo_205 3 ปีที่แล้ว +4

      @@alidiaz2366 Amigo, Alejandro Taboada Sánchez, que así es como se llamaba, falleció hace ya unos años por un sarcoma en la rodilla (cáncer de hueso). Dejó éste increíble legado que ayudó y enseñó, ayuda y enseña, y ayudará y enseñará a muchísimos estudiantes creo y espero que siempre. Por ahora, sigue haciéndolo.

  • @manawer720
    @manawer720 3 ปีที่แล้ว +11

    Comparto mi solución. El ejercicio estuvo entretenido, aunque por alguna razón al utilizar el getch(); para que no se cierre el programa, aveces funcionaba y aveces no, pero con system("pause"); no tuve ningún problema. Algun sabido del tema que me explique se lo agradezco (Reemplacen system("pause"); por getch(); y ese el el codigo que me daba error).
    #include
    #include
    #include
    using namespace std;
    void pedirMatriz();
    void mostrarTraspuesta(int **,int,int);
    int **matriz,nFilas,nColu;
    int main(){
    pedirMatriz();
    mostrarTraspuesta(matriz,nFilas,nColu);
    for (int i = 0; i < nColu; i++){
    delete[] *(matriz+i);
    }
    delete[] matriz;

    system ("pause");
    return 0;
    }
    void pedirMatriz(){
    coutnFilas;
    coutnColu;
    matriz = new int*[nFilas];
    for (int i = 0; i < nColu; i++){
    matriz[i] = new int[nColu];
    }
    cout

  • @jorgelogan-w8v
    @jorgelogan-w8v 6 ปีที่แล้ว +9

    Eres un campeón amigo... hasta yo progreso con tus vídeos!! (aunque poco a poco jajaja)
    gracias por tus vídeos!

  • @jaimeadrianledesmasanchez8486
    @jaimeadrianledesmasanchez8486 6 ปีที่แล้ว +4

    Neta que nadie enseña cómo tu! Gracias!

  • @Ari3lRF
    @Ari3lRF ปีที่แล้ว

    Alejandro, como siempre tu explicación es impecable. Ojala pudieras ver nuestro reconocimiento.
    Para mostrar las matrices use la función siguiente. Hay que tener cuidado al generar la transpuesta porque puede no ser una matriz cuadrada.
    void mostrarMatrices(int **puntero_matriz, int numFilas, int numColumnas){
    cout

  • @javibelen2679
    @javibelen2679 7 ปีที่แล้ว +4

    Wow! Me has ayudado muchísimo con tus videos. Gracias ;) Saludos desde Chile

    •  7 ปีที่แล้ว +2

      Me alegro :) Saludos desde Perú

  • @srpatata4172
    @srpatata4172 4 ปีที่แล้ว

    Cuando libere matriz puede todo en un solo for , así
    For(int i=0;i

  • @JP-fg4bp
    @JP-fg4bp 2 ปีที่แล้ว

    Para los que se les haga muy complicado, en versiones actuales de C++ es tan sencillo como una vez declarada la matriz dinámica referirse a ella como una matriz común y corriente, es decir, en lugar de poner; "cout

  • @peznerd6986
    @peznerd6986 4 ปีที่แล้ว +3

    Al principio me saltaba un error porque había hecho mal los delete y estuve decenas de minutos para darme cuenta. En los comentarios lo que vi es que NO HACEN LA MATRIZ TRASPUESTA sino que directamente muestran cómo es la traspuesta de la original, cuando realmente eso está casi de más (aunque viene bien para ver si el programa es correcto) ya que había que hacer una matriz nueva a partir de la original.
    #include
    #include
    #include
    using namespace std;
    void pedirDatos();
    void matrizTraspuesta(int **,int **,int,int);
    void mostrarTraspuesta(int **,int,int);
    int **pendorcho_matriz1, **pendorcho_matriz2, N, M;
    int main(){
    pedirDatos();
    matrizTraspuesta(pendorcho_matriz1,pendorcho_matriz2,N,M);
    mostrarTraspuesta(pendorcho_matriz2,N,M);

    for(int i=0;i

    • @learning2895
      @learning2895 4 ปีที่แล้ว +1

      Si muchos hicieron eso, yo lo que hice fue modificar una unica matriz a su traspuesta en vez de usar 2, me pareció mas entretenido, aunque al final tampoco cumpli las ordenes xD.

  • @GianTrackz
    @GianTrackz 6 ปีที่แล้ว +1

    que gran canal¡ ojala suba mas videos de programación

  • @juliorbk
    @juliorbk ปีที่แล้ว +1

    Mi version del ejercicio 9 un poco mas ordenado:
    /*Ejercicio 9: Realice un programa que calcule la suma de dos matrices dinámicas.*/
    #include
    #include
    #include
    using namespace std;
    //Prototipos
    void pedirDatos();
    void sumaMatrices(int **ptr_matriz_1, int **ptr_matriz_2, int nFil, int nCol);
    void mostrarMatriz(int **ptr_matriz, int nFil, int nCol);
    int **ptr_matriz_1, **ptr_matriz_2,nFilas,nCol;
    int main(){

    pedirDatos();
    sumaMatrices(ptr_matriz_1, ptr_matriz_2, nFilas, nCol);
    mostrarMatriz(ptr_matriz_1, nFilas, nCol);

    for(int i=0; i

  • @artemioharoldperlaciosluqu5471
    @artemioharoldperlaciosluqu5471 4 ปีที่แล้ว +3

    #include
    #include
    #include
    void pedirDatos();
    void transpuesta(int**,int,int);
    void mostrarDatos();
    int **matriz,nfilas,ncolumnas;
    using namespace std;
    int main(){
    pedirDatos();
    mostrarDatos();
    transpuesta(matriz,nfilas,ncolumnas);
    for(int i=0;i

  • @republicofprogrammers
    @republicofprogrammers ปีที่แล้ว

    esta es mi aportacion al ejercicio
    /* Ejercicio 10: Realizar una matriz transpuesta*/
    #include
    #include
    #include
    using namespace std;

    //Prototipo de la funcion
    void pedirDatos();
    void matrizOriginal(int **, int, int);
    void matrizTraspuesta(int **, int, int);
    int **matriz, nFilas, nColumnas;
    int main() {
    pedirDatos();
    matrizOriginal(matriz, nFilas, nColumnas);
    matrizTraspuesta(matriz, nFilas, nColumnas);
    getch();
    return 0;
    }
    void pedirDatos() {
    cout

  • @gabrielroblesgarcia4635
    @gabrielroblesgarcia4635 2 ปีที่แล้ว +2

    Ejercicio 10:
    Mi código funciona hasta con matrices que no son cuadradas ¡Espero le sirva!
    /*128. Realice un programa que lea una matriz dinámica de NxM y cree su
    matriz traspuesta.
    Nota: La matriz traspuesta es aquella en la que la columna i era la fila i
    de la matriz original.
    1 2 3 -> 1 4 7
    4 5 6 -> 2 5 8
    7 8 9 -> 3 6 9
    */
    #include
    #include
    using namespace std;
    void pedirDatos();
    void matrixTranspuesta(int **, int, int);
    int **matrix, nFilas, nCol;
    int main(){
    pedirDatos();
    matrixTranspuesta(matrix,nFilas,nCol);

    //Liberando la memoria utiliza en matrix
    for(int i=0;i

  • @billroblesgaribay1864
    @billroblesgaribay1864 6 ปีที่แล้ว +5

    Una pregunta Alejandro, comprare la version premium del curso de c++, cuantos videos mas se adicionan a los que ya tienes en tu canal de youtube?

    •  6 ปีที่แล้ว +5

      Hola Bill :) el curso premium contiene 279 vídeos (por ahora estaré agregando más proximamente), y contiene los siguientes capítulos extras:
      18. POO: Clases y Objetos en C++
      19. POO: Clases derivadas - Herencia y Polimorfismo
      20. Genericidad - Plantillas (templates)
      21. Análisis y Eficiencia de Algoritmos
      22. Algoritmos Recursivos
      23. Biblioteca Estándar de Plantillas (STL) (Proximamente)
      24. Grafos (Proximamente)
      25. Interfaz gráfica de usuario en Qt (Proximamente)

    • @billroblesgaribay1864
      @billroblesgaribay1864 6 ปีที่แล้ว +1

      Waaaao... Si que vale la pena, ni bien termine de ver todos los videos que tienes en youtube, me compro el curso premium bro :D

  • @xxchicoxxj9996
    @xxchicoxxj9996 3 ปีที่แล้ว +1

    Ejercicio 10:
    #include
    #include
    using namespace std;
    void llenarMat1();
    void llenarMat2();
    int **mat1,**mat2,x,y;
    int main () {
    coutx>>y;
    llenarMat1();
    llenarMat2();
    return 0;
    }
    void llenarMat1(){
    mat1 =new int*[x];
    for(int i=0;i

  • @elianalvez9960
    @elianalvez9960 ปีที่แล้ว

    /*Ejercicio 10
    Realice un programa que lea una matriz dinamica de NxM y cree su transpuesta.
    NOTA: La matriz transpuesta es aquella en la que se reemplazan las columnas por filas y filas por columnas de la matriz original.
    */
    #include
    #include
    using namespace std;
    void pedirDatos();
    void liberarMemoria(int **, int );
    void original(int **, int, int);
    void transpuesta(int **, int, int);
    int **pMatriz,nf,nc,i,j;
    int main(int argc, char *argv[]) {

    pedirDatos();
    original(pMatriz,nf,nc);
    transpuesta(pMatriz,nf,nc);
    liberarMemoria(pMatriz,nf);
    return 0;
    }
    void pedirDatos(){
    cout

  • @jeffrey3024
    @jeffrey3024 3 ปีที่แล้ว

    Un heroe sin capa

  • @gianfrancolimascapillo9474
    @gianfrancolimascapillo9474 3 ปีที่แล้ว

    Yo lo hice con dos punteros, pero puedo encontrar la transpuesta de TODA matriz, no tiene que ser cuadrada necesariamente
    //Ejercicio 10: Realice un programa que lea una matriz dinámica de NxM y cree su matriz traspuesta.
    #include
    #include
    #include
    using namespace std;
    int **matriz1,**matrizT,nFilas,nCol;
    void pedirDatos();
    void mostrarMatriz(int **,int,int);
    void matrizTranspuesta(int **,int **,int,int);
    void mostrarTranspuesta(int **,int,int);
    int main(){

    pedirDatos();
    mostrarMatriz(matriz1,nFilas,nCol);
    matrizTranspuesta(matriz1,matrizT,nFilas,nCol);
    mostrarTranspuesta(matrizT,nFilas,nCol);
    //Liberamos la memoria que reservamos para la matriz1
    for(int i=0;i

  • @platinumcanal222
    @platinumcanal222 5 ปีที่แล้ว

    Ejercicio 10:
    #include
    #include
    using namespace std;
    void pedirDatos();
    void mostrar(int **,int,int);
    int **matriz1,filas,columnas;
    int main(){
    pedirDatos();
    mostrar(matriz1,filas,columnas);

    for(int i=0;i

  • @bluephoenix5839
    @bluephoenix5839 6 ปีที่แล้ว +1

    Fue más fácil que cuando ella te dijo: "podemos ser amigos" :'v
    /*Ejercicio 10: Realice un programa que lea una matriz dinámica de NxM y cree su matriz transpuesta.
    Nota: La matriz transpuesta es aquella en la que la columna i era la fila i de la matriz original. */
    #include
    #include
    #include
    using namespace std;
    void pedirDatos();
    void mostrandoMatriz(int **,int,int);
    int **matriz, nFilas, nCol;
    int main(){
    pedirDatos();
    mostrandoMatriz(matriz,nFilas,nCol);
    for(int i=0;i

  • @yeisonalvarezavilez6815
    @yeisonalvarezavilez6815 5 ปีที่แล้ว +1

    ATS
    Sin leer datos
    Se puede generar una matriz donde cada elemento de esta corresponda a la suma de la fila con la columna
    Te agradezco me colabores con eso ??

  • @victorapolinares5107
    @victorapolinares5107 3 ปีที่แล้ว

    /*Ejercicio 10: Realice un programa que lea una matriz dinámica de NxM y cree su matriz traspuesta.
    Nota: La matriz traspuesta es aquella en la que la columna i era la fila i de la matriz original.
    */
    #include
    #include
    #include
    using namespace std;
    void pedirDatos();
    void mostrar_matriz_transpuesta(int**,int,int);
    int **matriz1,nFilas,nColumnas;
    int main(){
    pedirDatos();
    mostrar_matriz_transpuesta(matriz1,nFilas,nColumnas);

    //Eliminando los datos que se utilizaron en dicha matriz.
    for(int i=0;i

  • @adquadratumperedo3210
    @adquadratumperedo3210 4 ปีที่แล้ว

    Mi versión del programa del ejercicio 10:
    /*Realice un programa que lea una matriz dinamica de N x M, y cree su matriz traspuesta
    NOTA: usar punteros*/
    #include
    #include
    using namespace std;
    void pedirD();
    void trasponerM();
    void mostrarM();
    void liberarMem();
    int** matriz_puntero, **matriz_puntero_auxiliar, nfilas, ncolumnas;
    int main()
    {
    pedirD();
    trasponerM();
    mostrarM();
    liberarMem();
    return 0;
    }
    void pedirD()
    {
    cout nfilas;
    cout > ncolumnas;
    matriz_puntero = new int* [nfilas];
    for (int j = 0; j < ncolumnas; j++)
    {
    matriz_puntero[j] = new int[ncolumnas];
    }
    cout

  • @rafaeljimenezrodriguez9311
    @rafaeljimenezrodriguez9311 2 ปีที่แล้ว

    /* Sin variables globales
    Ejercicio 10: Realice un programa que lea una matriz dinámica de NxM y cree su matriz traspuesta.
    Nota: La matriz traspuesta es aquella en la que la columna i era la fila i de la matriz original.*/
    #include
    using namespace std;
    void tamFilasColumnas(int &, int &);
    void ingresarDatos(int **, int, int);
    void matrizOriginal(int **, int, int);
    void matrizTranspuesta(int **, int, int);
    int main(){
    int **matriz,filas,columnas;
    tamFilasColumnas(filas,columnas);
    matriz = new int*[filas];
    for(int i=0;i

  • @MrSheperd55
    @MrSheperd55 6 ปีที่แล้ว

    /*Ejercicio 10: Realice un programa que lea una matriz dinámica de NxM y cree su matriz traspuesta.
    Nota: La matriz traspuesta es aquella en la que la columna i era la fila i de la matriz original.*/
    #include
    #include
    using namespace std;
    void pedirDatos();
    void mostrarMatriz(int **,int,int);
    void mostrarTraspuesta(int **,int,int);
    int **puntero_matriz,nFil,nCol;
    int main(){
    pedirDatos();
    mostrarMatriz(puntero_matriz,nFil,nCol);
    mostrarTraspuesta(puntero_matriz,nFil,nCol);
    //Liberando memoria.
    for(int i = 0; i

  • @PatriotaMex
    @PatriotaMex 4 ปีที่แล้ว

    Yo pienso que no es necesario prototipos con parámetros si vas a usar las variables y los apuntadores dobles de manera global... Ademas, pienso que seria mas elegante mostrar las matrices 1 y 2 y usar una tercera para la suma, y asi poder mostrar los datos de las 3 matrices y asi tener mas visibilidad de los datos para comprobar el resultado.
    He aqui mi aportacion:
    /*
    Realice un programa que calcule la suma de dos
    matrices dinámicas.
    */
    #include
    #include
    #define CLS "clear"
    using namespace std;
    void pedirDatos();
    void sumarMatrices();
    void multiplicaMatrices();
    void mostrarMatrices();
    int **pm1, **pm2, **pm3, **pm4, rows, cols;
    int main(int argc, char **argv){
    system(CLS);
    pedirDatos();
    sumarMatrices();
    multiplicaMatrices();
    mostrarMatrices();
    cout

  • @diegoosorio3838
    @diegoosorio3838 4 ปีที่แล้ว +2

    *Como dato por si les sirve
    Cuando llamamos a las matrices para mostrar datos o guardar datos en ellas podemos hacerlo de dos formas:
    --> *(*(matriz + i) + j) --> Esta es una...
    --> matriz[i][j] --> Esta es otra...
    Ambas sirven ahi se las dejo por si alguna se les hace mas facil de usar xD

    • @danielfrank9650
      @danielfrank9650 4 ปีที่แล้ว

      Pero estamos en punteros :( xd

    • @diegoosorio3838
      @diegoosorio3838 4 ปีที่แล้ว +2

      @@danielfrank9650 aunque lo estemos igual sirve XDD a gusto del consumidor

  • @shelomauas5763
    @shelomauas5763 6 ปีที่แล้ว +1

    profe una pregunta
    que diferencia hay cuando tengo una variable puntero(de un arreglo ) y le pongo ++ ole pongo
    nombre de varible +1??? espero su respuesta muchas gracias

    • @PatriotaMex
      @PatriotaMex 4 ปีที่แล้ว +2

      Si haces esto: p++, estas desplazando el puntero una posición en memoria (en bytes) de acuerdo al tipo de dato, por ejemplo: si p es entero, se desplazaria y apuntaria a los siguientes 8 bytes, si p fuera flotante se desplazaria 16 bytes, si fuera double se desplazaria 32 bytes...
      Si haces esto (p+1) estas haciendo referencia a un desplazamiento de una posición de memoria hacia adelante (en bytes), pero sin desplazar el apuntador, el apuntador siempre esta apuntando al inicio del arreglo, siempre, pero no se mueve para apuntar a la posicion +n, solo haces referencia a esa posicion.
      Espero me hayas entendido.

  • @elianalvez9960
    @elianalvez9960 ปีที่แล้ว

    //Suma de matrices dinamicas con punteros a traves de un struct
    #include
    #include
    using namespace std;
    struct sumaMatriz{
    int **pMatriz;
    }m1,m2;
    void pedirDatos();
    void muestraOriginal(sumaMatriz, sumaMatriz);
    sumaMatriz suma(sumaMatriz, sumaMatriz,int,int);
    void muestraSuma(sumaMatriz,int,int);
    void liberarMemoria(sumaMatriz,sumaMatriz,int);
    int i,j,nf,nc;
    int main(int argc, char *argv[]) {
    pedirDatos();
    muestraOriginal(m1,m2);
    suma(m1, m2,nf,nc);
    muestraSuma(m1,nf,nc);
    liberarMemoria(m1,m2,nf);
    return 0;
    }
    void pedirDatos(){
    cout

  • @leonelazurdia
    @leonelazurdia 7 ปีที่แล้ว

    excelente video te felicito amigo!

  • @johanadelgado4693
    @johanadelgado4693 ปีที่แล้ว

    /*Realice un programa que lea una matriz dinámica de NxM y cree su matriz traspuesta.
    Nota: La matriz traspuesta es aquella en la que la columna i era la fila i de la
    matriz original.*/
    #include
    #include
    #include
    void pedirDatos();
    void mostrar(int **,int, int);
    void mostrarTranspuesta(int **,int, int);
    int **puntero_Matriz, nFilas,nColu;
    main(){

    pedirDatos();
    mostrar(puntero_Matriz,nFilas,nColu);
    mostrarTranspuesta(puntero_Matriz,nFilas,nColu);
    /// liberar memoria
    for(int i=0;i

  • @FernandoSanchezDaza
    @FernandoSanchezDaza 6 ปีที่แล้ว +1

    Mi tarea profe:
    /*Ejercicio 10.*/
    #include
    #include
    #include
    using namespace std;
    void pedirDatos();
    void matrizNormal(int **, int, int);
    void matrizTranspuesta(int **, int, int);
    int **puntMatriz, nFila, nColum;
    int main(){
    pedirDatos();
    matrizNormal(puntMatriz, nFila, nColum);
    matrizTranspuesta(puntMatriz, nFila, nColum);

    for(int i=0;i

  • @ardana1999
    @ardana1999 8 ปีที่แล้ว

    Like+Sub. Una duda,una vez seguidos todos tus tutoriales de c++ crees que podría defenderme a la hora de desarrollar un videojuego?

    • @terrorhd3523
      @terrorhd3523 8 ปีที่แล้ว

      yo pienso que si, normalmente si mi info esta bien con la Programacion Orientada a Objetos es con lo que se hacen los videojuegos

  • @dulceosorio1338
    @dulceosorio1338 7 ปีที่แล้ว

    hola excelente video.... sabes me gustaría que me ayudarás... Quiero saber como sacar la inversa de una matriz en dev....Estaría genial gracias.... SALUDOS

  • @israelhurtartepinto4993
    @israelhurtartepinto4993 6 ปีที่แล้ว +1

    #include
    #include
    #include
    using namespace std;
    int **mtr,nFilas, nColum;
    //Prototipos de Funicones
    void pedirDatos();
    void mostrar(int **,int,int);
    main(){
    pedirDatos();
    mostrar(mtr,nFilas,nColum);
    for(int i=0; i

    • @MiguelReyesDeveloper
      @MiguelReyesDeveloper 4 ปีที่แล้ว

      Justo tenía problemas de lógica para mostrar la matriz traspuesta ya que yo quería llenar una nueva matriz a partir de la original pero veo que a ti se te ocurrió algo mucho mas sencillo, mostrar la matriz ya creada en otra forma y se crea esa matriz traspuesta jaja gracias por tu aportación.

  • @AntonioArasanz
    @AntonioArasanz 6 ปีที่แล้ว

    intenté hacer el programa con casi todo delegado en funciones ... pero no logré evitar la declaración de variables globales sigue la versión
    #include
    #include
    using namespace std;
    int **ptrM1, **ptrM2, nr, nc;
    void entrRC();
    int** mkM(int **, int, int);
    void entrMe(int **, int, int, int);
    void addM(int **, int **, int, int);
    void dispSM(int **, int, int);
    void delM(int **, int);
    int main()
    {
    entrRC();
    ptrM1=mkM(ptrM1, nr, nc);
    ptrM2=mkM(ptrM2, nr, nc);
    entrMe(ptrM1, nr, nc, 1);
    entrMe(ptrM2, nr, nc, 2);
    addM(ptrM1, ptrM2, nr, nc);
    dispSM(ptrM1, nr, nc);
    cout

  • @luisangelcacerescarranza1363
    @luisangelcacerescarranza1363 5 ปีที่แล้ว +1

    Excelente video amigo es un gusto poder ver tus videos espero algun dia devolverte el favor.

    • @PatriotaMex
      @PatriotaMex 4 ปีที่แล้ว

      Creo que en esta vida material ya no amigo... Pero creo que si rezas por el le ayudara bastante en el plano donde se encuentra ahora...

  • @edgarddiaz9193
    @edgarddiaz9193 6 ปีที่แล้ว +1

    Muy buen vídeo

  • @alcaesto7969
    @alcaesto7969 5 ปีที่แล้ว +2

    porqué no pones la declaracion de las matrices** dentro del main() y en el método pedirDatos() las pones como parámetros. Lo digo porqué lo he intentado y no me funciona. Pero tal y como lo haces tienes variables locales por ahí :/

    • @adriel8152
      @adriel8152 5 ปีที่แล้ว +4

      Hola, no te desanimes. Si te interesa este tema, en verdad te recomiendo que regreses unos 20 videos atrás y hagas más prácticas y pruebas, así te quedará más claro cuando vuelvas a llegar a este punto, sobre todo te recomiendo si te interesa que no lo dejes en pausa porque cuando quieras volver, batallarás más. Si quieres declarar las variables dentro de la función principal main(), esas variables serán locales dentro de la función main. Cuando las requieras en una función externa como por ejemplo pedirDatos() los parámetros serán de tipo paso por referencia, ya que si son de paso por valor, tu función pedirDatos() no encontrará la variable de la matriz (por ejemplo), ya que tu función pedirDatos() buscará dentro de su alcance, sin entrar en la función main() que es donde tendrías declarada tu variable matriz[][]. Al hacerlo de paso de parámetro por referencia, le indicarás a tu función pedirDatos() la posición en memoria de donde deberá buscar esa variable, y de esa manera puedes declarar tus funciones localmente en la función principal main() y llamarlas en funciones externas. Para esto, la variable se declara de manera normal **puntero_matriz, pero dentro de tu prototipo de función irá así: pedirDatos(int**&), y sería lo mismo dentro de tu definición de la función.

    • @santucigod
      @santucigod 3 ปีที่แล้ว

      @@adriel8152 Nunca hubiera notado el error, en verdad gracias. Voy a repasar el paso de parámetros por valor y por referencia porque aún no entiendo por qué debe hacerse así.

  • @cesarwadskier9217
    @cesarwadskier9217 7 ปีที่แล้ว

    hola muy buenos tus videos! quisiera saber tambien para desarrollar aplicaciones de windows usando c++ y c

  • @promipicode
    @promipicode 4 ปีที่แล้ว

    #include
    #include
    #include
    #include
    using namespace std;
    //prototipo
    void pedirdatos();
    void mostrarnormal(int **, int, int);
    void mostrartranspuesta(int **, int , int);
    int **puntero_matriz;
    int nfilas;
    int ncolumnas;
    int main()
    {
    pedirdatos();
    mostrarnormal(puntero_matriz,nfilas,ncolumnas);
    mostrartranspuesta(puntero_matriz,nfilas,ncolumnas);

    for(int i = 0; i < nfilas; i++)
    {
    delete[] puntero_matriz[i];
    }
    delete[] puntero_matriz;



    getch();
    return 0;
    }
    void pedirdatos()
    {
    coutnfilas;
    coutncolumnas;

    puntero_matriz = new int *[nfilas];
    for(int i = 0; i < nfilas; i++)
    {
    puntero_matriz[i] = new int [ncolumnas];
    }
    //fin de reservar memoria;

    cout

  • @marcoalexis7388
    @marcoalexis7388 4 ปีที่แล้ว

    //Ejercicio Resuelto
    #include
    #include
    #include
    using namespace std;
    void pedirDatos();
    void imprimirMatrizTraspuesta();
    int **punteroMatriz, nFilas, nCol;
    int main() {

    pedirDatos();
    imprimirMatrizTraspuesta();

    for(int i=0;i

  • @alancastro9381
    @alancastro9381 6 ปีที่แล้ว

    #include
    #include
    #include
    using namespace std;
    void pedirDatos();
    void obtenerMatrizTranspuesta(int **,int, int,int,int);
    void mostrarMatrices(int **, int **, int, int,int,int);
    int **puntero_matriz, **matriz_transpuesta, numero_filas1,numero_columnas1,numero_filas2,numero_columnas2;
    int main(){
    pedirDatos();
    obtenerMatrizTranspuesta(puntero_matriz,numero_filas1, numero_columnas1,numero_filas2,numero_columnas2);
    mostrarMatrices(puntero_matriz,matriz_transpuesta,numero_filas1,numero_columnas1,numero_filas2,numero_columnas2);
    getch();
    return 0;
    }
    void pedirDatos(){
    coutnumero_filas1;
    coutnumero_columnas1;
    numero_filas2=numero_columnas1;
    numero_columnas2=numero_filas1;
    //Reservando memoria
    puntero_matriz=new int*[numero_filas1];
    for(int i=0;i

  • @JavierMillan
    @JavierMillan 4 ปีที่แล้ว +1

    Un like hasta el cielo....

  • @lionelromero6086
    @lionelromero6086 6 ปีที่แล้ว

    Por que sera que cuando ejecuto ingreso los valores de la matrtiz 1 y se tilda el programa y me dice dejo de funcionar :(

  • @aleroguerreromax1131
    @aleroguerreromax1131 7 ปีที่แล้ว

    Buenas, ¿dónde puedo encontrar los ejercicios que haces en los vídeos? Gracias

    • @PatriotaMex
      @PatriotaMex 4 ปีที่แล้ว

      Yo estoy poniendo esos ejercicios como aportaciones en agradecimiento a este amigo que nos brindo este curso gratis. Desafortunadamente ya no está entre nosotros, y por eso es como una manera de brindarle un tributo a los que nos aporto como ayuda a la humanidad de forma desinteresada como lo hizo él...

  • @elshaggy2621
    @elshaggy2621 6 ปีที่แล้ว

    sera que pueden publicar el ejercicio usando el printf y el scanf .. siempre tratanto de hacer por el camino facil

    • @promipicode
      @promipicode 4 ปีที่แล้ว

      es mas facil con cou y cin

  • @luisospino4700
    @luisospino4700 8 ปีที่แล้ว +6

    /*Realice un programa que calcule la suma por posiciones de dos matrices dinámicas.*/
    #include
    #include
    #include
    using namespace std;
    int fila,colum,**matriz1,**matriz2;
    void pedirDatos(){
    coutfila;
    coutcolum;
    cout

    • @beimarbuitragoburgos1174
      @beimarbuitragoburgos1174 6 ปีที่แล้ว +1

      EXECELENTE APORTE
      LE FALTAN LOS *(* A UN APUNTADOR PERO ESTA PERFECTO, GRACIAS
      SIN EMBARGO SUBO EL CODIGO CORRINEDO CON TUS CREDITOS
      #include
      #include
      #include
      using namespace std;
      int fila,colum,**matriz1,**matriz2;
      void pedirDatos(){
      coutfila;
      coutcolum;
      cout

  • @xxchicoxxj9996
    @xxchicoxxj9996 3 ปีที่แล้ว

    Ejercicio 9
    #include
    #include
    using namespace std;
    void llenarMat1();
    void llenarMat2();
    void sumar();
    int **mat1,**mat2,x,y;
    int main () {
    coutx;
    couty;
    llenarMat1();
    llenarMat2();
    sumar();
    return 0;
    }
    void llenarMat1(){
    mat1 =new int*[x];
    for(int i=0;i

  • @guitarrazul1716
    @guitarrazul1716 4 ปีที่แล้ว

    ¿Qué pasa si no se libera la memoria reservada? Ya que lo ha compilado sin hacerlo y el programa ha funcionado sin error. Es solo por curiosidad para saber como funciona. Gracias de antemano, un saludo.

    • @learning2895
      @learning2895 4 ปีที่แล้ว +3

      Con estos pequeños ejercicios no pasa nada, porque la memoria se libera igualmente al terminar el programa y no causa mayor problema.
      Pero si es un proyecto grande que usa mucha memoria, puedes llegar a quedarte sin memoria si no la vas liberando cuando la dejas de usar.

    • @guitarrazul1716
      @guitarrazul1716 4 ปีที่แล้ว

      @@learning2895 Ok, muchas gracias

  • @abnerescalona103
    @abnerescalona103 ปีที่แล้ว

    Alguien podría explicarme porque necesito que la segunda función pida parámetros si el ámbito de todas las variables anteriores es global?

  • @bearose710
    @bearose710 2 ปีที่แล้ว

    /*
    Realice un programa que lea una matriz dinámica y cree su matriz traspuesta
    */
    #include
    #include
    #include
    using namespace std;
    void crearMatriz();
    void mostrarOriginal(int **,int,int);
    void MatrizTraspuesta(int **,int,int);
    int **matriz,nf=3,nc=3;
    int main(){

    //llamadas de funciones
    crearMatriz();
    mostrarOriginal(matriz,nf,nc);
    MatrizTraspuesta(matriz,nf,nc);

    //liberar memoria
    for(int i=0;i

  • @tobiasvalderrey3599
    @tobiasvalderrey3599 4 ปีที่แล้ว

    #include
    #include
    #include
    using namespace std;
    //prototipo de funciones
    void pedirDatos();
    void intercambiarValores(int **,int,int);
    //variables globales
    int **puntero_matriz,nFilas,nCol;
    int main()
    {
    pedirDatos();
    intercambiarValores(puntero_matriz,nFilas,nCol);
    for(int i=0;i

  • @kevinaguilar240
    @kevinaguilar240 3 ปีที่แล้ว

    Y como puedo poner para que se crea un archivo de texto?

  • @learning2895
    @learning2895 4 ปีที่แล้ว

    A mi me quedo un poco mas corto.
    //Ejercicio 9: Realice un programa que calcule la suma de dos matrices dinámicas.
    #include
    using namespace std;
    void llenar_matriz(int **m1, int fil, int col);
    void sumar_matriz(int **m1, int **m2, int fil, int col, int** resultante);
    int main(void){
    int fil, col;
    //Pedir datos:
    coutfil;
    coutcol;
    int **m1= new int*[fil];
    int **m2= new int*[fil];
    for (int f=0; f

  • @tzr168
    @tzr168 4 ปีที่แล้ว +1

    ¿por que le pasas las matrices como argumento si las has declarado como variables globales, creo que no es necesario no?

    • @trucosfreak
      @trucosfreak 4 ปีที่แล้ว

      No es para nada necesario, creo que el lo hace para mostrar cómo se envían los parámetros, aunque la gente que no entiende bien el tema de variables globales y locales podría llegar a confundirse,

  • @rmandors7877
    @rmandors7877 9 หลายเดือนก่อน

    Alguien sabe si es necesaria la librería "stdlib.h" para usar el "new" y "delete"?
    Porque también me compila sin usarla 🤔

  • @JorgeRomero-qk2vq
    @JorgeRomero-qk2vq 2 ปีที่แล้ว

    Desde el 2015 ya no se requiere usar la biblioteca para usar new y delete, pruébenlo y veran.

  • @shelomauas5763
    @shelomauas5763 6 ปีที่แล้ว

    #include
    #include
    using namespace std;
    int filas, columnas,**dir;
    void pedir_datos();
    void mostrar_matriz(int**,int,int);
    void mostrar_transpuesta(int**, int, int);
    int main()
    {
    pedir_datos();
    mostrar_matriz(dir, filas, columnas);
    mostrar_transpuesta(dir, filas, columnas);
    system("pause");
    return 0;
    }
    void pedir_datos()
    {
    cout filas;
    cout columnas;
    dir = new int *[filas];
    for (int i=0; i < filas; i++)
    {
    dir[i] = new int[columnas];
    }
    cout *(*(dir + i) + j);
    }
    }
    }
    void mostrar_matriz(int**dir,int filas,int columnas)
    {
    cout

  • @Joel-tl9xq
    @Joel-tl9xq 5 ปีที่แล้ว +2

    Ejercicio 10 sin variables globales: #include
    #include
    using namespace std;
    struct Matriz{
    int i,j;
    int nFilas, nColumnas;
    int **Puntero_de_punteros;
    };
    void PedirDatos(Matriz &); /// (struct Matriz)
    void CrearMatrizDinamica(struct Matriz &);
    void ImprimirMatriz(Matriz &);
    void CrearTranspuesta(Matriz &);
    void LiberarMemoria(struct Matriz &);
    main()
    {
    struct Matriz mtz;
    PedirDatos(mtz);
    CrearMatrizDinamica(mtz);
    ImprimirMatriz(mtz);
    CrearTranspuesta(mtz);
    LiberarMemoria(mtz);
    }
    void PedirDatos(struct Matriz &m1) /// o tambien (Matriz m1)
    {
    coutm1.nFilas;
    coutm1.nColumnas;
    }
    void CrearMatrizDinamica(Matriz &m1)
    {
    m1.Puntero_de_punteros = new int*[m1.nFilas]; //Crea n variables de tipo puntero (n= nFilas)
    for(m1.i=0;m1.i

  • @kevinurra2029
    @kevinurra2029 6 ปีที่แล้ว

    Hola amigo en el caso de que las quisiera multiplicar que cambio del código?

    • @starlyn1232
      @starlyn1232 4 ปีที่แล้ว +1

      #include
      #include
      #include
      using namespace std;
      void pedirDatos();
      void multiplicar(int **, int **, int, int,int);
      void mostrar(int **, int **, int, int);
      int **pun1, **pun2, nFilas, nCols, multi;
      int main(){

      pedirDatos();
      multiplicar(pun1,pun2,nFilas,nCols,multi);
      mostrar(pun1,pun2,nFilas,nCols);
      for(int i=0;i nCols;
      if(nFilas!=nCols){
      cout

  • @matthewdts999
    @matthewdts999 4 ปีที่แล้ว

    #include
    using namespace std;
    int **matriz, nFilas, nCol;
    void pedirDatos();
    void matrizTranspuesta(int **, int, int);
    int main()
    {
    pedirDatos();
    matrizTranspuesta(matriz, nFilas, nCol);
    }
    void pedirDatos()
    {
    cout nFilas;
    cout nCol;

    matriz = new int*[nFilas];
    for(int i= 0;i

  • @TheMegadeth667
    @TheMegadeth667 6 ปีที่แล้ว

    #include
    #include
    using namespace std;
    void datos(int **&, int &, int &);
    void ingreso (int **&, int &, int &);
    void verificacion(int **&, int &, int &);
    int main() {
    int **matriz;
    int filas, columnas;
    datos(matriz,filas,columnas);
    ingreso(matriz,filas,columnas);
    verificacion(matriz,filas,columnas);

    for(int i = 0; i< filas; i++){
    delete[] matriz[i];
    }
    delete[] matriz;
    return 0;

    } void datos(int **&matriz, int &filas, int &columnas){
    cout > filas;
    cout > columnas;
    matriz = new int*[filas];
    for (int i= 0; i< filas; i++){
    matriz[i]=new int[columnas];
    }

    }
    void ingreso(int **&matriz, int &filas, int &columnas){
    for(int i=0; i

    • @TheMegadeth667
      @TheMegadeth667 6 ปีที่แล้ว

      uff me costa mas que nada porque no puedo utilizar variables globales

  • @beamerboy.7859
    @beamerboy.7859 4 ปีที่แล้ว

    #include
    #include
    #include
    using namespace std;
    void pedirdatos();
    void transpuesta(int **,int **,int,int);
    void imprimir(int **,int **,int,int);
    int **p1,**p2, nfilas, ncol;
    int main(){
    pedirdatos();
    transpuesta(p1,p2,nfilas,ncol);
    imprimir(p1,p2,nfilas,ncol);

    for(int i=0;i

  • @alexismorison6636
    @alexismorison6636 4 ปีที่แล้ว

    #include
    #include
    using namespace std;
    void iniciarMatriz(int**& m);
    void pedirDatos(int**& m, char);
    void mostrar(int**& m, char);
    void sumar(int**& a, int**& b, int**& c);
    int** A, ** B, ** C, filas, cols;
    int main()
    {
    cout > filas;
    cout > cols;
    pedirDatos(A, 'A');
    pedirDatos(B, 'B');
    mostrar(A, 'A');
    mostrar(B, 'B');
    iniciarMatriz(C);
    sumar(A, B, C);
    mostrar(C, 'C');
    return 0;
    }
    void iniciarMatriz(int**& m)
    {
    m = new int* [filas];
    for (int i = 0; i < filas; i++)
    {
    m[i] = new int[cols];
    }
    }
    void pedirDatos(int**& m, char nom)
    {
    iniciarMatriz(m);
    for (int i = 0; i < filas; i++)
    {
    for (int j = 0; j < cols; j++)
    {
    cout

  • @josuebarrios6119
    @josuebarrios6119 3 ปีที่แล้ว +1

    #include
    #include
    #include
    using namespace std;
    //Prototipos de Funcion
    void pedirDatos();
    void mostrarMatrizTranspuesta(int **,int,int);
    //Variables Globales
    int **matriz, filas, columnas;
    int main(){
    pedirDatos();
    mostrarMatrizTranspuesta(matriz,filas,columnas);

    //Liberando memoria
    for(int i=0;i

  • @adri8425
    @adri8425 4 ปีที่แล้ว

    Hice este programa, pero no recoge bien los datos, ¿alguien sabe el pq?
    #include
    #include
    #include
    using namespace std;
    void pedirDatos();
    void calcular(int **,int **,int,int);
    void mostrarMatriz(int **,int,int);
    int **puntero_matriz,**mtras,nFilas,nCol;
    int main(){

    for(int i=0;i

    • @learning2895
      @learning2895 4 ปีที่แล้ว

      Capaz ya te diste cuenta, pero es esta linea que esta al revez: *(*(puntero_matriz+i)+j) = *(*(mtras+j)+i);
      Lo correcto es: *(*(mtras+j)+i)= *(*(puntero_matriz+i)+j);
      No entendi porque usas deletes al inicio y al final del main, solo deberian estar los del final.

    • @adri8425
      @adri8425 4 ปีที่แล้ว

      @@learning2895 Vale, gracias!

  • @juliangonzaga333
    @juliangonzaga333 3 ปีที่แล้ว

    Bro cómo se haria con la multiplicacion de matrices

    • @dabent_1457
      @dabent_1457 2 ปีที่แล้ว

      Creo que igual, solo que cambiando el (+=) por un (*=)

  • @franciscozalazar9826
    @franciscozalazar9826 4 ปีที่แล้ว

    Cómo seria un programa que multiplique matrices utilizando punteros?

    • @marvinjerez2189
      @marvinjerez2189 4 ปีที่แล้ว +2

      Todo es igual lo único que cambia es el símbolo de + a *
      PDT: Alejandro Fallecio hace un año

  • @emanuelalejandro5644
    @emanuelalejandro5644 2 ปีที่แล้ว

    lo mas triste es qeu el codigo aun esta en mediafire

  • @aldolunabueno2634
    @aldolunabueno2634 3 ปีที่แล้ว

    ¿Alguien sabe cómo podemos comprobar que efectivamente la memoria de una matriz es liberada?

  • @alvarosarralde2339
    @alvarosarralde2339 6 ปีที่แล้ว

    y como seria para multiplicarla

    • @AntonioArasanz
      @AntonioArasanz 6 ปีที่แล้ว

      {{a, b}, {c, d}} . {{r, s}, {t, u}}={{a r + b t, a s + b u}, {c r + d t, c s + d u}}

  • @elitcruel123
    @elitcruel123 6 ปีที่แล้ว

    v

  • @luismiguelmedinaguerreros7241
    @luismiguelmedinaguerreros7241 4 ปีที่แล้ว

    #include
    #include
    #include
    using namespace std;
    void pedirDatos();
    void m_O(int **, int , int); //Matriz original
    void m_T(int **, int, int); //Matriz traspuesta
    int **puntero_matriz, nFilas, nCol;
    int main()
    {
    pedirDatos();
    m_O(puntero_matriz, nFilas, nCol);
    m_T(puntero_matriz, nFilas, nCol);
    for(int i=0; i

  • @deisydelmas9157
    @deisydelmas9157 6 ปีที่แล้ว

    Escribir un programa que lea una matriz de números enteros y que devuelva la suma de los elementos positivos de la matriz y la suma de los elementos negativos