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

سؤال عن جزء من برنامج؟؟؟

مغلق
بدأه Dena20 في 15 فبراير 2003 · 4 رد · 825 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

البرنامج التالي لتحديد ما اذا كان العدد الذي يتم ادخاله أولي أو غير أولي

#include

#include

void main()

}

int x,sum=0;

cout<<"Enter a number";

cin>>x;

for(int i=1;i<=x/2;i++)

[ALIGN=RIGHT]//لماذا تم تحديد الشرط i<=x/2

{

if(x%i==0)

sum+=i;

[ALIGN=RIGHT]//ماالمقصودبـsum+=i

{

if(sum==1)

cout<<"primary";

else

cout<<"not primary";

getch();

{

لدي سؤال آخر وهو كيف يمكنني تعريف التاريخ كمتغير ومن أي نوع سيكون؟

#2

من المعروف أن العدد الاولي هو الذي يقسم على نفسه وعلى الواحد فقط, ولذلك علينا ان نفحص كل الارقام الاقل منه, هل يقسم عليها أم لا, وهذا معروف ايضا... الان بدلا من فحص كل الارقام الاقل منه يكفي ان نفحص الارقام الاقل من نصفه, فاذا لم يقسم عليها فمعنى هذا انه لن يقسم على باقي الارقام الاقل منه (وهذا قانون رياضيّ). هذا جواب السؤال الاول.

السؤال الثاني: sum+=i تعني sum=sum+i

يمكنك حفظ متغير الوقت بعدة طرق منها time_t ..

------------------------

#3

شكرا جزيلا أخي اسماعيل على الرد السريع ، ولكنك في آخر سؤالين لم تفهم قصدي

sum+=i لماذا قام بعمل هذه الخطوة؟ أو ما ماالنتيجة المتحققة من تنفيذها؟

أما بالنسبة للتاريخ فأنا أقصد هل سيكون من نوعfloat مثلا أو int أو ماذا؟ على افتراض اني اريد عمل برنامج يقوم باستقبال التاريخ من المستخدم

وشكراً جزيلاً

#4

أعتذر عن الفهم الخاطئ:o

...................................

في البداية المتغيّر sum يساوي صفر... وقد قمت في هذا البرنامج بإضافة قيمة i اليه في حالة ما اذا تم القسمة على الرقم i وهنا نرى إحتمالين:

1)ا كان الرقم أولي فهذا يعني أنه لن يتحقق الشرط if(x%i==0 الا عندما يكون i يساوي 1 . ومعنى هذا أن الجملة sum+=i لن تُنفَّذ الا مرة واحدة, وتصبح قيمة sum هي 1 .

2) اذا لم يكن العدد اولي, فهذا يعني أن هناك الكثير من الاعداد سوف يقسم عليها, وبالتالي الشرطif(x%i==0 سيتحقق أكثر من مرّة وبالتالي الجملة sum+=i ستُنفذ أكثر من مرّة, فتصبح قيمة sum أكثر من 1 , ولهذا عندما نفحص في النهاية الشرط :

if(sum==1)

cout<<"primary";

else

cout<<"not prima

يعطينا ما بعد else

_______________________

التاريخ:

أنت حرّ يمكنك أخذه ك int أو حتى جملة نصيّة, لأنك أنت في النهاية من سيقوم بالتعامل معه , وتحويله كما تشاء.

-

#5

1000 شكر

هذا الموضوع مغلق.

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