برمجة - شبكات - كمبيوتر - منتديات الفريق العربي للبرمجة: ماهـو الـ struct ... والـ #define ... وفائدتهما .؟ - برمجة - شبكات - كمبيوتر - منتديات الفريق العربي للبرمجة

اقفز إلى الموضوع

  • (2 صفحات) +
  • 1
  • 2
  • لا تستطيع بدء موضوع جديد
  • الموضوع مقفل

ماهـو الـ struct ... والـ #define ... وفائدتهما .؟ بالـسي وليس الـC++ :) .. اتمنى الافاده قيم الموضوع: -----

#1 العضو غير متواجد حاليا   MsH3AL 

  • عضو جديد
  • Pip
  • المجموعة: اعضاء
  • المشاركات: 42
  • الإلتحاق: 26-June 05
السمعة: 0
عادي

تمت المشاركة 08 September 2005 - 10:29 PM

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


مرحبا يااخوان ..


بالصراحه الـ ستراكت struct .. ماني عارف شنو فايدته بالاساس وهذا خلاني مااعرف شلون طريقة عمله .. :(

ونفس الشي للثابت الـ #define :rolleyes:

بارك الله فيكم.. واتمنى الافاده لاهنتم اخواني..


اخوكم.
0



#2 العضو غير متواجد حاليا   SoNaTa 

  • عضو
  • PipPip
  • المجموعة: اعضاء
  • المشاركات: 155
  • الإلتحاق: 12-June 05
  • الدولة:العراق
السمعة: 0
عادي

تمت المشاركة 08 September 2005 - 10:59 PM

هلا مشعل,,,, ال struct او السجلات , هي عباره عن عده تغيرات ممكن تكون اكثر من نوع تندرج تحت اسم واحد مثلا

struct info
{
char name;
int age;
int phone;
}

فائدتها هي تنظيم البرامج الكبيره , يعني تخيل عندك برنامج كبير لمعلومات عن المؤظفين , طبعا بأستعمال ال structures رح يتنظم برنامج مثل هذا بشكل كبير ورح يسهل عليك تنقيحه وتطويره. طبعا انا اعرف ان الكلام اللي قلته يمكن يكون مو مفهوم بالنسبه لك , لكن انتظرني هاليومين وانا بجهز شرح عنها.

بالنسبه لل #define , فهي احدى اوامر ال preprocessor او المعالجه الاوليه , هو وبكل بساطه لتعريف ثابت او قيمه ثابته . وممكن تستخدم قيمه الثابت في اي مكان بالبرنامج مثلا

#define Num 16

عالعموم بما أنك جديد لا تشغل نفسك بال preprocessor حاليا , تعلم بقيه الاشياء وال preprocessor خليها لما تتعلم بقيه الاساسيات
0

#3 العضو غير متواجد حاليا   MsH3AL 

  • عضو جديد
  • Pip
  • المجموعة: اعضاء
  • المشاركات: 42
  • الإلتحاق: 26-June 05
السمعة: 0
عادي

تمت المشاركة 09 September 2005 - 12:15 AM

هلا اخوي SoNaTa بارك الله فيـك ... بصراحه اتضحت المعلومات :)

بس لاهنت اخوي ممكن مثال بسيط.. يعني كود ولو بسيط جداً .. لمعرفة اين مكانها بالكود .. وطريقتها في الكتابه.. :rolleyes:
0

#4 العضو غير متواجد حاليا   ibn_als3odiah 

  • عضو فعال
  • PipPipPip
  • المجموعة: اعضاء
  • المشاركات: 329
  • الإلتحاق: 12-September 04
السمعة: 0
عادي

تمت المشاركة 09 September 2005 - 12:58 AM

مشعل قد تفيدك هذه المشاركة:
انظر الى الاستفسار الثاني وأظن المبدأ نفسه في C++وفي الC#

http://www.arabteam2...showtopic=73620



أسال الله لنا ولك التوفيق

تم تعديل هذه المشاركة بواسطة ibn_als3odiah: 09 September 2005 - 01:01 AM

0

#5 العضو غير متواجد حاليا   MsH3AL 

  • عضو جديد
  • Pip
  • المجموعة: اعضاء
  • المشاركات: 42
  • الإلتحاق: 26-June 05
السمعة: 0
عادي

تمت المشاركة 09 September 2005 - 03:05 AM

بارك الله فيك اخي ibn_als3odiah ..,, والمثال غير واضح :)


وبنتظر احد يعطينا ولو مثال بسيط..
0

#6 العضو غير متواجد حاليا   Ayoub JAMAL EL IDRISSI 

  • Crazy-Man سابقا
  • أيقونة
  • المجموعة: المشرفون
  • المشاركات: 2128
  • الإلتحاق: 08-April 04
  • الجنس:ذكر
  • الدولة:بلاد غروب الشمس ...
  • الدولة :

السمعة: 0
عادي

تمت المشاركة 09 September 2005 - 05:40 AM

بالنسبة لل struct فهي كما قال لك الأخ تساعد في تنظيم البرنامج لنأخذ نفس مثال الأخ لدينا برنامج لشؤون الموظفين عن طريق ال struct سننشأ struct تضم جميع ما يهم الموظف 'Employee'
و هذا مثال لذلك
struct Employee {

	int age;
	int salary;
	int Childrens;
};

و من أجل العمل بهذا ال struct اليك هذا الكود
void main()
{
	Employee ahmed;
	ahmed.age=20;
	ahmed.Childrens=3;
	ahmed.salary= 3000;

	cout << ahmed.age << endl;
	cout << ahmed.Childrens  << endl;
	cout << ahmed.salary << endl;
}

اما ال #define فقد شرح لك الأخ الفاضل معناها و لزيادة التوضيح فان كل ما يأتي خلف ال # يتم تنفيذ اولا أينما وجد
و الله أعلم
0



#7 العضو غير متواجد حاليا   bashmohandes 

  • مشرف قسم C#
  • PipPipPipPipPip
  • المجموعة: المشرفين القدامى
  • المشاركات: 3189
  • الإلتحاق: 29-March 05
  • الجنس:ذكر
  • الدولة:Redmond, WA
  • اهتمامات:Music, Games, Football, GYM, Computers, blogging
  • الدولة :

السمعة: 2
عادي

تمت المشاركة 09 September 2005 - 06:08 AM

بالنسبة الpreprocessors فان تنفيذها يتم قبل عملية الCompile و يتم فيها تنفيذ جميع الأوامر مثل Include و ازالة كل هذه الأوامر و استبدالها بما تشير اليه بمعنى اذا كنت تبدأ الكود ب #Include <stdio.h> فسوف تُحذف هذه الجملة و يحل محلها النص المكتوب داخل الملف stdio.h
و أيضاً بالنسبة للdefine بفرض أنك قمت بكتابة#define MAX_LOOP 100 فانه سيتم استبدال كل كلمات MAX_LOOP في الكود بالقيمة 100 و ليس حتى بالقيمة بل بالنص 100 فلم يصل الكومبايلر بعد ليفرق بين النصوص و القيم و لهذا فاستخدام الPreprocessing يكون أسرع فأنت توفر الذاكرة في الثوابت لأنك لا تحجز أي مكان لهذا الثابت مثل
#define PI 3.14 فانه لم يتم حجز مكان في الذاكرة للثابت PI بل أن ماسيحدث أثناء عملية الPreprocessing هو مجرد Find & Replace لكل كلمة PI بالنص 3.1422- و هذا هو الفرق بينها و بينconst double PI = 3.14 ففي هذه الحالة تم حجز مكان في الذاكرة باسم PI و تم تخزين القيمة 3.14 فيه و كل مرة سيتم استخدام الثابت PI سيتم استدعاء قيمته من الذاكرة
0

#8 العضو غير متواجد حاليا   **programme** 

  • عضو
  • PipPip
  • المجموعة: اعضاء
  • المشاركات: 66
  • الإلتحاق: 21-August 04
  • الدولة:السعودية
السمعة: 0
عادي

تمت المشاركة 09 September 2005 - 10:52 AM

ماشاء الله إجابة الإخوان كافية ووافية بإذن الله

لكن عندي زيادة بسيطة في الشرح وهي عنstruct

مثلا في المصفوفات :

إذا أعلنت عن مصفوفة من النوع int

فجميع البيانات التي فيها من النوع int

ولانستطيع تقسيمها إلى int float وغيرها

أما struct نستطيع إضافة أي نوع من البيانات معا



أتمنى التوفيق للجميع

0

#9 العضو غير متواجد حاليا   MsH3AL 

  • عضو جديد
  • Pip
  • المجموعة: اعضاء
  • المشاركات: 42
  • الإلتحاق: 26-June 05
السمعة: 0
عادي

تمت المشاركة 09 September 2005 - 10:57 AM

ياهلا اخوي crazy-man .. شرح رائع بارك الله فيك ومثالك دش المخ :rolleyes: تسلم والله
بس استفسار بالـ struct بسيط :) ..
الحين ماكو طريقه اقدر اضمن فيها ملف خاص بالاعضاء .. يعني معلومات الموظفين تكون بروحها بملف واضمنها معاه؟
لانه هالطريقه باعتقادي راح تكون طويله وممله اذا كـان عدد الموظفين كثيرر جداً باعتقادي :rolleyes:
تسلم يا كريزي مان

بارك الله فيك استاذ bashmohandes ,,, اللي فهمته ان الـ #define تقوم باعطاء قيمه للمتغير ثابته واذا كان متغيرين بنفس الاسم ومع اختلاف القيمتين ... تكون الافضليه للمتغير الثاب define ( يعني قيمه المتغير ثابته ولاتتغير ) :rolleyes:

تسلم يابش مهندس B)
0

#10 العضو غير متواجد حاليا   MsH3AL 

  • عضو جديد
  • Pip
  • المجموعة: اعضاء
  • المشاركات: 42
  • الإلتحاق: 26-June 05
السمعة: 0
عادي

تمت المشاركة 09 September 2005 - 10:59 AM

تسلم اخوي **programme** على الاضافه :)

تم تعديل هذه المشاركة بواسطة MsH3AL: 09 September 2005 - 11:01 AM

0

  • (2 صفحات) +
  • 1
  • 2
  • لا تستطيع بدء موضوع جديد
  • الموضوع مقفل

1 أعضاء يقرؤون هذا الموضوع
0 أعضاء، 1 زوار و 0 أعضاء مختبؤون





لإفضل مشاهدة للمنتدى إستخدم مستعرض فايرفوكس