ماتریس Spars


 برنامه "ماتریس اسپارس" به زبان ++C. 

 

ماتریس اسپارس:همانطور که می دانید به ماتریسی که تعداد زیادی از عناصر آن صفر باشند ، ماتریس اسپارس گفته می شود.
اینگونه ماتریس ها فضای زیادی از حافظه را بهدر می دهند.
برای جلوگیری از این مشکل تنها،عناصر غیر صفر ماتریس به همراه اندیس 

 آن نگهداری می شود که باعث صرفه جویی قابل ملاحظه ای در حافظه می شود.
این ماتریس دارای سه ستون و تعداد سطرهای آن به اندازه عناصر غیر صفر می باشد. 


 
برای مشاهده سورس برنامه به ادامه مطلب مراجعه فرمایید.



برنامه "ماتریس اسپارس" به زبان ++C.

 

#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#define MAX 100
void main()
{
 textcolor(7);
 textbackground(1);
 clrscr();
 int inmat[MAX][MAX];
 int row[MAX-1],rowc=0;
 int col[MAX-1],colc=0;
 int digit[MAX],digitc=0;
 int n,k;
 cout<<"\n\n\n\tPlease Enter Number For Input Data: ";
 cin>>n;
 for(int i=0;i<n;i++)
  for(int j=0;j<n;j++)
  {
   cout<<"\n\n\tEnter inmat["<<i<<"]["<<j<<"]: ";
   cin>>inmat[i][j];
   if(inmat[i][j]!=0)
   {
    row[rowc++]=i;
    col[colc++]=j;
    digit[digitc++]=inmat[i][j];
   }
  }
 clrscr();
 cout<<"\n\n\n\tOutput Matrix(SPARS MATRIX)=\n\n";
 cout<<"\tR o w\tColumn\tDigit<>'0'\n\n\t  ";
 for(k=0;k<digitc;k++)
 {
  cout<<row[k]<<"\t  ";
  cout<<col[k]<<"\t  ";
  cout<<digit[k]<<"\n\t  ";
 }
 getch();
}