الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مساعده في خوازم مش مفهوم

بدأه عيوني في 4 سبتمبر 2008 · 3 رد · 904 مشاهدة · في الرياضيات والخوارزميات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ,

كل سنه وانتم طيبين

انا مش عارف ان كان ده مكان الموضوع الصح ولا ايه , ب اعذروني لان دي اول مره ليه في المنتدى

الموضوع :

انا مش فاهم الخوارزم ده خالص ومش عرف ايه المطلوب

http://icpcres.ecs.baylor.edu/onlinejudge/...rnal/1/100.html

لو سمحتم لو حد يتكرم ويعرفني المطلوب

شكرا

#2
1.  input n

2. print n

3. if n = 1 then STOP

4. if n is odd then n = 3n +1

5. else n = n / 2

6. GOTO 2

اولا : شرح الكود

1. يأخذ قيمة n من المستخدم

2. يطبع قيمة n على الشاشة

3. لو قيمة n = 1 يخرج من البرنامج

4. لو قيمة n رقم فردى يتم تنفيذ العملية الحسابية 3n + 1 ثم يخزن الناتج فى n ثم يطبع قيمة n

5. لو n عدد زوجى يتم تنفيذ العملية n/2 ثم تخزين الناتج فى n ثم يطبع قيمة n

6. يعيد الحلقة الدوارة مرة اخرى حتى تصل قيمة n الى 1 ثم يتوقف البرنامج

مثال بسيط على البرنامج :

1. المستخدم ادخل 5

2. 5 <> 1 (5 لا تساوى 1)

3. 5 عدد فردى لذلك

n = 3*5 + 1 = 16

4. الان n = 16 (عدد زوجى)

5. الان

n = 16/2 = 8

6. نعيد الحلقة .... n = 8

7. الان n عدد زوجى = 8

هكذا ........ حتى نصل الى n = 1

#3

هذا برنامج قمت بكتابته باستخدام ++C لتنفيذ هذه الخوارزمية

  1.  
  2. #include<iostream>
  3. using namespace std;
  4.  
  5. int main(void)
  6. {
  7. int n;
  8. cout << "Enter number: ";
  9. cin >> n;
  10. while (n != 1) //loop until n = 1
  11. {
  12. if (n % 2 == 0) // n is even
  13. {
  14. n = n/2;
  15. cout << n << " ";
  16. }
  17. else // n is odd
  18. {
  19. n = 3*n + 1;
  20. cout << n << " ";
  21. }
  22. }
  23. cout << endl;
  24. system("pause");
  25. return 0;
  26. }
  27.  

#4

رغم اني مبتدئ وماوصلت لها القصة لكن شرح يفهمه اي واحد

جزاك الله خيرا

مواضيع مشابهة