محمد عنيبة نشر 1 يناير 2021 أرسل تقرير مشاركة نشر 1 يناير 2021 (معدل) هذا برنامج يطبع هرم نجوم بحلقة واحدة بلغة++ C لكنني لم أفهم على أي أساس وضعت الشروط في جملة if للتعويض عن الحلقات الناقصة تم التعديل في 1 يناير 2021 بواسطة محمد عنيبة اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
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 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
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 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
محمد عنيبة
هذا برنامج يطبع هرم نجوم بحلقة واحدة بلغة++ C لكنني لم أفهم على أي أساس وضعت الشروط في جملة if للتعويض عن الحلقات الناقصة
رابط هذا التعليق
شارك على الشبكات الإجتماعية
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.