Programlama | Programlama Dilleri | C Programlama Dili |C++

Anasayfa Programlama C++ Builder Matris Toplama Ve Çarpma


Matris Toplama Ve Çarpma

Bu Program C++ Builder 6 ile uyumludur.

AÇIKLAMA

Matris toplarken iki matrisinde sütun ve satır sayılarının aynı olması gerekir.

Matrisleri çarparken 1.Matrisin sütunu ile 2.Matrsin Satırının aynı olması gerekir.

Programın Tamamını Aşağıdaki Linkten İndirebilirsiniz

Linki Görebilmeniz İçin Üye Olmanız Gerekmektedir...

Üye Kayıt

Program Kodu:

  1.  
  2. //---------------------------------------------------------------------------
  3.  
  4. #include <vcl.h>
  5. #pragma hdrstop
  6.  
  7. #include "Unit1.h"
  8. //---------------------------------------------------------------------------
  9. #pragma package(smart_init)
  10. #pragma resource "*.dfm"
  11. TForm1 *Form1;     String satirx,sutunx,satiry,sutuny;
  12. DynamicArray< DynamicArray <int> > matris1;
  13. DynamicArray< DynamicArray <int> > matris2;
  14. DynamicArray< DynamicArray <int> > sonuc;
  15. //---------------------------------------------------------------------------
  16. __fastcall TForm1::TForm1(TComponent* Owner)
  17.         : TForm(Owner)
  18. {
  19. }
  20. //---------------------------------------------------------------------------
  21.  
  22. void __fastcall TForm1::Button1Click(TObject *Sender)
  23. {
  24.  satirx=InputBox("1.Matrisin Satır Sayısı","Satır Sayısını Giriniz","");
  25.  sutunx=InputBox("1.Matrisin Sütun Sayısı","Sütun Sayısını Giriniz","");
  26.  matris1.Length=StrToInt(satirx);
  27.  for(int atama=0;atama<satirx;atama++)
  28.  {
  29.  matris1[atama].Length=StrToInt(sutunx);
  30.  }
  31. int x=StrToInt(satirx);
  32. int y=StrToInt(sutunx);
  33. String atanacak="";
  34. int kontrol=0;
  35. for(int i=0;i<x;i++)
  36. {
  37.  if(kontrol!=i)
  38.  {
  39.  atanacak="";
  40.  kontrol=i;
  41.  }
  42.  for(int j=0;j<y;j++)
  43.  {
  44.  String yazilacak=IntToStr(i);
  45.  yazilacak+=".";
  46.  yazilacak+=IntToStr(j)+" Elemanın Değerini Giriniz";
  47.  String eleman=InputBox(yazilacak.c_str(),"Değer Girişi","");
  48.  matris1[i][j]=StrToInt(eleman);
  49.  if((atanacak=="")&&(kontrol==i))
  50.  {
  51.  atanacak=eleman;
  52.  }
  53.  else if((atanacak!="")&&(kontrol==i))
  54.  {
  55.  atanacak+=" "+eleman;
  56.  }
  57.  
  58.  }
  59.  
  60.  Memo1->Lines->Add(atanacak);
  61. }
  62. }
  63. //---------------------------------------------------------------------------
  64.  
  65. void __fastcall TForm1::Button2Click(TObject *Sender)
  66. {
  67.  satiry=InputBox("2.Matrisin Satır Sayısı","Satır Sayısını Giriniz","");
  68.  sutuny=InputBox("2.Matrisin Sütun Sayısı","Sütun Sayısını Giriniz","");
  69.  matris2.Length=StrToInt(satiry);
  70.  for(int atama=0;atama<satiry;atama++)
  71.  {
  72.  matris2[atama].Length=StrToInt(sutuny);
  73.  }
  74. int x=StrToInt(satiry);
  75. int y=StrToInt(sutuny);
  76. String atanacak="";
  77. int kontrol=0;
  78. for(int i=0;i<x;i++)
  79. {
  80.  if(kontrol!=i)
  81.  {
  82.  atanacak="";
  83.  kontrol=i;
  84.  }
  85.  for(int j=0;j<y;j++)
  86.  {
  87.  String yazilacak=IntToStr(i);
  88.  yazilacak+=".";
  89.  yazilacak+=IntToStr(j)+" Elemanın Değerini Giriniz";
  90.  String eleman=InputBox(yazilacak.c_str(),"Değer Girişi","");
  91.  matris2[i][j]=StrToInt(eleman);
  92.  if((atanacak=="")&&(kontrol==i))
  93.  {
  94.  atanacak=eleman;
  95.  }
  96.  else if((atanacak!="")&&(kontrol==i))
  97.  {
  98.  atanacak+=" "+eleman;
  99.  }
  100.  
  101.  }
  102.  
  103.  Memo2->Lines->Add(atanacak);
  104. }
  105. }
  106. //---------------------------------------------------------------------------
  107.  
  108. void __fastcall TForm1::Button3Click(TObject *Sender)
  109. {
  110. Memo3->Lines->Clear();
  111. if((satirx==satiry)&&(sutunx==sutuny))
  112. {
  113.  sonuc.Length=StrToInt(satirx);
  114.  for(int atama=0;atama<satirx;atama++)
  115.  {
  116.  sonuc[atama].Length=StrToInt(sutunx);
  117.  }
  118.  String atanacak="";
  119.  int kontrol=0;
  120.  for(int i=0;i<satirx;i++)
  121.  {
  122.  if(kontrol!=i)
  123.  {
  124.  atanacak="";
  125.  kontrol=i;
  126.  }
  127.   for(int j=0;j<sutunx;j++)
  128.   {
  129.   sonuc[i][j]=matris1[i][j]+matris2[i][j];
  130.   String eleman=IntToStr(sonuc[i][j]);
  131.   if((atanacak=="")&&(kontrol==i))
  132.  {
  133.  atanacak=eleman;
  134.  }
  135.  else if((atanacak!="")&&(kontrol==i))
  136.  {
  137.  atanacak+=" "+eleman;
  138.  }
  139.  }
  140.  Memo3->Lines->Add(atanacak);
  141.  }
  142.  
  143. }
  144. else
  145. Application->MessageBox("Bu Matrisler Toplanamaz","UYARI",MB_ICONINFORMATION);
  146. }
  147. //---------------------------------------------------------------------------
  148.  
  149. void __fastcall TForm1::Button4Click(TObject *Sender)
  150. {
  151. Memo3->Lines->Clear();
  152. if(sutunx==satiry)
  153. {
  154.   sonuc.Length=StrToInt(satirx);
  155.  for(int atama=0;atama<satirx;atama++)
  156.  {
  157.  sonuc[atama].Length=StrToInt(sutuny);
  158.  }
  159.  String atanacak="";
  160.   int toplam;
  161.  for(int i=0;i<satirx;i++)
  162.  {
  163.  
  164.  for(int j=0;j<sutuny;j++)
  165.  {
  166.  
  167.   toplam=0;
  168.     for(int z=0;z<sutunx;z++)
  169.    {
  170.     int tut=matris1[i][z]*matris2[z][j];
  171.     toplam+=tut;
  172.    }
  173.   sonuc[i][j]=toplam;
  174.  }
  175.  
  176.  }
  177.  for(int p=0;p<satirx;p++)
  178.  {
  179.  String atanacak="";
  180.    for(int d=0;d<sutuny;d++)
  181.      {
  182.      if(d==0)
  183.      atanacak=IntToStr(sonuc[p][d]);
  184.      else
  185.      atanacak+=" "+IntToStr(sonuc[p][d]);
  186.      }
  187.      Memo3->Lines->Add(atanacak);
  188.  }
  189. }
  190. else
  191. Application->MessageBox("Bu Matrisler Çarpılamaz","UYARI",MB_ICONINFORMATION);
  192. }
  193. //---------------------------------------------------------------------------
  194.  

 

Yorumlar (0)
Sadece kayıtlı kullanıcılar yorum yazabilir!
Son Güncelleme ( Perşembe, 07 Nisan 2011 23:32 )