مدونة علم البرمجة والحاسوب
من حقك ان تتعلم اكثر

الدرس العاشر : الشكل الثالث 3) التراكيب المتداخله وتركيبة do/while

الدرس العاشر : الشكل الثالث 3) التراكيب المتداخله وتركيبة do/while
وفي هذا الدرس سنكمل إن شاء الله الشكل الثالث ، وبعض الإختصارات للعمليات الحسابية :
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 > 8)

     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

 
وهذا هو البرنامج : تحميل

أرشيف المدونة الإلكترونية

من انا ؟