elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  Matrices Dispersas En C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Matrices Dispersas En C++  (Leído 171 veces)
Ing99

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Matrices Dispersas En C++
« en: 3 Octubre 2017, 04:54 »

Hola amigos, esta es mi primera publicacion, estoy dando estructuras de datos I y quisiera compartir con ustedes, se que algunos se confunden y aquí les paso para que se guien, si me va bien con esta publicacion sigo subiendo mas.

Este programa crea una matriz dispersa desde otra matriz y a la vez puede decir si es una triangular superior inferior o identidad desde la matriz dispersa, es solo una aplicacion de operaciones basicas.  ;D

Código
  1. #include <iostream>
  2.  
  3. int m,n;
  4.  
  5. using namespace std;
  6.  
  7. int main(){
  8. cout<<"Cuantas filas tiene su matriz: ";
  9. cin>>m;
  10. cout<<"Cuantas columnas tiene su matriz: ";
  11. cin>>n;
  12.  
  13. int matriz[m][n];
  14.  
  15. //Es obvio...
  16. cout<<"\n\n";
  17. for(int i=0; i<m; i++){
  18. for(int j=0; j<n; j++){
  19. cout<<"Ingrese el dato en posicion ["<<i+1<<"]["<<j+1<<"]: ";
  20. cin>>matriz[i][j];
  21. }
  22. }
  23.  
  24. //Reviso si hay ceros en la matris para no contarlos en la fila de la dispersa...
  25. int a=m*n;
  26. int aux=0;
  27. for(int i=0; i<m; i++){
  28. for(int j=0; j<n; j++){
  29. if(matriz[i][j]==0){
  30. aux++;
  31. }
  32. }
  33. }
  34.  
  35. //Hallo la matriz dispersa...
  36. a=a-aux;
  37. int fil=1;
  38. int col=0;
  39. int c, d;
  40. cout<<"\n\n";
  41. int dispersa[a+2][3];
  42. dispersa[0][0]=m-1;
  43. dispersa[0][1]=n-1;
  44. dispersa[0][2]=a;
  45. for(int i=0; i<m; i++){
  46. for(int j=0; j<n; j++){
  47. if(matriz[i][j]!=0){
  48. dispersa[fil][col]=i;
  49. dispersa[fil][col+1]=j;
  50. dispersa[fil][col+2]=matriz[i][j];
  51. fil++;
  52. }
  53. d=j;
  54. }
  55. c=i;
  56. }
  57. dispersa[fil][col]=c+1;
  58. dispersa[fil][col+1]=d+1;
  59. dispersa[fil][col+2]=0;
  60.  
  61. //Muestro las matrices...
  62.  
  63. //Primero la matriz normal...
  64. cout<<"Matriz:\n";
  65. for(int i=0; i<m; i++){
  66. cout<<endl;
  67. for(int j=0; j<n; j++){
  68. cout<<matriz[i][j]<<" ";
  69. }
  70. }
  71. cout<<"\n\n";
  72.  
  73. //Ahora la dispersa...
  74. cout<<"Matriz dispersa:\n";
  75. for(int i=0; i<a+2; i++){
  76. cout<<endl<<"   "<<dispersa[i][0]+1<<" "<<dispersa[i][1]+1<<" "<<dispersa[i][2];
  77. }
  78.  
  79. //Compruebo si la matriz puede ser triangular superior o identidad con una pregunta...
  80. int aux1=0;
  81. int aux2=0;
  82. int aux3=0;
  83. int aux4=0;
  84. if(m==n){
  85.  
  86. //Para ver si es triangular superior...
  87. for(int i=0; i<a+2; i++){
  88. if(dispersa[i][0]>dispersa[i][1]){
  89. aux1=1;
  90. }
  91. }
  92. //Para ver si es triangular inferior...
  93. for(int i=0; i<a+2; i++){
  94. if(dispersa[i][0]<dispersa[i][1]){
  95. aux2=1;
  96. }
  97. }
  98. //para ver si es identidad...
  99. if(m==a){
  100. for(int i=0; i<a+2; i++){
  101. for(int j=0; j<3; j++){
  102. if(i==j){
  103. if(dispersa[i][j]==1){
  104. aux4=1;
  105. }
  106. else{
  107. aux4=0;
  108. }
  109. }
  110. }
  111. }
  112. }
  113. }
  114. if(aux4==1){
  115. cout<<"\nLa matriz es identidad...\n\n";
  116. }
  117. else{
  118. if(aux1==0){
  119. cout<<"\nLa matriz es triangular superior...\n\n";
  120. }
  121. else if(aux2==0){
  122. cout<<"\nLa matriz es triangular inferior...\n\n";
  123. }
  124. }
  125. cout<<"\n\n";
  126. system("pause");
  127. }
  128.  


· Los códigos deben ir en etiquetas GeSHi
· No hagas doble post (la respuesta fue borrada)
>aquí las reglas del foro
-Engel Lex


« Última modificación: 3 Octubre 2017, 06:22 por engel lex » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
division matrices. inversa matrices
Programación C/C++
manuelita 4 26,001 Último mensaje 14 Abril 2008, 02:32
por Mayhem
matrices en c
Programación C/C++
ALONSOQ 9 1,980 Último mensaje 27 Junio 2012, 05:15
por twins
[C++] Matrices
Programación C/C++
C-- 4 1,143 Último mensaje 21 Noviembre 2012, 01:14
por C--
matrices en c
Programación C/C++
howaboutno 2 768 Último mensaje 26 Diciembre 2012, 05:53
por durasno
Ayuda Matrices Dispersas
Java
Web-On 5 1,461 Último mensaje 29 Marzo 2015, 18:13
por Usuario Invitado
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines