السلام عليكم ورحمة الله وبركاته
شكرا على حسن تعاونكم معي
السؤال الذي عن string هي الموجودة في المكتبة القياسية
وعندي سؤال جديد الرجاء الأجابة عليه
أريد 2 dimmintion لل dinmic array
وايضا مثال على ضرب مصفوفتين
وشكرا جزيلا لكل اعضاء المنتدى
السلام عليكم ورحمة الله وبركاته
شكرا على حسن تعاونكم معي
السؤال الذي عن string هي الموجودة في المكتبة القياسية
وعندي سؤال جديد الرجاء الأجابة عليه
أريد 2 dimmintion لل dinmic array
وايضا مثال على ضرب مصفوفتين
وشكرا جزيلا لكل اعضاء المنتدى
عشان تضربين مصفوفتنين لام تعرفين مصفوفه ثالثه تخزنين فيها ناتج الضرب
طبعا راح تضربين كل المنت بالالمنت المقابل ليه
جربي انتي تحلين لانك اذا ماحليت مراح تعرفين لسي بلس بلس ابدا ولا راح تمشين فيه
فخذيها نصيحه وجربي سوي كود الضرب انا قلتلك الفكره وسؤال التو ديمنشن مافهمت السؤال
لعمل اي dinimc array او اي موقع بالذاكرة مثلا يكون ايضا dinimc
يجب عليكي ان تستخدمي دايناميك بوينترللمصفوفةdaynamic pointer
مثلا لدينا مصفوفة مكونة من 10 عناصر ونريد من المستخدم ان يدخل كل مررة عدد عناصر مختلف ويقرأها حتى لو زادت عن 10 عناصر سنكتب التالي:
int a[10];
int *p;
cin<<n;//n=10 or any other number
p=new int [n];
delete[]p;
والآن مثلا سيدخل المستخدم اي رقم آخر:
cin<<n;
p=new int [n];
مع المعذرة ان الأقواس غير مرتبة ولكن اعتقد ان طالبة برمجة مثلك تستطيع تركيب الجملة:D
الحل سهل جدا :)
أولا ، إذا المصفوفة كانت في بعدين ، لازم تكون pointer to pointer ، نحتاج pointer إلى الـ rows و pointer من الـ rows إلى الـ columns
//Our matrice, notw the "pointer to pointer" float** pMatrice; cout << "Please enter the rows: "; cin >> rows; cout << endl; cout << "Please enter the columns: "; cin >> columns; cout << endl; //Now, we will build the matrice with for loop m_pMatrice = new float*[rows]; // allocate pointers for the rows for(int i = 0; i < m_Rows; ++i) m_pMatrice = new float[columns]; // now allocate pointer for the columns //Destroying the matrice : for(int i = 0; i < m_Rows; ++i) delete[] m_pMatrice; // delete array for each row delete[] m_pMatrice; // delete column of pointers
فلما نستخدم مؤشر على مؤشر ، لازم نخزن ذاكرة اولا للـ rows ، و بعدين من الـ rows لي columns.
فمنطقيا ، لما انا اقول عندي مصفوفة 2*3 و كل صف فيها فيه مؤشر ، يعني هما كل عمود فيها فيه مؤشر
عشان جذي السطر الأخير في اللووب :
m_pMatrice = new float*[m_Rows]; // allocate m pointers for(int i = 0; i < m_Rows; ++i) m_pMatrice = new float[m_Columns]; // allocate n columns for each row
يعين كل من الصفوف i إلى columns :)
IDE : Microsoft Visual Studio 2005 Pro
هذا الموضوع مغلق.