المصفوفات الثنائية في البرمجة - التمرين السادس
المطلوب
- أكتب برنامج يعرّف مصفوفة إسمها
matrixتتألف من 3 أسطر و 3 أعمدة و فيها قيم جاهزة. - بعدها يقوم بجمع قيم جميع العناصر الموجودة على القطر (On diagonal)، فوق القطر (Above diagonal)، و تحت القطر (Under diagonal).
- في الأخير يعرض للمستخدم ناتج الجمع.
إرشادات
لتمييز قيم العناصر الموجودة على القطر، فوق القطر و تحت القطر برمجياً عليك إستغلال مكان وجود العنصر في المصفوفة.
الآن ركز جيداً في الصورة و ستلاحظ أنه يمكنك تمييز مكان وجود العنصر بالنسبة للـقطر على النحو التالي:
- إذا كان رقم السطر يساوي رقم العمود فهذا يعني أن العنصر موجود على القطر مثل العناصر التالية:
matrix[0][0]-matrix[1][1]-matrix[2][2] - إذا كان رقم السطر أكبر من رقم العمود فهذا يعني أن العنصر موجود تحت القطر مثل العناصر التالية:
matrix[1][0]-matrix[2][0]-matrix[2][1] - إذا كان رقم السطر أصغر من رقم العمود فهذا يعني أن العنصر موجود فوق القطر مثل العناصر التالية:
matrix[0][1]-matrix[0][2]-matrix[1][2]
الحل
var matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]; var SOD = 0; var SAD = 0; var SUD = 0; for (var i=0; i<matrix.length; i++) { for (var j=0; j<matrix[i].length; j++) { if (i == j) { SOD = SOD + matrix[i][j]; } else if (i < j) { SAD = SAD + matrix[i][j]; } else if (i > j) { SUD = SUD + matrix[i][j]; } } } write("Sum of elements above the diagonal = " + SAD + "\n"); write("Sum of elements under the diagonal = " + SUD + "\n"); write("Sum of elements on the diagonal = " + SOD);
النتيجة: ستكون كما يلي في حال كانت المصفوفة الثنائية تحتوي نفس القيم التي وضعناها فيها.
Sum of elements under the diagonal = 19
Sum of elements on the diagonal = 15