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

مطلوب عمل برنامج

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

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

مرحبا بكم

ارجو مساعدتي في عمل برنامج بلغة السي بلاس بلاس

بغض النظر عن عمل هذا البرنامج لكن المهم انه يستخدم فيه نوع من تراكيب البيانات وهذا النوع هو

sorted linked list

اي انه يتضمن فكره الطوابير ذات الاولويه

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

واي استفسار ارجو المراسله للايضاح على moon_iloveyou@hotmail.com

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

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

دمتم بود الرحمن

:rolleyes:

#2

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

السلام عليكم

هذا عبارة عن برنامج بسيط يعرفك كيفية عمل sort الى الlinkedlist عن طريق الavreage

Class linkedlist
{
Private:
Struct cell
{
Char name[20];
Float average;
Int id;
Cell *next;

}
Cell *head;
Public:
Linkedlist()
{
Head=0;
}
Void addcell()
{
Cell *newcell;
Newcell =new cell;
Cin >>newcell->name;
Cin>>newcell->id;
Cin>>newcell-> average;
Newcell->next=head;
}

//دالة لعمل sort
Void sort()
{
//1
If(head==0||newcell-> average>head-> average)
{
Newcell->next=head;
Head=newcell;
}
Else
Cell *current;
//2
While(current->next!=0&current->next-> 
average>newcell-> average)
//3
Current=current->next;
//4
Newcell->next=current->next;
Current->next=newcell;
}

};

السطر رقم 1 :

شرط اولا اذاكان

Head==0

أى ان الhead لم يشاور على أى cell موجودة

||

لاحتمالية حدث اول شرط أو الثانى يدخل ينفذ.

الشرط الثانى

أذا كان الخلية اللى داخلة الى الlinkedlist جديدة وكان أكبر

من اللى بيشاور عليها الhead وبالتالى يخلى الhead يشاورعليها أما else

كانت أصغر منها أذن احتمالية أن تكون أكبر من اللى بعد اللى كان الhead بيشاور عليها أو أكبر منها

وبالتالى

قد عرفت current من النوع الcell

فى السطر الثانى

عملت loop علشان امشى على الlinked list كلها

وبالتالى يطلع من الloop فى حالة أن الnext equal zero أى أخر cell موجودة فى الlinked list

& لحدوث الاثنين معا ومعناها أن

ال averageبتاع الىثءف بتاع الcurrent أكبر من ال average بتاع الnewcell

وهذة الجنلة تشابة pointer to pointer

أى مؤشر لمؤشر

السطر رقم 3

زى لما تقول i++

أى علشان يمشى على الlinkedlist

السطر 4

يبقى وجد المكان الصحيح لوضع الcell فيها

أتمنى أن أكون قد وصلت ما تريدة

وأأسف عن هذة اللغة الركيكة !

وهذا كتاب فى الdata structure فأنا أدرس منة ومازلت أدرس منة حتى الان

كتاب data structure.rar

Muhammad Allam

Computer Science

@Resource(MappedURL="My Blog" )

#3

مشكور اخي eng_3llam

وعفاك الله

مثال جيد

لكن

عندي سؤال هذا البرنامج مثال على sorted

تمام

هل هو يتضمن فكره الطوابير ذات الاولويه

لان sorted linked list ماهو الا ربط استخدام الطوابير ذات الاولويه بال القوائم الموصوله

طيب يا اخي eng_3llam

ابي منك طلب اخر وهو

انك تكتب تلخيص عن هذا النوع كأنك جالس تفهمني وش تعني sort linked list

?

اي كأنك تكتب تقرير عن هذا النوع من التراكيب

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

:)

#4

ارجو الرد علىّ قبل فوات موعد التسليم

ولك يا اخي eng_3llam جزيل الشكر

وبانتظار جوابك

دمت بود الرحمن

همس العبير

#5
اقتباس
يعني تقدروا تفتحوا اي كتاب للبرمجه وتبحثوا عن هذا النوع من التراكيب وتكتبوا لي الكود واكون بذلك شاكره لكم

ولماذا لا تقومي بذلك وتطلبي المساعدة عند خطأ ما، بدلا من أن يقوم الأخوة هنا بحل ال homework؟ <_<

أعتقد أنه المفترض من الشخص الذى يطرح السؤال ان يكون لديه النيه في الإستفادة من خلال التعلم بالتجربة والخطأ، وطلب المساعدة لمعرفة بداية الطريق والمساعدة على الأخطاء

وليس حل الواجبات المنزلية

صح؟

لا تحزن:

إن كنت فقيرا فغيرك محبوس في دين، وإن كنت لا تملك وسيلة نقل فسواك مبتور القدمين، وان كنت تشكوا من آلام فغيرك يرقدون على الاسرة البيضاء و من سنوات، وان فقدت ولدا فغيرك فقد عددا من الأولاد و في حادث واحد.

لا تحزن:

فأنت تشرب الماء الزلال، و تستنشق الهواء الطلق، و تمشي على قدميك معافى، و تنام ليلك آمنا.

#6

اي انه يتضمن فكره الطوابير ذات الاولويه

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

بالضبط

ليه ما تفتحي الكتاب و تقري

#7

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

السلام عليكم

اولا بالنسبة الى السؤال الاول أن الكود يسير على فكره الطوابير ذات الاولويه على حسب فهمى الى سؤالك

وبالنسبة الى السوال الثانى أأسف على عدم الاجابة علية حيث

اقتباس
انك تكتب تلخيص عن هذا النوع كأنك جالس تفهمني وش تعني sort linked list

?

اي كأنك تكتب تقرير عن هذا النوع من التراكيب

أولا لماذا لا تقرائى وتبحثى حيث لا تتوقعى ف هذ المجال أن أحد يأتى أليكى أو الى اى أحد وأيضا أنا بالمعلومة على طبق من ذهب

أو يدوبها فى الماء وأشرب وانت تلاقى كل الفيدة فى هذا ولكن يأختى أنا قد جاوبت ووضحت قليل من هذا الموضوع وما عليكى أن تكملى وتبحثى

صدقينى أن المعلومة اللى تبحثى عنها وتتعبى فيها أفضل ,أحسنمن أن ـأخذيها من أحد

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

لماذ لا تقرائى حيث قد وضعت كتاب جميل جدا جدا ف الdata structure ويوجد بة فصل كامل على الlinkedlist

أرجو أن تفعلى بهذة النصائح الانسان يضل يتعلم حتى أخر يوم ف عمرة

وشـــــــــــــــــــــكرا

ALLAM

Muhammad Allam

Computer Science

@Resource(MappedURL="My Blog" )

#8

مشكورين على النصيحه

لكن بدل هالكلام هذا عطيتوني ولو معلومه صغيره عن الموضوع اللي انا طارحته

#9

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

واذا ماتبون براحتكم

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

دمتم بود الرحمن

#10

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

أولا يأختى لماذا لا تقرائى انتى وتستفيدى

وايضا وضحى السؤال حتى اقدر اجاوب علية لو أستطعت بعون الله

Muhammad Allam

Computer Science

@Resource(MappedURL="My Blog" )

#11

قلت لك الوقت مره ضيق

بكره التسليم

ثانيا

السؤال هو اذا كانت عندك اي معلومات اي معلومات عن هذا النوع من التركيب تكتبه لي

ويوم انك تقول بين يديني كتاب data strctuer حاليا ماهو معي

فإذا عندك الكتاب لاتبخل علي بالحل

وشاكره تواصلك

#12

سأحاول بأن ارد عليكى باذن الله

Muhammad Allam

Computer Science

@Resource(MappedURL="My Blog" )

#13

مشكوررررررررررر الف شكر

انا بالانتظار

#14

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

السلام عليكم

اولا سأقوم بالشرح على قدر ما أستطعت بسم الله نبدأ

الlinked list ماهى الا عبارة عن مجموعة من الcells الخلايا المتصلة ببعض عن طريق وصلة وكل خلية تحتوى على شيئين

اولا الdata اى البيانات الموجودة ف هذة الخلية ثانيا pointer ويسمى غالبا بالnext

حيث هذا المؤشر يشير الى الcell التالية اى القادمة ف الlinked list وبالتالى تكون الlinked list عبارة عن طابور من الcells المتجاورة حيث يجب معرفة بداية ونهاية الlinkedlist وتكون عن

طريق:

عمل two pointers :

1- يسمى الhead وهو يشير على بداية الlinkedlist

2-يسمى بالtail حيث يشير على أخر cell أو node موجودة فى الlinkedlist

حيث تكون أخر cell تشاور على القيمة null or zero أى لا يوجد بعدها أى خلية أى هى أخر واحدة ف الlinkedlist

حيث توجد بعض الخواص التى تجرى على الlinkedlist وهى

1- append OR prepend

2-insert after OR intsert before

3- search

4- delete

5-sort

1- عملية الاضافة أى اضافة خلية وهى تنقسم الى نوعين :

1- عملية append

2-عملية الprepend

ال prepend وهو واضح من معناها الاضافة فى بداية الlinkedlist وذللك عن طريق

جعل الnext بياع الcell الجديدة اللى انا ضايفها يساوى الhead اى يشاور على الcell اللى بيشاور عليها الhead اى يشاور على اول cell كانت موجودة ف البداية قبل اضافة هذة الcell وبالتالى كدة تم ربط هذة الcell ف الlinkedlist ثم بعد ذللك اجعل الhead يشاور عليها وبالتالى كدة تم اضافة فى بداية الlinkedlist وكدة تكون عملت prepend .

بالنسبة للappend وهى اضافة cell فى نهاية الlinkedlist وذللك عن طريق:

الوصول الى اخر cell ف الlinkedlist عن طريق loop تمشى على الlinkedlistعن طريق pointer من نوع الcell

وعندما أصل الى اخر cell عندما يكون الnext بتاع الpointer يساوى zero or null وبالتالى أجعل الnext بتاع الpointer

يشاور على الcell الجديدة وأخلى الtail يشاور على هذة الcellالجديدة اللى أنا ضفتاها

حيث أيضا ف حالة الاضافة ف المنتصف وهى تنقسم الى

1-insert after

2- insert berfore

اولا

insert after

أعمل pointer يبدأ يمشى ع الlinkedlist وعندما يكون next بتاعة يساوى قيمة او يساوى البيانات اللى موجودة فى الcell

اللى بيشاور عليها أعمل اضافة لهذة الcell فى هذا المكان

أما ف حالة الثانية

هعمل two pointers حيث يسيروا بالتتابع أى واحد وراة الثانى ثم بعد ذللك أعمل insert بينهما

وأيضا يوجد عملية الsearch وقد أوضحتها .....

أما ف حالة الdelete

هعمل two pointers حيث الاول قبل الcell المراد حذفها وأعطية مثلا رمز 1 والثانى يشاور عليها أى ع الnode المراد حذفها

واعطية رمز 2

ثم أجعل الnext بتاع رقم 1 يساوى الnext بتاع المؤشر رقم 2 حيث

يوجد الان two cell يشاور ع الcell اللى بعد رقم 2 وبالتالى لتفادى هذا أعمل delete الى الpointer number 2

وبالتالى كدة قد اهملت الnode رقم 2 أى اصبحت garbage value in ram

حيث من أهم التطبيقات الlinkedlist الword اللى موجود ف الoffice

حيث كل كلمة عبارة عن cell وكل سطر عبارة عن مجموعة من الcells أى linkedlist يتم ربطة مع السطر التالى بالpointer next وكل document أيضا مجموعة من الcell المرتبطة ببعض أى يعتبر node ف linkedlist كبيرة تضم الdocument

حيث يوجد فى الكتاب المرفق صور توضح أنواع الlinkedlist وأيضا الcodes

وأيضا نصيحة قبل ماأنسى لكى تريدى فهم الlinkedlist أو حتى تحلى أى prb فيها يجب الرسم اولا مجموعة من nodes

مرتبطة بعضها عن طريق next ولها head &tail

أرررررجو بأن أوضحت ما تريدية ....

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

Muhammad Allam

Computer Science

@Resource(MappedURL="My Blog" )

#15

الف الف الف الف شكر لك يا eng_3llam

ويعطيك الف عافيه

وانت فرجة كربتي جعل ربي يفرج عليك في كل امورك قادر ياكريم

وجعل ربي يحفظك ويحميك ويحرسك بعينه اللي مايغشاها انعاس

و عقبال ما ابشرك عن نتيجه الواجب

دمت بود الرحمن

همس العبير

#16

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

شكرا على مرورك ويارب تكونى استفدتى ولو بمعلومة بسيطة

Muhammad Allam

Computer Science

@Resource(MappedURL="My Blog" )

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

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