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

منتديات الجامعه المستنصريه
 
الرئيسيةبحـثس .و .جالمجموعاتالتسجيلدخول
تهنئه

ساعه
دخول
اسم العضو:
كلمة السر:
ادخلني بشكل آلي عند زيارتي مرة اخرى: 
:: لقد نسيت كلمة السر
المواضيع الأخيرة
» نتائج الامتحان الدور الثاني لصف السادس الادبي والعلمي 2011 2012 موقع الوزارة العراقية
الجمعة سبتمبر 28, 2012 4:52 pm من طرف القيصر99

» نتائج امتحانات الدراسة المهنية 2012 2011 في العراق محافظة
الإثنين يوليو 16, 2012 2:54 pm من طرف عمار الامري

» كيف ترفع ضغط فني كمبيوتر؟
الجمعة يونيو 01, 2012 9:46 am من طرف العبيدي 2

» تعينات في وزارة التربية
الخميس مايو 31, 2012 4:25 am من طرف aaaaa2020now

» ثلاثون عملا تطيل في العمر
السبت مايو 19, 2012 1:03 am من طرف انور الموصللي

» بعض من خواص ويندوز 7
الأحد أبريل 22, 2012 2:09 pm من طرف asd-asd

»  تصفيات اولمبياد 2012: العراق يثأر لنفسه ويفوز على اوزبكستان 2-1 http://www.ok-iraq.com/vb/showthread.php?t=135838#ixzz1nUwekWYT تصفيات اولمبياد 2012: العراق يثأر لنفسه ويفوز على اوزبكستان 2-1
الأحد فبراير 26, 2012 7:29 am من طرف عازف الدموع

» العراق يستعد لمواجهة سنغافورة في الدوحة
الأحد فبراير 26, 2012 7:24 am من طرف عازف الدموع

» آصـوٍل آلـعـشـآئـرٍ آلـعـرٍآقـيـه
الأحد فبراير 26, 2012 7:11 am من طرف عازف الدموع

بحـث
 
 

نتائج البحث
 
Rechercher بحث متقدم
المواضيع الأكثر شعبية
نتائج الامتحان الدور الثاني لصف السادس الادبي والعلمي 2011 2012 موقع الوزارة العراقية
نتائج امتحانات الدراسة المهنية 2012 2011 في العراق محافظة
برنامج shmessenger
اعلان نتائج الدور الثاني للثالث المتوسط . موعد ظهور نتائج الثالث متوسط العراق 2011
نتائج التعليم المهني ~ نتائج الدور التمهيدي 2011 /2012 نتائج امتحانات الدراسة المهنية العراق 2011
أقسام الجامعه المستنصريه
برامج موبايل 5800
تحميل لعبة يوغي gx برابط واحد
بعض من حكم الامام علي (ع)
الكليات الاهليه المعترف بها من قبل وزارة التعليم العالي العراقيه
عدد زوار المنتدى

 
 .: عدد زوار المنتدى :.

أفضل 10 فاتحي مواضيع
المدير العام
 
Raad ALKhafajy
 
انور الموصللي
 
sohab
 
harith
 
ihsan
 
ahme79d
 
الدكتور احمد العلاق
 
عازف الدموع
 
الباحثة
 
المتواجدون الآن ؟
ككل هناك 1 عُضو حالياً في هذا المنتدى :: 0 عضو مُسجل, 0 عُضو مُختفي و 1 زائر

لا أحد

أكبر عدد للأعضاء المتواجدين في هذا المنتدى في نفس الوقت كان 312 بتاريخ السبت سبتمبر 24, 2011 9:53 am
أفضل 10 أعضاء في هذا الشهر
هل تعلم ان
الثلاثاء أغسطس 17, 2010 6:35 am من طرف المدير العام
هل تعلم ان.....؟
1)البصل الحلو كان الفاكهة المفضلة عند قدماء الرومان
2)الفيل يبكي عندما يكون حزين
3)الحصان يموت اذا قطع ذيله
4)الجبل الاصفر يقع في اسبانيا
5)سدني هي عاصمة استراليا
6)الجبل الاخضر يقع جنوب ليبيا
7)عدد ملوك فرنسا …


تعاليق: 3
  
تصويت
التبادل الاعلاني
احداث منتدى مجاني

شاطر | 
 

 دروس مباشرة في البرمجه بلغة C#2005 الدرس الرابع

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل 
كاتب الموضوعرسالة
المدير العام
Admin
avatar

عدد المساهمات : 285
نقاط : 824
تاريخ التسجيل : 26/07/2010
العمر : 27

مُساهمةموضوع: دروس مباشرة في البرمجه بلغة C#2005 الدرس الرابع   الأحد أغسطس 15, 2010 7:49 am

الدرس الرابع

الإجراءات Procedures

الإجراء هو مجموعة أوامر ينفذها المعالج مكتوبة بين حاصرتين { }

ويتم تعرفها في مكان واحد في البرنامج ويمكن إستدعائها عدة مرات

والإجراء له ثلاثة أشياء مهمة :

1- تعريف الإسمName Decleration

2-المدخلاتParameters

3-الشفرة مكتوبة بين حاصرتين Code

فمثلاً عند الدخول إلى شفرة زر رسالة الترحيب في الدرس الأول

سنرى هذا الكود:
كود:
void Button1Click(object sender, System.EventArgs e)
{
MessageBox.Show("مرحباً بكم في السي شارب");
}
الكود السابق يمثل إجراء ينفذه المعالج عند الضغط على الزر

نلاحظ انه يحتوي على الثلاث الأشياء المهمة للإجراء

وهي تعريف الإسم:

كود:
void Button1Click
و المدخلات:

كود:
(object sender, System.EventArgs e)
والشفرة مكتوبة بين حاصرتين:

كود:
{
MessageBox.Show("مرحباً بكم في السي شارب");
}

في التعريف void تعني إجراء أي أننا سنعرف متغير من نوع إجراء

كما عرفنا متغير من نوع رقم في الدرس السابق:

كود:
int x;
بنفس الطريقة عند تعريف الإجراء:

كود:
void x;
لكن هذا التعريف لا يكفي فهو لا يحتوي على الثلاث الأشياء المهمة

مثلاً لو أردنا إجراء يظهر رسالة مكتوب عليها مثلاً "من داخل الإجراء"

فسكون التعريف كالتالي:

كود:
void sm()
{
MessageBox.Show("من داخل الإجراء");
}
عرفنا متغير من نوع إجراء اسمه sm إختصار لـ Show Message ..يمكنك تغيير إسم الإجراء كما
تشاء

يوجد لدينا الإسم:

كود:
void sm
والمدخلات:
كود:
()
لا يوجد لدينا مدخلات في هذا الإجراء ولكن يجب عمل الأقواس الفارغة

وسنعرف فيما بعد كيف نتعامل مع المدخلات

ولدينا الشفرة:
كود:
{
MessageBox.Show("من داخل الإجراء");
}
وبالتالي فالتعريف كامل ويمثل إجراء لإظهار رسالة ,

والآن إذا أردنا في أي مكان من البرنامج تنفيذ الإجراء فما علينا سوى كتابة اسمه هكذا:

كود:
sm();
التعليمة السابقة تجعل المعالج يبحث عن الإجراء sm وينفذ الأوامر بداخلة.

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

لماذا لا نكتب الكود مباشرة كما فعلنا في الدرس الأول؟؟؟

والجواب ببساطه ماذا لو أردت إظهار الرسالة خمس مرات؟؟

بالطريقة القديمة ستكتب هكذا:

كود:
void Button1Click(object sender, System.EventArgs e)
{
MessageBox.Show("من داخل الإجراء");
MessageBox.Show("من داخل الإجراء");
MessageBox.Show("من داخل الإجراء");
MessageBox.Show("من داخل الإجراء");
MessageBox.Show("من داخل الإجراء");
}
أما بطريقة الإجراءات فستكتب هكذا:

كود:
void Button1Click(object sender, System.EventArgs e)
{
sm();
sm();
sm();
sm();
sm();
}
كود:

void sm()

{
MessageBox.Show("من داخل الإجراء");
}

الكود بالأزرق هو كود الضغط على الزر و الكود بالأحمر هو كود إجراء إظهار الرسالة

نلاحظ أن طريقة الإجراءات تسهل التعامل أكثر وتوفر الوقت والجهد

ربما يقول البعض لا يوجد فرق كبير بين الطريقتين لكن ماذا إذا كانت الرسالة كبيرة جداً

أو ماذا إذا كانت الأوامر أكثر من مجرد إظهار رسالة

عندها بالتأكيد الإجراء سيوفر الكثير من الجهد والوقت

وإيضا المدخلات تجعل الإجراءات أكثر فائدة :

مثلاً لو أردنا أن نطور الإجراء السابق ليظهر رسالة مختلفة في كل مرة نستدعيه

سنجعل الرساله المراد إظهارها علي أنها مدخل متغير ويكون تعريف الإجراء كالتالي

كود:
void sm(string msg)
{
MessageBox.Show(msg);
}
المدخلات هي متغيرات كما رأينا حيث عرفنا متغير مدخل اسمه msg من نوع نص string

وفي تعليمة إظهار الرسالة جعلنا الكائن MessageBox.Show يظهر ما في المتغير المدخل msg

الآن عند إستدعاء الإجراء يجب تمرير قيمة من نوع نص مكان المتغير المدخل هكذا:

كود:
sm("من داخل الإجراء");
sm("رسالة مختلفة من نفس الإجراء");
نلاحظ أن الإجراء آظهر رسائل مختلفة بنفس الشفرة

الأمر الأول في الكود السابق سيظهر رسالة مكتوب عليها "من داخل الإجراء"

والأمر الثاني سيظهر رسالة مكتوب عليها "رسالة مختلفة من نفس الإجراء"

ملاحظة: إذا كان لدينا أكثر من مدخل فنفصل بينها بالفاصلة مثلاً:

كود:
void sm(int x,string msg)
وعند الإستدعاء :

كود:
sm(14,"رسالة");
الدوال Functions
الدول هي إجراءات لكن لها خاصية أنها ترجع قيم

يعني رأينا في الإجراءات أنا نستدعيها للقيام بعمل محدد فقط

أما الدوال فإنا نستدعيها للقيام بعمل محدد وإرجاع قيمة لنا

ولها خمس أشياء مهمة:

1- تعريف الإسم Name Decleration

2-نوع القمية التي ستحملها الدالة Result Data Type

3-المدخلات Parameters

4-الشفرة مكتوبة بين حاصرتين Code

5-تعليمة تحميل الدالة للقيمة الناتجة Return phrase

مثلاً إذا إردنا عمل دالة تقوم بأخذ رقمين وترجع لنا مجموعهما فيكون التعريف كما يأتي:



كود:
int sum(int x,int y)
{
int z;
z=x+y;
return z;
}
في السطر الأول عرفنا دالة إسمها sum ترجع متغير من نوع رقم int

ولينا مدخلين من نوع رقم x و y

وبين الحاصرتين لدينا التعليمات التي تقوم بجمع المتغيرين

وفي التعليمة الأخيرة return z تعني تحميل الدلة القيمة الموجود في z وهي مجموع xوy

وعند الإستدعاء بنفس الطريقة في الإجراءات لكن الدالة تكون محملة بقيمة :


كود:
sum(4,5);
بدون الدالة ستكود شفرة جمع رقمين هكذا:

كود:
int z;
z=4+5;
MessageBox.Show(Convert.ToString(z));
أما بإستخدام الدالة فتكون الشفرة هكذا:

كود:
int z;
z=sum(4,5);
MessageBox.Show(Convert.ToString(z));
لاحظ أنا استدعينا الدالة وحملنا ما داخلها للمتغير z

في المثال السابق تعرفنا كيف نستخدم الدالة , رغم اننا لم نستفد منها كثيراً في المثال السابق

ولكن كان الغرض منه توضيح إستخدام الدوال .

عزل - كبسلة المتغيرات Variables Encabsulation

مارأيك بالكود التالي:

كود:
void Button1Click(object sender, System.EventArgs e)
{
int x;
x=10;
AddFive();
}
void AddFive()
{
int y;
y=5+x;
MessageBox.Show(Convert.ToString(y));
}
الكود بالأزرق هو إجراء الضغط على الزر , وبالأحمر إجراء إظهار قيمة x مضاف إليها 5

لو قمت بتنفيذ الكود السابق , ما الذي ينتج ,,, ستقول ستظهر رسالة مكتوب عليها 15

سأقول لا للبعد والنسيان ^^ لا مش صح , بينتج خطأ جسيم !!

السبب أن المتغير x معرف داخل الإجراء باللون الأزرق

وبالتالي فالمفروض أن نستخدمة في هذا الإجراء فقط , وإذا أستخدمناه في إجراء آخر كما فعلنا

فإن المعالج لن يتعرف على هذا المتغير !! .. ولكن ماذا لو أردنا أن نستخدم متغير في أكثر من إجراء؟؟

الجواب:

المتغيرات Variables تنقسم إلى نوعين رئيسيين :

1-متغيرات محلية Local وهي التي تعرف وتستخدم داخل الإجراء فقط

2-متغيرات دولية "ما لقيت لها مصطلح عربي" Global وهي التي تعرف خارج الإجراء وتستخدم من قبل إجراءات كثيرة

والمتغيرات الدولية تنقسم إلى قسمين :

ِa- متغيرات خاصة private وهي تستخدم من قبل إجراءات ودوال النافذة الواحدة فقط ولا تراها النوافذ الأخرى

كود:
private int x;
b-متغيرات عامة public وهي تستخدم من قبل إجراءات ودوال النافذة والنوافذ الأخرى

كود:
public int x;
إذن إذا أردنا أن نستخدم متغير في عدة إجراءات فإننا نعرفة خارج الإجراء

والأفضل يكون تعريف المتغيرات الدولية في بداية كود النافذة فوق دالة Main :

كود:
//هنا تعريف المتغيرات الدولية
[STAThread]
public static void Main(string[] args)
.
.
وبالتالي فالإجراء السابق بعد التعديل سيصبح هكذا :

كود:
private int x;
.
.
void Button1Click(object sender, System.EventArgs e)
{
x=10;
AddFive();
}
void AddFive()
{
int y;
y=5+x;
MessageBox.Show(Convert.ToString(y));
}
طبعاً بفرض أن احنا حطينا تعريف المتغير x فوق دالة Main

بهذه الطريقة عرفنا x مرة واحدة وممكن نستخدمة في أكثر من إجراء من نفس النافذة

ملاحظة: إذا أردنا أن نكتب تعليق في الشفرة أو ملاحظة بدون أن يقرأها المترجم

فإننا نكتب في بداية السطر // والمترجم لن يقرأ الكود التي تحول لونها إلى الأخضر كما فعلنا

في الكود السابق , أما إذا كانت الملاحظة من عدة أسطر ولا نريد أن نضيف // لكل سطر نتيجة الكسل أو ما شابه

فيكفي أن نكتب*/ في بداية الملاحظة و/* في نهاية الملاحظة :

كود:
int x;
/* هذا السطر لن يقرأه المترجم
وهذا السطر ايضا
وهذا أيضاً*/
MessageBox.......
الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://mustansiriya.yoo7.com
فيصل الفاضل
عضو جديد
عضو جديد


عدد المساهمات : 1
نقاط : 1
تاريخ التسجيل : 09/11/2011
العمر : 26
الموقع : السودان
المزاج : عالي

مُساهمةموضوع: رد: دروس مباشرة في البرمجه بلغة C#2005 الدرس الرابع   الخميس نوفمبر 10, 2011 5:40 am

[لو سمحتو اريدا من الدرس الاوال Suspect
الرجوع الى أعلى الصفحة اذهب الى الأسفل
 
دروس مباشرة في البرمجه بلغة C#2005 الدرس الرابع
استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» العلاقات الاقتصادية والتجارية المصرية الصينية (ج2)
» بعض اسئلة ماجستير حقوق للسنوات الماضية
» امتحانات شهادة التعليم الإبتدائي
» اسئله عامة على قصة على مبارك مختارة من المحافظات
» ملف كامل ومفصل عن بطولة مابين القارات جنوب افريقيا 2009

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتديات علوم الحاسبات الجامعه المستنصريه :: منتديات لغات البرمجه :: منتدى لغه ++c-
انتقل الى: