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:

51 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

  32. Luis Cabrera dijo:

    por favor necesito saber como hago para resolver una matriz de 4 por 4 por el metodo de determinantes por menores pero con recursividad. necesito que me ayuden con ese programa en c++.

  33. magda dijo:

    Se pide realizar un programa que sea capaz de calcular la unión e intersección de dos conjuntos de palabras. Se recuerda que la intersección de ambos conjuntos es el conjunto dado por aquellas palabras que se encuentran tanto en el primer conjunto como en el segundo. Por su parte la unión es el conjunto de todas las palabras que pertenecen a uno y/u otro conjunto, eliminando las palabras repetidas. Esto se puede ver en el siguiente ejemplo:
    Conjunto 1 Conjunto 2 Unión Intersección
    Casa casa casa casa
    Casa casa casa casa
    Pez casa casa pez
    Pez pez pez
    Pez ave pez
    Palo perro pez
    ave
    palo
    perro

    Menú:
    1) Pedir palabras arreglo 1
    2) Pedir palabras arreglo 2
    3) Ver Unión
    4) Ver Intersección
    5) Ver arreglo basura
    6) Salir

    Las palabras de ambos arreglos solo deben ser de longitud par, las de longitud impar deben ser almacenadas en un arreglo llamado basura, que podremos mostrar en una de las opciones.
    —-

  34. magda dijo:

    por fa ayudenme

  35. Carlos dijo:

    plis ayudemen tengo que hacer una matriz con punto flotante… envielan ami correo carlos_velez31@hotmail.com es urgente… puedo perder el semestre si no me ayudan

  36. damian dijo:

    hola como va esta muy bueno este foro alguien me podria hacer un programa. necesito hacer una matriz de m x n que los numeros que se le ingresen sean menores que 10 y crear una funcion que me detecte si los numeros son impares o no. si alguien me lo puede pasar antes del domingo seria joya muchas gracias

  37. alex dijo:

    holaa emmm

    la coza es asi

    estudio la prepa y pss de tarea me dejaron hacer dos programas con matrices

    nosotros representamos la matriz como una tabla
    la de mi cazo es una tabla de 4×4 en el programa debemos sumar los elementos pares de la tabla

    la tabla queda asi

    0,0|0.1|0,2|0,3
    1,0|1,1|1,2|1,3
    2,0|2,1|2,2|2,3
    3,0|3,1|3,2|3,3

    de est tengo que hacer un rpograma que sume los elementos pares de la tabla y otro que sume la diagonal principal que es esta \ (osea estos elementos 0,0|1,1|2,2|3,3)
    y de extra si se puede tambien esta diagonal / (estos elementos 0,3|1,2|2,1|3,0)
    ojala me ayuden

    mi correo

    Aguilas206@hotmail.com

    gracias adelantadas haha porfaaa

  38. alex dijo:

    es para mañanaaaa la tareaa haha XD

    miercoleeeesss haha

  39. Maria dijo:

    Hola buen dia.

    Me da gusto saber que existan foros o blog para este tipo de temas, es interesante porque ayudan a las personas que no sabemos programar.

    yo necesito ayuda, si no es mucha molestia podrian ayudarme a realizar un programa que realice la union, interseccion y compremento de tres vectores, ya intente hacerlo pero se me dificulta mucho en la comparacion de arreglos.

    gracias por su amable atencion.

  40. karla martinez dijo:

    hola la verdad es la primera vez q visito est foro, pero keria saber si puedes ayudarme con un programa de un menu de matrices, pero en visual studio c++ 6.0 y las matrices son, matrix diagonal, escalar, y de identidad.

    plis me seria de mucha ayuda yaque soy de primero y no se programar apenas estoy aprendiendo.

    gracias
    espero y me puedas resolver pronto,

    gracias

  41. para resolver la diagonal de una matriz dijo:

    hola como estan todos mi nombre es Michael jose herrera tengo 19 años y nesecito que porfavor me ayuden con un programa que voy a exponer se trata de calcular la diagonal de una matriz solo nesecito la ecuacion que al alguien me ayude espero sus respuestas no dejen de escribirme les dejo mi correo para que ahi me escrivan y memanden la información mi correo es ing.josetinoco@yahoo.com memandan la información porfa

  42. luis dijo:

    hola sera q alguien me ayuda necesito un programa que lea una matriz cuadrada y la convierta a una matriz triangular superior

  43. adriana dijo:

    idiotas

  44. civerwolf dijo:

    diagonal de la matriz 4*4 normal e inversa

    lleno de ceros matriz inversa
    for(i=0;i<=4;i++){
    for(j=0;j<=4;j++){
    matrizinver[i][j]=0;}
    }

    matriz diagonal
    for(i=0;i<=4;i++){
    for(j=0;j<=4;j++){
    if(i=j){
    matrizinver[i][j]=matriz[i][j];}
    }
    }

    calculo matriz inversa

    j=4;
    for(i=0;i<=4;i++){
    matrizinver[i][j]=matriz[i][j];
    j–;
    }

    se imprime la matriz y eso es todi

  45. Lord_Zero dijo:

    #include
    #include
    #define t 100

    main()
    {
    int matriz[t][t],n,m,i,j,s;
    printf(“ingresa las dimensiones de la tabla de nxn: \n”);
    scanf(“%i%i”,&n,&m);
    for(i=1;i<=n;i++){
    for(j=1;j<=m;j++){
    printf(“lectura de la tabla (%i,%i): “,i,j);
    scanf(“%i”,&matriz[i][j]);
    }}
    printf(“\n”);
    printf(“\n”);
    for(i=1;i<=n;i++){
    printf(“%i”,matriz[i][i]);
    s+=matriz[i][i];
    printf(“\n”);
    }
    printf(“\n”);
    printf(“la suma de la diagonal es %i”,s);
    getch();
    }

    ESTE PROGRAMA TE SUMA LA DIAGONAL DE MATRICES DE NXM ESTA HECHO POR MI Y FUNCIONANDO EN C++!!!

  46. Lord_Zero dijo:

    PD SOLO ES PARA LA DIAGONAL PRINCIPAL O SEA ESTA:

    1 0 0
    0 1 0
    0 0 1

    LOS UNOS FORMAN LA DIAGONAL PRINCIPAL

  47. carlos dijo:

    nesecito un favorsote.
    no c si me puedan ayudar a realizar un programa en c++ que lea un matriz de nxn me de las dos diagonales un numero y lo demas cero

    ejemplo

    1 0 0 1
    0 1 1 0
    0 1 1 0
    1 0 0 1

    es de mucha importancia por favor ayudenme

  48. zavala dijo:

    hola a todos necesito un programa en matrices pero lo k necesito es que imprir la diagonal y el usuario tieene k meter los demas digitos y despues sumarlos u restarlos

    ejemplo:

    134567
    581998
    879180
    786816
    798981

    la diagonal son los 1

    y la suma de la parte superior e inferior es

    superior: 65
    inferior:107

    y la resta seria: 32

    espero recibir ayuda de ustess

  49. luis dijo:

    suma de la diagonal secundaria en c++

  50. luis dijo:

    es urgente por favor

  51. luis dijo:

    como puedo mover una letra en una matriz en c++

Deja tu comentario

Feed

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

Buscar

Comentarios Recientes

  • Hector: Hola a todos, me gustaría agregar ( por si alguien lo necesita) que la...
  • andalepaco: Por cierto aquí pongo las instrucciones para convertirlo al español. abren...
  • andalepaco: Hola, parece ser que el link de descarga del libro esta caído, podrías...
  • Javine: Hay que esperar que sean 100 dólares?
  • Javine: Gracias por la información, es muy buena.