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

تعريف مصفوفه

مغلق
بدأه c++2003 في 9 نوفمبر 2003 · 3 رد · 834 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اريد ان اعرف مصفوفه ذات بعدين اريد ان يقوم المستخدم بادخال البعدين

او اي طريقه استطيع من خلالها تغير ابعاد المصفوفه

وشكرا

abdullahf4.jpg
#2

عدد عناصر المصفوفة يجب أن يحدد أثناء التعريف

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

مثلا":

تتوقع أن تكون المصفوفة 3 * 3 فتعرف مصفوفة 10 * 10 وعلى المستخدم ادخال الأبعاد

على ألا تزيد عن 10 * 10

الكود:

#include <iostream>

using namespace std;

int main()

{

int a[10][10],i,j,count1,count2;

cout<<"Enter first dim:";

cin>>i;

cout<<"Enter second dim:";

cin>>j;

cout<<"a["<<i<<"]["<<j<<"]\n\n";

for(count1=0 ; count1<i ; count1++)

{

for(count2=0 ; count2<j ; count2++)

{

cout<<"a["<<count1<<"]["<<count2<<"]:";

cin>>a[count1][count2];

}

}

return 0;

}

#3

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

ياأخ c++ 2003 ... جيد منك هذا السؤال فهو فعلا من الامور القوية والمهمة في البرمجة ...

لكن كما تعلم لا يمكنك اختيار حجم المصفوفة سواء كانت بعد واحد أو بعدين أو أكثر في وقت تشغيل البرنامج يجب تعريفها مسبقا داخل البرنامج ... فلا يمكن جعل المستخدم يقوم بادخال البعد بال cin أو أي طريقة أخرى ...

الحل :

ان تقوم باستخدام التعابير المعقدة في المؤشرات ...

مثلا لحجز 10 خانات int بدون استخدام المصفوفات ... يجب أن نستخدم المؤشرات على النحو التالي....

; int x

; cin >>x

; int * p

;[ p = new int [x

ه>ا بالنسبة للبعد الواحد ...

أما بالنسبة للعدين ...

; int x ,y

; cin >> x>>y

; int ** p

; [ p = new int * [x

لاحظ أننا سنحجز من النوع int * وليس int بالطريقة العادية ...

ثم بعد ذلك ننشيء حلقة

for ( int e=0;e<ء;e++) // Our foor loop to reserve the second dimension

{

= (p+e)*

[ new int [y

}

في المرة الاولى حجزنا البعد الاول أم هنا يسنحجز البعد الثاني ...

ولكل خانة من البعد الاول لها بعد ثاني عدد خاناته y ....

لذا قمنا بتعريف ال لووب بعدد خانات البعد الأول لنقوم بعملية حجز لكل خانه فيها .. للبعد الثاني بالعدد Y ...

بالمناسبة الموضوع صعب قليلا فلا تجزع ...

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

قريبا سنصل الى موضوع الابعاد ... وبعض المواضيع الاخرى ...

وكل من له أسأله في المؤشرات نرجو أن يقوم بطرحها لأننا سنتناولها جميعا في نهاية الجلسات ...

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#4

عندنا ايضا طريق اخرى وهي عن طريق القوائم المترابطه (link list) وهذه الطريقه

صعبه للشخص الشخص المبتدى وهي طريق طويله وتخيليه (انك تتخيل مصفوفه ذات البعدين) عن طريق Linked list

عموما البرنامج سوف ارفقه وارجو ان يكون واضح

testing.cpp

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

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