البرمجة

برمجة C++: طباعة نجوم بحسب الإدخال

بدأت العديد من الأفكار والمعرفة المهمة لبرمجة C++ بدقة. إن تقديم النجوم بناءً على الإدخال من المستخدم يتطلب بعض التفكير والمنطق في البرنامج. لنقم بتصحيح الكود الذي كتبته لتحقيق المخرج المطلوب:

cpp
#include using namespace std; int main() { int n; cout << "الرجاء إدخال عدد بين 1 و 10: " << endl; cin >> n; // التحقق من أن العدد داخل النطاق المطلوب if (n < 1 || n > 10) { cout << "الرقم المدخل غير صالح. يرجى إعادة المحاولة." << endl; return 1; // الخروج برمز الخطأ } for (int i = 1; i <= n; ++i) { // طباعة "*" بعدد مرات يتساوى برقم السطر الحالي for (int j = 0; j < i; ++j) { cout << "*"; } // إنهاء السطر cout << endl; } return 0; }

هذا الكود يقوم بطباعة نجمة واحدة في السطر الأول، ثم نجمتين في السطر الثاني، وهكذا حتى يصل إلى عدد النجوم المطلوب في السطر الأخير. تم تضمين تحقق إضافي للتأكد من أن الرقم الذي يدخله المستخدم يتوافق مع المتطلبات (بين 1 و 10).

أرجو أن يساعدك هذا الكود في حل المشكلة التي تواجهها. إذا كنت بحاجة إلى مزيد من المساعدة، فلا تتردد في طرح المزيد من الأسئلة.

المزيد من المعلومات

بالطبع، دعني أكمل المقال بمزيد من التفاصيل والشرح حول كيفية عمل البرنامج وكيفية تصحيح الأخطاء التي قمت بتجنبها.

في البداية، عند كتابة برنامج في C++، يجب عليك أن تكون دقيقًا في تنفيذ المنطق البرمجي. في الكود الذي كتبته، كان لديك حلول قريبة ولكن هناك بعض الأخطاء التي تسببت في عدم عمل البرنامج كما هو متوقع.

الأمر الرئيسي الذي لاحظته هو أن البرنامج الخاص بك كان يطبع نجمة إضافية في نهاية كل سطر. هذا الخطأ حدث بسبب استخدام العداد في الحلقة الداخلية لتكرار النجوم، حيث كنت تستخدم <= n بدلاً من < n، مما أدى إلى طباعة نجمة إضافية في نهاية كل سطر.

بعد ذلك، قمت بتضمين cin.get() داخل الحلقة، وهذا قد يسبب بعض المشاكل غير المتوقعة. هذا السطر يقرأ حرفًا إضافيًا من الإدخال (عادةً Enter) ويضعه في الذاكرة. لذا، يجب تجنب استخدام cin.get() في هذا السياق.

في الحل الذي قدمته، قمت بتصحيح هذه الأخطاء وضمنت أيضًا التحقق من أن الرقم الذي يدخله المستخدم يقع ضمن النطاق المطلوب (بين 1 و 10)، مما يضمن عمل البرنامج بشكل صحيح ويمنع حدوث أخطاء غير متوقعة.

بعد ذلك، قمت بتحديد السطر الخارجي الذي يتكرر n مرات، وفي كل مرة يتم طباعة عدد من النجوم يتساوى برقم السطر الحالي. تم تحقيق هذا باستخدام حلقة داخلية تكرر i مرات (حيث i هو رقم السطر الحالي)، مما يسمح بطباعة عدد من النجوم يزداد مع كل سطر.

أخيرًا، يجب الانتباه إلى القيمة التي تم إرجاعها من الدالة main()، حيث يتم إرجاع القيمة 0 إذا تم تنفيذ البرنامج بنجاح، وإرجاع قيمة أخرى (مثل 1) في حالة حدوث خطأ. هذا يساعد في تحديد ما إذا كان البرنامج قد تم تنفيذه بنجاح أو لا، وذلك بالتحقق من قيمة العودة من البرنامج.

من خلال فهم هذه الأساسيات وتطبيقها بشكل صحيح، يمكنك تطوير مهاراتك في برمجة C++ وتحسين أداء برامجك. إذا كنت بحاجة إلى مساعدة أو شرح إضافي، فلا تتردد في طرح المزيد من الأسئلة.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر