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

ماهي طريقة الوراثه في برنامج الترتيب

بدأه mdf في 23 يناير 2009 · 23 رد · 1,758 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لدي برنامج وعمل والحمدالله وهو عن البحث يعني تدخل عشره ارقام وبعدها تطبعلك عباره ادخل رقم البحث ....لكن لدي برنامج اخرى وهو ترتيب الاعداد اريد ان اعمل ورثه بينهما....بحيث بعد ادخل العشرة الارقام في برنامج البحث...مباشر يطبع الاعداد مرتبة ...وبعدها تخرج عبارة الحث عن الرقم في اي سطر موجود....انا حاولات اكثر من مره من الداله الرئسيه وهي حلقة الربط في النفيذ في البرنامجين

لكن ماطلع صحيح :lol: هذا البرنامج بعد المحاوله من الدالهة الرئسية

  1. #include<iostream.h>
  2. #include"sortarr.h"
  3. class search:public sortarr
  4. {
  5. private:
  6. int a[10];
  7. int key;
  8. int result;
  9. public:
  10. search();
  11. int binarysaerch();
  12. void setval ();
  13. void checkarray();
  14. void printrow();
  15. };
  16.  
  17. search::search()
  18. {
  19. key=0;
  20. result=0;
  21. for(int i=0;i<=9;i++)
  22. a[i]=0;
  23. }
  24.  
  25. void search::setval()
  26. {
  27. cout<<"enter array element n";
  28. for(int i=0;i<=9;i++)
  29. cin>>a[i];
  30. cout<<"enter they you looking for";
  31. cin>>key;
  32. }
  33.  
  34.  
  35. int search::binarysaerch()
  36. {
  37. int middle,low,high;
  38. cout<<"enter low & high values";
  39. cin>>low>>high;
  40. while(low<=high)
  41. {
  42. middle=(low+high)/2;
  43. if(key==a[middle])
  44. return middle;
  45. else if(key<a[middle])
  46. high=middle-1;
  47. else
  48. low=middle+1;
  49. }
  50. return-1;
  51. }
  52.  
  53. void search::checkarray()
  54. {
  55. result=binarysaerch();
  56. if(result!=-1)
  57. cout<<"value found in array :"<<result<<"n";
  58. else
  59. cout<<"value not found ";
  60. }
  61.  
  62.  
  63. int main()
  64. {
  65. clrscr();
  66. search ob;
  67. cout<<"this program saerching values using binarysaerch n";
  68. ob.setval();
  69. {
  70. const int size=10;
  71. int arr[size];
  72. for(int i=0;i<size-1;i++)
  73. ob.sort(arr,size);
  74. }
  75.  
  76. ob.checkarray();
  77. }
  78.  
  79.  

وهذا برنامج ترتيب الاعداد

  1. # include <iostream.h>
  2. # include <conio.h>
  3.  
  4. class sortarr
  5. {
  6. private:
  7. int hold;
  8. public:
  9. sortarr();
  10. void sort(int[],int);
  11. };
  12.  
  13. sortarr::sortarr()
  14. {
  15. hold=0;
  16. }
  17.  
  18. void sortarr::sort(int a[],int size)
  19. {
  20. for(int i=0;i<size-1;i++)
  21. {
  22. for(int j=0;j<size-1;j++)
  23.  
  24. {
  25. if (a[j]>a[j+1])
  26. {
  27. hold=a[j];
  28. a[j]=a[j+1];
  29. a[j+1]=hold;
  30. }
  31. }
  32. }
  33. for(int c=0;c<size;c++)
  34. {
  35. cout<<"narray after sating"<<a[c];
  36. }
  37. }
  38.  
  39.  

تم تعديل هذه المشاركة بواسطة mdf في 23 يناير 2009 في 17:12

#2

السلام عليكم

بغض النظر عن صحة البرنامج لانني وجدت ايضا فيه error logic .

اخي المشكله عندك في الــ class search ضع s كبتل , واعتد دائما في حال اردت ان تنشىء كلاس ان يكون في بدايته كبتل . اسلوب كتابة الكود موازي لاهمية تعلم البرمجه , لعلك تجد دروس تفيدك في هذا الامر.

  1.  
  2. class Search:public sortarr
  3. {
  4. private:
  5. int a[10];
  6. int key;
  7. int result;
  8. public:
  9. Search();
  10. int binarysaerch();
  11. void setval ();
  12. void checkarray();
  13. void printrow();
  14. };
  15.  
  16. Search::Search()
  17. {
  18. key=0;
  19. result=0;
  20. for(int i=0;i<=9;i++)
  21. a[i]=0;
  22. }
  23.  
  24. void Search::setval()
  25. {
  26. cout<<"enter Array element n";
  27. for(int i=0;i<=9;i++)
  28. cin>>a[i];
  29. cout<<"enter they you looking for";
  30. cin>>key;
  31. }
  32.  
  33.  
  34. int Search::binarysaerch()
  35. {
  36. int middle,low,high;
  37. cout<<"enter low & high values";
  38. cin>>low>>high;
  39. while(low<=high)
  40. {
  41. middle=(low+high)/2;
  42. if(key==a[middle])
  43. return middle;
  44. else if(key<a[middle])
  45. high=middle-1;
  46. else
  47. low=middle+1;
  48. }
  49. return-1;
  50. }
  51.  
  52. void Search::checkarray()
  53. {
  54. result=binarysaerch();
  55. if(result!=-1)
  56. cout<<"value found in Array :"<<result<<"n";
  57. else
  58. cout<<"value not found ";
  59. }
  60.  
  61.  
  62.  

تم تعديل هذه المشاركة بواسطة azeez00 في 23 يناير 2009 في 19:34

سبحان الله , الله اكبر , ولله الحمد

#3

البرنامج الاول هو عن البحث تدخل مثل 1,2,6,77,2500,5,66,22,8,3 بعدها ... البرنامج الموروث يرتيب الاعداد ..ثمل يخرجه مباشر.أو طباعتها من غير ترتيب.....وثما إعادة طباعتها مرتبه ...ثم بعدها يرجع إلى برنامج البحث ...وبعدها تطبع على الشاشة enter they you looking for ...ثم يدخل المستخدم إحدي الاعداد المدخله مثل 66 ...وبعدها تطبع على الشاشه enter low & high values ثم يدخل المستخدم صفر وتسعة ..ثما تخرج العباره النهاية تقول value found in array6

تم تعديل هذه المشاركة بواسطة mdf في 23 يناير 2009 في 20:51

#4

هل للبرنامج حل

#5

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

لماذا تحتاج للوراثه هنا ؟ فالكلاس search لا يصح أن يكون أبن لSort و العكس أيضا غير صحيح ،، علاقه is-a لا تنطبق هنا أبدا .

يمكن عمل داله sort تستقبل مصفوفه وتقوم بترتيبها ، وداله تستقبل مصفوفه ومفتاح وترجع موقع المفتاح أو -1 في حال لم تجده ، وداله لادخال الأعداد تستقبل هذه المصفوفه ، وفقط تقوم باستدعاء الداول :

input();

sort();

search();

أو يمكنك عمل كلاس يحتوي على مصفوفه وعلى الدوال اعلاه وتقوم باستدعائها ،،

أو يمكنك استخدام الدوال sort و find الجاهزه الموجوده في STL .

بالتوفيق :) .

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

#6

لم افهم ماقلت لكن هذا الكلاس اين اضع الدوال...ولك مني جزيل الشكر

  1.  
  2.  
  3. class Search:public sortarr
  4. {
  5. private:
  6. int a[10];
  7. int key;
  8. int result;
  9. public:
  10. Search();
  11. int binarysaerch();
  12. void setval ();
  13. void checkarray();
  14. void printrow();
  15. };
  16.  
  17. Search::Search()
  18. {
  19. key=0;
  20. result=0;
  21. for(int i=0;i<=9;i++)
  22. a[i]=0;
  23. }
  24.  
  25. void Search::setval()
  26. {
  27. cout<<"enter مصفوفة',CAPTION,'Array',WRAP, TEXTFONTCLASS,'myText','purple');" onmouseout=nd();
    href="">Array element n";
  28. for(int i=0;i<=9;i++)
  29. cin>>a;
  30. cout<<"enter they you looking for";
  31. cin>>key;
  32. }
  33.  
  34.  
  35. int Search::binarysaerch()
  36. {
  37. int middle,low,high;
  38. cout<<"enter low & high values";
  39. cin>>low>>high;
  40. while(low<=high)
  41. {
  42. middle=(low+high)/2;
  43. if(key==a[middle])
  44. return middle;
  45. else if(key<a[middle])
  46. high=middle-1;
  47. else
  48. low=middle+1;
  49. }
  50. return-1;
  51. }
  52.  
  53. void Search::checkarray()
  54. {
  55. result=binarysaerch();
  56. if(result!=-1)
  57. cout<<"value found in مصفوفة',CAPTION,'Array',WRAP, TEXTFONTCLASS,'myText','purple');" onmouseo
    ut=nd(); href="">Array :"<<result<<"n";
  58. else
  59. cout<<"value not found ";
  60. }
  61.  
  62.  
  63.  
  64.  

#7

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

أخ mdf ,,

الحقيقة أن الأخ Wajdy Essam تساؤله في محله!

لماذا تريد تمثيل عملية على أنها كائن بحد ذاته ؟

لاحظ معي أن استخدامك لـ object oriented programming أو كما يسميها العرب "البرمجية الكائنية" لا يجعل كودك أفضل أبداً إلا إذا كانت الفكرة نفسها يمكن محاكاتها بالـ OOP!

دعك من هذا الكلام في الأعلى و لنبدأ خطوة خطوة...

ما هي المسألة التي نريد حلها ؟

لدينا مجموعة من الأعداد التي يدخلها المستخدم, و نريد توفير عمليتين يمكن للمستخدم أن يستفيد منهما. الأولى هي البحث عن عدد ضمن الأعداد, و الثانية هي ترتيب تلك المجموعة من الأعداد.

الآن نبدأ بالتفكير في كيفية كتابة هذا البرنامج,

لدينا مجموعة من الأعداد, و أقرب ما يأتي إلى الذهن هو المصفوفات..

نريد إجراء عملية البحث ضمن هذه الأعداد, و أقرب شيء للذهن يمكن كتابته هو كتابة دالة للبحث.

نريد إجراء عملية الترتيب, و أقرب شيء للذهن هو كتابة دالة لترتيب تلك الأعداد.

الشيء الوحيد في مسألتنا الذي يمكن تمثيله على شكل كائن :) هو مجموعة الأعداد نفسها. بحيث يمكن أن يصبح كائنناً عبارة عن "حاوية" Container يمكننا التعامل مع هذه الأعداد ضمن واجهة سهلة و بسيطة.

و لكن إنشاء كائن في مثل مسألتنا هذه هو إضاعة لوقتك الثمين لأن مسألتنا أبسط من ذلك بكثير...

لماذا أصلاً أنشأت كائنات, و لماذا أصلاً ورثت الكائنات في برنامجك لا أدري, و لكن إن كان "وظيفة" فاسمح لي أن أقول لك بأن من أعطاك الوظيفة لا يفقه شيء في البرمجة...

إذا كنت قد أردت أن تمرن نفسك فلا بأس, فهكذا يتعلم المرء :)

انظر معي على التصميم الأولى للكود :

int findElementIndex( int numbersList[], int numbersListSize, int element ){

	.
	.
	.
	.
}

void sortNumbersList( int numbersList[], int numbersListSize ){

	.
	.
	.
	.
}

int main(){

	const int numbersListSize = 10;
	int numbersList[ numbersListSize ];

	.
	.
	.

	sortNumbersList( numbersList, numbersListSize );
	int elementFound = findElementIndex( numbersList, numbersListSize, 1024 );

	.
	.
	return 0;
}

تحياتي ,,

#8

كما ذكر أخ خالد ، استخدام الكلاسات في هذه الحاله أمر غير جيد واستخدام داله عاديه أفضل بكثير ،،

لذلك أكمل الفراغات :) التي طرحها أخ خالد وستصل للحل الصحيح تماما ..

وكما نذكر دائماأستخدام STL دائما يسهل الحل ويجعله أفضل ،، اذا كنت تعرف كيف تطبق هياكل البيانات وطرق البحث والترتيب، فيمكنك حينها استخدام الدوال في STL بدلا من اعاده كتابتها حيث تريحك كثيرا وخصوصا في بعض هياكل البيانات ،،

// search & sort using STL

#include <iostream>
#include <vector>
using namespace std;

void print ( int element ) {
	cout << element << " ";
}

int main (int argc, char* argv[]) {
	// make container
	vector<int> data;
	int number;

	// input number
	while (true) {
		cout << "Enter integer number (-1 to stop) : ";
		cin >>  number;

		if ( number == -1 )	break;

		data.push_back(number);
	}

	// print before sorting
	for_each(data.begin(),data.end(),&print);
	cout << endl;

	// sort it now
	sort(data.begin(),data.end());

	// print after sotring
	for_each(data.begin(),data.end(),&print);
	cout << endl;

	// search for number
				cout << "enter number : ";
	cin >> number;
	vector<int>::iterator itr = find(data.begin(),data.end(),number);
	if ( itr != data.end() )
		cout << "cann't find number " << number << endl;
	else
		cout << "find number " << *itr << endl;

	return (0);
}

بالتوفيق أخي :) .

تم تعديل هذه المشاركة بواسطة Wajdy Essam في 23 يناير 2009 في 23:34

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

#9

استخدمة تصميم الكود من اخي خالد ولم يفلح....واستخدمة كود اخي المبدع Wajdy Essam وطلع مع 15 خطأ هل تحتاج الاكواد اي إضافة ...ممكن توضحون لي

تم تعديل هذه المشاركة بواسطة mdf في 23 يناير 2009 في 23:50

#10

أدخل كل عدد ثم ENTER ...

#include <vector>
#include <algorithm>
#include <iostream>

int main(){

	std::vector<int> numbersSet;
	int number = 0;

	std::cout << "Enter The Numbers (every number followed by 'ENTER'...;" << std::endl;

	while( std::cin >> number ){
		if( number == -1 ) break;
		numbersSet.push_back( number );
	}

	std::cout << "Enter a number to find : ";
	std::cin >> number;

	std::sort( numbersSet.begin(), numbersSet.end() );

	std::vector<int>::iterator element = std::find( numbersSet.begin(), numbersSet.end(), number );


	std::cout << std::endl
		<< "The numbers :" << std::endl;

	for( std::vector<int>::iterator i = numbersSet.begin(); i < numbersSet.end(); i++ )
		std::cout << *i << std::endl;

	if( element == numbersSet.end() )
		std::cout << "Number not found!";

	else
		std::cout << "Number is found = " << *element;

	return 0;
}

يبدو أن وجدي نسي أن يضمن algorithm في أول الكود :)

تحياتي ,,

#11
اقتباس
استخدمة تصميم الكود من اخي خالد ولم يفلح

هات المحاوله لكي نراها ..

بالنسبه للأخطاء ، فما هو نوع المترجم الذي تعمل عليه ؟

أيضا namespace تكتب بدون حروف كبيره capital ، وقد تحولت بسبب خاصيه الترجمه ،، لذلك تأكد منها ،،

بالتوفيق :) .

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

#12

أخي خالد ، البرنامج يعمل بدون عمل اضافه للهيدر algorithm ،

ربما يكون السبب لأن الدوال التي فيه دوال عاديه وهي معرفه في namespace std لذلك لا توجد حاجه لأن نحدد ملف الرأس ، والله أعلم .

بالتوفيق :) .

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

#13

أولاً اشكرك على تفاعلك وردودك...لكن قمت بتتبع الاخطأ ومازال هناك 25 خطأ...ماذا يكون هل من المترجم

تم تعديل هذه المشاركة بواسطة mdf في 24 يناير 2009 في 00:49

#14

نوع المترجم TurboC++...لكن بدأت اشك ان المترجم هو صاحب الاخطأ

#15
Wajdy Essam كتب:
هات المحاوله لكي نراها ..

بالنسبه للأخطاء ، فما هو نوع المترجم الذي تعمل عليه ؟

أيضا namespace تكتب بدون حروف كبيره capital ، وقد تحولت بسبب خاصيه الترجمه ،، لذلك تأكد منها ،،

بالتوفيق :) .

تم التعديل...لكن دون فائده :blush: :wub:

#16

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

اقتباس
نوع المترجم TurboC++...لكن بدأت اشك ان المترجم هو صاحب الاخطأ

:huh:

هذا المترجم عمره أصغر من عمري بعدة سنين فقط..

أنصحك بأن تستخدم مترجم يتبع مقاييس ISO, يمكنك الاختيار بين visual cpp express و ++g و غيرهم, و لكن vc express هو الأسهل و الأفضل إن كنت تستخدم windows :)

تحياتي ,,

#17

هل لكود اخي خالد طريقة ثانية لكي يعمل مع التيربو او اي إضافة

  1. int findElementIndex( int numbersList[], int numbersListSize, int element ){
  2.  
  3. .
  4. .
  5. .
  6. .
  7. }
  8.  
  9. void sortNumbersList( int numbersList[], int numbersListSize ){
  10.  
  11. .
  12. .
  13. .
  14. .
  15. }
  16.  
  17. int main(){
  18.  
  19. const int numbersListSize = 10;
  20. int numbersList[ numbersListSize ];
  21.  
  22. .
  23. .
  24. .
  25.  
  26. sortNumbersList( numbersList, numbersListSize );
  27. int elementFound = findElementIndex( numbersList, numbersListSize, 1024 );
  28.  
  29. .
  30. .
  31. return 0;
  32. }
  33.  
  34.  

تم تعديل هذه المشاركة بواسطة mdf في 24 يناير 2009 في 06:06

#18

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

اخي mdf , البرنامج الذي طلبته بسيط وممكن ان تجد له طرق عده في الحل ,, كما وضعها الاخوان مشكورين .. ولكن الذي فهمته هو انه كان غرضك كيفية طريقة الوراثة حسبتك تريد تعلم طريقة الوراثة .

لا بأس, يوجد هنا two classes الاول Array هو baseClass والثاني SortArray هو subClass ..

مجرد ان تنشىء اوبجكت من نوع SortArray يتم ترتيب المصفوفة تلقائيا .

بالمناسبة انا اتفق مع اخي خالد ,, لان المسأله لا تحتاج فئات انما فقط اضافة الدوال للفئة ان اردت ان تكون البرمجه اوبجكت اوريانتد , ولكن عندما وضعت خاصية الترتيب التلقائي اصبح الامر مقبول نوعا ما .

  1. #include <iostream>
  2. //#include <stdlib.h>
  3. using namespace std;
  4. // base class ( Array )
  5. class Array {
  6. protected:
  7. unsigned int size;
  8. float *elements;
  9.  
  10. public:
  11. Array(float *elements, unsigned int size){
  12. this->elements=elements;
  13. this->size=size;
  14. };
  15.  
  16. void setSize(unsigned int size){ this->size=size; };
  17. unsigned int getSize(){ return this->size;};
  18. void setElements(float *elements){ this->elements=elements; } ;
  19. float * getElements(){return this->elements;};
  20. };
  21. // sub class ( SortArray )
  22. class SortArray:public Array {
  23. private:
  24. float number;
  25.  
  26. public:
  27. SortArray(float *elements, unsigned int size):Array(elements,size){
  28. this->elements=elements;
  29. this->size=size;
  30. sort(this->elements,this->elements+this->size);
  31. };
  32.  
  33. void setNumber(float aNumber){ this->number=aNumber;};
  34. float getNumber() { return this->number;};
  35.  
  36. void display() {
  37. for(unsigned int i=0; i<size; i++)
  38. cout<<elements[i]<<" ";
  39. };
  40.  
  41. };
  42.  
  43. int main(int argc, char *argv[])
  44. {
  45. float elements[]={7,6,5,4,15,20,2};
  46. SortArray *aSortArray= new SortArray(elements,7);
  47. aSortArray->display();
  48. delete aSortArray;
  49. //system("PAUSE");
  50. return 0;
  51. }
  52.  
  53.  
  54.  

type : Dev-c++ 4.x

اضف ما شئت من الدوال ..

بالتوفيق

تم تعديل هذه المشاركة بواسطة azeez00 في 24 يناير 2009 في 09:33

سبحان الله , الله اكبر , ولله الحمد

#19

لكن اخي هل تم تجربتها لديك دون اخطأ

#20

هذا الكود يوجد خطا في السطر 31

المترجم Microsoft Visual Studio 2005 c++

  1.  
  2. #include <iostream>
  3. //#include <stdlib.h>
  4. using namespace std;
  5. // الصنْف الأساس',CAPTION,'Base Class',WRAP, TEXTFONTCLASS,'myText','purple');" onmouseout=nd()
    ; href="">Base Class ( مصفوفة',CAPTION,'Array',WRAP, TEXTFONTCLASS,'myText','purple');" onmouse
    out=nd(); href="">Array )
  6. class Array {
  7. protected:
  8. unsigned int size;
  9. float *elements;
  10.  
  11. public:
  12. Array(float *elements, unsigned int size){
  13. this->elements=elements;
  14. this->size=size;
  15. };
  16.  
  17. void setSize(unsigned int size){ this->size=size; };
  18. unsigned int getSize(){ return this->size;};
  19. void setElements(float *elements){ this->elements=elements; } ;
  20. float * getElements(){return this->elements;};
  21. };
  22. // sub صنْف',CAPTION,'Class',WRAP, TEXTFONTCLASS,'myText','purple');" onmouseout=nd(); href="">
    Class ( SortArray )
  23. class SortArray:public Array {
  24. private:
  25. float number;
  26.  
  27. public:
  28. SortArray(float *elements, unsigned int size):Array(elements,size){
  29. this->elements=elements;
  30. this->size=size;
  31. sort(this->elements,this->elements+this->size);
  32. };
  33.  
  34. void setNumber(float aNumber){ this->number=aNumber;};
  35. float getNumber() { return this->number;};
  36.  
  37. void display() {
  38. for(unsigned int i=0; i<size; i++)
  39. cout<<elements[i]<<" ";
  40. };
  41.  
  42. };
  43.  
  44. int main(int argc, char *argv[])
  45. {
  46. float elements[]={7,6,5,4,15,20,2};
  47. SortArray *aSortArray= new SortArray(elements,7);
  48. aSortArray->display();
  49. delete aSortArray;
  50. //system("PAUSE");
  51. return 0;
  52. }
  53.  
  54.  
  55.  
  56.  
  57.  

تم تعديل هذه المشاركة بواسطة mdf في 25 يناير 2009 في 17:19

#21

هذا البرنامج يبدا التنفيذ لكن بعد ادخال اكثر او اقل من عشر ارقام لايعمل اي لا يطبع

  1. #include <vector>
  2. #include <algorithm>
  3. #include <iostream>
  4.  
  5. int main(){
  6.  
  7. std::vector<int> numbersSet;
  8. int number = 0;
  9.  
  10. std::cout << "Enter The Numbers (every number followed by 'ENTER'...;" << std::endl;
  11.  
  12. while( std::cin >> number ){
  13. if( number == -1 ) break;
  14. numbersSet.push_back( number );
  15. }
  16.  
  17. std::cout << "Enter a number to find : ";
  18. std::cin >> number;
  19.  
  20. std::sort( numbersSet.begin(), numbersSet.end() );
  21.  
  22. std::vector<int>::iterator element = std::find( numbersSet.begin(), numbersSet.end(), numbe
    r );
  23.  
  24.  
  25. std::cout << std::endl
  26. << "The numbers :" << std::endl;
  27.  
  28. for( std::vector<int>::iterator i = numbersSet.begin(); i < numbersSet.end(); i++ )
  29. std::cout << *i << std::endl;
  30.  
  31. if( element == numbersSet.end() )
  32. std::cout << "Number not found!";
  33.  
  34. else
  35. std::cout << "Number is found = " << *element;
  36.  
  37. return 0;
  38. }
  39.  

#22

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

أدخل كل عدد ثم اضغط ENTER و العدد الذي يليه ثم ENTER و هكذا و عندما تريد الإنتهاء أدخل 1- ثم ENTER :)

#23

لكن اخي Khaled.Alshaya لم يحدد الرقم الرقم من اي سطر

#24

بقي خطوه بسيطه وهي عند البحث دائما 10 او صفر... والترتيب صحيح

  1. #include<iostream.h>
  2.  
  3.  
  4. class sortarr
  5. {
  6. private:
  7. int hold;
  8. public:
  9. sortarr();
  10. void sort(int[],int);
  11. };
  12.  
  13. sortarr::sortarr()
  14. {
  15. hold=0;
  16. }
  17.  
  18. void sortarr::sort(int a[],int size)
  19. {
  20. for(int i=0;i<size-1;i++)
  21. {
  22. for(int j=0;j<size-1;j++)
  23.  
  24. {
  25. if (a[j]>a[j+1])
  26. {
  27. hold=a[j];
  28. a[j]=a[j+1];
  29. a[j+1]=hold;
  30. }
  31. }
  32. }
  33. for(int c=0;c<size;c++)
  34. {
  35. cout<<"narray after sating"<<a[c];
  36. }
  37. }
  38.  
  39.  
  40.  
  41.  
  42.  
  43. class Fa:public sortarr
  44. {
  45. private:
  46. int a[10];
  47. int key;
  48. int result;
  49. public:
  50. Fa();
  51. int binarysaerch();
  52. void setval ();
  53. void setfah();
  54. void checkarray();
  55.  
  56. };
  57.  
  58. Fa::Fa()
  59. {
  60. key=0;
  61. result=0;
  62. for(int i=0;i<=9;i++)
  63. a[i]=0;
  64. }
  65.  
  66. void Fa::setval()
  67. {
  68. cout<<"enter array element n";
  69. for(int i=0;i<=9;i++)
  70. cin>>a[i];
  71. }
  72.  
  73.  
  74. void Fa::setfah()
  75. {
  76. cout<<"enter they you looking for";
  77. cin>>key;
  78. }
  79.  
  80. int Fa::binarysaerch()
  81. {
  82. int middle,low,high;
  83. cout<<"enter low & high values";
  84. cin>>low>>high;
  85. while(low<=high)
  86. {
  87. middle=(low+high)/2;
  88. if(key==a[middle])
  89. return middle;
  90. else if(key<a[middle])
  91. high=middle-1;
  92. else
  93. low=middle+1;
  94. }
  95. return-1;
  96. }
  97.  
  98. void Fa::checkarray()
  99. {
  100. result=binarysaerch();
  101. if(result!=-1)
  102. cout<<"value found in array :"<<result<<"n";
  103. else
  104. cout<<"value not found ";
  105. }
  106.  
  107.  
  108.  
  109.  
  110.  
  111. int main ()
  112. {
  113. Fa ob;
  114. cout<<"this program saerching values using binarysaerch n";
  115.  
  116. {
  117. const int size=9;
  118. int arr[size];
  119. for(int i=0;i<=size-1;i++)
  120.  
  121. cin>>arr[i];
  122.  
  123. sortarr z;
  124.  
  125. z.sort(arr,size);
  126. }
  127. ob.setfah();
  128. ob.checkarray();
  129. }
  130.  

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…