عرض مشاركة واحدة
  #12 (permalink)  
قديم 06-09-2005, 04:12 PM
Ahmed Tohamy Ahmed Tohamy غير متواجد حالياً
 
تاريخ التسجيل: Jun 2005
المشاركات: 54
Post عاشرا : التكرار

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

المهم .. كيف سنستخدم لغة php الآن لتكرار العمليات ؟!؟
في الحقيقة هناك ثلاثة طرق .. من خلال ثلاث جمل توفرها لنا لغة PHP والتي سنشرحها إن شاء الله ... والآن سنبدأ بالجملة الأولى في درسنا هذا :

الجملة الأولى : ( while )
كما عودتكم .. لن أشرح شيئا إلا بتطبيق عملي .. لذا على فرض أننا نريد عمل جدول يبين أسعار التوصيل للمنزل ، طبعا السعر يختلف حسب المسافة التي تفصل المنزل عن المطعم .
على كل حال قوموا بعمل صفحة php جديدة وأسموها : delivery.php .. وقوموا بوضع الكود التالي فيها :
كود:
<html>

<head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>أسعار التوصيل</title>
</head>

<body>

<table border="1" width="70%" id="AutoNumber1" cellspacing="0"
style="border-collapse: collapse" bordercolor="#111111" cellpadding="2">
  <tr>
	<td width="50%" bgcolor="#6699FF" align="center">السعر</td>
	<td width="50%" bgcolor="#6699FF" align="center">المسافة</td>
  </tr>
  <tr>
	<td width="50%" align="center">10</td>
	<td width="50%" align="center">5</td>
  </tr>
  <tr>
	<td width="50%" align="center">20</td>
	<td width="50%" align="center">10</td>
  </tr>
  <tr>
	<td width="50%" align="center">30</td>
	<td width="50%" align="center">15</td>
  </tr>
  <tr>
	<td width="50%" align="center">40</td>
	<td width="50%" align="center">20</td>
  </tr>
  <tr>
	<td width="50%" align="center">50</td>
	<td width="50%" align="center">25</td>
  </tr>
</table>

</body>

</html>
كما رأيتم في الكود فإننا قمنا بتصميم جدول مكون من عمودين وخمسة أسطر ، وهذا تطلب منا كتابة كود طويل بعض الشيء .
سنقوم الآن بعمل كود يقوم بعمل سطر واحد من الجدول ، ثم نكرره على عدد الأسطر باستخدام الجملة ( while ) ..
قبل البدء بالعمل يجب تحديد الأمر الذي نريد تكراره ، وأيضا عدد مرات التكرار أو بلغة أخرى ( ما هو الشرط الذي نريده أن يتحقق لكي يستمر التكرار ) وأيضا المكان الذي نريد وضع كود التكرار فيه .... ثم بعد ذلك سنكتب الجملة التكرارية ( while ) ..
أولا : ماذا نريد أن نكرر ؟
ارجعوا إلى الكود .. ستلاحظون أن الكود المتكرر هو الكود التالي :
كود:
  <tr>
	<td width="50%" align="center">10</td>
	<td width="50%" align="center">5</td>
  </tr>
وهذا الكود يقوم بعمل سطر يكتب فيه المسافة وسعر التوصيل لهذه المسافة .
ثانيا : عدد مرات التكرار ؟
نريد من الكود أن يكرر هذا الأمر عدة مرات حتى يصل السعر إلى 50 أو تصل المسافة إلى 25 !! هل عرفتم لماذا ؟ لأن آخر سطر في الكود لدينا هو السطر الذي فيه المسافة 25 والسعر 50 ، لذا عندما يصل السعر إلى 50 أو تصل المسافة إلى 25 سنطلب من الكود التوقف عن التكرار .
ثالثا : أين نضع الكود ؟
هذا الأمر بسيط جدا .. سنقوم بإزالة الكودات المكررة في الصفحة السابقة ونضع مكانها جملة التكرار ، أظن أن السبب واضح ! فبدلا من الكودات المكررة الكثيرة ، سنضع كود واحد صغير يكرر لنا العملية برمتها .

أما الآن .. سنأتي لكتابة الجملة ، وقبل البدء سنحتاج لمتغيرين ، الأول للمسافة والثاني للسعر ، وذلك لأن المسافة والسعر سيتغير في كل مرة يتكرر فيها الكود ، أليس كذلك ؟!؟
سنسمي متغير المسافة distance$ ومتغير السعر price$ .

والآن افتحوا صفحة delivery.php ... واحذفوا الكودات المكررة :
-------------------------------------------------------------------------

-------------------------------------------------------------------------
ثم قوموا بكتابة الجملة while مكان الكود المحذوف :
-------------------------------------------------------------------------

-------------------------------------------------------------------------
والآن نأتي لشرح الجملة ... وإليكم البنية الأساسية لها :
كود:
while(الشرط الذي يجب أن يتحقق حتى يستمر التكرار
{
	   الكود الذي سيتكرر تنفيذه
}
ملاحظات هامة :
- لم نقم بكتابة الفاصلة المنقوطة ( بعد الجملة while .
- إذا أردنا إدخال كود html داخل كود php علينا كتابة خط مائل لليسار ( \ ) قبل أي شرطتين علويتين داخل كود الـHTML وإلا لن يعمل الكود ويظهر لك خطأ بالصفحة :

-------------------------------------------------------------------------

-------------------------------------------------------------------------
انتبهوا إلى أن الشرطتين العلويتين الداخلتين في كود php لا يجب وضع الشرطة المائلة لليسار :
-------------------------------------------------------------------------

-------------------------------------------------------------------------
أما الآن .. سنوضح ما كتبناه في الكود السابق :
أولا : قمنا بعمل متغيرين للمسافة والسعر حيث أنهما سيتغيران في كل سطر مكرر ، ثم ضبطناهما على القيمة صفر ، وذلك لأننا سنبدأ من الصفر ...
ثم بدأنا التكرار بالجملة while وقد وضعنا الشرط الذي يوقف التكرار : ( أن تصل المسافة إلى 25 (أو) أن يصل السعر إلى 50 ) ... لقد استعنا بعامل المقارنة أصغر (>) والعامل المنطقي (أو) ( || ).. أي أن يستمر التكرار ما دام السعر أقل من 50 أو المسافة أقل من 25 ، فإذا أصبح السعر أكبر من 50 أو المسافة أكبر من 25 سيتوقف التكرار .
ثم في الداخل طبعنا كود html يقوم بعمل سطر مكون من عمودين ضمن الجدول الرئيسي ، وأيضا قمنا بعمل عملية حسابية على كل من المتغيرين ، حيث أن المسافة تزداد كل مرة ( 5 ) والسعر يزداد كل مرة ( 10 ) فاستخدمنا العامل المدمج ( =+ ) أرجو الرجوع إلى درس العوامل لتفهموا طريقة عمل هذا العامل المدمج .

هذا كل ما في هذه الجملة ... ومن خلالها تستطيع عمل الكثير الكثير ... وسنشرح لاحقا الجملتين الباقيتين for و do .. while ولكن قبل ذلك أود منكم أن تفهموا هذا الدرس جيدا لأن الدرس التالي قائم على هذا الدرس .. وإذا فهمت الجملة while فستكون قد قهمت الجملة do .. while بنسبة 99% والجملة for بنسبة 90% ....

انتظرونا....
رد مع اقتباس