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

من فضلكم المساعده في برنامج بسيط جدا

بدأه EgY-St3alTh في 31 يوليو 2008 · 4 رد · 628 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

احب اشكر كل اللي في المنتدي فعلا فيه حجات روعه وان شاء الله دايما في تقدم

من فضلكم المساعده في برنامج بالطبع سيكون غايه في السهولة بالنسبه لكم ولكنه وقف معايا لاني لسه مبتدا ومش عارف انفذه هو برنامج تدخل له رقم يقول لك ان كان العدد ده اولي او لا ولكن هذا كان في الدورة اللي انا داخلها تطبيق علي قاعده for يعني ارجو منكم عمله ب for فقط مش while ولا do ولا الكلام ده انا هعرضلكم محاولاتي وياريت اجد المسااعده

العدد الاولي هو العدد الللي يقبل القسمه علي نفسه وعلي الواحد فقط .

السورس كود لمحاولتي الخاطئه :D :

 </P> 

#include <iostream.h>
void main()
{
 int i,no;</P> 
 cout<<"enter number ";
 cin>>no;</P> 
 if (no==1||no==2)
  cout<<no<<" is prime number ";
 else
 {
  for (i=2;i<no;i++)
   if (no%i==0)
	cout<<"number is not prime ";
  
  else
   cout<<"number is prime ";
 }</P> 
}</P>

ارجو المساعده وشكرا طبعا انا شغال علي كونسل ابلكيشن في فيجول سي بلس 6

انا مش عارف ليه الكود اضافتله اكواد هتمل كده في الموضوع

علي العمود الكود تاني اهوة

#include <iostream.h>

void main()

{

int i,no;

cout<<"enter number ";

cin>>no;

if (no==1||no==2)

cout<<no<<" is prime number ";

else

{

for (i=2;i<no;i++)

if (no%i==0)

cout<<"number is not prime ";

else

cout<<"number is prime ";

}

}

#2
[color= #007f00;]#include <iostream>

[color= #0000ff;]using [color= #0000ff;]namespace std;

 

[color= #0000ff;]void main[color= #000000;]([color= #000000;])

[color= #000000;]{

	[color= #0000ff;]int i,no;

	cout[color= #000000;]<<[color= #A31515;]"enter number ";

	cin[color= #000000;]>>no;

	[color= #0000ff;]for [color= #000000;](i [color= #000000;]= no[color= #ff0000;]-1; i [color= #000000;]> [color= #ff0000;]1; [color= #000000;]--i[color= #000000;])

	[color= #000000;]{

		[color= #0000ff;]if [color= #000000;](no[color= #000000;]%i [color= #000000;]== [color= #ff0000;]0[color= #000000;])

		[color= #000000;]{

			cout [color= #000000;]<< no [color= #000000;]<< [color= #A31515;]" is not prime" [color= #000000;]<< endl;

			break;

		[color= #000000;]};

	[color= #000000;]};

	[color= #0000ff;]if [color= #000000;](i [color= #000000;]< [color= #ff0000;]2[color= #000000;]) cout [color= #000000;]<< no [color= #000000;]<< [color= #A31515;]" is prime" [color= #000000;]<< endl; 

	system[color= #000000;]([color= #A31515;]"pause"[color= #000000;]);

[color= #000000;]};

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#3

رائع شكرا جزيلا بجد علي حجتين اول حاجه الاهتمام السريع والرد لاني كتبت في اكتر من 3 منتديات غير هنا منذ ثلاث ايام ولم يرد احد

تاني حاجه البرنامج وشكرا جدا

#4

اخي العزيز انا شغلت البرنامج تمام بس طبعا حابب افهم الكود انا فهمته كله معادا الحته دي

	if (i < 2) cout << no << " is prime" << endl;

ياريت التوضيح وشكرا

#5

اخي العزيز ..

انت اذا لم تفهم هذا السطر من الكود .. باعتبار انك لم تفهم الكود كله ..

لذلك ساحاول ان اشرح لك فكرة معرفة العدد الاولي كيف تتم ..

اترك السي والبرمجة .. وعد الى الورقة والقلم ..

واكتب ثلاثة اعداد على ورقه .. واكتب تحت كل عدد هل هو اولي ام غير اولي ..

بعدها فكر .. كيف عرفت ان هذا اولي والثاني غير اولي.؟

الطريقة بسيطه وهي كالتالي ...

كل عدد نقوم بتفكيكه الى عوامله التي يتكون منها بالضرب . اذا كان للعدد عوامل اكثر من 2 .. يعني يتكون من اكثر من عاملين فهو ليس اولي ..

اما العكس .. يعني عاملين فقط .. فهو عدد اولي ..

ما المقصود بعاملين .؟

العاملين هم ثوابت في تكوين اي عدد . وهي الواحد والعدد نفسه .

فمثلا الاعداد التاليه ..

4 ... 7 ... 9

اول رقم 4 .. هو غير اولي .. كيف عرفنا ذلك ..

لانه يتالف من ثلاثة عوامل ( اكثر من اثنين ) = ( 1 ، 2 ، 4)

ثاني رقم 7 ... عدد اولي .. لانه يتالف من الرقمين الثوابت .. وهي الواحد والعدد نفسه

اي ان عوامل 7 هي = ( 1 ، 7 )

الرقم الثالث 9 غير اولي والدليل عدد عوامله اكثر من الثوابت ( اثنين) وهي

عوامل 9 = ( 1 ، 3 ، 9 )

خذ الرقم 17 هو عدد اولي .. والدليل لانه يتالف من العددين الثوابت .. ( 1 ، 17 )

لنعد الى البرمجة نفس الفكرة تماما ..

لنشاهد هذا الكود ..

#include<iostream.h>
#include<conio.h>

void main()
 { clrscr();

 int x,n=0;
   for(int i=x;i>=1;i--)
	 {
	   cin >> x;
	   if(x%i==0)
	 n++;
	   if(n==2)
	cout << " it is prime ... "<<endl;
	   else
	cout << " is is not prime .. ";
	 }
   getche();
 }

فالسطر التالي ..

for(int i=x;i>=1;i--)

فهو يبدأ بحلقة تبدأ من العدد وتنتهي بالواحد .. لان كل الاعداد عواملها من الواحد الى العدد نفسه ( وما اسميناه قبل قليل بالعددين الثابتين )

بعدها اختبار ..

if(x%i==0)

اختبار لعوامل العدد .. اي هل يقبل القسمه عليه ام لا . فاذا قبل القسمه هو من العوامل واذا لا فهو ليس عاملا للعدد ..

وكل مره يقبل في القسمه ( اي انه عامل ) نزود العداد n بواحد ..

حيث ان n هو العداد الذي سنميز به هل العدد اولي .. لان عدد n يعني عدد العوامل لذلك العدد .. فاذا كان n اكبر من 2 .. يعني بذلك عدد العوامل اكبر من عاملين يدل بذلك على ان ذلك العدد غير اولي .. لان عوامله اكبر من 2 ..

 if(n==2)
	cout << " it is prime ... "<<endl;
	   else
	cout << " is is not prime .. ";

هنا تم اختبار عدد عوامل العدد x اذا كانت تساوي 2 فهو عدد اولي .. اما اذا غير ذلك فهو غير اولي ..

اتمنى ان يكون الشرح واضحا ..

وبالمناسبه الكود الذي كتبته انا مشابه لما كتبه الاخ GM.. مجرد اختلافات بسيطه بالكتابة ولكن نفس الفكرة ..

اي سؤال موجودين . ..

تحياتي العطرة

يَارَبُ إِن ضَاقَت قُلُوُب الْنَّاسٍ عَنْ مّافِي .. مِنْ خَيْرٍٍ فَعَفْوكَ لَا يَضِيْقْ ..

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