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

dynamic array and function

بدأه فارس2010 في 5 أكتوبر 2011 · 8 رد · 1,015 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اعمل علي برنامج رياضي الاساس فيه مصفوفه دايناميكيه تحدد علي اساس مدخلات المستخدم فكيف اتعمال مع الدوال حيث اني لا اعرف كيفيه ارسال المصفوفه الي داله voidلاني لا اعلم ابعادها فهل هناك حل ام اني لا يمكني استخدام الدوال

وعندي سوال اخر هل ابعاد المصفوفه الثنائيه يمكن ان تكون اكثر من [1000000][1000000]

وجزاكم الله خيرا

#2
فارس2010 كتب:

السلام عليكم

اعمل علي برنامج رياضي الاساس فيه مصفوفه دايناميكيه تحدد علي اساس مدخلات المستخدم فكيف اتعمال مع الدوال حيث اني لا اعرف كيفيه ارسال المصفوفه الي داله voidلاني لا اعلم ابعادها فهل هناك حل ام اني لا يمكني استخدام الدوال

وعندي سوال اخر هل ابعاد المصفوفه الثنائيه يمكن ان تكون اكثر من [1000000][1000000]

وجزاكم الله خيرا

[1000000][1000000]

ده معنها ان الحجم النهائي حيكون 1 تيرا بايت

هل انت عاندك 1TB memory?

http://www.wolframalpha.com/input/?i=1000000*1000000+bytes+

الاحسن انك تستخدم data structure.

مثلا:

تعمل linked list بي الحجم الي انت عاوزه و تكون 2d و تبعت pointer للfunction الي انت عاوزها.

بلنسبه للحجم, استخدم اي database من الي بتخزن معلومات كبيره.

1

وَمَا أُوتِيتُمْ مِنْ الْعِلْمِ إِلاَّ قَلِيلاً

#3

شكرا اخي احمد ...

انت اجبت علي الجزء الثاني من السؤال...ولكن اجابه الجزء الاول وهو التعامل بين المصفوفات الديناميكيه والدوال ارجو ان يساعدني اح اعضء المنتدي لان المشروع متوقف علي هذا

#4

ممكن تعمل مصفوفه ديناميكيه ثنائية الابعاد او اكثر باستخدام المؤشرات مثلا اذا كنت تستخدم C++

int ** array;

int size;
cout <<"Enter the size"<<endl;
cin >>size;
array = new int *[size];
for(int i = 0; i < size ; i++)
array = new int[size];

في السي

int ** array;

int size;
printf("Enter the size\n");
scanf("%d", &size);
array = (int **) malloc(size * sizeof(int *));
for(int i = 0; i < size ; i++)
array = (int *) malloc(size * sizeof(int));

تم تعديل هذه المشاركة بواسطة mental-driller في 9 أكتوبر 2011 في 21:46

2

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

#5

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

#6

خلي الداله تاخذ مؤشر بدل مصفوفه ،ارسلها كمؤشر pointer وليس كمصفوفه

تم تعديل هذه المشاركة بواسطة mental-driller في 13 أكتوبر 2011 في 17:51

1

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

#7

ان شاء هجربها وارد علي حضرتك وانا اسف علي ازعاجك

طب ممكن الكود الارسال

#8

البروتوتايب للدالة بيكون كده

void func(int**);

والاستدعاء بيكون كده

int** arr ;
..
func(arr);
1

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

#9

جزاك الله خيرا اخي الفاضل وزادك الله من علمه

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