منتديات علوم الحاسبات الجامعه المستنصريه
اهلا وسهلا بكم في منتديات الجامعه المستنصريه
يشرفنا التسجيل بالمنتدى
الاداره
منتديات علوم الحاسبات الجامعه المستنصريه
اهلا وسهلا بكم في منتديات الجامعه المستنصريه
يشرفنا التسجيل بالمنتدى
الاداره
منتديات علوم الحاسبات الجامعه المستنصريه
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.
منتديات علوم الحاسبات الجامعه المستنصريه

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

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

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

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

» تعينات في وزارة التربية
دروس مباشرة في البرمجه بلغة C#2005 الدرس الرابع Icon_minitimeالخميس مايو 31, 2012 4:25 am من طرف aaaaa2020now

» ثلاثون عملا تطيل في العمر
دروس مباشرة في البرمجه بلغة C#2005 الدرس الرابع Icon_minitimeالسبت مايو 19, 2012 1:03 am من طرف انور الموصللي

» بعض من خواص ويندوز 7
دروس مباشرة في البرمجه بلغة C#2005 الدرس الرابع Icon_minitimeالأحد أبريل 22, 2012 2:09 pm من طرف asd-asd

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

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

» آصـوٍل آلـعـشـآئـرٍ آلـعـرٍآقـيـه
دروس مباشرة في البرمجه بلغة C#2005 الدرس الرابع Icon_minitimeالأحد فبراير 26, 2012 7:11 am من طرف عازف الدموع

بحـث
 
 

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

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

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

لا أحد

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


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

 

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

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


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

دروس مباشرة في البرمجه بلغة C#2005 الدرس الرابع Empty
مُساهمةموضوع: دروس مباشرة في البرمجه بلغة C#2005 الدرس الرابع   دروس مباشرة في البرمجه بلغة C#2005 الدرس الرابع Icon_minitimeالأحد أغسطس 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.......
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://mustansiriya.yoo7.com
فيصل الفاضل
عضو جديد
عضو جديد



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

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

[لو سمحتو اريدا من الدرس الاوال Suspect
الرجوع الى أعلى الصفحة اذهب الى الأسفل
 
دروس مباشرة في البرمجه بلغة C#2005 الدرس الرابع
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

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