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

I need a help in my programme

مغلق
بدأه rose2004 في 26 نوفمبر 2004 · 4 رد · 563 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

The Q is :

A prime number is a number that is divisible only by itself and 1. Write a program that asks a user for integer value and then displays all prime numbers less than or equal to that number. for example, if the user enter 17 ,the program should display:

prime number less than or equal to 17:

2

3

7

11

13

17

#2

السلام عليكم

ممكن نشوف أولاً محاولتك ... ثم نساعدك ؟؟؟؟؟؟

على كل حال

خذ هالكود يمكن يساعدك ...

///////////////////////////////////////////////////////////////////
////                 Linear search solution              //////
///////////////////////////////////////////////////////////////////
#include<iostream>
using namespace std;

bool search(int array[],int number);   //prototype

int main()
{
	int array[10]={3,6,23,8,65,-7,54,4,13,16};
	int input;  /// use for holding user input
	cout<<"Input the number that you want to find--> ";
	cin>>input;
	if (search(array,input))
  cout<<"Element found\n";
	else
  cout<<"Element not found\n";
	return 0;
}

bool search(int array[],int number)
{
	for (int i=0;i<10;i++)	
  if (array==number) 
 	 return true;
	return false;
}

12.gif

cs.jpg

#3

أخي العزيز

فكرة البرنامج كالتالي

لاختبار ان العدد اولي نحتاج متغيرcounter نساويه بالصفر ثم نبدا لوب من عند الرقم المدخل الى

for (int i=input;i>0;--i)

الواحد في كل مرة نقوم بقسمة العدد على العداد i اذا كان باقي القسمة صفر سنزيد

المتغير بواحد وهكذا

if(input%i==0)++counter;

في نهاية اللوب اذا كان المتغير counter يساوي 2 هذا معناه ان العدد اولي لان هذا معناه انه

قسم على نفسه وعلى الواحد وهذا شرط العدد الاولي

دعني اوضح لك بمثال اذا ادخلنا الرقم ال 17 سنبدا لوب تنازلي من ال17 الى 1

ونبدا بالقسمة باقي قسمة 17/17 هو 0 الان نزيد المتغير counter فيصبح 1

باقي قسمة 17/16 ليس 0 اذا لن نزيد counter باقي قسمة 17/15 ليس 0 لن نزيد

counter وهكذا لنهاية اللوب اي ان اذا كان العدد اولي يجب ان يكون المتغير = 2

(يقسم على نفسه وعلى 1 فقط )

الان بما ان السؤال يريد جميع الاعداد الاولية الاقل من الرقم المدخل فانت تحتاج الى لوب

خارجية تبدا من الرقم المدخل الى الرقم 1

وداخل هذه اللوب نضع اللوب السابقة الذكر لاختبار اذا كان العدد اولي او لا

اذا كان العدد اولي اظهره عالشاشة اذا لا فتغاضى عنه (continue)

أرجو أن أكون اوضحت الفكرة لك و انا لم اكتب الكود لك حتى تحاول بنفسك فاذا نجحت

فاعلم انك لن تنساه ابدا

وبالتوفيق

#4

السلام عليكم ورحمة الله وبركاته ...

أخي \ أختي الكريمة ، سأحاول أن أشرح البرنامج الذي يساعد على إيجاد الأرقام الأولية ( prime numbers )...

نبدأ loop for ( نسميه خارجي )من 1 إلى =< الرقم المطلوب يعني على سبيل المثال 17

 

نعين flag ونعطيه قيمة تساوي 1 مثلا

نبدأ for loop داخل الخارجي ( نسميه داخلي ) وتبتدي من 2 إلى < العدد المتغير في for loop الخارجي

نستعمل while loop بشرط أن يكون المتغير في الـ for loop الخارجي % المتغير في الـ for loop الداخلي يساوي 0

ونعين flag مرة ثانية ونخليه = 0

ونكسر الـ wihle loop باستخدام break

ونسكر for loop الداخلي    

ونحط الشرط if إذا كان flag يساوي 1 نطبع الرقم المتغير في for loop الخارجي لأنه بيكون prime number

ونسكر for loop الأولي ونسكر البرنامج

الفكرة وما فيها إننا نجرب ونقسم كل الأرقام الأصغر من الرقم الذي نريد أن نختبره إذا كان رقم أولي أو لا ... وإذا كان هناك رقم يقبل القسمة فيعني الرقم الذي تحت الاختبار ليس رقم أولي ولا نحتاجه فنذهب للرقم الذي بعده ونختبره وهكذا...

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

والسلام عليكم ورحمة الله وبركاته

تم تعديل هذه المشاركة بواسطة صدّيق في 26 نوفمبر 2004 في 08:16

#5

السلام عليكم

لدي تعقيب صغير على كلام الاخوة

كما هو معروف ان افضل الطرق البرمجية اقصرها

لدي ملحوظة صغيرة

سأكتب الكود الخاص بالبرنامج

cin>>x;

y=x/2;

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

if(x%i==0)

{ cout<<" not prime";

break;}

else

cout<<" prime";

انتبه جيدا الى شرط توقف اللوب

نبدا من 2 على اعتبار ان جميع الاعداد تقبل القسمة على 1 ونتوقف الى نصف العدد لان اكبر عدد صحيح يمكن ان ينقسم عليه العدد بدون باقي هو نصفه .. ارجو ان يكون كلامي واضح

برامج في ال C#

إذا اشتكى مسلم في الهند أرقني -- وإن بكى مسلم في الصين بكاني

ومصر ريحانتي والشام نرجستي -- وفي الجزيرة تاريخي و عنواني

وفي العراق أكف المجد ترفعني -- إلى بساتين عز ذات أفنانِ

أرى بخارى بلادي وهي نائية -- وأستريح إلى ذكرى خراسانِ

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

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