مدخل البرمجة بلغة السى شارب وتطبيقات الكونسول Console Applications

اذهب الى الأسفل

مدخل البرمجة بلغة السى شارب وتطبيقات الكونسول Console Applications

مُساهمة من طرف Admin في الخميس مارس 29, 2018 5:22 pm

مدخل البرمجة بلغة السى شارب وتطبيقات الكونسول Console Applications  
أولا : مقدمة :

معظم تطبيقات لغة السى شارب تعالج معلومات (مدخلات) وتعرض النتائج (مخرجات)  . في هذا الدرس ، سوف نقدم تطبيقات "الكونسول" console  والتى تكون مدخلاتها ومخرجاتها عبارة عن نصوص text في نافذة الكونسول ، وهى نافذة سوداء تشبة نظام التشغيل DOS وتعرف فى نظام النوافذ باسم "موجه الأوامر" Command Prompt .
سوف نبدأ بالعديد من الأمثلة والتي ببساطة تعرض رسائل messages على الشاشة. ثم نعرض أحد التطبيقات التي تحصل على رقمين من المستخدم ، وتحسب مجموعهما وتعرض النتيجة . ستجري حسابات حسابية مختلفة وتحفظ النتائج لاستخدامها لاحقًا . تحتوي العديد من التطبيقات على منطق إتخاذ القرارات decisions  - المثال الأخير في هذا الدرس يوضح أساسيات صنع القرار من خلال عرض كيفية مقارنة الأعداد وعرض الرسائل استنادًا إلى نتائج المقارنة . على سبيل المثال ، يعرض التطبيق رسالة تشير إلى أن رقمين متساويين فقط إذا كان لهما نفس القيمة. سوف نقوم بتحليل كل كود سطر بسطر .


Admin
Admin

عدد المساهمات : 1020
تاريخ التسجيل : 28/01/2014

معاينة صفحة البيانات الشخصي للعضو http://fathallaabdelaziz.forumarabia.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: مدخل البرمجة بلغة السى شارب وتطبيقات الكونسول Console Applications

مُساهمة من طرف Admin في الخميس مارس 29, 2018 6:55 pm

ثانيا :تطبيق بسيط على البرمجة بلغة السى شارب C# :  عرض سطر من النص Text
يظهر التطبيق وخرجة في الشكل 1 الذي يوضح العديد من الخصائص المهمة للغة C# . يشتمل كل برنامج نقدمه في هذا الدرس على أرقام السطور ، والتي لا تشكل جزءًا من كود C# الفعلي . ( لعرض أرقام السطور إذهب إلى القائمة Tools واختار Options ومنها اختار  Text Editor  ثم اختار All Languages ومن اليمين حدد  Line numbers  ) . وسنرى قريبًا أن السطر رقم 10 يقوم بالعمل الحقيقي للتطبيق – أي ، عرض العبارة
Welcome to C# Programming!  على الشاشة. نناقش الآن كل سطر من التطبيق – وتسمى هذه العملية بالتجوال خلال الكود .



                                                   
Code :


الكود:

1 // Fig. 1: Welcome1.cs
2 // Text-displaying app.
3 using System;
4
5 public class Welcome1
6 {
7 // Main method begins execution of C# app
8 public static void Main( string[] args )
9 {
10 Console.WriteLine( "Welcome to C# Programming!" );
11 } // end Main
12 } // end class Welcome1


1- التعليقات Comments :
السطر رقم 1 :

الكود:
// Fig. 1: Welcome1.cs

يبدأ هذا السطر بالأحرف  ( // ) ، مشيرا إلى أن ما تبقى من السطر هو تعليق comment . سوف يتم إدراج تعليقات لتوثيق تطبيقاتك وتحسين إمكانية قراءتها. يتجاهل مترجم لغة C# التعليقات ، بحيث لا يتسبب في قيام الكمبيوتر بأي إجراء عند تشغيل التطبيق . سوف نبدأ كل تطبيق بتعليق يشير إلى رقم الشكل واسم الملف الذي تم تخزين التطبيق فيه.
يسمى التعليق الذي يبدأ بـالأحرف  // تعليق سطر واحد ، لأنه ينتهي في نهاية السطر الذي يظهر عليه. يمكن أن يبدأ التعليق //  أيضًا في منتصف السطر ويستمر حتى نهاية هذا السطر (كما هو الحال في السطور 7 و 11 و 12).

• التعليق المحدد Delimited comments  مثل :

الكود:
/* This is a delimited comment.
It can be split over many lines */

يمكن تقسيمه على عدة سطور . يبدأ هذا النوع من التعليق بالمحدد  delimiter ( /* ) وينتهي بالمحدد  ( */ ) . يتم تجاهل كل النص بين المحددات بواسطة المترجم compiler .

أخطاء برمجية : الخطأ رقم 1 :
نسيان أحد المحددات الخاصة بتعليق محدد هو خطأ في بناء الجملة syntax error .يحدث خطأ في بناء الجملة عندما يواجه المترجم الكود الذى ينتهك قواعد لغة C# .
في هذه الحالة ، لا ينتج المترجم ملفًا قابلاً للتنفيذ . بدلاً من ذلك ، فإنه يصدر رسالة خطأ واحدة أو أكثر لمساعدتك في تحديد التعليمات البرمجية غير الصحيحة وإصلاحها . تسمى أخطاء بناء الجملة أيضاً أخطاء المترجم compiler errors ، أوأخطاء وقت الترجمة compile-time errors أو أخطاء الترجمة compilation errors ، لأن المترجم يكتشفها أثناء مرحلة الترجمة . لن تتمكن من تنفيذ تطبيقك حتى تصحح جميع أخطاء بناء الجملة فيه.

السطر رقم 2 :


الكود:
// Text-displaying app.


وهو تعليق من سطر واحد يصف الغرض من التطبيق.

2- التوجيه "استخدام" “using” Directive
السطر رقم 3 :

الكود:
using System;

عبارة عن "توجيه"  directive يستخدم لإخبار المترجم بمكان البحث عن "فئة أو طبقة" class  والتى تستخدم في هذا التطبيق . القوة الكبيرة فى الفيجوال سى شارب تكمن فى أنه غنى بمجموعة من الفئات (الطبقات) المعرفة مسبقًا التي يمكنك إعادة استخدامها بدلاً من "إعادة اختراع العجلة". يتم تنظيم هذه الفئات ضمن (تحت)  "حيز الأسماء" namespaces – مجموعات مسماة من الفئات ذات الصلة . بشكل جماعي ، تتم الإشارة إلى حيز أسماء الدوت نت NET’s namespaces  باسم "مكتبة فئات إطار العمل دوت نت"  NET Class Library).( .
يحدد كل توجيه using فضاء (مساحة) اسم تحتوي على فئات محددة مسبقًا يمكن لتطبيقات السى شارب استخدامها.
يشير التوجيه الذي يستخدم في السطر 3 إلى أن هذا المثال يعتزم استخدام الفئات من حيز  اسم "النظام"  System namespace  ، التي تحتوي على فئة "الكونسول" Console class المحددة مسبقًا (التي سيتم مناقشتها بعد قليل) والمستخدمة في السطر 10 ، والعديد من الفئات المفيدة الأخرى .

تلميحات لمنع الوقوع فى الأخطاء 1
نسيان تضمين التوجيه باستخدام using من أجل حيز اسم namespace تحتوي على فئة مستخدمة في تطبيقك عادة ما ينتج عنه خطأ في الترجمة ، يحتوي على رسالة مثل :
“The name 'Console' does not exist in the current context.”
وتعنى الاسم "كونسول" غير موجودة في السياق الحالي . عند حدوث ذلك ، تحقق من أنك قد قمت بتوفير التوجيهات الصحيحة واستخدام أن الأسماء في التوجيهات المستخدمة مكتوبة بشكل صحيح ، بما في ذلك الاستخدام الهجاء الصحيح والحروف الكبيرة والصغيرة.

لكل فئة "دوت نت" (.NET) جديدة نستخدمها ، نشير إلى حيز الاسم namespace  التي تقع فيها. تعتبر هذه المعلومات مهمة ، لأنها تساعدك في تحديد أوصاف كل فئة في وثائق الدوت نت . يمكن العثور على نسخة تستند إلى الويب من هذه الوثائق على الرابط
msdn.microsoft.com/en-us/library/ms229335.aspx

يمكن أيضًا الوصول إلى هذا عبر قائمة المساعدة Help . يمكنك النقر فوق اسم أي فئة class  أو طريقة (أسلوب) method دوت نت ، ثم الضغط على المفتاح F1 للحصول على مزيد من المعلومات . وأخيرًا ، يمكنك التعرف على محتويات حيز اسم محدد بالانتقال إلى :
msdn.microsoft.com/namespace

لذلك ، يأخذك الرابط msdn.microsoft.com/System إلى وثائق حيز الاسم System .

3- السطور الفارغة Blank Lines  والمسافات البيضاء Whitespace
السطر رقم 4 :
هو ببساطة سطر فارغ . تجعل الأسطر الفارغة والمسافات الكود أسهل في القراءة ، وتعرف هى وأحرف التبويب tab باسم المسافات  (الفراغات) البيضاء  whitespace . تُعرف أحرف المسافات وعلامات التبويب على وجه التحديد بأحرف المسافات البيضاء . يتم تجاهل المسافات البيضاء بواسطة المترجم .

Admin
Admin

عدد المساهمات : 1020
تاريخ التسجيل : 28/01/2014

معاينة صفحة البيانات الشخصي للعضو http://fathallaabdelaziz.forumarabia.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: مدخل البرمجة بلغة السى شارب وتطبيقات الكونسول Console Applications

مُساهمة من طرف Admin في الخميس مارس 29, 2018 7:19 pm

4- إعلان الفئة Class Declaration
السطر 5

الكود:
 public class Welcome1

يبدأ إعلان للفئة Welcome1. يتألف كل تطبيق من إعلان فئة واحدة على الأقل والذى يتم تعريفه من قِبلك – المبرمج . يُعرف هذه باسم الفئات المعرفة من قبل المستخدم . تقدم الكلمة الأساسية (المحجوزة) class إعلانًا للفئة ويتبعها مباشرة اسم الفئة (Welcome1) . يتم حجز الكلمات الأساسية (التي تسمى أحيانًا الكلمات المحجوزة) لاستخدامها بواسطة السى شارب ويتم تهجئتها دائمًا بأحرف صغيرة.

• اتفاقية اسم الفئة Class Name Convention
حسبما تم الاتفاق عليه ، تبدأ جميع أسماء الفئات بحرف كبير وبتكبير الحرف الأول من كل كلمة يتضمنها (على سبيل المثال ، SampleClassName). تعرف هذه الاتفاقية باسم غلاف الجمل العلوي upper camel casing . اسم الفئة هو معرف - سلسلة من الأحرف تتكون من حروف وأرقام وشرطات سفلية (_) لا تبدأ برقم ولا تحتوي على مسافات. بعض المعرفات الصالحة هي Welcome1 و identifier و _value و m_inputField1. لا يمثل الاسم 7button معرّفًا صالحًا لأنه يبدأ برقم ، ولا يعد الاسم input field معرفًا صالحًا لأنه يحتوي على مسافة. عادة ، لا يكون المعرف الذي لا يبدأ بحرف كبير هو اسم لفئة. لغة السى شارب C# حساسة لحالة الأحرف - أي يتم التمييز بين الأحرف الكبيرة والصغيرة ، لذا تكون a1 و A1 معرفات مختلفة (ولكن كلاهما صحيح) .

ممارسات برمجية جيدة 1
من خلال ما هو متفق عليه ، ابدأ دائمًا معرّف اسم الفئة بحرف كبير وابدأ كل كلمة لاحقة في المعرّف بحرف كبير.

أخطاء برمجية شائعة 2
لغة السى شارب حساسة لحالة الأحرف. عدم استخدام الأحرف الكبيرة والأحرف الصغيرة بشكل مناسب للمعرف عادة ما يسبب حدوث "خطأ في الترجمة" compilation error .

العبارة :

الكود:
 public Class

في هذا الدرس ، تبدأ كل فئة نعرفها بالكلمة الرئيسية public . في الوقت الحالي ، ببساطة سوف نحتاج هذه الكلمة. ستعرف المزيد عنها لاحقا . عندما تقوم بحفظ تعريف الفئة على أنها public في ملف ، يكون اسم الملف عادةً هو اسم الفئة متبوعًا بامتداد اسم الملف (.cs) بالنسبة إلى تطبيقنا ، اسم الملف هو Welcome1.cs.

ممارسات برمجة جيدة 2
بموجب ما تم الاتفاق عليه ، يجب أن يكون للملف الذي يحتوي على فئة public واحدة اسم مطابق لاسم الفئة (بالإضافة إلى ملحق .cs ) في كل من التهجئة والكتابة بالأحرف الكبيرة.

Admin
Admin

عدد المساهمات : 1020
تاريخ التسجيل : 28/01/2014

معاينة صفحة البيانات الشخصي للعضو http://fathallaabdelaziz.forumarabia.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: مدخل البرمجة بلغة السى شارب وتطبيقات الكونسول Console Applications

مُساهمة من طرف Admin في الجمعة مارس 30, 2018 11:32 am

5- جسم إعلان الفئة Body of a Class Declaration
القوس الأيسر (فى السطر 6 بالشكل 1 ) ، { ، يبدأ "جسم" كل إعلان لفئة . القوس الأيمن المناظر (فى السطر 12 ) ، } ، يجب أن ينهى كل إعلان لفئة . الأسطر 7-11 يكون بها "فراغات بادئة" indented . هذه الفراغات البادئة عبارة عن فراغات متفق عليها ، وتعتبر من الممارسات البرمجية الجيدة .

تلميحات لمنع الوقوع فى الأخطاء 2
كلما كتبت قوسً الفتح الأيسر ، { ، في تطبيقك ، اكتب على الفور قوس الإغلاق الأيمن ، } ، ثم أعد وضع المؤشر بين الأقواس وخذ المسافة البادئة لبدء كتابة النص الأساسي . هذه الممارسة تساعد على منع الأخطاء بسبب الأقواس المفقودة.

ممارسات برمجية جيدة 3
اجعل المسافة البادئة للجسم بالكامل من كل إعلان فئة عبارة عن "مستوى" واحد من المسافة البادئة بين الأقواس اليسرى واليمنى التي تحدد جسم الفئة . يؤكد هذا التنسيق على بنية تعريف الفئة ويسهّل قراءته. يمكنك السماح لـبيئة التطوير بتنسيق الكود الخاص بك بتحديد Edit> Advanced> Format Document .

ممارسات برمجية جيدة 4
قم بتعيين حجم المسافة البادئة التي تفضلها والتى تتفق عليها ، ثم قم بتطبيق هذه الاتفاقية بشكل موحد. يمكن استخدام المفتاح Tab لإنشاء المسافات البادئة ، ولكن تختلف علامات الجدولة بين برامج تحرير النصوص . نوصي باستخدام ثلاث مسافات لتشكيل كل مستوى من المسافة البادئة. لضبط مسافة tab فى الفيجوال ستوديو ، من القائمة Tools حدد Options ثم من نافذة الخيارات حدد Text Editor ومنه حدد C# وتحته حدد Tabs وفى الجهة اليمنى اكتب حجم التبويب Tab size وحجم المسافات البادئة Indent size ثم اضغط على OK لحفظ هذه الإعدادات .

أخطاء برمجية شائعة 3
إذا لم يحدث تطابق فى أزواج الأقواس ، يتسبب ذلك فى خطأ في بناء الجملة syntax error .

6- الطريقة (الإسلوب أو الدالة ) الرئيسية Main Method
• السطر 7 :

الكود:
// Main method begins execution of C# app

وهو تعليق يشير إلى الغرض من الأسطر 8-11 من التطبيق .
• السطر 8 :

[code] public static void Main( string[] args )/code]

هو نقطة البداية لكل تطبيق . تشير الأقواس ( ) بعد المعرف Main إلى أنها كتلة بناء التطبيق وتسمى طريقة method (فى لغات أخرى تسمى دالة) . عادةً ما تحتوي إعلانات الفئة Class على طريقة واحدة أو أكثر. وعادة ما تتبع أسماء الطريقة نفس الاصطلاحات المستخدمة في أسماء الفئات . بالنسبة إلى كل تطبيق ، واحدة من الطرق فى الفئة يجب تسميتها "الرئيسية" Main (والتي يتم تعريفها عادةً كما هو موضح في السطر Cool ؛ وإلا ، لن يتم تنفيذ التطبيق .الطرق Methods قادرة على أداء المهام وإرجاع المعلومات عند إكمال مهامها. تشير الكلمة المحجوزة void (السطر Cool إلى أن هذه الطريقة لن ترجع أى معلومات بعد إكمال مهمتها. لاحقًا ، سنرى أن العديد من الطرق تعيد المعلومات ، وسنتعرف على مزيد من المعلومات حول الطرق ،ونناقش محتويات أقواس Main لاحقا . في الوقت الحالي ، يمكنك ببساطة محاكاة السطر الأول للطريقة Main في تطبيقاتك .

• جسم إعلان الطريقة (الأسلوب) Body of a Method Declaration
يبدأ القوس الأيسر في السطر 9 جسم إعلان الطريقة. القوس الأيمن المقابل يجب أن ينهى جسم الطريقة (السطر 11). يتم وضع مسافة بادئة فى السطر 10 من جسم الطريقة بين الأقواس .

ممارسات برمجية جيدة 5
كما هو الحال مع إعلانات الفئة ، ضع مسافة بادئة للجسم بالكامل لكل طريقة بحيث يكون هناك "مستوى" واحد من المسافة البادئة بين الأقواس اليسرى واليمنى التي تحدد جسم الطريقة.

7- عرض سطر من نص Displaying a Line of Text
• السطر 10 : يعرض سطر من نص

[code]Console.WriteLine( "Welcome to C# Programming!" ); [/code]

هذا السطر (العبارة) يرشد الكمبيوتر لتنفيذ إجراء - بمعنى ، عرض سلسلة الأحرف string بين علامتى التنصيص المزدوجة ، والتي تحدد delimit السلسلة. تسمى السلسلة أحيانًا سلسلة أحرف أو رسالة أو سلسلة حرفية. وسوف نشير لها ببساطة "سلسلة" string.
لا يتم تجاهل أحرف المسافات البيضاء في السلاسل بواسطة المترجم .
توفر الفئة Console إمكانيات الإدخال / الإخراج القياسية التي تمكن التطبيقات من القراءة وعرض النص في نافذة الكونسول . تعرض الطريقة Console.WriteLine سطر من النص في نافذة الكونسول . السلسلة في الأقواس في السطر 10 هي الوسيط argument للطريقة . تقوم الطريقة Console.WriteLine بتنفيذ مهمتها وهى عرض وسيطها في نافذة الكونسول . عند اكتمال مهمة الطريقة Console.WriteLine ، يتم وضع مؤشر الشاشة في بداية السطر التالي في نافذة الكونسول (يشير الرمز الوامض إلى مكان ظهور الحرف التالي) . تشبه حركة المؤشر هذه ما يحدث عندما يقوم المستخدم بالضغط على مفتاح Enter أثناء الكتابة في محرر نصوص - ينتقل المؤشر إلى بداية السطر التالي في الملف .

• العبارات Statements
السطر 10 بأكمله ، بما في ذلك Console.WriteLine ، والأقواس ، والوسيط
"Welcome to C# Programming!" في الأقواس والفاصلة المنقوطة (Wink ، يسمى "عبارة" statement.
تنتهي معظم العبارات بفاصلة منقوطة . عند تنفيذ العبارة في السطر 10 ، فإنها تعرض الرسالة
Welcome to C# Programming! في نافذة الكونسول . تتكون الطريقة method عادة من واحد أو أكثر من العبارات التي تؤدي مهمة هذه الطريقة.


تلميحات لمنع الوقوع فى الأخطاء 3
عندما يقوم المترجم بتسجيل خطأ في بناء الجملة syntax error ، قد لا يكون الخطأ في السطر المشار إليه برسالة الخطأ . أولاً ، تحقق من السطر الذي تم الإبلاغ عن الخطأ به . إذا كان هذا السطر لا يحتوي على أخطاء في بناء الجملة ، فتحقق من عدة أسطر سابقة .

8- مطابقة القوس الأيسر ({) والقوس الأيمن (}) :
قد تجد صعوبة في قراءة أو كتابة أحد التطبيقات لمطابقة الأقواس اليسرى واليمنى{..} التي تحدد جسم إعلان الفئة أو تعريف الطريقة . للمساعدة ، يمكنك تضمين تعليق بعد كل قوس إغلاق يمين (}) والذى ينهى إعلان الطريقة وبعد كل قوس إغلاق يمين والذى ينهى إعلان الفئة. على سبيل المثال :
السطر 11

[code]} // end Main [/code]

يحدد قوس الإغلاق الأيمن للطريقة Main
والسطر 12

[code]} // end class Welcome1 [/code]

يحدد قوس الإغلاق الأيمن للفئة Welcome1. تشير كل من هذه التعليقات إلى الطريقة أو الفئة التى ينتهي به قوس أيمن . يمكن أن يساعدك Visual Studio في تحديد موقع الأقواس المتطابقة في الكود . ببساطة ضع المؤشر مباشرة أمام القوس الأيسر أو مباشرة بعد القوس الأيمن ، وسوف يقوم الفيجوال ستوديو بتسليط الضوء (تمييز) على كلاهما.

Admin
Admin

عدد المساهمات : 1020
تاريخ التسجيل : 28/01/2014

معاينة صفحة البيانات الشخصي للعضو http://fathallaabdelaziz.forumarabia.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: مدخل البرمجة بلغة السى شارب وتطبيقات الكونسول Console Applications

مُساهمة من طرف Admin في السبت مارس 31, 2018 5:36 pm

ثالثا : إنشاء تطبيق بسيط فى الفيجوال ستوديو :
الآن وقد قدمنا أول تطبيق كونسول (الشكل 1) ، نقدم شرحًا تفصيليًا ، خطوة بخطوة ، حول كيفية إنشاء هذا البرنامج ، وترجمته ، وتنفيذه باستخدام الفيجوال ستوديو 2015 ، والذي سنشير إليه ببساطة "فيجوال ستوديو" Visual Studio من بعد ذلك .
1- إنشاء تطبيق وحدة التحكم Creating the Console App
بعد فتح الفيجوال ستوديو Visual Studio ، حدد FILE > New Project… لعرض مربع الحوار "مشروع جديد"
New Project (الشكل 3). في الجانب الأيسر من مربع الحوار وتحت Installed > Templates > Visual C# حدد فئة Windows ، ثم في منتصف مربع الحوار ، حدد قالب template "تطبيق كونسول"Console Application .
في حقل "الاسم" Name بمربع الحوار ، أكتب Welcome1 ، ثم انقر فوق OK لإنشاء المشروع . بشكل افتراضي ، سيتم وضع مجلد المشروع في مجلد Documents تحت Visual Studio 2015 \ Projects (يمكنك تغيير هذا المكان ووضعه فى مكان قريب مثل سطح المكتب ) . تحتوي بيئة التطوير الآن على تطبيق كونسول مفتوح ، كما هو موضح في الشكل 4 . تحتوي نافذة التحرير بالفعل على بعض الأكواد التي يوفرها الفيجوال ستوديو . بعض هذه الشفرات مشابهة لتلك الخاصة بالشكل 1 ، والبعض ليس كذلك ، ويستخدم ميزات لم نناقشها بعد. يدرج الفيجوال ستوديو هذا الكود الإضافي للمساعدة في تنظيم التطبيق وتوفير الوصول إلى بعض الفئات الشائعة في المكتبة Class .NET Framework - في هذه المرحلة من الدرس ، لا يعد هذا الكود مطلوبًا أو ملائمًا لمناقشة هذا التطبيق ؛ لذلك يتم حذف كل ذلك.



Fig.3 Creating a Console Application with the New Project dialog.




Fig.4 IDE with an open console app.


يطلق على نظام كود ألألوان الذي يستخدمه الفيجوال ستوديو "تمييز الألوان بناء على بناء الجملة" syntax-color highlighting ويساعدك على التمييز بين عناصر التطبيق بشكل مرئي . على سبيل المثال ، تظهر الكلمات الرئيسية (المحجوزة) باللون الأزرق وتظهر التعليقات باللون الأخضر . يمكنك تخصيص الألوان الموضحة في محرر الكود من خلال تحديد Tools > Options…. ، حيث يعرض مربع الحوار "خيارات" Options ، ثم قم بتوسيع "البيئة" Environment وحدد الخطوط والألوان Fonts and Colors . هنا يمكنك تغيير الألوان لعناصر الكود المختلفة.

2- تغيير اسم ملف التطبيق
بالنسبة للتطبيقات التي نقوم بإنشائها في هذا الدرس ، نقوم بتغيير الاسم الافتراضي لملف كود المصدر (على سبيل المثال ، Program.cs) لإدخال اسم أكثر توصيفا . لإعادة تسمية الملف ، انقر فوق Program.cs في نافذة "مستكشف الحلول" Solution Explorer . يعرض ذلك خصائص ملف التطبيق في نافذة "الخصائص" Properties (الشكل 5). قم بتغيير خاصية اسم الملف File Name إلى Welcome1.cs واضغط على Enter.



Fig.5 | Renaming the program file in the Properties window.

3- كتابة الكود واستخدام التحسس الذكي Writing Code and Using IntelliSense
في نافذة المحرر (الشكل 4) ، استبدل الكود الذي تم إنشاؤه بواسطة الفيجوال ستوديو بالكود من الشكل 1. عندما تبدأ بكتابة اسم الفئة Console (السطر 10) ، يتم عرض نافذة "التحسس الذكى" IntelliSense (الشكل 6a ). أثناء الكتابة ، تسرد IntelliSense عناصر مختلفة تبدأ بالحروف التي كتبتها أو تحتوي عليها. يعرض IntelliSense أيضاً "أداة تلميح" tool tip تحتوي على وصف العنصر المطابق الأول . يمكنك إما كتابة اسم العنصر الكامل (على سبيل المثال ، Console ) ، انقر نقرًا مزدوجًا فوق اسم العنصر في قائمة الأعضاء أو اضغط على المفتاح Tab لإكمال الاسم . بمجرد توفير الاسم الكامل ، يتم إغلاق نافذة IntelliSense. بينما تكون نافذة IntelliSense معروضة ، الضغط على مفتاح Ctrl يجعل النافذة شفافة حتى تتمكن من رؤية الكود خلف النافذة.
عند كتابة النقطة (.) بعد Console ، تظهر نافذة IntelliSense وتعرض فقط أعضاء الفئة Console التي يمكن استخدامها على يمين النقطة (الشكل 6b ).



Fig.6a | IntelliSense


Fig.6b | IntelliSense

عندما تقوم بكتابة حرف "قوس الفتح" ‘ ( ‘ بعد Console.WriteLine ، يتم عرض نافذة "معلومات البارامترات" Parameter Info (الشكل 7) ، تحتوي هذه النافذة على معلومات حول بارامترات "الطريقة" method ، كما ستعرف لاحقا ، يمكن أن يكون هناك العديد من إصدارات الطريقة . بمعنى ، يمكن للفئة أن تحدد (تعرف) عدة طرق لها نفس الاسم ، طالما أنها تحتوي على أعداد numbers و / أو أنواع types مختلفة من البارامترات — وهو مفهوم يُعرف باسم الطرق الزائدة overloaded methods ؛ فهذه الطرق عادة ما تؤدي جميعها مهام متشابهة. تشير نافذة المعلومات إلى عدد الإصدارات المتوفرة للطريقة المحددة وتوفر أسهمًا لأعلى ولأسفل للتمرير خلال الإصدارات المختلفة ، على سبيل المثال ، هناك 19 إصدارًا من الطريقة WriteLine - نستخدم أحد هذه الإصدارات التسعة عشر في التطبيق الخاص بنا. تعد نافذة المعلومات إحدى الميزات العديدة التي يوفرها الفيجوال ستوديو لتسهيل تطوير التطبيق ، وفي الدروس المتعددة التالية ، سنتعرف على المزيد عن المعلومات المعروضة في هذه النوافذ . نافذة معلومات البارامترات مفيدة بشكل خاص عندما تريد أن ترى الطرق المختلفة التي يمكن من خلالها استخدام طريقة ما. من الكود في الشكل1 ، نعلم بالفعل أننا نعتزم عرض سلسلة واحدة بالطريقة WriteLine ، لذلك ، لأنك تعرف بالضبط أي إصدار من WriteLine تريد استخدامه ، يمكنك ببساطة إغلاق نافذة معلومات البارامترات عن طريق الضغط على المفتاح Esc.


Fig.7 | Parameter Info window.

4- حفظ التطبيق Saving the App
بعد كتابة كود التطبيق ، حدد FILE> Save All لحفظ المشروع.

5- ترجمة وتشغيل التطبيق Compiling and Running the App
أنت الآن مستعد لترجمة وتنفيذ تطبيقك. اعتماداً على نوع المشروع ، قد يقوم المترجم بترجمة الكود في ملفات بالامتداد (.exe) (القابل للتنفيذ) أو بالامتداد (.dll) (المكتبة المرتبطة بشكل ديناميكي) أو أحد الامتدادات العديدة الأخرى. تسمى هذه الملفات التجميعات assemblies وهي وحدات التعبئة الخاصة بكود C# المترجم. تحتوي هذه التجميعات على كود "لغة الميكروسوفت الوسيطة " Microsoft Intermediate Language (MSIL) للتطبيق.
لترجمة التطبيق ، حدد BUILD> Build Solution . إذا كان التطبيق لا يحتوي على أخطاء في بناء الجملة ، فسيعمل ذلك على ترجمة تطبيقك وإنشاءه في ملف قابل للتنفيذ (يُسمى Welcome1.exe ، في أحد الأدلة الفرعية للمشروع). لتنفيذ ذلك الملف ، اضغط Ctrl + F5 ، والذي يستدعي الأسلوب الرئيسي Main (الشكل 1) . إذا حاولت تشغيل التطبيق قبل بنائه ، فسيقوم الفيجوال ستوديو بإنشاء التطبيق أولاً ، ثم تشغيله فقط في حالة عدم وجود أخطاء في االترجمة .
العبارة في السطر 10 من الدالة الرئيسية تعرض Welcome to C# Programming! . يوضح الشكل 8 نتائج تنفيذ هذا التطبيق ، المعروض في نافذة الكونسول (موجه الأوامر). اترك مشروع التطبيق مفتوحًا في فى الفيجوال ستوديو ، سوف نعود إليها لاحقًا في هذا الدرس .
ملاحظة : تحتوي نافذة الكونسول عادةً على خلفية سوداء ونص أبيض . أعدنا تكوينها ليكون لها خلفية بيضاء ونص أسود لقابلية القراءة. إذا كنت تريد إجراء ذلك ، فانقر على الرمز في الركن العلوي الأيسر من نافذة الكونسول ، ثم حدد خصائص Properties. . يمكنك تغيير الألوان في علامة التبويب ألوان Colors في مربع الحوار الذي يظهر.



Fig.8 | Executing the app shown in Fig.1.

6- أخطاء فى بناء الجملة Syntax Errors ورسائل الخطأ Error Messages ونافذة قائمة الأخطاء Error List Window
عد إلى التطبيق في الفيجوال ستوديو . أثناء كتابة الكود ، تستجيب بيئة التطوير إما بتطبيق "تمييز لون - بناء الجملة" أو عن طريق إنشاء "خطأ في بناء الجملة" ، مما يشير إلى انتهاك قواعد الفيجوال سى شارب لإنشاء تطبيقات صحيحة (بمعنى ، لا يتم كتابة عبارة أو أكثر بشكل صحيح). تحدث أخطاء بناء الجملة لأسباب مختلفة ، مثل الأقواس المفقودة والكلمات الرئيسية التي بها أخطاء إملائية.
عند حدوث خطأ في بناء الجملة ، تقوم بيئة التطوير بتأشير موقع الخطأ بخط أحمر متعرج وتوفر وصفًا له في نافذة قائمة الأخطاء (الشكل 9). إذا لم تكن نافذة قائمة الأخطاء مرئية في بيئة التطوير ، فحدد VIEW > Error List لعرضها. في الشكل 9 ، حذفنا عن قصد الفاصلة المنقوطة في نهاية العبارة في السطر 10.
تشير رسالة الخطأ إلى أن الفاصلة المنقوطة مفقودة . يمكنك النقر المزدوج على رسالة خطأ في قائمة الأخطاء للانتقال إلى موقع الخطأ في الشفرة.



Fig.9 | Syntax error indicated by the IDE.


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

Admin
Admin

عدد المساهمات : 1020
تاريخ التسجيل : 28/01/2014

معاينة صفحة البيانات الشخصي للعضو http://fathallaabdelaziz.forumarabia.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: مدخل البرمجة بلغة السى شارب وتطبيقات الكونسول Console Applications

مُساهمة من طرف Admin في السبت مارس 31, 2018 7:20 pm

رابعا : تعديل تطبيق C# البسيط
نواصل فى هذا القسم تقديمنا للبرمجة بلغة السى شارب مع مثالين لتعديل مثال الشكل 1.
1- عرض سطر واحد من النص بعبارات متعددة Multiple Statements
تستخدم الفئة "مرحبا 2" Class Welcome2 ، كما هو موضح في الشكل 10 ، عبارتين لإنتاج نفس الناتج كما هو موضح في الشكل 1. من هذه النقطة ، نسلط الضوء على الميزات الجديدة والرئيسية في كل قائمة كود ، كما هو موضح في السطور 10-11 من الشكل 10.

الكود:

1     // Fig.10: Welcome2.cs
2     // Displaying one line of text with multiple statements.
3     using System;
4
5     public class Welcome2
6     {
7       // Main method begins execution of C# app
8       public static void Main( string[] args )
9       {
10            Console.Write( "Welcome to " );
11            Console.WriteLine( "C# Programming!" );
12       }  // end Main
13    } // end class Welcome2

Output

Welcome to C# Programming!

Fig. 3.10 | Displaying one line of text with multiple statements.

التطبيق متطابق تقريبًا مع الشكل 1. نناقش التغييرات .
السطر 2

الكود:
// Displaying one line of text with multiple statements.

تعليق ينص على الغرض من هذا التطبيق .
السطر 5 يبدأ إعلان الفئة Welcome2 .
السطور 10-11 جسم الطريقة (الدالة) Main

الكود:
Console.Write( "Welcome to " );
Console.WriteLine( "C# Programming!" );

وهى تعرض سطر واحد من النص في نافذة الكونسول . تستخدم العبارة الأولى الطريقة Write من الفئة Console لعرض سلسلة . على عكس WriteLine ، بعد عرض وسيطه ، لا يقوم Write بوضع مؤشر الشاشة في بداية السطر التالي في نافذة الكونسول - سيظهر الحرف التالي الذي يعرضه التطبيق فورًا بعد الحرف الأخير الذي تعرضه Write. وبالتالي ، يضع السطر 11 أول حرف في وسيطه (الحرف "C") مباشرة بعد الحرف الأخير الذي يعرضه السطر 10 (حرف المسافة قبل حرف الإغلاق المزدوج الخاص بالسلسلة). تستأنف كل عبارة Write عرض الأحرف من حيث آخر عبارة Write عرضت آخر حرف لها .

2- عرض سطور متعددة من النص بعبارة واحدة
يمكن أن تعرض عبارة واحدة أسطر متعددة باستخدام أحرف "سطر جديد" \n ، والتي تشير إلى الطرق Write و WriteLine من الفئة Console عندما يجب وضع مؤشر الشاشة فى بداية السطر التالي في نافذة الكونسول . مثل أحرف المسافات وأحرف التبويب ، أحرف السطر الجديد هي أحرف بيضاء. يقوم تطبيق الشكل 11 بإخراج أربعة أسطر من النص ، باستخدام أحرف السطر الجديد للإشارة إلى وقت بدء كل سطر جديد.


الكود:

1      // Fig. 11: Welcome3.cs
2      // Displaying multiple lines with a single statement.
3     using System;
4
5     public class Welcome3
6    {
7            // Main method begins execution of C# app
8            public static void Main( string[] args )
9            {
10                Console.WriteLine( "Welcome \nto\nC#\nProgramming!" );
11          } // end Main
12     } // end class Welcome3

Output

Welcome
to
C#
Programming!
Fig.11 | Displaying multiple lines with a single statement.


معظم التطبيق مماثل لتطبيقات الشكل 1 والشكل 10 ، لذلك سوف نناقش التغييرات فقط .
السطر 2

الكود:
// Displaying multiple lines with a single statement.

تعليق ينص على الغرض من هذا التطبيق .
السطر 5 يبدأ تعريف فئة Welcome3.
السطر 10

الكود:
Console.WriteLine( "Welcome\nto\nC#\nProgramming!" );


يعرض أربعة أسطر منفصلة من النص في نافذة الكونسول . عادةً ، يتم عرض الأحرف في سلسلة تماماً كما تظهر بين علامات الاقتباس المزدوجة. مع ذلك ، لاحظ أن الحرفين \ و n (مكرران ثلاث مرات في العبارة) لا يظهران على الشاشة.
يسمى الخط المائل العكسي (\) حرف الهروب escape character. وهو يشير إلى شارب #C أن "حرف خاص" موجود في السلسلة. عندما تظهر شرطة مائلة عكسية في سلسلة من الأحرف ، يجمع السى شارب الحرف التالي مع الخط المائل العكسي لتشكيل تسلسل هروب . تسلسل الهروب \n يمثل حرف السطر الجديد . عندما يظهر حرف السطر الجديد في سلسلة يتم إخراجها باستخدام طرق الفئة Console ، يؤدي حرف السطر الجديد إلى تحريك مؤشر الشاشة إلى بداية السطر التالي في نافذة الكونسول . يسرد الشكل 12 العديد من تسلسلات الهروب الشائعة ويصف كيف تؤثر على عرض الأحرف في نافذة الكونسول .




Admin
Admin

عدد المساهمات : 1020
تاريخ التسجيل : 28/01/2014

معاينة صفحة البيانات الشخصي للعضو http://fathallaabdelaziz.forumarabia.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: مدخل البرمجة بلغة السى شارب وتطبيقات الكونسول Console Applications

مُساهمة من طرف Admin في السبت مارس 31, 2018 7:48 pm

خامسا : تنسيق النص باستخدام الطرق Console.Write و Console.WriteLine
الطرق Write و WriteLine للفئة Console أيضا لديها القدرة على عرض البيانات المنسقة.
الشكل 13 يخرج السلاسل "Welcome to" و "C# Programming!" باستخدام WriteLine .


الكود:
 1    //  Fig. 13: Welcome4.cs
2    //  Displaying multiple lines of text with string formatting.
3       using System;
4
5        public class Welcome4
6     {
7            // Main method begins execution of C# app
8            public static void Main( string[] args )
9            {
10                  Console.WriteLine( "{0}\n{1}", "Welcome to", "C# Programming!" );
11         } // end Main
12     } // end class Welcome4

Output

Welcome to
C# Programming!

Fig. 13 | Displaying multiple lines of text with string formatting.

السطر 10 :

الكود:
Console.WriteLine( "{0}\n{1}", "Welcome to", "C# Programming!" );

يستدعى الطريقة Console.WriteLine لعرض خرج التطبيق . استدعاء الطريقة (الدالة) يحدد ثلاث وسائط arguments .عندما تتطلب الطريقة وسائط متعددة ، يتم الفصل بين الوسائط بفواصل (,) - تُعرف هذه القائمة باسم قائمة مفصولة بفواصل.

ممارسة البرمجة الجيدة 6
ضع مسافة بعد كل فاصلة (,) في قائمة الوسائط لجعل التطبيقات أكثر قابلية للقراءة.

تنتهي معظم العبارات بفاصلة منقوطة (Wink . لذلك ، يمثل السطر 10 عبارة واحدة فقط . يمكن تقسيم العبارات الكبيرة عبر عدة خطوط ، ولكن هناك بعض القيود .

أخطاء برمجية شائعة 4
تقسيم عبارة في وسط معرف أو سلسلة يعتبر خطأ في بناء جملة.

السلاسل المنسقة وعناصر التنسيق Format Strings and Format Items :
الوسيط الأول في الطريقة WriteLine هو سلسلة منسقة والتى قد تتكون من "نص ثابت" و"عناصر التنسيق" . النص الثابت يتم إخراجة بواسطة الدالة WriteLine ، كما هو موضح مثال الشكل 1. كل عنصر تنسيق هو عنصر "نائب لقيمة" placeholder . قد تحتوي عناصر التنسيق أيضًا على معلومات تنسيق اختيارية.
يتم تضمين (إحتواء) عناصر التنسيق في أقواس متعرجة {} وتحتوي على أحرف تخبر الطريقة أى وسيط تستخدم وكيفية تنسيقه . على سبيل المثال ، يعد عنصر التنسيق {0} عنصرًا نائبًا للوسيط الإضافى الأول (نظرًا لأن C# يبدأ العد من 0) ، {1} هو عنصر نائب للوسيط الإضافى الثاني وهكذا. تعيّن سلسلة التنسيق في السطر 10 أنه يجب على الطريقة WriteLine إخراج الوسيطين وأن الأول يجب أن يتبعه حرف السطر الجديد. لذلك هذا المثال يحل "Welcome to" محل {0} ويحل "C# Programming!" محل {1}. يظهر الخرج أنه يتم عرض سطرين من النص . لأن الأقواس في سلسلة منسقة تشير عادة إلى عنصر نائب لاستبدال النص ، فيجب أن تكتب اثنين من الأقواس اليسرى ({{) أو اثنين من الأقواس اليمنى (}}) لإدراج قوس يسار أو يمين واحد في سلسلة منسقة ، على التوالي . نقدم ميزات تنسيق إضافية عند الحاجة إليها في الأمثلة.

Admin
Admin

عدد المساهمات : 1020
تاريخ التسجيل : 28/01/2014

معاينة صفحة البيانات الشخصي للعضو http://fathallaabdelaziz.forumarabia.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: مدخل البرمجة بلغة السى شارب وتطبيقات الكونسول Console Applications

مُساهمة من طرف Admin في الأحد أبريل 01, 2018 11:19 am

سادسا : تطبيق C# آخر : جمع الأعداد الصحيحة Adding Integers
التطبيق التالي يقرأ reads (أو يدخل inputs ) عددين صحيحين (الأعداد الصحيحة ، مثل –22, 7, 0 , 1024 ) تكتب بواسطة المستخدم عن طريق لوحة المفاتيح ، ويحسب مجموع القيم ويعرض النتيجة.
هذا التطبيق يجب أن يتعقب الأعداد المقدمة من المستخدم للحساب لاحقًا في التطبيق . تحفظ التطبيقات الأعداد numbers والبيانات الأخرى في ذاكرة الكمبيوتر وتصل إلى تلك البيانات من خلال عناصر التطبيق التي تسمى المتغيرات variables . يوضح تطبيق الشكل 14 هذه المفاهيم . في عينة الخرج ، تم تمييز البيانات التي يدخلها المستخدم من على لوحة المفاتيح بخط غامق bold .

الكود:
1    // Fig. 14: Addition.cs
2    // Displaying the sum of two numbers input from the keyboard.
3    using System;
4
5
public class Addition
6    {
7       // Main method begins execution of C# app
8       public static void Main( string[] args )
9       {
10          int number1; // declare first number to add
11          int number2; // declare second number to add
12          int sum; // declare sum of number1 and number2
13
14          Console.Write( "Enter first integer: " ); // prompt user
15          // read first number from user
16         number1 = Convert.ToInt32( Console.ReadLine() );
17
18          Console.Write( "Enter second integer: " ); // prompt user
19          // read second number from user
20          number2 = Convert.ToInt32( Console.ReadLine() );
21
22          sum = number1 + number2; // add numbers
23
24          Console.WriteLine( "Sum is {0}", sum ); // display sum
25       } // end Main
26    } // end class Addition

Output

Enter first integer: 45
Enter second integer: 72
Sum is 117

Fig. 3.14 | Displaying the sum of two numbers input from the keyboard.


• التعليقات Comments
السطور 1-2 :

الكود:
// Fig. 14: Addition.cs
// Displaying the sum of two numbers input from the keyboard.

• إعلان فئة الجمع Class Addition
السطر 5 :

الكود:
public class Addition
 
يبدأ الإعلان عن فئة "الجمع" class Addition. تذكر أن جسم كل إعلان لفئة يبدأ بقوس الفتح الأيسر ({) (السطر 6) وينتهي بقوس الغلق الأيمن (}) (السطر 26).

• الدالة الرئيسية Function Main
يبدأ التطبيق التنفيذ بالدالة الرئيسية Main (السطور 8-25 ) . يمثل القوس الأيسر (السطر 9) بداية جسم الدالة الرئيسية Main ، ويمثل القوس الأيمن المقابل (السطر 25) نهاية جسم الدالة الرئيسية . تم وضع الطريقة (الدالة) Main بعد مسافة بادئة لمستوى واحد داخل جسم الفئة Addition وتم وضع كود جسم الدالة الرئيسية بعد مسافة بادئة لمستوى آخر لقابلية القراءة .

• إعلان المتغير Declaring Variable number1 :
السطر 10


الكود:
int number1; // declare first number to add

عبارة إعلان (تعريف) متغير والتى تحدد "اسم" name (number1) و"نوع" type (int) المتغير المستخدم في هذا التطبيق . المتغير هو موقع في ذاكرة الكمبيوتر حيث يمكن تخزين "قيمة" value للاستخدام لاحقًا في التطبيق . يتم الإعلان عن المتغيرات عادةً باسم ونوع قبل استخدامها . اسم المتغير يمكّن التطبيق من الوصول إلى قيمة المتغير في الذاكرة - الاسم يمكن أن يكون أي معرف صالح (سوف نتعرف على متطلبات التسمية لاحقا) . يحدد نوع المتغير نوع المعلومات المخزنة في ذلك الموقع في الذاكرة ومقدار المساحة التي يجب وضعها جانباً (تخصيصها) لتخزين تلك القيمة. مثل العبارات الأخرى ، تنتهي عبارات التعريف بفاصلة منقوطة (Wink .

• النوع "عدد صحيح" Type int :
يحدد الإعلان في السطر 10 أن المتغير المسمى number1 هو من نوع int- فهو سيحتوي (يحفظ) على قيم عدد صحيح (الأعداد الصحيحة مثل 7, –11, 0 , 31914 ). نطاق القيم من أجل النوع int يكون –2,147,483,648 (int.MinValue) إلى +2,147,483,647 (int.MaxValue) . سنناقش في وقت قريب الأنواع float, double , decimal ، لتحديد الأعداد الحقيقية real numbers ، والنوع char ، لتحديد الأحرف characters . تحتوي الأعداد الحقيقية على نقاط عشرية ، كما في 3.4, 0.0 , –11.19 .
المتغيرات من نوع float , double تخزن قيم تقريبية لأعداد حقيقية في الذاكرة. المتغيرات من النوع decimal تخزن أعداد حقيقية دقيقة ، لذلك غالبا ما تستخدم المتغيرات decimal مع الحسابات النقدية . تمثل المتغيرات من نوع char الأحرف الفردية ، مثل حرف كبير (على سبيل المثال ، A) ، أو رقم (على سبيل المثال ، 7) ، أو حرف خاص (على سبيل المثال ، * أو%) أو تسلسل هروب (على سبيل المثال ، حرف السطر الجديد ، \n ). غالباً ما تسمى الأنواع مثل int, float, double, decimal , char بالأنواع البسيطة. مسميات النوع البسيط هي كلمات أساسية (محجوزة) ويجب أن تظهر كلها بالأحرف الصغيرة.

• إعلان المتغيرات number2 و sum :
عبارات إعلان المتغيرات فى السطور 11-12 :

الكود:
int number2; // declare second number to add
int sum; // declare sum of number1 and number2

وبالمثل ، إعلان المتغيرات number2 و sum لتكون من النوع int.
يمكن تقسيم عبارات تعريف المتغيرات على عدة أسطر ، مع فصل أسماء المتغيرات بفواصل (أي قائمة مفصولة بفواصل بأسماء المتغيرات). قد يتم الإعلان عن عدة متغيرات من نفس النوع في إعلان واحد أو في إعلانات متعددة. على سبيل المثال ، يمكن أيضًا كتابة الأسطر من 10 إلى 12 كما يلي:

الكود:
int number1, // declare first number to add
number2, // declare second number to add
sum; // declare sum of number1 and number2



ممارسة البرمجة الجيدة 7
قم بتعريف كل متغير على سطر منفصل . يسمح هذا التنسيق بإدراج التعليق بسهولة بجوار كل إعلان .

ممارسة البرمجة الجيدة 8
إن اختيار أسماء المتغيرات ذات المعنى يساعد الكود على أن يكون موثقا ذاتيًا (بمعنى أنه يمكن فهم الكود ببساطة من خلال قرأته بدلاً من قرأة كتيبات التوثيق أو مشاهدة عدد كبير من التعليقات).

ممارسة البرمجة الجيدة 9
حسب الاتفاقيات ، تبدأ معرفات اسم المتغير بحرف صغير ، وكل كلمة في الاسم بعد الكلمة الأولى تبدأ بحرف كبير. تعرف اتفاقية التسمية هذه باسم غلاف الجمل المنخفض .

• مطالبة (حث) المستخدم للإدخال Prompting the User for Input :
السطر 14 :

الكود:
Console.Write( "Enter first integer: " ); // prompt user

تستخدم الطريقة (الدالة) Console.Write لعرض الرسالة "Enter first integer: " . هذه الرسالة تسمى "حث" prompt لإنها توجه المستخدم لأخذ فعل محدد .

• قراءة قيمة من المتغير number1 :
السطر 16 :


الكود:
number1 = Convert.ToInt32( Console.ReadLine() );

يعمل في خطوتين . أولاً ، يستدعي الطريقة (الدالة) Console.ReadLine ، التي تنتظر المستخدم لكتابة سلسلة من الأحرف في لوحة المفاتيح والضغط على مفتاح Enter . كما ذكرنا ، بعض الطرق تؤدي مهمة ثم تعيد نتيجة تلك المهمة. في هذه الحالة ، تقوم ReadLine بإرجاع "النص" الذي قام المستخدم بإدخاله. بعد ذلك ، يتم استخدام هذه السلسلة كوسيط للطريقة ToInt32 بالفئة Convert ، والتى تحول هذا التسلسل من الأحرف إلى بيانات من نوع int. في هذه الحالة ، تقوم الدالة ToInt32 بإرجاع تمثيل "عدد صحيح" int لمدخلات المستخدم .

• إمكانية إدخال خاطىء للمستخدم
من الناحية الفنية ، يمكن للمستخدم كتابة أي شيء كقيمة إدخال. سوف تقبلها الدالة ReadLine ثم يتم تمريرها إلى الدالة ToInt32. تفترض هذه الدالة أن السلسلة تحتوي على قيمة عدد صحيح صالحة. في هذا التطبيق ، إذا قام المستخدم بكتابة قيمة لغير عدد صحيح ، فسيحدث خطأ منطقي في وقت التشغيل يسمى "الاستثناء" exception وسيتم إنهاء التطبيق. يقدم C# تقنية تسمى معالجة الاستثناء والتي ستساعدك على جعل تطبيقاتك أكثر قوة من خلال تمكينها من التعامل مع الاستثناءات ومتابعة التنفيذ. يُعرف هذا أيضًا باسم جعل تطبيقك "متسامح الخطأ" . سوف نلقي نظرة أعمق على معالجة الاستثناءات لاحقا .

• تعيين (تخصيص) قيمة للمتغير Assigning a Value to a Variable
في السطر 16 ، يتم وضع نتيجة استدعاء الطريقة (الدالة) ToInt32 (قيمة int) في المتغير number1 باستخدام عامل "التخصيص" أو "التعيين" ، = . تقرأ العبارة "number1 يحصل على القيمة التي تم إرجاعها بواسطة Convert.ToInt32" . العامل ( = ) هو عامل ثنائي ، لأنه يعمل على قطعتين من المعلومات، والتى تُعرف على أنها معاملاته operands - في هذه الحالة ، تكون المعاملات هي number1 ونتائج استدعاء الدالة Convert.ToInt32. تسمى هذه العبارة "عبارة تخصيص أو تعيين " ، لأنها تعيّن قيمة للمتغير. يتم دائمًا تقييم كل شيء على يمين عامل التعيين .

ممارسات البرمجة الجيدة 10
ضع مسافات على جانبي العامل الثنائي لجعل الكود أكثر قابلية للقراءة.

• مطالبة المستخدم لإدخال وقراءة قيمة إلى المتغير number2
السطر 18

الكود:
Console.Write( "Enter second integer: " ); // prompt user

يطالب (يحث) المستخدم بإدخال العدد الصحيح الثاني.
السطر 20


الكود:
number2 = Convert.ToInt32( Console.ReadLine() );

يقرأ العددً الصحيحً الثانى ويقوم بتعيينه للمتغير number2.

• جمع العدد الأول number1 والعدد الثانى number2 :
السطر 22 :



الكود:
sum = number1 + number2; // add numbers




حساب مجموع number1 و number2 وتعيين النتيجة إلى المتغير sum باستخدام عامل التعيين ، =. تتم قراءة العبارة كـما يلى " يحصل sum على قيمة number1 + number2". يتم إجراء معظم العمليات الحسابية في عبارات تعيين . عند مواجهة number1 + number2 ، يتم استخدام القيم المخزنة في المتغيرات في الحساب. عامل الجمع هو عامل ثنائي – معملاته هى number1 و number2 . تسمى الأجزاء من العبارات التي تحتوي على عمليات حسابية بالتعبيرات expressions . في الواقع ، التعبير هو أي جزء من عبارة statement له قيمة مقترنة به. على سبيل المثال ، قيمة التعبير number1 + number2 هي مجموع العددين . وبالمثل ، فإن قيمة التعبير Console.ReadLine() هي سلسلة من الأحرف التي كتبها المستخدم .

• عرض المجموع sum :
بعد إجراء الحساب ، السطر 24

الكود:
Console.WriteLine( "Sum is {0}", sum ); // display sum

يستخدم الطريقة Console.WriteLine لعرض المجموع sum . يعد عنصر التنسيق {0} عنصرًا نائبًا للوسيط الأول بعد سلسلة التنسيق . بخلاف عنصر التنسيق {0} ، تكون الأحرف المتبقية في سلسلة التنسيق نصًا ثابتًا. لذا تعرض الطريقة WriteLine التالى "Sum is" ، متبوعة بقيمة المجموع sum (في موضع عنصر التنسيق {0}) وسطر جديد.

• إجراء (أداء) الحسابات في عبارات الإخراج :
يمكن إجراء الحسابات أيضًا داخل عبارات الإخراج . كان من الممكن دمج العبارات في السطور 22 و 24 في العبارة :


الكود:
Console.WriteLine( "Sum is {0}", ( number1 + number2 ) );


الأقواس حول التعبير number1 + number2 غير مطلوبة - يتم تضمينها للتوضيح وللتأكيد على أن قيمة التعبير number1 + number2 يتم إخراجها في موضع عنصر التنسيق {0}.

Admin
Admin

عدد المساهمات : 1020
تاريخ التسجيل : 28/01/2014

معاينة صفحة البيانات الشخصي للعضو http://fathallaabdelaziz.forumarabia.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: مدخل البرمجة بلغة السى شارب وتطبيقات الكونسول Console Applications

مُساهمة من طرف Admin في الأحد أبريل 01, 2018 11:51 am

سابعا : مفاهيم الذاكرة Memory Concepts
أسماء المتغيرات مثل number1 و number2 و sum فعليًا تطابق مواقع في ذاكرة الكمبيوتر. كل متغير له اسم ونوع وحجم (يحدده النوع) وقيمة.
في تطبيق الجمع الشكل 14 ، فى العبارة (السطر 16) :

الكود:
number1 = Convert.ToInt32( Console.ReadLine() );

تم التعيين (التخصيص) للاسم number1 بواسطة المترجم . افترض أن المستخدم يدخل 45. يضع الكمبيوتر هذه القيمة للعدد الصحيح في الموقع number1 ، كما هو موضح في الشكل 15. عندما يتم وضع قيمة في موقع ذاكرة ، تحل القيمة محل القيمة السابقة في هذا الموقع - القيمة السابقة يتم فقدها .




عندما يتم تنفيذ العبارة (السطر20 ) :

الكود:
number2 = Convert.ToInt32( Console.ReadLine() );

افترض أن المستخدم يقوم بإدخال 72. يضع الكمبيوتر قيمة هذا العدد الصحيح في موقع number2 . الآن تظهر الذاكرة كما هو موضح في الشكل 16.




بعد أن يحصل تطبيق الشكل 14 على قيم number1 و number2 ، فإنه يجمع القيم ويضع قيمة المجموع في المتغير sum . العبارة التالية (السطر 22)

الكود:
sum = number1 + number2; // add numbers

يتم تنفيذ الجمع ، ثم تستبدل قيمة sum السابقة . بعد حساب المجموع sum ، تظهر الذاكرة كما هو موضح في الشكل 17. تظهر قيم number1 و number2 تمامًا كما كانت قبل استخدامها في حساب المجموع sum . تم استخدام هذه القيم ، ولكن لم يتم إتلافها ، حيث قام الكمبيوتر بإجراء الحساب - عند قراءة قيمة من موقع ذاكرة ، تكون العملية غير تدميرية.






Admin
Admin

عدد المساهمات : 1020
تاريخ التسجيل : 28/01/2014

معاينة صفحة البيانات الشخصي للعضو http://fathallaabdelaziz.forumarabia.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: مدخل البرمجة بلغة السى شارب وتطبيقات الكونسول Console Applications

مُساهمة من طرف Admin في الأحد أبريل 01, 2018 12:19 pm

ثامنا : الحساب Arithmetic
معظم التطبيقات تقوم بعمليات حسابية. الشكل 18 يوضح ملخص للعوامل الحسابية . لاحظ الرموز الخاصة المختلفة التي لا تستخدم في الجبر. تشير علامة النجمة (*) إلى الضرب ، وعلامة النسبة المئوية (%) هي عامل باقي خارج القسمة (يطلق عليه modulus في بعض اللغات) ، والذي سنناقشه قريبًا. العوامل الحسابية في الشكل 18 هى عوامل ثنائية - على سبيل المثال ، يحتوي التعبير f + 7 على العامل الثنائي + والمعاملان f و 7.
إذا كان كلا من معاملى عامل القسمة (/) هي أعداد صحيحة ، يتم تنفيذ قسمة الأعداد الصحيحة وتكون النتيجة عددًا صحيحًا - على سبيل المثال ، يتم تقييم التعبير 7/4 إلى 1 ، ويتم تقييم التعبير 17/5 إلى 3. أي جزء كسور فى قسمة الأعداد الصحيحة ببساطة يتم اقتطاعه (أي إهماله) - لا يتم التقريب.
يوفر C# عامل باقى خارج القسمة % ، والذي ينتج الباقي بعد القسمة. التعبير x % y ينتج الباقي بعد قسمة x على y. وبالتالي ، فإن 7 % 4 تنتج 3 ، و 17 % 5 تنتج 2. هذا العامل هو الأكثر استخدامًا مع معاملات الأعداد الصحيحة ولكن يمكن استخدامه أيضًا مع floats, doubles, decimals .




• التعبيرات الحسابية في شكل خط مستقيم Arithmetic Expressions in Straight-Line Form
يجب كتابة التعبيرات الحسابية في شكل خط مستقيم لتسهيل إدخال التطبيقات في الكمبيوتر. وبالتالي ، يجب كتابة تعبيرات مثل “a divided by b” فى الشكل a / b ، بحيث تظهر جميع الثوابت والمتغيرات والعوامل في خط مستقيم. الشكل الجبرى التالي غير مقبول للمترجم :



• أقواس تجميع التعبيرات الفرعية
يتم استخدام الأقواس لتجميع عناصر تعبيرات C# بنفس الطريقة كما في التعبيرات الجبرية. على سبيل المثال ، لضرب a فى الكمية a + b ، نكتب

الكود:
a * ( b + c )

إذا كان التعبير يحتوي على أقواس متداخلة ، مثل

الكود:
 ( ( a + b ) * c )

يتم تقييم التعبير في مجموعة الأقواس الأعمق (a + b في هذه الحالة) أولاً.


• قواعد أسبقية العامل Rules of Operator Precedence
يطبق C# العوامل في التعبيرات الحسابية في تسلسل دقيق تحدده القواعد التالية لأسبقية العامل ، والتي هي بشكل عام نفس تلك المتبعة في الجبر (الشكل 19). تمكن هذه القواعد C# من تطبيق العوامل بالترتيب الصحيح .






Admin
Admin

عدد المساهمات : 1020
تاريخ التسجيل : 28/01/2014

معاينة صفحة البيانات الشخصي للعضو http://fathallaabdelaziz.forumarabia.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: مدخل البرمجة بلغة السى شارب وتطبيقات الكونسول Console Applications

مُساهمة من طرف Admin في الأحد أبريل 01, 2018 7:19 pm

تاسعا : صنع (إتخاذ) القرار Decision Making: عوامل المساواة Equality والعلاقات (الصلات) Relational
"الشرط" condition هو "تعبير" يمكن أن يكون صحيحًا true أو خطأ false . يقدم هذا القسم إصدارًا بسيطًا من عبارة if فى السى شارب والتى تسمح للتطبيق باتخاذ قرار بناءً على قيمة الشرط . على سبيل المثال ، يحدد الشرط "الدرجة أكبر من أو تساوي 60" ما إذا كان الطالب قد اجتاز الاختبارًا أم لا. إذا كان الشرط الموجود في عبارة if صحيحًا ، فسيتم تنفيذ جسم عبارة if. إذا كان الشرط خاطئًا ، فلن يتم تنفيذ الجسم . سنرى مثالا قريبا.
الشروط في عبارات if يمكن تشكيلها باستخدام عوامل المساواة ( == , != ) وعوامل العلاقات ( > , < , >= , <= ) الموضحة في الشكل21. لدى كل من عاملى التساوى ( == , != ) نفس المستوى من الأسبقية ، ولكل من عوامل العلاقات
( > , < , >= , <= ) نفس مستوى الأسبقية ، ولعاملى المساواة أسبقية أقل من عوامل العلاقات . انها جميعا ترتبط من اليسار إلى اليمين .



أخطاء برمجية شائعة 5 :
يمكن أن يؤدي الخلط بين عامل المساواة ، == ، وعامل التخصيص ، = ، إلى حدوث خطأ منطقي أو خطأ في بناء الجملة. يجب قراءة عامل المساواة على أنه “is equal to,” ، ويجب قراءة عامل التخصيص على أنه “gets” أو "يحصل" أو “gets the value of.” . لتجنب الخلط ، يقرأ بعض المبرمجين عامل المساواة على أنه “double equals” أو“equals equals.” .

• إستخدام عبارة if
يستخدم الشكل 22 ستة عبارات if لمقارنة عددين صحيحين تم إدخالهما بواسطة المستخدم . إذا كان الشرط الموجود في أي من عبارات if هذه صحيحًا ، فسوف يتم تنفيذ عبارة التخصيص المصاحبة لهذه العبارة . يستخدم التطبيق الفئة Console للمطالبة وقراءة سطرين من النص من المستخدم ، يتم إستخراج الأعداد الصحيحة من هذا النص بالطريقة ToInt32 للفئة Convert ، وتخزينها في المتغيرات number1 و number2 . ثم يقارن التطبيق الأعداد ويعرض نتائج المقارنات التى تكون صحيحة true .

الكود:

1    // Fig.22: Comparison.cs
2    // Comparing integers using if statements, equality operators
3    // and relational operators.
4    using System;
5
6   public class Comparison
7    {
8       // Main method begins execution of C# app
9       public static void Main( string[] args )
10       {
11          int number1; // declare first number to compare
12          int number2; // declare second number to compare
13
14          // prompt user and read first number
15          Console.Write( "Enter first integer: " );
16          number1 = Convert.ToInt32( Console.ReadLine() );
17
18          // prompt user and read second number
19          Console.Write( "Enter second integer: " );
20          number2 = Convert.ToInt32( Console.ReadLine() );
21
22         if ( number1 == number2 )
23            Console.WriteLine( "{0} == {1}", number1, number2 );
24
25         if ( number1 != number2 )
26            Console.WriteLine( "{0} != {1}", number1, number2 );
27
28         if ( number1 < number2 )
29            Console.WriteLine( "{0} < {1}", number1, number2 );
30
31         if ( number1 > number2 )
32            Console.WriteLine( "{0} > {1}", number1, number2 );
33
34         if ( number1 <= number2 )
35            Console.WriteLine( "{0} <= {1}", number1, number2 );
36            
37         if ( number1 >= number2 )
38            Console.WriteLine( "{0} >= {1}", number1, number2 );
39    } // end Main
40       } // end class Comparison

Output

Enter first integer: 42
Enter second integer: 42
42 == 42
42 <= 42
42 >= 42
***************************
Enter first integer: 1000
Enter second integer: 2000
1000 != 2000
1000 < 2000
1000 <= 2000
*****************************

Enter first integer: 2000
Enter second integer: 1000
2000 != 1000
2000 > 1000
2000 >= 1000
Fig. 22 | Comparing integers using if statements, equality operators and relational operators.

• إعلان الفئة "مقارنة" Class Comparison
إعلان الفئة Comparison يبدأ عند السطر 6 :

الكود:
 public class Comparison

• الدالة الرئيسية Main الخاصة بهذه الفئة (السطور 9-39 ( ، هى بداية تنفيذ التطبيق .
• إعلانات المتغيرات Variable Declarations
السطور 11-12 :

الكود:
int number1; // declare first number to compare
int number2; // declare second number to compare

تعلن عن متغيرات نوع int تستخدم لتخزين القيم المدخلة بواسطة المستخدم .
• قراءة المدخلات من المستخدم :
# السطور 14-16 :

الكود:
// prompt user and read first number
Console.Write( "Enter first integer: " );
number1 = Convert.ToInt32( Console.ReadLine() );

تطلب من المستخدم إدخال العدد الصحيح الأول (السطر15 ) ، وقراءة القيمة المدخلة (السطر 16 ) . يتم تخزين القيمة المدخلة فى المتغير number1 .
# السطور 18-20 :


الكود:
// prompt user and read second number
Console.Write( "Enter second integer: " );
number2 = Convert.ToInt32( Console.ReadLine() );

تقوم بتنفيذ نفس المهمة ، لكن يتم تخزين القيمة المدخلة فى المتغير number2 .
• مقارنة الأعداد Comparing Numbers
السطور 22-23 :

الكود:
if ( number1 == number2 )
Console.WriteLine( "{0} == {1}", number1, number2 );

تقارن قيم المتغيرات number1 و number2 لتحديد ما إذا كانت متساوية. تبدأ عبارة if دائمًا بالكلمة الرئيسية (المحجوزة) if ، متبوعة بشرط بين قوسين . تتوقع عبارة if عبارة واحدة في جسمها. المسافة البادئة لبيان الجسم الموضح هنا ليست مطلوبة ، ولكنها تحسّن من قراءة الكود بالتشديد على أن العبارة في السطر 23 هي جزء من عبارة if التي تبدأ في السطر 22 . لا ينفّذ السطر 23 إلا إذا كانت الأعداد المخزنة في المتغيرات number1 و number2 متساوية (على سبيل المثال ، يكون الشرط صحيح true ). عبارات if فى السطور 25–26, 28–29, 31–32, 34–35 , 37–38 تقارن الأعداد number1 و number2 بالعوامل !=, <, >, <= , >= على التوالي . إذا كان الشرط الموجود في أي من عبارات if صحيح true ، فسيتم تنفيذ عبارة الجسم المقابل.

خطأ برمجى شائع 6
إن حذف الأقواس اليسرى و/أو اليمنى للشرط في عبارة if عبارة عن خطأ في بناء الجملة — فالأقواس مطلوبة.

خطأ برمجى شائع 7
عكس العوامل!=, >= <= , كما في =!, => , =<, ، يمكن أن يؤدي إلى أخطاء في بناء الجملة أو المنطق.

خطأ برمجى شائع 8
يكون خطأ في بناء الجملة إذا كانت العوامل ==, !=, >= , <= تحتوي على مسافات بين رموزها ، كما في
= =, ! =, > = , < = على التوالي .

ممارسات البرمجة الجيدة 11
ضع مسافة بادئة لجسم عبارة if لتميزها ولتحسين قابلية قراءة التطبيق .

• لا توجد فاصلة منقوطة (Wink في نهاية السطر الأول من عبارة if
لا توجد فاصلة منقوطة (Wink في نهاية السطر الأول من كل عبارة if . مثل هذه الفاصلة المنقوطة قد ينتج عنها خطأ منطقي في وقت التنفيذ . فمثلا

الكود:
if ( number1 == number2 ); // logic error
Console.WriteLine( "{0} == {1}", number1, number2 );

في الواقع يمكن تفسيرها من قبل C# كما يلى :


الكود:
if ( number1 == number2 )
; // empty statement
Console.WriteLine( "{0} == {1}", number1, number2 );

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

خطأ برمجى شائع 9
وضع الفاصلة المنقوطة فورًا بعد القوس الأيمن للشرط في عبارة if يكون عادة خطأ منطقي.

• المسافة الفارغة (البيضاء) Whitespace
لاحظ استخدام المسافات البيضاء في الشكل 22. تذكر أن أحرف المسافات البيضاء ، مثل علامات التبويب والسطور الجديدة والمسافات ، يتم تجاهلها من قبل المترجم . لذا قد يتم تقسيم العبارات على عدة أسطر ويمكن أن تكون متباعدة وفقًا لتفضيلاتك دون التأثير على معنى أي تطبيق . من غير الصحيح أن يتم تقسيم المعرّفات وسلاسل الأحرف والعوامل ذات الأحرف المتعددة (مثل >= ). من الناحية المثالية ، ينبغي أن تظل البيانات صغيرة ، ولكن هذا ليس ممكنا دائما.

ممارسة جيدة للبرمجة 12
لا تضع أكثر من بيان واحد في كل سطر في التطبيق . هذا التنسيق يعزز قابلية القراءة.

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

• أسبقية ومشاركة Precedence and Associativity العوامل التى ناقشناها حتى الآن
يوضح الشكل 23 أسبقية العوامل المقدمة في هذا الدرس . يتم إظهار العوامل من الأعلى إلى الأسفل بتناقص ترتيب الأسبقية. كل هذه العوامل ، باستثناء عامل التخصيص ، = ، يربط من اليسار إلى اليمين . الجمع يتم ربطه من اليسار ، لذلك يتم تقييم تعبير مثل x + y + z كما لو كان مكتوبًا (x + y) + z .
عامل التخصيص ، = ، يربط من اليمين إلى اليسار ، لذلك يتم تقييم تعبير مثل x = y = 0 كما لو كان قد تم كتابته
x = (y = 0), ، وهى تقوم أولاً بتعيين قيمة 0 إلى المتغير y ثم تعيين نتيجة ذلك التعيين إلى المتغير x.

ممارسات البرمجة الجيدة 14
عند كتابة التعبيرات التي تحتوي على العديد من العوامل. تأكد من تنفيذ العمليات في التعبير بالترتيب الذي تتوقعه. إذا كنت غير متأكد من ترتيب التقييم في تعبير معقد ، فاستخدم الأقواس لإجبار الترتيب ، كما تفعل في التعبيرات الجبرية.
لاحظ أن بعض العوامل ، مثل التعيين ، = ، ترتبط من اليمين إلى اليسار بدلاً من اليسار إلى اليمين .








Admin
Admin

عدد المساهمات : 1020
تاريخ التسجيل : 28/01/2014

معاينة صفحة البيانات الشخصي للعضو http://fathallaabdelaziz.forumarabia.com

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

- مواضيع مماثلة

 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى