وفي هذا الدرس سنكمل إن شاء الله الشكل الثالث ، وبعض الإختصارات للعمليات الحسابية :
3- التراكيب المتداخلة :
وهي عبارة عن استخدام تركيبة داخل تركيبة . والمثال التالي يوضح الفكرة .
هو برنامج يحسب عدد الرسوب وعدد النجاح لعشرة طلاب .
دعنا نفهم ال pseudocode التالي ثم نترجمه إلى لغة C# :
Initialize passes to zero
Initialize failures to zero
Initialize student to one
While student counter is less than or equal to ten
Input the next exam result
If the student passed
Add one to passes
Else
Add one to failures
Add one to student counter
Print the number of passes
Print the number of failures
If more than eight student passed
Print “ Raise tuition “
|
أولا سنعرف مجموعة من المتغيرات وإعطاؤها قيم بدائية لأنها كلها عدادات . passes (عدد النجاح ) ، failures (عدد الرسوب ) ، student (عدد الطلاب) .
C#
int passes = 0,
failures = 0,
student = 1,
result;
|
ملاحظة : وضعنا القيمة البدائية لل student = 1 لأن شرط ال while سيكون student <= 10 حيث يبدأ من 1 وينتهي عند 10 كما يلي :
C#
while (student <= 10)
//while ستعد حتى 10 وإذا بدأناها من 0 يجب وضع شرط ال student قيمة
while (student < 10)
|
من غير = وأيضا ً ستعد حتى 10 لذا لا فرق بينهم .
والآن جملة while كاملة :
C#
while (student <= 10)
{
Console.Write("Enter result (1=pass, 2=fail): ");
result = Int32.Parse(Console.ReadLine());
if (result == 1)
passes = passes + 1;
else
failures = failures + 1;
student = student + 1;
}
|
طالما العداد student أقل أو يساوي 10 نفذ ما يلي :
{
اطبع الجملة التالية : إذا كان الطالب ناجح أدخل الرقم 1 وإذا كان
راسب أدخل الرقم 2
حوّل القيمة المدخلة إلى عدد صحيح (integer) وخزنها في المتغير result
قارن : إذا كانت قيمة المدخل = 1
أضف 1 لعداد الناجحين passes + 1
غير ذلك
أضف 1 لعداد الراسبين failures + 1
قبل الخروج من دارة while أضف 1 لعداد الطلبة student
}
|
C#
// لإضافة سطر فارغ
Console.WriteLine();
// لطباعة عدد الناجحين
Console.WriteLine("Passed: " + passes);
// لطباعة عدد الراسبين
Console.WriteLine("Failed: " + failures);
// لطباعة جملة ثناء على مستوى التدريس
//.إذا كان عدد الناجحين أكثر من 8
if (passes >
Console.WriteLine("Raise Tuition\n");
|
وهذا هو البرنامج :
تحميل * تركيبة do/while وهي تابعة لتركيبة while ، غير أن هناك اختلاف بسيط وهو أن تركيبة while تختبر الشرط ثم تقوم بالتنفيذ وشكلها كالتالي :
C#while( condition )
{
statement
} |
فإذا كان الناتج مخالف للشرط أهملت جملة while بالكامل . أم تركيبة do/while فهي أولا ً تقوم بالتنفيذ ثم ترى إذا ما كان الناتج صحيح أم خاطئ وشكلها كما يلي :
C#do
{
statement
} while( Condition ) ; |
بمعنى : نفذ ما تحتويه ثم اختبر إذا ما تحقق الشرط أعد التنفيذ أم لا فاخرج منها . فهي تنفذ مره واحدة على الأقل. والشكل التالي يوضح طريقة عملها:
والبرنامج التالي يوضح الفكرة أكثر :
C#
int counter = 1;
do
{
Console.WriteLine(counter);
counter++;
}while(counter <= 5); |
ونتائجه كالتالي :
MS-DOS
1
2
3
4
5
Press any key to continue |
|
|
|