Wordpress Themes

[C++] Ejemplo 7: Diagonal de una matriz

Perdon por la demora con esta seccion es que estoy con muchos proyectos personales más las obligaciones de la facultad. Encontre una carpeta con ejemplos que tenia de una materia anterior, estan en C asi que los tengo que ir pasando a C++.

Aca les dejo un ejemplo que sirve para sumar los valores de la diagonal de una matriz.

Diagonal.cpp

Si te gustó el contenido de este blog suscribite a nuestro Feed RSS
Posted October 2nd, 2007 by Tinchio under Informatica, Programacion

 

Tambien te pueden interesar estos articulos:

31 Comentarios en “[C++] Ejemplo 7: Diagonal de una matriz”

  1. Micky dijo:

    Q buena onda q continues con esta seccion, pero oie, el programa no corre =( aun no e llegado a esa parte de matrizes en la universidad, por eso no puedo corregirlo como a los otros =( pero me interesa mucho, espero lo puedas resolver.

  2. Tinchio dijo:

    @Micky: acabo de volver a probarlo para asegurarme, y si funciona, deberias revisar tu compilador a ver que errores te da, yo lo compilo con el compilador libre g++. Saludos

  3. Micky dijo:

    =( probablemente ese sea el problema, yo uso el compilador C++ para windows =(

  4. Tinchio dijo:

    Pero que sea para windows no tiene nada que ver, yo trato de hacer el codigo lo mas cercano al ANSI posible por lo tanto no importa el SO, es mas los ejemplos los compilo en Linux y en Windows.
    Proba otro compilador, como el DevC++ sobre el cual hice un post. Saludos

  5. waldo dijo:

    La función que suma las diagonales es *demasiado* rebuscada. Qué te parece esta:

    int suma_diag(int matriz[fi][co],int lim){
    int suma = 0, i = 0;
    for (i = 0 ; i < lim ; i++){
    suma += matriz[i][i];
    }
    return suma;
    }

  6. Tinchio dijo:

    @waldo: es verdad ahi se simplifica un poco el uso de variables y lineas de codigo, es otra buena alternativa para esto. Es una de las cosas buenas de la programacion, que hay muchas soluciones para un mismo problema. De paso si tienen algun ejemplo que quieran publicar avisenme, por ahi no tengo tiempo de buscar o pensar alguno, asi que si tienen lo publicamos.
    Saludos

  7. Daniel dijo:

    No, Tinchito, lo de waldo es mucho mejor. Lo que hacías vos era buscar a lo bruto, y si justo coincidía que era un valor de la diagonal, sumabas. Lo de waldo hace solamente lo que tiene que hacer.

  8. Tinchio dijo:

    Y si yo no dije que no lo fuera… :-/

  9. ADDRIANA dijo:

    que chevere encontrar paginas como estas! en la U en el momento me encuentro viendo un repaso de vectores; si tienen mas ejemplos que me puedan ayudar se los recomiendo mucho, es muy util ver el punto de vista de otras personas, se los agradeseria mas si tienen ejemplos donde se use memoria dinámica, aún tengo problemas con eso…
    Tambien si saben alguna forma super buena de ayudarme a hacer clases se los agradeceria tambien…

  10. [C++] Ejemplo 8: Lista dinamica de objetos | Blog de Tinchio dijo:

    […] este ejemplo lo hice a pedido de una lectora. Aca trate de hacer un programa lo más simple que pude, en el que hago uso de una lista dinamica […]

  11. memo dijo:

    gracias por tener ejempos, el de lista dinamica de objetos creo que me sera de gran utilidad.
    En cuanto tenga tiempo te mandare un ej. para que lo subas.

  12. Tinchio dijo:

    de nada, si tenes un ejemplo mandalo nomas. Saludos

  13. ADDRIANA dijo:

    MIL GRACIAS POR EL EJEMPLO; PERO AHORA TENGO UNA PREGUNTICA: SI TEMEMOS DOS CLASES A Y B, Y EN LA CLASE B A UNO DE LAS FUNCIONES NECESITO PASARLE UN PARAMENTRO DE TIPO A, NECESITO ALGUNA ESPECIFICACION EN ESPECIAL;
    POR EJEMPLO PUEDO HACER

    B::B(A objeto, int radio);
    porque es que al momento de compilar me arroja un error…

    GRACIAS DE NUEVO

  14. Tinchio dijo:

    El parametro asi como lo pasas esta bien, solamente que el objeto B para usar los metodos y atributos de l objeto A necesita ser clase “amiga” para esto en la definicion de la clase A

    class A
    {
    private:
    atributos…
    public:
    friend class B;
    };

    con esto la clase B es amiga de A y podra acceder a todos los metodos y atributos de A.

    Saludos

  15. ADDRIANA dijo:

    OYE! MIL GRACIAS, TU SIEMPRE ME SALBAS…
    TE VOY A CONTRATAR COMO MI PROFESOR PRIVADO.
    JAJAJA

    MIL GRACIAS

  16. Tinchio dijo:

    jaja con que instales Firefox y recomiendes el blog si te gusto me conformo ^_^
    Saludos

  17. ADDRIANA dijo:

    oye de casualidad no tienes notas sobre apuntadores que me puedan servir
    sobre el uso de ellos y eso

    Mil gracias

  18. Tinchio dijo:

    En esta web hay muy buena informacion sobre C++ seguramente te sea de utilidad.

  19. lina dijo:

    hola sera q me pueden ayudar tengo q hacer un programa en c++ de matrizes dinamicas, con opciones 1. cargar matriz a
    2. cargar matriz b
    3. sumar matriz a+b
    4. mostrar matriz a b c
    5. salir por fa vor me pueden ayudar

  20. manuel dijo:

    buenas…
    necesito una ayuda con un ejercicio.
    tengo que implementar un programa con que puede realizar una interseccion, union y diferencia entre 2 vectores y arrogarlo en un vector distinto, al realizar la union los elementos no pueden aparecer 2 veces, es decir ejem:(si en un conjunto A:a,b,c y en el con junto B:b,c,e,f; el vector de la union es C:a,b,c,e,f..)
    y en la interseccion debe aparecer en el vector resultante solo los elementos que hay en comun los otros 2.. en la diferencia debe aparecer en el vector resultante los elementos que hay en el primero y no en el segundo(ejm: A:a,b,c B:b,c,e,f; en C=a,e,f)..

    no entiendo mucho como hacerlo..
    necesito ayuda..

  21. andres vargas dijo:

    hola colega, el programa completo para sumar ls matrices y mostarlas todas es el siguiente, corre perfectamente.

    //para sacar la suma toca digitar un numero y enter

    #include
    #include
    void main (){
    int **A,**B,**C,i,j;
    cout<<”digite los datos de la matriz A:”;
    A=new int *[3];
    for(i=0; i<3; i++)
    A[i]= new int [3];
    for (i=0; i<3; i++)
    for (j=0; j>A[i][j];
    cout<<”datos de la matriz A:”<<endl;
    for(i=0; i<3; i++)
    for(j=0; j<3; j++)
    cout<<A[i][j]<<”";
    cout<<endl;
    getch();
    cout<<”digite los datos de la matriz B:”;
    B=new int *[3];
    for(i=0; i<3; i++)
    B[i]= new int [3];
    for (i=0; i<3; i++)
    for (j=0; j>B[i][j];
    cout<<”datos de la matriz B:”<<endl;
    for(i=0; i<3; i++)
    for(j=0; j<3; j++)
    cout<<B[i][j]<<”";
    cout<<endl;
    getch();
    C=new int *[3];
    for(i=0; i<3; i++)
    C[i]= new int [3];
    for (i=0; i<3; i++)
    for (j=0; j>C[i][j];
    cout<<”datos de la matriz C=A+B”<<endl;
    for(i=0; i<3; i++)
    for(j=0; j<3; j++)
    cout<<C[i][j]<<”";
    cout<<endl;
    getch();
    cout<<endl;
    cout<<”datos de la matriz A:”<<endl;
    for(i=0; i<3; i++)
    for(j=0; j<3; j++)
    cout<<A[i][j]<<”";
    cout<<endl;
    cout<<endl;
    cout<<”datos de la matriz B:”<<endl;
    for(i=0; i<3; i++)
    for(j=0; j<3; j++)
    cout<<B[i][j]<<”";
    cout<<endl;
    cout<<endl;

    cout<<”datos de la matriz C”<<endl;
    for(i=0; i<3; i++)
    for(j=0; j<3; j++)
    cout<<C[i][j]<<”";
    cout<<endl;
    getch();
    }

  22. andres vargas dijo:

    el programa completo para sumar ls matrices y mostarlas todas es el siguiente, corre perfectamente.

    //para sacar la suma toca digitar un numero y enter

    #include
    #include
    void main (){
    int **A,**B,**C,i,j;
    cout<<”digite los datos de la matriz A:”;
    A=new int *[3];
    for(i=0; i<3; i++)
    A[i]= new int [3];
    for (i=0; i<3; i++)
    for (j=0; j>A[i][j];
    cout<<”datos de la matriz A:”<<endl;
    for(i=0; i<3; i++)
    for(j=0; j<3; j++)
    cout<<A[i][j]<<”";
    cout<<endl;
    getch();
    cout<<”digite los datos de la matriz B:”;
    B=new int *[3];
    for(i=0; i<3; i++)
    B[i]= new int [3];
    for (i=0; i<3; i++)
    for (j=0; j>B[i][j];
    cout<<”datos de la matriz B:”<<endl;
    for(i=0; i<3; i++)
    for(j=0; j<3; j++)
    cout<<B[i][j]<<”";
    cout<<endl;
    getch();
    C=new int *[3];
    for(i=0; i<3; i++)
    C[i]= new int [3];
    for (i=0; i<3; i++)
    for (j=0; j>C[i][j];
    cout<<”datos de la matriz C=A+B”<<endl;
    for(i=0; i<3; i++)
    for(j=0; j<3; j++)
    cout<<C[i][j]<<”";
    cout<<endl;
    getch();
    cout<<endl;
    cout<<”datos de la matriz A:”<<endl;
    for(i=0; i<3; i++)
    for(j=0; j<3; j++)
    cout<<A[i][j]<<”";
    cout<<endl;
    cout<<endl;
    cout<<”datos de la matriz B:”<<endl;
    for(i=0; i<3; i++)
    for(j=0; j<3; j++)
    cout<<B[i][j]<<”";
    cout<<endl;
    cout<<endl;

    cout<<”datos de la matriz C”<<endl;
    for(i=0; i<3; i++)
    for(j=0; j<3; j++)
    cout<<C[i][j]<<”";
    cout<<endl;
    getch();
    }

  23. tochi dijo:

    buenas. creo q paresca un poco tonto al preguntar esto. pero como podria crear un programa para cargar una matriz de 3 por 3 que al sumarla en cualquiera de sus direciones me de como resultado 15. si saben como poder ayudarme en esto se los agradeceria.

  24. pipe calle dijo:

    bueno esta es la suma de la matriz de forma diagona,solo se necesitan dos include , espero haber colaborado.. algun comentario lo pueden agregar al correo — pipecalle1987@hotmail.com..

    #include
    #include

    main()
    {

    int mat[4][4],i,j,x,y,suma=0;

    cout<<”ingresar datos de la matriz :”<<endl;

    for(i=0;i<4;i++)
    {
    for(j=0;j<4;j++)
    {
    cout<>mat[i][j];

    if(i==j)
    {
    suma=suma+ mat[i][j];

    }

    }

    }

    clrscr();

    y=1;
    for(i=0;i<4;i++)
    {
    x=1;
    for(j=0;j<4;j++)
    {
    gotoxy(x,y);
    cout<<mat[i][j];
    x=x+4;
    }
    y=y+2;
    }
    cout<<”\n\n\n\n\n\la suma de la diagonal es:”<<suma;

    getch();
    }

  25. Tute dijo:

    Che, y recursivo, ya que deliramos ? :P

    int suma_diag(int matriz[fi][co],int lim){

    if (lim >= 0){

    return suma_dig( matriz[fi][co], –lim) +matriz[lim][lim]
    }
    else{
    return 0;
    }

    }

  26. angela dijo:

    hola nesecito q me colaboren con un ejercicio de matrices, consiste en hacer un programa que lea caracteres y determine cual de los caracteres se repite mas………bueno esper q me puedan ayudar..gracias..bay

  27. diana dijo:

    como puedo hacer un codigo en visual la suma diagonal lo he intentado con los codogos que estan en esta pagina y no funcionan.
    les agredeciria si me pueden ayudar gracias

  28. yetty dijo:

    Me gustaria ver un ejemplo sobre una matriz diagonal. Debo saber si es diagonal. Como puedo hacerlo???

  29. Evelyn dijo:

    Yetty estoy en las mismas yo tampoco puedo hacerlo.Yo dijito la matriz y no se ejecuta la funcion.
    Yo tambien necesito un ejemplo

  30. Evelyn dijo:

    hola Alguien me puede ayudar necesito saber si una matriz es diagonal o no?Cuando digito la matriz me debe retornar 1 si es diagonal y 0 si no es….
    este es el codigo d mi funcion pero no me retorna nada… es urgente
    int diagonal()
    {
    for(i=0; i<m; i++)
    {
    for (j=0; j<n; j++)
    {
    if(i=j)
    {
    if(matA[i,j]!=0)
    return true;
    }
    }
    } return false;

    };

  31. Yal dijo:

    hola Alguien me puede ayudar necesito dos matrices zic-zac una que lea por la derecha y otra por la isquierda necesito el codigo fuente en c++ por fa.
    ___________
    1 3 4 10 11
    2 5 9 12
    6 8 13
    7 14
    15

    YLA OTRA de esta manera
    __________
    1 2 6 7 15
    3 5 8 14
    4 9 13
    10 12
    11
    espero recibir ayuda y grasias

Deja tu comentario

Hosting para WordPress - KrakenHost

Tags

Links

Feed

Ingresa tu dirección de e-mail para suscribirte:

Buscar

Otros