[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.
Posted October 2nd, 2007 by Tinchio under Informatica, Programacion
Tambien te pueden interesar estos articulos:
- [C++] Ejemplo 8: Lista dinamica de objetos
- Mini Tips: PHP
- Buenos Aires 3º sede mundial de Google
- Chip de Texas Instruments convierte al celular en proyector
- [C++] Ejemplo 5: convertir vocales
- [C++] Ejemplo 4: Mayor entre 3
- [C++] Ejemplo 3: Piramide
- [C++] Ejemplo 9: Miembros estáticos de una clase







October 2nd, 2007 at 9:54 pm
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.
October 3rd, 2007 at 1:05 am
@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
October 3rd, 2007 at 7:07 pm
=( probablemente ese sea el problema, yo uso el compilador C++ para windows =(
October 3rd, 2007 at 7:15 pm
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
October 4th, 2007 at 11:10 pm
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;
}
October 5th, 2007 at 12:32 am
@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
October 5th, 2007 at 6:21 pm
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.
October 5th, 2007 at 6:57 pm
Y si yo no dije que no lo fuera… :-/
October 17th, 2007 at 2:24 pm
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…
October 23rd, 2007 at 2:29 am
[…] 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 […]
October 31st, 2007 at 12:30 pm
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.
October 31st, 2007 at 1:41 pm
de nada, si tenes un ejemplo mandalo nomas. Saludos
November 6th, 2007 at 11:10 am
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
November 6th, 2007 at 2:32 pm
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
November 6th, 2007 at 4:22 pm
OYE! MIL GRACIAS, TU SIEMPRE ME SALBAS…
TE VOY A CONTRATAR COMO MI PROFESOR PRIVADO.
JAJAJA
MIL GRACIAS
November 6th, 2007 at 4:38 pm
jaja con que instales Firefox y recomiendes el blog si te gusto me conformo ^_^
Saludos
November 14th, 2007 at 2:11 pm
oye de casualidad no tienes notas sobre apuntadores que me puedan servir
sobre el uso de ellos y eso
Mil gracias
November 14th, 2007 at 4:52 pm
En esta web hay muy buena informacion sobre C++ seguramente te sea de utilidad.
February 27th, 2008 at 2:48 pm
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
March 29th, 2008 at 11:16 pm
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..
Usando
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();
}
Usando
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();
}
Usando
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.
Usando
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();
}
Usando
Che, y recursivo, ya que deliramos ?
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;
}
}
Usando
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
Usando
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
Usando
Me gustaria ver un ejemplo sobre una matriz diagonal. Debo saber si es diagonal. Como puedo hacerlo???
Usando
Yetty estoy en las mismas yo tampoco puedo hacerlo.Yo dijito la matriz y no se ejecuta la funcion.
Yo tambien necesito un ejemplo
Usando
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;
};
Usando
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