بسم الله الرحمن الرحيم..
::الدرس الأول:: أساسيات الجافاسكريبت..
::الدرس الثاني:: أكواد تفيدنا والجمل الشرطية في الجافاسكريبت..
++++++++++++++ الدوال وحلقات التكرار في الجافاسكريبت ++++++++++++++
في هذا الدرس سأقوم بشرح الآتي:
1) الدوال ماهي؟ وماأهميتها؟ وكيفية كتابتها بالجافاسكريبت؟
2) حلقات التكرار وفائدتها وطريقة كتابتها مثل While loop, do..while loop و for loop.
،،،،،،،،،،،،،
شرح (1): الدوال ماهي؟ وماأهميتها؟ وكيفية كتابتها بالجافاسكريبت؟..
الدوال (باللغة العربيه) وبالإنجليزي تسمى (Functions) تستعمل بكثره في لغات البرمجه، أهميتها تقليل الكود وأيضا تسهيل قراءة وفهم الكود سواء كان للمبرمج او للمتعلم او للمطور..
الدوال وكما ذكرت فوائدها وأهميتها، حيث انه أغلب المبرمجين يستخدمون الدوال كما قلت لتسهيل قراءة الكود وجعله منظم أكثر وأيضا لتقسيم الكود بشكل أفضل، بالضبط كتنظيمك لغرفتك!
سأشرحها واقعيا: عندما تضع أغراضك في غرفتك في مكان واحد مثلا كتبك وملابسك وأغراضك الشخصيه جميعهم في مكان واحد فستجد صعوبه في إيجاد ماتريد لاحقا، ويمكن لاتتذكر أين وضعت ذلك الشيء الذي تريد البحث عنه..
ولكن عندما تقوم بتقسيم غرفتك وتنظيمها بحيث انه (الملابس تكون في مكان معين، والكتب تكون على الرف، وووالخ) فبذلك ستسهل على نفسك عملية التعديل أو إيجاد الشيء الذي تريد البحث عنه لاحقا..
تماااااماً مثل الدوال، فالدوال عملها بالضبط كعملية التقسيم والتنظيم
مثال برمجي:
إذا أردت عمل أكثر من عملية حسابية في الكود مثلا (تريد عملية جمع وطرح وقسمه وإيجاد الباقي لرقمين يدخلهم المستخدم) فعندما تقوم بكتابة الكود كاملا فستجد صعوبه لاحقا في إيجاد كود الباقي *هذا على سبيل المثال، ربما لن تجد صعوبه لكن مع الأكواد الضخمه فستجد حتما صعوبه في ذلك* لذلك يمكننا استخدام الدوال
مثلا: داله تقوم بعملية الجمع، وداله تقوم بعملية القسمه...الخ
يتم كتابة الداله كالتالي:
كود:
// begin function modulus
function اسم الداله أي أسم تختاره (اسم المتغيرات التي ستدخل في الداله)
{
العمليات التي ستقوم بها الداله
return القيمه او المتغير الذي سترجعه الداله بعد الانتهاء;
} // end function modulus..
طبعاً نستطيع كتابة دوال عديده في كود واحد، وكما قلت استعمال الدوال يفيد كثيرا في تنسيق برامجنا وسهولة قراءتها مستقبلاً..
سنأخذ مثال لدالة تقوم بعملية إيجاد باقي القسمه لرقم يدخله المستخدم..

حسب الكود السابق، *يوجد الكود الأساسي ومن ثم يقوم باستدعاء الدالة modulus*، قمنا بأخذ المتغيرين num و num2 كمتغيرين حيث ستتم العمليات بداخل الداله عليهما، وكما تلاحظ اننا قمنا يحفظ قيمة باقي القسمه على 2 بالمتغير num2 ومن ثم قمنا بإرجاع قيمته للكود الأساسي return num2 ومن ثم قمنا بطباعته
بعد ادخال الرقم (على سبيل المثال أدخلنا الرقم 6 الذي نريد معرفة باقي قسمته على 2) سيظهر لنا الناتج التالي..

بإمكاننا كتابة الدالة هكذا

كما رأيت بالمثال السابق، انه الكود لايشمل على كود أساسي فقط على الداله، حينها يجب أن نقوم بإضافة هذا الكود بداخل وسم ال body
كود:
onload = "modulus()"
بمعنى سيصبح كود ال body هكذا..
كود:
<body onload="modulus()">
معناتها onload أي عند تحميل الصفحه ستسدعى الدالة modulus() وستبدأ بالعمل، جرّب بعدم كتابة الكود بداخل وسم ال body الذي ذكرناه، فستجد انه الكود لن يعمل عند تحميل الصفحه..
وأيضا يمكننا كتابة الكود السابق (كمثال لإستخدام أكثر من دالة)..
كود:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled 1</title>
<script type="text/javascript" language="javascript">
function modulus()
{
var num;
var num2 = 0;
num = window.prompt("قم بادخال الرقم الذي تريد معرفة باقي قسمته على 2", "0");
cal( num, num2);
window.alert( " الرقم الذي أدخلته باقي قسمته على 2 يساوي " + num2 );
}
function cal( num, num2 )
{
num2 = num % 2;
return num2;
}
</script>
</head>
<body onload="modulus()">
</body>
</html>
وأيضا يمكننا كتابة الكود هكذا..

ألا تلاحظ اننا قمنا بإضافة هذا الكود
كود:
<input name="Button1" type="button" value="اضغط لرؤية باقي قسمة الرقم الذي تريده على 2" onclick="modulus()" />
بدلاً من
كود:
<body onload="modulus()">
سنستفيد منه اذا أردنا أن نجعل المستخدم هو من يقوم بطلب عمل الداله، والكود السابق سيقوم بإنشاء (زر) عندما يضغط عليه المستخدم ستعمل الداله..
مثال حي:

مباشرةً عندما يقوم المستخدم بالضغط على الزر ستعمل الدالة كما هو موضع بالصوره..
الى هنا أكون قد انتهيت من (الدوال) وطريقة عملها وطريقة كتابتها.. أتمنى ان يكون الشرح سهل وسلس..
أريد أن أعطيك *نصيحه* أتمنى فعلاً العمل بها قبل أن نبدأ بشرح حلقات التكرار..
1) أجعل كودك سهل وواضح واستعمل ال comment بقدر ماتستطيع لكي يكون كودك واضح للقارئ ولك مستقبلاً.
2) قم بإختيار أسماء للدوال وللمتغيرات لكي تكون مناسبة لعملها فمثلا اذا أردت القيام بكتابة دالة تريد القيام بعملية الجمع فاجعل اسمها function sum او أي شيء يدل على عملية الجمع.. وهكذا..
،،،،،،،،،،،،،
شرح (2): حلقات التكرار وفائدتها وطريقة كتابتها مثل While loop, do..while loop و for loop.
حلقات التكرار او ماتسمى بالإنجليزي loops او loop بالمفرد..
فائدتها كبيره اذا أردت تكرار شيء معين، على سبيل المثال تريد طباعة من 0 الى 100
ببساطه تقوم بكتابتها عن طريق ال while loop او do..while loop او ال for loop
**حلقة التكرار While Loop:
تكتب هكذا..
كود:
while ( اكتب الشرط الذي تريده، اذا تحقق ستدخل حلقة التكرار)
{
الأكواد التي تريد تطبيقها في حلقة التكرار
مقدار الزياده لدخول حلقة التكرار مره أخرى
}
نأخذ مثال عملي لنرى طريقة عملها.. ولكي تتضح لك طريقة كتابتها،
نريد الآن كتابة أرقام من 1 الى 10
كود:
<script type="text/javascript" language="javascript">
var num = 1;
while ( num <= 10 )
{
document.write(num);
num = num + 1; //note that we can write it as num++
}
</script>
حينها سيتم طباعة الأرقام من 1 الى 10 عند تحميل الصفحه..
فلنقم بتحليل الكود السابق:
أولا: قمنا يتعريف متغير بتسميته num وقمنا بوضع القيمه 1 بداخله،
ثانيا: الشرط الذي يجب انت يتحقق لكي ندخل ال while loop هو ان يكون المتغير num اصغر من او يساوي ال 10
اذا قمنا بكتابة الشرط بحيث انه num يكون (أصغر من 10) فسيتم طباعة الأرقام من 1 الى 9 عندما يصر المتغير num الي 10 فسيصبح حينها 10 < 10 أي خطأ فلن يتم طباعة ال 10
ثالثا: مقدار الزياده هنا (num = num + 1) حيث عندما ندخل حلقة التكرار ويتحقق الشرط وهو num <= 10 حينها سنقوم بطباعة الرقم 1
ثم من خلال (num = num + 1) سيصبح المتغير num = 2 ويدخل حلقة التكرار مره أخرى ويتحقق الشرط حيث 2 <= 10 ويقوم بطباعة 2 وهكذا..
****ملاحظه: اذا لم تضع (مقدار الزياده) فإن حلقة التكرار ستدخل فيما يسمى infinite loop أي ستقوم بطباعة الرقم 1 بشكل نهائي مما يسبب خلل في الكود وبطئ في التصفح..
لاتنسى في ال while loop اذا لم يتحقق الشرط فإن الأكواد الموجوده في ال while loop لن تعمل ولن يقوم بتنفيذها لأن الشرط لم يتحقق على سبيل المثال اذا كتبنا في الشرط num >= 10 فإن الكود لن يقوم بطباعة الرقم 1 ولن يقوم بتنفيذ ما بداخل while لأنه الرقم 1 ليس اكبر من او يساوي 10..
**حلقة التكرار Do..While loop:
هذه الحلقه تشبه تقريبا ال while loop والفرق بينهم هو:
1) طريقة الكتابه مختلفه قليلا لكلا الكودين..
2) اذا لم يتحقق الشرط في هذه ال do..while loop فسوف يقوم بتفيذ مابداخل ال do..while loop مره واحده على الأقل.. سنلاحظ الفرق عند التطبيق باذن الله
كيفية كتابة كود ال Do..While loop
كود:
do
{
الأكواد التي نريد تطبيقها
مقدار الزياده
}
while( الشرط الذي يجب التأكد منه لإكمال الدخول في حلقة التكرار )
لنقم بتطبيق المثال السابق على do..while loop
كود:
<script type="text/javascript" language="javascript">
var num = 1;
do
{
document.write(num);
num = num + 1; //note that we can write it as num++
}
while( num <= 10 )
</script>
لنقم بتحليل الكود:
أولا: سنقوم بتنفيذ مابداخل ال do..while loop (بحلقة التكرار while loop أولا نقوم بالتأكد من صحة الشرط ثم نطبق أما هنا العكس)
ثانيا: سنتأكد اذا كان الشرط صحيح ام لا، اذا كان صحيحا فسنقوم بطباعة مرة أخرى مابداخل الloop وان لم يتحقق فسنخرج من الloop
ألا تلاحظ! كما قلت لك اننا سنقوم على الأقل بتنفيذ مابداخل الloop مره واحده..
**حلقة التكرار for loop:
هذه تختلف عن باقي حلقات التكرار في طريقة كتابتها.. فكود ال for loop يكتب هكذا
كود:
for( القيمه المبدئيه للمتغير; الشرط الذي نريد التحقق منه; مقدار الزياده )
{
الأكواد التي نريد تطبيقها
}
لنقم بتطبيق المثال السابق الذي قمنا بتطبيقه لكلا while loop و do..while loop على حلقة التكرار for loop..
كود:
<script type="text/javascript" language="javascript">
var num;
for( num = 1; num <= 10; num = num +1 )
{
document.write(num);
}
</script>
ونستطيع كتابته هكذا:
كود:
<script type="text/javascript" language="javascript">
for( var num = 1; num <= 10; num = num +1 )
{
document.write(num);
}
</script>
لنقم بتحليل الكود السابق (الأول):
أولا: قمنا بتحديد القيمة المبدئيه للمتغير num بأن تساوي 1 لأننا نريد طباعة الأرقام من 1 الى 10
ثانيا: قمنا بتحديد الشرط أي ان المتغير اصغر من او يساوي 10
ثالثا: بعد تنفيذ مابداخل الloop سنقوم بزيادة 1 على القيمه الحاليه في المتغير، بمعنى اذا كان المتغير 1 وتحقق الشرط سنقوم بتنفيذ مابداخل ال loop ثم سنقوم بزيادة 1 على القيمه الحاليه 1 فسيصبح المتغير num بداخله العدد 2 ووووهكذا الى ان نصل الى 11 عندها لن يتحقق الشرط وسنخرج من حلقة التكرار..
**أمران يستخدمان في جميع حلقات التكرار break و continue:
break نستطيع استخدامها عندما نريد ان نقوم بتنفيذ أمر معين في أحد حلقات التكرار وعند الوصول الى نتيجه معينه سنخرج من الloop ، ببساطه نستخدم break حيث عندما نصل الى نتيجه معينه ونريد ان نخرج حينها من ال loop فالأمر break هو الحل..
مثال، في هذا المثال سنستخدم حلقة التكرار while loop ونريد أن نقوم بطباعة الأرقام التاليه:
1 2 3 4 5 6 7 8 9 10
ونريد ان نخرج من ال loop عندما نصل الى الرقم (6) أي بدون طباعة (6) سيكون الكود كمايلي:
كود:
<script type="text/javascript" language="javascript">
var num = 1;
while( num <= 10 )
{
if( num == 6 )
{
break;
}
document.write(num);
; num = num +1
}
</script>
لنقم بتحليل الكود:
أولا: قمنا بوضع قيمة مبدئيه للمتغير num ألا وهي 1، لأننا نريد طباعة الأرقام من 1 الى 5
ثانيا: سنتأكد من الشرط num <= 10 اذا تحقق فسندخل الحلقه، وهنا سيتحقق لأن 1 <= 10
ثالثا: سنتحقق من جملة الشرط if statement اذا كان المتغير يساوي 6 سنخرج من الحلقه، وهنا لن يساوي 6 لأن المتغير الآن يساوي 1 فلن نقوم بتطبيق مابداخل جملة الشرط وسنذهب للسطر اللي بعدها، فنقوم بطباعة الرقم 1، قم نزيد عليه 1 فيصبح 2
ثم سنقوم بالرجوع مره أخرى لحلقة التكرار، نتأكد من الشرط (2<=10) صحيح اذا سندخل، نتأكد اذا كان يساوي 6 او لا، طبعا لا يساوي، نذهب للسطر اللي بعده نقوم بطباعة 2 ثم نزيد عليه 1 (مقدار الزياده) فسيصبح المتغير يحوي العدد 3، حينها ندخل حلقة التكرار وسيتحقق الشرط فنقوم بالتأكد اذا كان الشرط يساوي 6 او لا، فلن يتحقق هذه المره ونقوم بطباعة 3 ونزيد عليه فسيصبح 4، ثم نقوم بدخول حلقة الشرط مره اخرى ونقوم بطباعة ال 4 ونزيد عليه 1 فسيصبح 5، ونقوم بدخول حلقة التكرار مره أخرى فلن يتحقق الشرط 5 لاتساوي 6 حينها سنذهب للسطر اللي بعده ونقوم بطباعة 5 ثم نزيد عليها 1 فسيصبح المتغير يحوي الرقم 6
ندخل لحلقة التكرار حيث الشرط (6<=10) تحقق، سنتأكد اذا كان 6 يساوي 6 حينها الشرط سيتحقق سندخل لنطبق مافي داخل ال if statement ثم سنقوم من الخروج من حلقة التكرار لأننا كتبنا break أي نريد الخروج ولن نطبق المزيد، فقط نريد طباعة من 1 الى 5..
continue تقوم بتجاهل فقط القيمه التي لانريد طباعتها، فمثلا في المثال السابق سيصبح الكود كالتالي:
كود:
<script type="text/javascript" language="javascript">
var num = 1;
while( num <= 10 )
{
if( num == 6 )
{
continue;
}
document.write(num);
; num = num +1
}
</script>
عند استخدام continue في المثال السابق، حينها سنقوم بطباعة الأرقام التاليه
1 2 3 4 5 7 8 9 10 << بدون طباعة الرقم 6
حيث continue تعني (تجاهل القيمه التي لانريدها، وأكمل مابعدها)
فعند وصولنا الى العدد 6 وعندما نتأكد من جملة الشرط حيث 6 تساوي ال 6 حينها سنقوم بتنفيذ continue أي سنقوم بتجاهل ال 6 وسندخل حلقة التكرار بالعدد التالي أي 7 ونكمل حلقة التكرار الى ان نطبع الأعداد التاليه
1 2 3 4 5 7 8 9 10..
انتهينا ^_^
أتمنى أن يكون شرحي لهذا الدرس كان سهلاً وممتعاً لك كقارئ..
أترك لكم المجال الآن لمن يريد أن يسأل أسئله بخصوص المواضيع التي قمت بشرحها..
لاتنسى: HomeWork قم بالعمل عليه، واذا عندك سؤال في نقطه لم تفهمها يمكنك كتابة سؤالك او استفسارك، لكن لن أقوم بحل ال HomeWork لك..
السؤال الأول:
قم بكتابة كود يأخذ من المستخدم عدد صحيح، ويقوم بطباعة جميع الأرقام الزوجيه الأقل منه،
وأيضا يطبع مجموع الأعداد الزوجيه الأقل منه.
مثال لطريقة عمل الكود
++++++++++++++++++++++++++++++
+أدخل عدد صحيح: 8
+الأعداد الصحيحه الزوجية الأقل من 8 هي: 6 4 2 0
+مجموع الأعداد الزوجيه الأقل من 8 يساوي 12
++++++++++++++++++++++++++++++
السؤال الثاني:
اكتب كود يقوم بأخذ أعداد صحيحه من المستخدم بشكل مستمر، ويتوقف الكود عند ادخال -1 ومن ثم يقوم بطباعة ضعف العدد الذي أدخله المستخدم والعدد الذي ادخله المستخدم مضروب بـ 2
مثال لطريقة عمل الكود:
++++++++++++++++++++++++++++++
+أدخل عدد صحيح: 8
+أدخل عدد صحيح: 2
+أدخل عدد صحيح: 3
+أدخل عدد صحيح: -1
كود:
n*n 2*n
64 16
n*n 2*n
4 4
n*n 2*n
9 6
++++++++++++++++++++++++++++++
والحمدلله رب العالمين 
:::ClickClick Forums::: • مشاهدة الموضوع - ::الدرس الثالث:: الدوال وحلقات التكرار في الجافاسكريبت..