برنامه نویسی و دیگر هیچ

فضایی برایه یادگیری برنامه نویسی

برنامه نویسی و دیگر هیچ

فضایی برایه یادگیری برنامه نویسی

يكشنبه, ۱۹ آبان ۱۳۹۲، ۰۹:۰۷ ب.ظ

ماتریس (پایه دوم)

ماتریس چیست؟ هر ماتریس یک آرایش منظم از یه سری عدد هست!

مثلا به A میگن یه ماتریس .

همونطور که میبینید هر ماتریس از تعدادی سطر و ستون تشکیل شده.


الان A یه ماتریس 3 در 3 است !


و هر عنصر از ماتریس را از طریق سطر و ستون آن مشخص میکنیم ، aij  یعنی عنصر موجود در سطر i ام و ستون j ام.

مثلا اگر سطر ها و ستون ها را از 0 شماره گذاری کنیم عدد 3 در ماتریس A در سطر 0 ام و ستون 1 ام قرار دارد.3=a01 

سوال:

      برنامه ای بنویسید که در آن حاصل جمع دو ماتریس m در n را حساب و چاپ کند.در ابتدا سایز آنها یعنی m و n را  دریافت کرده، سپس مقادیر ماتریس اول و بعد مقادیر ماتریس دوم را از وردی گرفته و در نهایت ماتریس حاصل جمع را چاپ کند.


#include <conio.h>
#include <iostream>

using namespace std;

int main()
{

int i,j;
int m,n;
cout<<" andaze satr >>> ";
cin>>m;
cout<<"andaze soton >>> ";
cin>>n;

double matrix_a[m][n];
double matrix_b[m][n];
double matrix_sum[m][n];


cout<<endl<<"maghadir matris a >>> "<<endl;

for(i=0;i<m;i++){
cout<<"satr "<<i<<" : ";
for(j=0;j<n;j++)
{ cin>>matrix_a[i][j];}}

cout<<endl<<"maghadir matris b >>> "<<endl;

for(i=0;i<m;i++){
cout<<"satr "<<i<<" : ";
for(j=0;j<n;j++)
{ cin>>matrix_b[i][j];}}

for(i=0;i<m;i++){

for(j=0;j<n;j++)
{matrix_sum[i][j]=matrix_a[i][j]+ matrix_b[i][j];}}

cout<<endl<<"-------- namayesh matris a,b --------"<<endl<<endl;
for(i=0;i<m;i++){
for(j=0;j<n;j++)
{cout<<matrix_a[i][j]<<"\t"; }
cout<<"<> ";
for(j=0;j<n;j++){
cout<<matrix_b[i][j]<<"\t"; }
cout<<endl;
}


cout<<endl<<"-------- namayesh matris hasel jam --------"<<endl<<endl;
for(i=0;i<m;i++){
for(j=0;j<n;j++)
{cout<<matrix_sum[i][j]<<"\t"; }
cout<<endl;
}







getch();
}




هرگاه تعداد سطرها و ستون ها در یک ماتریس برابر شد به آن ماتریس مربعی گویند.


هر ماتریس مربعی یک قطر اصلی دارد، که برابر است با عناصری که شماره سطر و ستون آن یکی است: در ماتریس A عناصر تشکیل دهنده قطر برابر 1و 6و 5 هستند.


3 نوع از ماتریس های مربعی خیلی معروف هستند:

1- ماتریس بالا مثلثی


2- ماتریس پایین مثلثی


3-ماتریس قطری


بریم سراغ ماتریس بالا مثلثی:

هر ماتریس مربعی که تمام اعضای زیر قطر اصلی آن 0 بود بالا مثلثی است.


در واقع هر عنصر  در B که شماره سطر آن بیشتر از شماره ستون آن است 0 است. 

 0=b2,0=b0,1= b1,0

 

برای هر ماتریس بالا مثلثی n در n مانند B  رابطه زیر برقرار است.     

            

   i=0,1,...,n-1   , j=0,1,...,n-1


سوال: برنامه ای بنویسید که ابتدا تعداد سطر (یا ستون)   یک  ماتریس مربعی را دریافت کند. سپس عناصر هر سطر را دریافت کند بعد مشخص کند ماتریس بالا مثلثی هست یا نه.

#include <conio.h>
#include <iostream>

using namespace std;

int main()
{


int n; //n tedad satr
cout<<"tedad satr ra vared konid"<<endl;
cin>>n;

double matrix[n][n];

int i,j;
int c=0;

//meghdar dehi be anasor har satr
for(i=0;i<n;i++)
{ cout<<"satr "<< i<<": ";
for(j=0;j<n;j++)
cin>>matrix[i][j];
cout<<endl;}
//chaaap matris
for(i=0;i<n;i++)
{ for(j=0;j<n;j++)
cout<<matrix[i][j]<<"\t";
cout<<endl;}

for(i=0;i<n;i++)
{
for(j=0;j<i;j++){
if(matrix[i][j]!=0)
{c=1;}
}

}

if (c==0)
cout<<" matrix is Upper triangular;)";
else
cout<<" matrix is NOT Upper triangular!!!";

getch();}

ماتریس مهم بعدی--->  پایین مثلثی


ماتریس پایین مثلثی این شکلیه:


  یعنی هر چی عنصر بالای قطر اصلی باشه مقدارش حتما 0 هست.

و به عبارت دیگر: هر عنصری که شماره سطر آن کمتر از شماره ستون آن باشد مقدارش 0 است.


و در اینجا میبینیم که:

0=b1,2=b0,2= b0,1


  برای هر ماتریس پایین مثلثی n در n مانند B  رابطه زیر برقرار است.     

            

سوال: برنامه ای بنویسید که ابتدا تعداد سطر (یا ستون)   یک  ماتریس مربعی را دریافت کند. سپس عناصر هر سطر را دریافت کند بعد مشخص کند ماتریس پایین مثلثی هست یا نه.

#include <conio.h>
#include <iostream>

using namespace std;

int main()
{

int n; //تعداد سطر
cout<<"tedad satr ra vared konid"<<endl;
cin>>n;

double matrix[n][n];

int i,j;
int c=0;

//گرفتن اعداد از ورودی

for(i=0;i<n;i++)
{ cout<<"satr "<< i<<": ";
for(j=0;j<n;j++)
cin>>matrix[i][j];
cout<<endl;}

//چاپ ماتریس
for(i=0;i<n;i++)
{ for(j=0;j<n;j++)
cout<<matrix[i][j]<<"\t";
cout<<endl;}

for(i=0;i<n;i++)//چک کردی پایین مثلثی بودن ماتریس
{
for(j=i+1;j<n;j++)
{
if(matrix[i][j]!=0)
{c=1;}
}
}

if (c==0)
cout<<" matrix is Lower triangular;)";
else
cout<<" matrix is NOT Lower triangular!!!";

getch();}



نظرات  (۴)

  • فرزانه سجادپور
  • سلام:)

    چه جالب!!:)

    سلام خانم علیرضایی
    برای امتحان روز دوشنبه باید ماتریس رو هم بخونیم؟
    امتحان دوشنبه از مبحث گرافیک هم هست؟
    باتشکر :)
    پاسخ:
    سلام.

    ماتریس ها نیست.
    گرافیک هم حتما هست!

    موفق باشی;)
    کلاس 202 فردا امتحان داره؟!!!!!!!!!!!!
    پاسخ:
    نه! ولی اگه دلتون بخواد میشه داشته باشه:):)
    سلام.ضرب دو ماتریسو میخام :)
    پاسخ:
    سلام. اینجاست
    ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
    شما میتوانید از این تگهای html استفاده کنید:
    <b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
    تجدید کد امنیتی