نبني برنامجًا يحسب خطوات المشي. عدد الخطوات = المسافة بالمتر ÷ طول الخطوة (0.7 متر)، ونقرّب الناتج بـ Math.round لأن عدد الخطوات عدد صحيح. نخزّن مسافات أسبوع في مصفوفة، يبدأ من يوم الاثنين:
| اليوم | الاثنين | الثلاثاء | الأربعاء | الخميس | الجمعة | السبت | الأحد |
|---|---|---|---|---|---|---|---|
| المسافة | 4500 | 5600 | 2400 | 3800 | 4200 | 6700 | 3600 |
| رقم الترتيب | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
ليوم واحد نستخدم رقم الترتيب: يوم الاثنين هو distanceList[0].
const distanceList = [4500, 5600, 2400, 3800, 4200, 6700, 3600]; const stepCount = Math.round(distanceList[0] / 0.7); console.log(stepCount);
6429
لكل الأيام نستخدم for...of، ونكتب distance مكان distanceList[0]. ثم للمتوسط نجمع المسافات ونقسم على length:
const distanceList = [4500, 5600, 2400, 3800, 4200, 6700, 3600];
let sum = 0;
for (const distance of distanceList) {
sum = sum + distance;
}
console.log(sum);
console.log(sum / distanceList.length);30800 4400
sum تُعلن بـ let لأن قيمتها تتغير. وإذا كتبنا 7 بدل distanceList.length فسيصبح المتوسط خطأ عندما نضيف أيامًا جديدة.أكبر قيمة وأصغر قيمة
كيف نجد أطول مسافة؟ نفترض أن القيمة الأولى هي الأكبر، ثم نمرّ على كل القيم: إذا وجدنا قيمة أكبر مما نحفظه، نحفظها بدلًا منه. وفي النهاية يبقى معنا الأكبر.
const distanceList = [4500, 5600, 2400, 3800, 4200, 6700, 3600];
let max = distanceList[0];
let min = distanceList[0];
for (const distance of distanceList) {
if (distance > max) {
max = distance;
}
if (distance < min) {
min = distance;
}
}
console.log("Longest: " + max);
console.log("Shortest: " + min);Longest: 6700 Shortest: 2400
max وmin بالقيمة الأولى وليس بـ 0. لو بدأ min بـ 0 لما وجدنا قيمة أصغر منه، ولكانت النتيجة 0 وهي ليست في المصفوفة أصلًا.وإذا أردنا أيّ يوم كانت فيه أطول مسافة نحتاج رقم الترتيب، فنعود إلى حلقة for بالعدّاد ونحفظ i:
const days = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"];
const distanceList = [4500, 5600, 2400, 3800, 4200, 6700, 3600];
let best = 0;
for (let i = 1; i < distanceList.length; i++) {
if (distanceList[i] > distanceList[best]) {
best = i;
}
}
console.log(days[best] + ": " + distanceList[best]);Sat: 6700
تدريبات
من السطر 2: عرّف الثابت stepCount ليساوي مسافة يوم الاثنين ÷ 0.7 مقرّبة بـ Math.round، ثم اطبعه.
const distanceList = [4500, 5600, 2400, 3800, 4200, 6700, 3600];
اضغط «تشغيل» لترى النتيجة. أكمل الفراغ لحساب خطوات يوم السبت (المسافة 6700 ÷ 0.7، مقرّبة بـ Math.round) دون كتابة 6700 مباشرة.
const distanceList = [4500, 5600, 2400, 3800, 4200, 6700, 3600]; const stepCount = ___; console.log(stepCount);
اضغط «تشغيل» لترى النتيجة. أكمل الفراغين: استخدم for...of لتأخذ قيم distanceList في الثابت distance، فيطبع البرنامج خطوات كل يوم.
const distanceList = [4500, 5600, 2400, 3800, 4200, 6700, 3600];
___ (___) {
const stepCount = Math.round(distance / 0.7);
console.log(stepCount);
}اضغط «تشغيل» لترى النتيجة. أكمل الفراغ بحلقة for...of تأخذ قيم scoreList في الثابت score، فيطبع البرنامج مجموع الدرجات.
const scoreList = [40, 55, 67, 52, 120];
let sum = 0;
for (___) {
sum = sum + score;
}
console.log(sum);اضغط «تشغيل» لترى النتيجة. أكمل الفراغ لطباعة المتوسط: المجموع ÷ عدد قيم scoreList. اكتبه بحيث يبقى صحيحًا لو تغيّر عدد القيم.
const scoreList = [40, 55, 67, 52, 120];
let sum = 0;
for (const score of scoreList) {
sum = sum + score;
}
console.log(___);اضغط «تشغيل» لترى النتيجة. درجات الحرارة في سانت كاترين خلال أسبوع شتوي. جد أقل درجة بحلقة (دون Math.min) واطبع Coldest: -4.
تلميح
ابدأmin بـ temps[0].const temps = [3, -1, 2, -4, 0, 1, 5];
اضغط «تشغيل» لترى النتيجة. في المصفوفتين، الطالب رقم i اسمه names[i] ودرجته marks[i]. جد صاحب أعلى درجة واطبع Top: Salma with 97.
تلميح
احفظ رقم الترتيبbest وليس الدرجة نفسها، ثم استخدمه مع المصفوفتين.const names = ["Omar", "Nour", "Salma", "Karim", "Hana"]; const marks = [88, 91, 97, 79, 94];
اضغط «تشغيل» لترى النتيجة. النقاط الرئيسية
- قيمة واحدة:
list[i]. كل القيم:for (const x of list). المتوسط:sum / list.length. - لأكبر قيمة: ابدأ بـ
list[0]واستبدلها بأي قيمة أكبر داخل الحلقة؛ ولأصغر قيمة بالمثل مع<. - إذا احتجت مكان القيمة فاستخدم for بالعدّاد واحفظ
i.