البرمجة

توليد وظائف عشوائية في C++: حلاً لمشكلة التكرار

عنوان: إنشاء برنامج لاختيار سلاسل عشوائية من مصفوفة في لغة البرمجة C++

الجواب:

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

لحل هذه المشكلة، يمكنك استخدام وظيفة srand() لتهيئة بذرة عشوائية، حيث تقوم بتحديد البذرة بناءً على الوقت الحالي، مما يؤدي إلى حصولك على تسلسل عشوائي فريد في كل تشغيل. اليك كيف يمكنك تحديث الكود:

cpp
#include #include #include #include using namespace std; int main() { srand(time(0)); // تحديد بذرة عشوائية بناءً على الوقت الحالي int pickjob; string jobs[] = {"Police Officer", "Fireman", "Vet", "Doctor", "Nurse", "Chemist", "Waiter"}; string job1 = jobs[rand() % 7]; string job2 = jobs[rand() % 7]; string job3 = jobs[rand() % 7]; cout << "ها هي بعض الوظائف التي وجدتها لك، تحقق منها\n1. " << job1 << "\n2. " << job2 << "\n3. " << job3 << "\nاختر وظيفة" << endl; cin >> pickjob; // بقية الكود هنا إذا كنت بحاجة إليه return 0; }

باستخدام srand(time(0))، يتم تحديد بذرة العشوائية بناءً على الوقت الحالي، مما يؤدي إلى حصولك على نتائج عشوائية متغيرة في كل مرة تقوم فيها بتشغيل البرنامج.

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

بالتأكيد، دعونا نوسع المحتوى بالمزيد من المعلومات.

في الكود الذي وفرته، قمت بإستخدام مصفوفة jobs لتخزين قائمة بعض الوظائف المختلفة، مثل “Police Officer”، “Fireman”، “Vet”، وغيرها. بعد ذلك، استخدمت دالة rand() لتوليد رقم عشوائي بين 0 و 6 (لأن حجم المصفوفة هو 7)، واستخدمت هذا الرقم للوصول إلى وظيفة عشوائية من المصفوفة.

بعد تعديل الكود باستخدام srand(time(0))، يمكنك الآن الاطمئنان إلى أن البرنامج سيعرض وظائف مختلفة في كل مرة تقوم فيها بتشغيله، وذلك بسبب أن بذرة العشوائية تعتمد على الوقت الحالي.

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

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

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

هذا المحتوى محمي من النسخ لمشاركته يرجى استعمال أزرار المشاركة السريعة أو تسخ الرابط !!