mahmoud
عدد الرسائل : 12 العمر : 41 البلد : egypt الوظيفة : it الدعوة : mtskaso@yahoo.com الدولة : تاريخ التسجيل : 15/03/2008
| موضوع: الدرس الرابع برنامج يجمع رقمين الثلاثاء مارس 25, 2008 5:41 pm | |
| في هذا الدرس سنقوم إن شاء الله بتوضيح برنامج آخر بسيط يقوم بجمع رقمين صحيحين ، حيث يقوم المستخدم بإدخال الرقم الأول ثم يضغط Enter للانتقال للرقم الثاني ، ثم يدخل الرقم الثاني ويضغط أيضا ً Enter لتظهر نتيجة جمع هذين الرقمين .. والآن بسم الله نبدأ : قم بإنشاء مشروع جديد من نوع Console Application وسمهAddition وسمي الClass أيضا ً Addition .والآن يجب أن يكون شكل الكود الحالي كالتالي : C#
using System;
class Addition
{
static void Main(string[] args)
{
}
}
|
أولا ً بما أن البرنامج سيقوم بجمع رقمين صحيحين وناتج الجمع أيضا ً رقم صحيح ، إذاً عليناأن نعرّف ثلاث متغيرات من نوع صحيح(integer) . (رقم صحيح : أي من غير كسور عشريه 3 ، 8 ، 43 ). C#
int numbr1 , number2 , Sum;
|
والآن ما معنى الجملة السابقة : int : هي كلمة محجوزة وتستخدم لتعريف متغير حيث يستقبل ويحفظ قيم من نوع integer وتكتب قبل المتغير المطلوب تعريفه . number1,number2,sum : وهم أسماء لمتغيرات لا تستقبل إلاّ أرقام من نوع integer وتفصل بينهمفاصلة عادية أي كل اسم تابع للتعريف. ; : وهي ضرورية في نهاية أي جملة برمجية . ويمكن تعريف المتغيرات السابقة كالتالي : C#
int number1;
int number2;
int sum;
|
لكن الطريقة الأولى أسهل حيث نعرفهم كلهم بكلمة واحدة وسطر واحد يفصل بينهم فاصلة (,) .والآن ستواجهنا مشكلة لأن جملة القراءة لا تسند إلا قيم من نوع حرف . فكيف سنحل هذه المشكلة . ستفكر وتقول : تعرف متغيرات من نوع أحرف(string) ونسند إليها القيم المدخلةعلى أنها أحرف ثم نحولها إلى أرقام صحيحة ونعطيها للمتغيرات التي عرفناها من نوع (integer) ، وهذا بالظبط ما سنفعله ، إذا الآن سنعرف متغيرين من نوع string وليس ثلاث لأن المجموع لا يحتاج إلى تحويل لأنه ببساطة غير مدخل بل هو نتيجة . C#
String FirstNumber , SecondNumber;
|
string : كلمة محجوزة تستخدم لتعريف متغير حيث يستقبل ويخزن حرف أو مجموعة من الأحرف . FirstNumber : اسم متغير لا يستقبل إلا حرف وهو الذي سيأخذ قيمة المتغير number1 قبل تحويله إلى integer . SecondNumber : اسم متغير لا يستقبل إلا حرف وهو الذي سيأخذ قيمة المتغيرnumber2 قبل تحويله إلى integer .
والآن أصبح شكل الكود كما يلي : C#
using System;
class Addition
{
static void Main(string[] args)
{
//string تعريف متغيرين من نوع
string FirstNumber , SecondNumber;
//integer تعريف ثلاث متغيرات من نوع
int number1 , number2 , sum ;
}
}
|
وقبل أن نكتب جملة القراءة سنطبع جملة حتى يفهم المستخدم ماذا يفعل أو ما المطلوب منه : C#
Console.Write("Enter First Number :");
|
وهي جملة طباعة عادية كما تعلمناها لكن بعد الطباعة لا تنتقل إلى سطر جديد . والآن جملة القراءة : C#
FirstNumber = Console.ReadLine(); |
قمنا باستدعاء ال ReadLine() method
من ال Console Class
الموجود في المكتبة using namespace
ووظيفته قراءة ما يدخله المستخدم وإسنادها للمتغير FirstNumber ثم الانتقال إلى سطر جديد . |
هكذا نكون قد أدخلنا القيمة الأولى وهي مخزنة الآن في المتغير FirstNumber على شكل حرف : والآن سنقوم بإدخال الرقم الثاني : جملة الطباعة أولا ً : C#
Console.Write("\nEnter Second Number :");
|
جملة القراءة ثانيا ً : C#
SecondNumber = Console.ReadLine();
|
والآن بعد أن حصلنا على القيمتين سنقوم بتحويلهما إلى integer . C#
number1 = Int32.Parse(FirstNumber);
|
هنا قمنا باستدعاء ال parse method
من ال Int32 Class
الموجود في ال System namespace
حيث يقوم الmethod بتحويل القيمة الموجودة في المتغير FirstNumber إلى قيمة من نوع integer
وإعطاؤها للمتغير number1 .
والآن تحويل المتغير الثاني وإسناده إلى المتغير number2 بنفس الطريقة :
|
C#
number2 = Int32.Parse(SecondNumber);
|
أصبح لدينا الآن قيمتين من نوع integer ما علينا سوى جمعهما وطريقة الجمع سهلة جدا ً . في الحساب العادي عندما نريد أن نجمع الرقمين 5 و 7 نقول : 7 + 5 = 12 بمعنى قم بجمع الرقمين 7 و 5 وضع الناتج في الطرف الثاني والذي هو 12 وهذا الأسلوب نفسه الذي نستخدمه في الجمع في البرمجة حيث : C#
sum = number1 + number2 ;
|
بمعنى اجمع قيمة المتغير number1 مع قيمة المتغير number2 وضع الناتج في المتغير sum. إذ "=" معناها اسند ناتج الطرف الأيمن للمتغير في الطرف الأيسر . والآن انتهت عملية الجمع بقي علينا فقط إظهار الناتج : C#
Console.WriteLine("\nThe Sum is :{0}",sum);
|
بمعنى أنه سيطبع أولا ً الجملة The sum is ثم في المكان {0}سيطبع قيمة sum وهذه طريقة حتى تطبع أي قيمة خلال النص ورقم 0 يعني أنه الرقم الأول الذي سيُطبع . فمثلا لو أردنا طباعة أكثر من رقم : C#
Console.WriteLine(“The Numbers are :{0},{1},{2}”,number1 , number2 , number3); |
وهكذا ...
والآن وقد انتهى البرنامج سيكون الcode كاملاً كما يلي :
|
C#
using System;
class Addition
{
static void Main(string[] args)
{
//string تعريف متغيرين من نوع
string FirstNumber , SecondNumber;
//integer تعريف ثلاث متغيرات من نوع
int number1 , number2 , sum ;
// إدخال القيمة الآولى
Console.Write("Enter First Number :");
FirstNumber = Console.ReadLine();
// إدخال القيمة الثانية
Console.Write("\nEnter Second Number :");
SecondNumber = Console.ReadLine();
//integer إلى نوع string تحويل القيم من نوع
number1 = Int32.Parse(FirstNumber);
number2 = Int32.Parse(SecondNumber);
//جمع الرقمين
sum = number1 + number2 ;
//إظهار النتيجة
Console.WriteLine("\nThe Sum is :{0}",sum);
}
}
|
ملاحظة: * لكتابة أي ملاحظة داخل الcode يجب أن تسبقها بـ // . قم بتنفيذ البرنامج : ولنفرض ادخل الرقم الأول 45 والرقم الثاني 72 سيصبح الناتج كما يلي : MS-DOS
Enter First Number :45
Enter Second Number :72
The Sum is :117
Press any key to continue
|
| ملاحظة 2: * إذا حاولت إدخال قيم تحتوي على كسور أو عدم إدخال قيم فسيعطي خطأ لأنه لم يتم معالجتها.
طريقة أخرى : في جملة الإدخال قمنا بتعريف متغيرين من نوع string ثم أسندنا اليهما القيم المدخلة ثم قمنا بتحويلهما إلى integer . C#
string FirstNumber , SecondNumber;
FirstNumber = Console.ReadLine();
SecondNumber = Console.ReadLine();
number1 = Int32.Parse(FirstNumber);
number2 = Int32.Parse(SecondNumber);
|
فلماذا لا نضع جملة القراءة داخل أقواس method التحويل حيث يتم إدخال القيمة وتحويله فوراً: C#
number1 = Int32.Parse(Console.ReadLine());
number2 = Int32.Parse(Console.ReadLine());
|
وهذه طريقة مختصرة للطريقة السابقة وتعطي نفس النتائج . C#
using System;
class Addition
{
static void Main(string[] args)
{
int number1 , number2 , sum ;
Console.Write("Enter First Number :");
number2 = Int32.Parse(Console.ReadLine());
Console.Write("\nEnter Second Number :");
number1 = Int32.Parse(Console.ReadLine());
sum = number1 + number2 ;
Console.WriteLine("\nThe Sum is :{0}",sum);
}
}
|
| |
|