الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

اريد تعديل كود ضرب المصفوفات

مغلق
بدأه ابى معاذ في 11 يونيو 2004 · 5 رد · 2,773 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم اريد تعديل كود ضرب المصفوفات بحيث يتم وصع ادخال المصفوفة وطباعة المصفوفة على الشاشة وعملية الضرب كل واحد على حدى في class

ولكم جزيل الشكر

#include<iostream.h>
int n;
	int mat1[10][10];
	int mat2[10][10];
	int res [10][10];

void read(){
	cout<<"type the size of mat\n";
	cout<<"n= ";cin>>n;
}


void readmat(int x[][10]){

	cout<<"\n enter mat \n";

	for(int i=0;i<n;i++)
  for(int j=0;j<n;j++)
 	 cin>>x[j];
}




void printmat(int x[][10]){
	cout<<"\n [\n";

   for(int i=0;i<n;i++)
    for(int j=0;j<n;j++){
 	 cout<<x[j];
 	 if(j<(n-1))cout<<" ";
 	 else cout<<"\n";
	}
	cout<<"]\n";
}



int multiplay(int x[][10],int y[][10]){

int s=res[n][n];
     for(int k=0;k<n;k++)
   for(int i=0;i<n;i++){
          res[k]=0;
           for(int j=0;j<n;j++)
      res[k]+=x[k][j]*y[j];
   }
   return s;
}


	main(){
	read();

	cout<<"mat1 is";
  readmat(mat1);
  printmat(mat1);
  cout<<"mat2 is";
  readmat(mat2);
  printmat(mat2);
  cout<<"the result is";
  multiplay(mat1,mat2);
  printmat(res);
  return 0;
	}

تم تعديل هذه المشاركة بواسطة ابى معاذ في 11 يونيو 2004 في 18:24

#2

السلام عليكم أخي ابو معاذ ..................فهمت من سؤالك أنك تريد class يحتوي على دوال قراءة وطباعة وضرب مصفوفتين ولذلك من فهمي كتبتلك الكود ولكن بشكل سريع جدا ولذلك حاول أن تجربه واذا كان من خطأ فأخبرني أو صححه أنت الكود في الملف المرفق تحياتي................

بالتوفيق أن شاء الله......................

array.cpp

اللهم علمنا ما ينفعنا وأنفعنا بما علمتنا أنك أنت العليم الحكيم

سبحان الله وبحمده سبحان الله العظيم

لاحول ولاقوة الا بالله( كنز من كنوز الجنة ).

#3

السلام عليكم اخي السهم الناري وبارك الله فيك

في الحقيقة هذا البرنامج عبارة عن مشروع في مادة ++C ولكن عدد الصفوف والاعمدة يتم ادخالها من المستخدم

جزاك الله خيرا اريد التعديل

#4

وعليك السلام أخي أبو معاذ حقيقة فهمت من كلامك أنك تريد عدد الصفوف وعدد الأعمدة يدخلها المستخدم ...

ولكن المصفوفات يجب تحديد سعتها مسبقا ( حجمها ) .....

أتوقع أنه لا يمكن فعل ذلك ....

هنالك طريقة الدنميكية في التعريف باستخدام new و delete مثلا يمكنك كتابة :

int a;
int * ptr = new [a];
delete ptr;

ويمكنك استخدامه مع ذات البعدين بنفس الطريقة ولكن مع تحديد أحد هما يا صف أو عمود ....

هذا والله أعلم .........

يمكن تجد أحسن مني من المحترفين هنا ويرد عليك ونستفيد أنا وأنت ....

مع أن أغلب الضن أنه لايمكن ذلك في المصفوفات.....

اللهم علمنا ما ينفعنا وأنفعنا بما علمتنا أنك أنت العليم الحكيم

سبحان الله وبحمده سبحان الله العظيم

لاحول ولاقوة الا بالله( كنز من كنوز الجنة ).

#5

أسف الكود كالتالي ::::::

int   a;
cin  >> a;

int * ptr = new  [a];


delte a;

أعمل تكرار للادخال وتكرار لطباعة العناصر ثم أعمل الحذف للمؤشر.....

اللهم علمنا ما ينفعنا وأنفعنا بما علمتنا أنك أنت العليم الحكيم

سبحان الله وبحمده سبحان الله العظيم

لاحول ولاقوة الا بالله( كنز من كنوز الجنة ).

#6

السلام عليكم ....

أهلا أخي أبو معاذ انا عدلت في الكود الذي يتبعك ولم أجد الا خطأ واحد فقط وأزلته بعلامة تعليق أرجوا الرجوع للكود ورؤيته ثم ترد على سؤالي التالي بكل صراحه::::

س/ تجد سطرا وضعت عليه تعليق فلماذا كتبة هذا السطر ومافائدته وأين تعريفه ؟؟؟؟

أي ما معنى هذا السطر ؟؟؟؟؟

#include<iostream.h>



int n;
int mat1/**/[10][10];
int mat2[10][10];
int res [10][10];

void read()
{
	cout<<"type the size of mat\n";
	cout<<"n= ";
	cin>>n;
}


void readmat(int x[][10]){

cout<<"\n enter mat \n";

for(int i=0;i<n;i++)
 for(int j=0;j<n;j++)
  cin>>x[j];
}




void printmat(int x[][10]){
cout<<"\n [\n";

  for(int i=0;i<n;i++)
   for(int j=0;j<n;j++)
   {
   cout<<x[j];
   if(j<(n-1))cout<<" ";
   else cout<<"\n";
	}

cout<<"]\n";

}



int multiplay(int x[][10],int y[][10])
{
	int s=res[n][n];

    for(int k=0;k<n;k++)
  for(int i=0;i<n;i++){
         res[k]=0;
          for(int j=0;j<n;j++)
     res[k]+=x[k][j]*y[j];
  }
  return s;
}


main()
{
     read();

  cout<<"mat1 is";
  readmat(mat1);
  printmat(mat1);
  cout<<"mat2 is";
  readmat(mat2);
  printmat(mat2);
  cout<<"the result is";
  multiplay(mat1,mat2);
  printmat(res);

  return 0;
}

اللهم علمنا ما ينفعنا وأنفعنا بما علمتنا أنك أنت العليم الحكيم

سبحان الله وبحمده سبحان الله العظيم

لاحول ولاقوة الا بالله( كنز من كنوز الجنة ).

هذا الموضوع مغلق.

مواضيع مشابهة