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

ساعدوني"2 dimintion للdinamic array

مغلق
بدأه أمنية في 22 أبريل 2007 · 3 رد · 593 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

شكرا على حسن تعاونكم معي

السؤال الذي عن string هي الموجودة في المكتبة القياسية

وعندي سؤال جديد الرجاء الأجابة عليه

أريد 2 dimmintion لل dinmic array

وايضا مثال على ضرب مصفوفتين

وشكرا جزيلا لكل اعضاء المنتدى

#2

عشان تضربين مصفوفتنين لام تعرفين مصفوفه ثالثه تخزنين فيها ناتج الضرب

طبعا راح تضربين كل المنت بالالمنت المقابل ليه

جربي انتي تحلين لانك اذا ماحليت مراح تعرفين لسي بلس بلس ابدا ولا راح تمشين فيه

فخذيها نصيحه وجربي سوي كود الضرب انا قلتلك الفكره وسؤال التو ديمنشن مافهمت السؤال

#3

لعمل اي 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

#4

الحل سهل جدا :)

أولا ، إذا المصفوفة كانت في بعدين ، لازم تكون 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 :)

:::كوت بو 6:::

IDE : Microsoft Visual Studio 2005 Pro

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

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