 |
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
|
|
نشاط [ F.Abdelaziz ]
قوة السمعة:333
|
|
01-04-2018, 11:24 AM
المشاركة 8
|
|
سادسا : تطبيق 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 للاستخدام لاحقًا في التطبيق . يتم الإعلان عن المتغيرات عادةً باسم ونوع قبل استخدامها . اسم المتغير يمكّن التطبيق من الوصول إلى قيمة المتغير في الذاكرة - الاسم يمكن أن يكون أي معرف صالح (سوف نتعرف على متطلبات التسمية لاحقا) . يحدد نوع المتغير نوع المعلومات المخزنة في ذلك الموقع في الذاكرة ومقدار المساحة التي يجب وضعها جانباً (تخصيصها) لتخزين تلك القيمة. مثل العبارات الأخرى ، تنتهي عبارات التعريف بفاصلة منقوطة ( .
• النوع "عدد صحيح" 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}.
|