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

ممكن اترك السي++ بسبب المؤشرات الغثيثة :( سؤال بسيط عنها ؟

بدأه (( عبدالله )) في 17 أغسطس 2008 · 19 رد · 1,776 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

اخواني سبق لي وان تعلمت اساسيات السي++ من قبل وها انا اعود من جديد بنشاط وهمه عالية ان شاء الله ... اسأل الله ان يزيدها ولا تنقص ..

لكن الشيء الوحيد اللي غثني وجنني هو البوينتر ؟؟؟؟ يا اخي ليش بس السي هي اللي تحتوي على هذه التقنية الغثيثة الغبية ... :angry:

طيب الحين عندي سؤال بسيط وهو ....

انا لما تعلمت المصفوفات كانت فائدتها اختصار الكود البرمجي واكثر ذكاء من كتابة برنامج من الف سطر ... (( تذكرون سالفة كتابة درجة 100 طالب ))

طيب الحين البوينتر شنو فائدته ؟؟؟؟ بس عناوين في عناوين ؟؟؟؟؟؟؟ طيب شنو يختصر لي وهل في امور ما اقدر احلها إلا بالمؤشرات ؟؟؟؟

طيب انا بكمل اتعلم سي++ من دون مؤشرات هل ينفع ؟؟؟؟؟

وعاوز بعد اتعلم API هل يلزم اني اعرف بالمؤشرات ؟؟؟؟

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

لا إله إلا الله محمد رسول الله عليه الصلاة والسلام

سبحانك اللهم وبحمدك اشهد ان لا إله إلا انت استغفرك واتوب اليك

سأتقن الـ ++C و
PHP إن شاء الله تعالى ...

جاري العمل على
Microsoft Sql Server و MySQL ...

 

#2

انا الان انهيت جزء المؤشرات فى السى++ ,, هى ليست بالصعوبة التى كنت اتخيلها لكنها تلخبط قليلا خاصة المقارنة بينها و بين reference

اولا : راجع هذا الموضوع

ثانيا :

هل تعرف كود دالة swap ؟؟

دالة swap تستخدم pass by reference

  1.  
  2. //swap function using reference
  3. #include<iostream>
  4. using namespace std;
  5. void swap(int&, int&);
  6. int main()
  7. {
  8. int x,y;
  9. cout << "Enter 2 nums to be swapped: ";
  10. cin >> x >> y ;
  11. cout << "The nums before swap: " << x << " & " << y << endl;
  12. swap(x,y);
  13. cout << "The nums after swap are: " << x << " & " << y << endl;
  14. system("pause");
  15. return 0;
  16. }
  17.  
  18. void swap(int& x, int& y)
  19. {
  20. int temp;
  21. temp = x;
  22. x = y;
  23. y = temp;
  24. }
  25.  
  26.  

دالة swap تستخدم pointer parameters

  1.  
  2. //swap function using pointer
  3. #include<iostream>
  4. using namespace std;
  5. void swap(int*, int*);
  6. int main()
  7. {
  8. int x,y;
  9. int *ptrx;
  10. int *ptry;
  11. cout << "Enter 2 nums to be swapped: ";
  12. cin >> x >> y ;
  13. cout << "The nums before swap: " << x << " & " << y << endl;
  14. ptrx = &x;
  15. ptry = &y;
  16. swap(ptrx,ptry);
  17. cout << "The nums after swap are: " << x << " & " << y << endl;
  18. system("pause");
  19. return 0;
  20. }
  21.  
  22. void swap(int* x, int* y)
  23. {
  24. int *temp;
  25. int tempo;
  26. temp = &tempo;
  27. *temp = *x;
  28. *x = *y;
  29. *y = *temp;
  30. }
  31.  
  32.  

#3
! عبدالله ! كتب:
لكن الشيء الوحيد اللي غثني وجنني هو البوينتر ؟؟؟؟ يا اخي ليش بس السي هي اللي تحتوي على هذه التقنية الغثيثة الغبية ... :angry:

مين قالك ياصديقي ان السي هي فقط الي تحتوي على البوينتر ؟ :blush:

! عبدالله ! كتب:
طيب الحين عندي سؤال بسيط وهو ....

انا لما تعلمت المصفوفات كانت فائدتها اختصار الكود البرمجي واكثر ذكاء من كتابة برنامج من الف سطر ... (( تذكرون سالفة كتابة درجة 100 طالب ))

طيب الحين البوينتر شنو فائدته ؟؟؟؟ بس عناوين في عناوين ؟؟؟؟؟؟؟ طيب شنو يختصر لي وهل في امور ما اقدر احلها إلا بالمؤشرات ؟؟؟؟

اصلا اسم المصفوفة هو مؤشر لبداية العناصر :blush:

تبغى تعرف فائدة المؤشرات ؟ :blush:

بما انك تتكلم على المصفوفات راح اعطيك فائدة صغنونة من فوائد المؤشرات العظيمة .

من خلال المؤشرات تقدر تحجز مصفوفة ديناميكية , يعني المستخدم هو الي يدخل عدد عناصر المصفوفة مو المبرمج . ! ! ! :blush:

llback.jpg

اشهد ان لا إله إلا الله وان محمدا ً رسول الله

#4

اخ عبدالله اولا كيف حالك ..

شلون تذم المؤشر وبنفس الوقت تمدحه ؟

"انا لما تعلمت المصفوفات كانت فائدتها اختصار الكود البرمجي واكثر ذكاء من كتابة برنامج من الف سطر ... (( تذكرون سالفة كتابة درجة 100 طالب ))"

" يا اخي ليش بس السي هي اللي تحتوي على هذه التقنية الغثيثة الغبية "

وهل تعلم بان المصفوفات هي مؤشرات ؟

هل تعلم بان المصفوفه هي مؤشر يحجز اول عنوان لها ..

Pmyarray[2] = *(Pmyarray+2)

ينفذان نفس الغرض .

المؤشرات لها فوائد كثيره اخي العزيز .. ولكن ارجع الى الدروس في المنتدى .

تحياتي للجميع

سبحان الله , الله اكبر , ولله الحمد

#5

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

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#6

اخوي عمر انت عقدت علي الموضوع اكثر ... وبالنسبة للموضوع فجزاك الله خير ....

يمكن معقد علي لاني منزعج شوي من المؤشرات وما اعتقد اني بحبها في يوم من الأيام ^^ ...... إلا ان يشاء الله .......

اخوي تايم ...

اللي قال لي هذه النقطة ..

6) من أعقد الموضوعات في لغـة السي والسي بلس بلس موضوع المؤشرات ... أفضل طريقة حتى تفهـم موضوع المؤشرات هـو أن تعتبرها مثل صناديق البريد حتى تفهـمها ... حتى فهـمها منك لا يعـني أنها ستكون طريقة آمنـة بل تعتبر هي من أعقد المواضيع ويكفيك أصلاً أن هذه التقنية ليست موجودة في غير هاتين اللغتين.

في هذا الموضوع ... /index.php?showtopic=82409

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

هذه الفائدة حلوه ، بس يا اخي والله انها تغث هالمؤشرات .... مره * ومره & ومره تطبعها كذا ومره كذا ؟؟؟؟ ما صفينا على وضع واحد ؟؟؟ دائماً متقلبه ...

انا استنتجت شغله وهي للي يبي يتعلم السي ... نصيحة لوجه الله اذا وصلت لموضوع المؤشرات لا تتعلمه من كتاب وانما من معلم افضل واحسن حتى ما تكرههــــا مثلي ):

اخوي عزيز انا بخير جعل ايامي وايامك والجميع كلها خير ...

ولله الحمد والمنة ...

انا ما ذميتهـا ... وللمعلومة لأول مره اعرف ان المصفوفات عبارة عن مؤشرات ....

اييييييييييييه يا جيمنج ماستر ،، شكلي بحول من سي الى اي لغة ...

لكن المشكلة ان اللي محببني بالسي هو مديح الكثير لها وانها افضل لغة بمجة على الأطلاق ، وكانت سهلة معي في البداية حتى ني تعلمت امور كثيرة منها ،

الأسياسيات خلصت منها تقريباً كثير لكن المؤشرات غثتني ...

الآن بحاول احوس في المواضيع اللي تشرح المؤشرات لعل وعسى استوعب منها شيء ....

<<<<<<< للمعلومة الرجال قاعد يتعلم من كتاب الأكسير <<<< جزى الله صاحب الكتاب خير الجزاء ....

ومشكورين على الردود ...

لا إله إلا الله محمد رسول الله عليه الصلاة والسلام

سبحانك اللهم وبحمدك اشهد ان لا إله إلا انت استغفرك واتوب اليك

سأتقن الـ ++C و
PHP إن شاء الله تعالى ...

جاري العمل على
Microsoft Sql Server و MySQL ...

 

#7

اخي عبدالله مرحبا بك مرة اخرى ,

يوجد لدي دروس جيده وبسيطة ومفعمه بالصور لتفهم ماهية المؤشرات وكيف تتعامل معها , وانا على ثقه عندما تتعلمها وتتقنها لن تستخدم غيرها :blush:

سأقوم برفعها حالما اعود من الجامعة , واذا تكرمت علي شركة الاتصالات وجدت المودم شغال , :wacko:

تحياتي . . .

llback.jpg

اشهد ان لا إله إلا الله وان محمدا ً رسول الله

#8
اقتباس
اخوي عمر انت عقدت علي الموضوع اكثر ... وبالنسبة للموضوع فجزاك الله خير ....

اسف يا اخى والله ..... كل ما كنت اقصده انى اوريك برنامج يستخدم pointers المؤشرات فى عمله .....

و لكن كما قال بقية الاخوة له فوائد كثير منها Dynamic memory allocating يعنى انك تحدد ما تحتاج من الذاكرة بطريقة dynamic يعنى اثناء وقت تنفيذ البرنامج run time لكن بدونها انت مضطر لتحدد الذاكرة اثناء وقت كتابة البرنامج ......

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

بذلك سوف تضطر لتستخدم المؤشرات لــــ Dynamic memory allocating

وفقك الله

#9

اي والله ياليت اخوي تايم تعطيني الدروس ... لاني عاوز اشياء كثيرة حتى استوعب الموضوع اكثر ...

وبالنسبة لأخوي عمر ...

اشكرك كل الشكر وجزاك الله خير على الرابط اللي فوق ... لانه فادني كثير .. ولقيت موضوع عن المؤشرات قرب لي الصورة اكثر ...

ان شاء الله افهمها بأسرع وقت ممكن ...

لكن ابغى منكم شيء واحد وهو ...

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

لا إله إلا الله محمد رسول الله عليه الصلاة والسلام

سبحانك اللهم وبحمدك اشهد ان لا إله إلا انت استغفرك واتوب اليك

سأتقن الـ ++C و
PHP إن شاء الله تعالى ...

جاري العمل على
Microsoft Sql Server و MySQL ...

 

#10

فى مكتبة المنتدى ... يوجد كتاب Deitel C++ How to program .... به اسئلة بعد نهاية كل فصل ... و يوجد ايضا حل لها فى المكتبة ايضا

حملهم و تمرن كثيرا و انظر للحل الصحيح حتى تتضح لك الصورة باذن الله

#11

جزاك الله خير اخوي على الرد والمشاركة المساعدة ..

وسوف احصل على الكتاب ان شاء الله تعالى واطور نفسي من خلاله ...

لكن لفت نظري شيء وهو ...

المعاير القياسية للغة سي++ للتحميل ....

ما المقصود بهذه الجملة بالأحرى .. ما معناهــــــــــا ؟؟

لا إله إلا الله محمد رسول الله عليه الصلاة والسلام

سبحانك اللهم وبحمدك اشهد ان لا إله إلا انت استغفرك واتوب اليك

سأتقن الـ ++C و
PHP إن شاء الله تعالى ...

جاري العمل على
Microsoft Sql Server و MySQL ...

 

#12

اهلين اخوي عبدالله , تفضل هذي دروس ممتازة عن المؤشرات , ان شاء الله انها تفيدك .

ادعي للي سواها بظهر الغيب :blush:

تحياتي . . .

____________.zip

_____________2.zip

_____________3.zip

llback.jpg

اشهد ان لا إله إلا الله وان محمدا ً رسول الله

#13
اقتباس
المعاير القياسية للغة سي++ للتحميل ....

ما المقصود بهذه الجملة بالأحرى .. ما معناهــــــــــا ؟؟

لغة السى++ لغة قياسية , قامت منظمة ANSI و منظمة ISO بوضع معايير قياسية لها ... اى غير مملوكة لشركات .... لذلك ستجد ان اى كود standard يعمل على كل المترجمات بنفس الشكل و دون اى تغيير

ISO

ANSI

اعذرنى انا لا املك معلومات كثيرة فى هذا الموضوع .....

Standard library

The 1998 ANSI/ISO C++ standard consists of two parts: the core language and the C++ standard library; the latter includes most of the Standard Template Library (STL) and a slightly modified version of the C standard library. Many C++ libraries exist which are not part of the standard, and, using linkage specification, libraries can even be written in languages such as C, Fortran, Pascal, or BASIC. Which of these are supported is compiler dependent.

The C++ standard library incorporates the C standard library with some small modifications to make it work better with the C++ language. Another large part of the C++ library is based on the STL. This provides such useful tools as containers (for example vectors and lists), iterators to provide these containers with array-like access and algorithms to perform operations such as searching and sorting. Furthermore (multi)maps (associative arrays) and (multi)sets are provided, all of which export compatible interfaces. Therefore it is possible, using templates, to write generic algorithms that work with any container or on any sequence defined by iterators. As in C, the features of the library are accessed by using the #include directive to include a standard header. C++ provides 69 standard headers, of which 19 are deprecated.

The STL was originally a third-party library from HP and later SGI, before its incorporation into the C++ standard. The standard does not refer to it as "STL", as it is merely a part of the standard library, but many people still use that term to distinguish it from the rest of the library (input/output streams, internationalization, diagnostics, the C library subset, etc.).

Most C++ compilers provide an implementation of the C++ standard library, including the STL. Compiler-independent implementations of the STL, such as STLPort, also exist. Other projects also produce various custom implementations of the C++ standard library and the STL with various design goals.

هذه الفقرة من wiki رابط C++

#14

مختصر مفيد ولو انه غير كافي ، لكن جزاك الله خير على المعلومة السريعة وبارك الله فيك ...

اخوي تايم .. اشكرك كل الشكر وجزاك الله خير واسأل الله ان يوفقنا واياك وصاحب الدروس لما يحبه ويرضاه ... وان لا يحرمنا الأجر ... امتداد الدروس PPS ما البرنامج الذي يفتحهـا ؟

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

فلقد استوعب معنى المؤشرات وفائدتهـا ... وكذك عرفت كيف ان المصفوفات عبارة عن مؤشرات ... لكن استخدام المؤشر افضل لانه لا يلزمني بتحديد عدد معين التزم به ...

لكن لدي بعض الملاحظات ::::

عندما اعلن عن مصفوفة هكذا ...

int  x[5];

بهذه الحالة ليس شرط علي ان التزم بهذا الرقم ... وانما استطيع ان اتعداه الى 10 مثلاً ... دون ان اوضح ذلك في التعريف ...

يعني استطيع ان اكتب هكذا

	for(int i=0; i<10; i++ )
			{
				x = i;
						 }

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

ذكر صاحب الكتاب (هيثم) .. ان من الفروق هي ...

حجم مصفوفة المؤشرات ديناميكي او المصفوفة العادية فهو ثابت ؟؟؟ وانا اثبتت فوق انه ليس بثابت ؟؟؟؟ ممكن توضح لي اللبس بالموضوع ...؟؟؟ انا اعلم ان صاحب الكتاب لم يخطأ انما انا الذي فهمت غلط ^^ او اكون محق ربمـا ...

تم تعديل هذه المشاركة بواسطة ! عبدالله ! في 19 أغسطس 2008 في 11:16

لا إله إلا الله محمد رسول الله عليه الصلاة والسلام

سبحانك اللهم وبحمدك اشهد ان لا إله إلا انت استغفرك واتوب اليك

سأتقن الـ ++C و
PHP إن شاء الله تعالى ...

جاري العمل على
Microsoft Sql Server و MySQL ...

 

#16
اقتباس
اخوي تايم .. اشكرك كل الشكر وجزاك الله خير واسأل الله ان يوفقنا واياك وصاحب الدروس لما يحبه ويرضاه ... وان لا يحرمنا الأجر ... امتداد الدروس PPS ما البرنامج الذي يفتحهـا ؟
'

بور بوينت :blush:

llback.jpg

اشهد ان لا إله إلا الله وان محمدا ً رسول الله

#17

بسم الله الرحمن الرحيم

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

بالنسبة لسؤالك اخي عبد الله

بالفعل يا اخي انت اثبت انه يمكن تسجيل اكثر من خمس قيم في مصفوفة حجمها لا يتجاوز 5

ولكن جرب ان تطبع قيمة اي منها

بمعنى اخر...جرب كتابة هذا الكود بعد الانتهاء من الامر for

cout<<x[8] ; //error

مثلا

ستجد ان القيمة قد ظهرت ...ولكن بعدها ستظهر لك رسالة خطأ

لهذا يجب الا تتخطى حجم المصفوفة المسجل من قبل

ولهذا تعتبر مصفوفة ذات حجم ثابت

لانك لو اردت استخدام قيمة خارج حدد تك المصفوفة ستظهر لك رسالة خطأ

أما مصفوفة المؤشرات فهي تمكنك من ذلك دون ظهور رسالة الخطأ وهو ما كان يقصده الكاتب

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

تم تعديل هذه المشاركة بواسطة اسلام حسن في 20 أغسطس 2008 في 03:24

#18

حلو حلو .. بور بوينت .. تصدق من زمان ما فتحت ملفات فيه ... ونسيته ونسيت كل شيء فيه ^^ ...

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

اخي جربت طباعة القيمة التاسعة من المصفوفة المكونة من 5 قيم ( معرفة مسبقاً ) ، ولم يعطني اي خطأ يذكر ....؟؟؟؟

لا إله إلا الله محمد رسول الله عليه الصلاة والسلام

سبحانك اللهم وبحمدك اشهد ان لا إله إلا انت استغفرك واتوب اليك

سأتقن الـ ++C و
PHP إن شاء الله تعالى ...

جاري العمل على
Microsoft Sql Server و MySQL ...

 

#19

جرب كتابة هذا الكود


using namespace std;
int main()
{
int arr[5];

for(int i=0; i<11; i++)
{
arr=i;
}


cout<<arr[10];
return 0;
}
#include <iostream>

هل ظهرت لديك تلك الرسالة

vcvu8.jpg

#20

لم احصل على اي رسالة خطأ .......؟

استخدم برنامج .. ++Dev C .....؟

لا إله إلا الله محمد رسول الله عليه الصلاة والسلام

سبحانك اللهم وبحمدك اشهد ان لا إله إلا انت استغفرك واتوب اليك

سأتقن الـ ++C و
PHP إن شاء الله تعالى ...

جاري العمل على
Microsoft Sql Server و MySQL ...

 

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…