محمد عنيبة نشر 1 يناير 2021 أرسل تقرير نشر 1 يناير 2021 (معدل) هذا برنامج يطبع هرم نجوم بحلقة واحدة بلغة++ C لكنني لم أفهم على أي أساس وضعت الشروط في جملة if للتعويض عن الحلقات الناقصة تم التعديل في 1 يناير 2021 بواسطة محمد عنيبة اقتباس
0 Wael Aljamal نشر 1 يناير 2021 أرسل تقرير نشر 1 يناير 2021 مرحبا محمد، يمكننا فهم الشكل العالم لشجرة النجوم بتقسيمه لـ 3 أجزاء. الجزء الأول على اليسار : يمثل عدد الفراغات قبل النجوم. الجزء الثاني الأوسط : يمثل رسم النجوم و عددهم حسب رقم السطر الذي نحن فيه. الجزء الثالث الأيمن: مسؤول عن رسم سطر جديد (نهاية السطر) شرح البرنامج: #include <iostream> using namespace std; // إجرائية رسم النجوم void pattern(int n) { int i, k, flag = 1; // سنقوم بالاعتماد على حلقة واحدة ستعبر عن عدد الأسطر و الأعمدة // عدد المحارف المطلوبة للرسم إن كانت فراغات أو نجوم for (i = 1, k = 0; i <= 2 * n - 1; i++) { // الحالة الأولى على اليسار // نحن في موقع بعيد عن الشجرة ويجب رسم فراغ if (i < n - k) cout << " "; // الحالة الثانية في الوسط علينا هنا رسم نجمة // الشجرة متناوبة في مكان النجوم لذلك استعملنا متغير بولياني else { // ستتناوب قيمة العلم في كل مرة ندخل إلى هذا الجزء من الشيفرة البرمجية if (flag) cout << "*"; else cout << " "; flag = 1 - flag; } // الحالة الثالثة // نحن خارج الشجرةننهي السطر الحالي و نبدأ سطر جديد if (i == n + k) { k++; cout << endl; // N الشرط التالي يحدد نهاية الرسم في حال وصولنا للسطر رقم // 2 * n- 1 والعمود الأخير فيه أي الخلية صاحبة الرقم if (i == 2 * n - 1) break; // في حال كنا لم نصل للسطر الأخير فنكون في بداية سطر جديد ونعيد تهيأة المتغيرات i = 0; flag = 1; // لنرسم نجمة في بداية الشجرة للسطر الجديد } } } // تنفيذ البرنامج int main() { int n = 6; // استدعاء الإجرائية الخاصة بالرسم pattern(n); return 0; } بالتوفيق 2 اقتباس
0 محمد عنيبة نشر 2 يناير 2021 الكاتب أرسل تقرير نشر 2 يناير 2021 بتاريخ 10 ساعات قال Wael Aljamal: مرحبا محمد، يمكننا فهم الشكل العالم لشجرة النجوم بتقسيمه لـ 3 أجزاء. الجزء الأول على اليسار : يمثل عدد الفراغات قبل النجوم. الجزء الثاني الأوسط : يمثل رسم النجوم و عددهم حسب رقم السطر الذي نحن فيه. الجزء الثالث الأيمن: مسؤول عن رسم سطر جديد (نهاية السطر) شرح البرنامج: #include <iostream> using namespace std; // إجرائية رسم النجوم void pattern(int n) { int i, k, flag = 1; // سنقوم بالاعتماد على حلقة واحدة ستعبر عن عدد الأسطر و الأعمدة // عدد المحارف المطلوبة للرسم إن كانت فراغات أو نجوم for (i = 1, k = 0; i <= 2 * n - 1; i++) { // الحالة الأولى على اليسار // نحن في موقع بعيد عن الشجرة ويجب رسم فراغ if (i < n - k) cout << " "; // الحالة الثانية في الوسط علينا هنا رسم نجمة // الشجرة متناوبة في مكان النجوم لذلك استعملنا متغير بولياني else { // ستتناوب قيمة العلم في كل مرة ندخل إلى هذا الجزء من الشيفرة البرمجية if (flag) cout << "*"; else cout << " "; flag = 1 - flag; } // الحالة الثالثة // نحن خارج الشجرةننهي السطر الحالي و نبدأ سطر جديد if (i == n + k) { k++; cout << endl; // N الشرط التالي يحدد نهاية الرسم في حال وصولنا للسطر رقم // 2 * n- 1 والعمود الأخير فيه أي الخلية صاحبة الرقم if (i == 2 * n - 1) break; // في حال كنا لم نصل للسطر الأخير فنكون في بداية سطر جديد ونعيد تهيأة المتغيرات i = 0; flag = 1; // لنرسم نجمة في بداية الشجرة للسطر الجديد } } } // تنفيذ البرنامج int main() { int n = 6; // استدعاء الإجرائية الخاصة بالرسم pattern(n); return 0; } بالتوفيق شكرًا 1 اقتباس
السؤال
محمد عنيبة
هذا برنامج يطبع هرم نجوم بحلقة واحدة بلغة++ C لكنني لم أفهم على أي أساس وضعت الشروط في جملة if للتعويض عن الحلقات الناقصة
تم التعديل في بواسطة محمد عنيبة2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.