Algorithm in discovering and correcting words errors in a dictionary or any word editor .

10
اتت و بنى المعطار الخوارزم تقر1 2013 * جاهعة دهشق* علوهاتيةية الهنذسة الو كل* لثانية السنة ا Algorithms and Data Structure Student: Kinan keshkeh Eng : Eng.Maher Al Sarem

Transcript of Algorithm in discovering and correcting words errors in a dictionary or any word editor .

2013 1تقرر الخوارزمات و بنى المعطات

جاهعة دهشق *

كلية الهنذسة الوعلوهاتية*

السنة الثانية*

Algorithms and Data Structure

Student:

Kinan keshkeh

Eng :

Eng.Maher Al Sarem

2013 1تقرر الخوارزمات و بنى المعطات

نظام الي الكتشاف االخطاء وتصحيحيها في محرر خوارزمية

نصوص:

بنى المعطيات :

:wordمصفوفة مؤشرات على سالسل من نوع (1Dictionary=array*‘a’..’z’+ of pword

مؤشر على العقدة : (2

Pword=*word

: wordالعقدة (3Word=Record

{

X:ineger; // عدد دل على عدد احرف الكلمة

Next:pword; مؤشر على الكلمة التالة //

Str:string;

}

بما اننا نحتاج لعملة بحث عن الكلمة المدخلة)للتاكد منها ( ف كامل مفردات اللغة , ( 1

أجنبفللسهولة نضع المفردات ببنه بحث تفرز تلك المفردات باوائل الحروف , وكل حرف

سهولة البحث )حتى ال نبحث عن كلمات اللغة حتى ال مفروز فه مفرداته )تصاعدا( ل

NULL , و نتوقف عندما نجد الكلمة االكبر من الكلمة المرادة وذلك عند عملة البحث

.والتاكد (

و الن كلمات اللغة االنكلزة مثال.. قابلة الضافة المرادفات والتعدالت المستمرة .. -

Linked Listفتكون البنة الدنامكة ه المالءمة اكثر..

ف اخترنا ان تكون السلسلة مؤلفة من تسجلة تحوي Word( اما من اجل العقدة 2

كلمة( و ) عدد احرف الكلمة ()المؤشر( على الكلمة التالة بالقاموس و)ال

وعدد احرف الكلمة فد من اجل طباعة البدائل ...

2013 1تقرر الخوارزمات و بنى المعطات

:بالقاموس والتصحيح التاكدجداول التحليل األولي لخوارزمية

Search اسن التابع رد اما موجودة او غر موجودة رى الكلمة المدخلة و الوهوة

( Bring _same)تابع مساعد لالجرائة

Bring_sameاجرائة طباعة البدائل يستخذم في

هذا التابع بحث عن الكلمة المدخلة بالسلسلة ذات الحرف الت تبدا به الكلمة التوصيف

Bring_same الجرائيةاسن ا طباعة الكلمة اذا كانت موجودة الوهوة

طباعة البدائل اذا كانت غر موجودة ثم اعادة االدخال ..

mainالتابع الرئس يستخذم في

....مسح الخر السلسلة((جلب الكلمات ذات نفس طول الكلمة والمختلفة ببعض االحرف التوصيف

جلب الكلمات الت تطابق الكلمة وتزد عنها باالحرف المختلفة)حرف او حرفن لس اكثر( ..)مسح اخر الخر السلسلة(

2013 1تقرر الخوارزمات و بنى المعطات

:البحث والتاكد من وجود الكلمة بالقاموس لخوارزمية المفصلةجداول التحليل

Search اسن التابع رى الكلمة المدخلة و رد اما موجودة او غر موجودة الوهوة

( Bring _same)تابع مساعد لالجرائة

Bring_sameاجرائة طباعة البدائل يستخذم في

التوصيف

)الخوارزهية

بالعربي(

c هذا التابع بحث عن الكلمة المدخلة بالسلسلة ذات الحرف الت تبدا به الكلمة NULLحتى ال dic[c]من اول السلسة

اعادة موجود >---ان خرج ووجد الكلمة

اعادة غر موجود >----واال

..,a,b,sالخ)ادخلت من االنترنت جمع الكلمات لالحرف مرتب تصاعدا وجود القاموس شرط االستذعاء

عندما قمت بالتنفذ(. انكلزي ال رمز..بحرف ابجدي المدخلة واستدعاء الكلمة وان تبدا الكلمة

Search(Dic :Dictionary, Inputedword :string, var b:Boolean) رأس التابع

توصيف

الوتحوالت

Dic من نوع القاموس

Inputedword الكلمة المدخلة

ان وجدت الكلمة ام لم توجد.. bمتحول منطق تعد االجرائة

الخوارزهية

Search(Dic :Dictionary, Inputedword :string):Boolean

begin

L:pword; C: char; C:=inputedword[1]; L:=Dic[c]; (الدخول لسلسلة حرف البداة) While(L<>NuLL)and(L^.str<Inputedword) do )التفحص عن الكلمة( Search:=p^.next; If(L<>Null)and(L^.str= Inputedword) then Search:=true; else Search:=false;

End;

2013 1تقرر الخوارزمات و بنى المعطات

Bring_same الجرائيةاسن ا طباعة الكلمة اذا كانت موجودة الوهوة

اذا كانت غر موجودة ثم اعادة االدخال .. او اكثر قلال( 6)طباعة البدائل

mainالتابع الرئس يستخذم في

التوصيف

)الخوارزهية

بالعربي(

التابع وجد الكلمة طباعتها -1 لم جدها: -2

//قمت بمسحن لالولوة فقط..واال بمسح وحد ذات نفس الطول(: ** مسح اول للسلسلة )الكلمات

* اذا وجد نفس طول الكلمة : اختبر تساوي)تطابق( الحروف:

اذا كان االختالف)بحرف واحد( او)حرفن( )اوثالثة(: اطبع الكلمة الت وجدناها

للسلسلة )الكلمات االكبر والت تزد ببعض االحرف(:**مسح ثان (-اقتراحات–كلمات 6)ارد لس اكثر من الكلمات طباعة *

االكبر ف السلسلة من الكلمةالمدخلة والت التزد بعدد احرفها عن الكلمة االصلة لس اكثر( .. او ثالث )حرف او حرفنباكثر من

.اعد ادخال الكلمة**

اجرت مسحن للسلسسة.. الجراء االولوة.. حث ان الكلمة ذات نفس عدد االحرف مالحظة: )رغم انها اخرة ابجدا( ابدى من الكلمات االطول.

طرق اخرى

لو لم حدد بنص المسألة ان العملة ))اتمام(( للكمات المدخلة وتصححها..

المدخلة مزدة بحرف او حرفن زد الشرط التال : ** اذا كانت الكلمة

.. stringاحذف حرف واسنده لمتحول

اطبعها كخار اول ثم اتمم االقتراحات.. >----اذا وجدت الكلمة

واال احذف حرف اخر واجري نفس العملة ..

book قترح >----- bookiمثال: ادخال bookقترح >----- bookiaاو: ادخال

شرط االستذعاء

..,a,b,s)ادخلت من االنترنت جمع الكلمات لالحرف الخمرتب تصاعدا وجود القاموس

عندما قمت بالتنفذ(. واستدعاء الكلمة وان تبدا الكلمة المدخلة بحرف ابجدي انكلزي ال رمز..

Bring_same(Dic :Dictionary, Inputedword :string) رأس التابع

2013 1تقرر الخوارزمات و بنى المعطات

توصيف

الوتحوالت

Dic من نوع القاموس

Inputedword الكلمة المدخلة

طباعة المحارف print(string)اجرائة

تقوم بحساب طول السلسلة المحرفة length(string)اجرائة

الخوارزهية

Bring_same(Dic :Dictionary, Inputedword :string)

F:Boolean; L:pword; Ch: char; K:int ; (تعد عدد االحرف المختلفة ) W:string; (اضع بها الكلمات الت امر علها بالسلسة ) f:=search(Dic,InputedWord); (التاكد من الوجود) if( f) then )موجودة( print(‘Correct word!!’,InputedWord); else begin print(‘~~ Here you are some suggestion’); ch:= InputedWord[1]; L:=Dic[ch]; ( امساك راس سلسلة حرف الكلمة االول) While(L<>Null) do Begin W:=L^.str; K:=0; If length(w(=length(InputedWord) then تساوي

الطول begin For(i:=1 to (length(InputedWord)) do

اختبارتطابق الحروف If(w[i] <> InputedWord[i]) then

K:=k+1;

If(k=1) or(k=2)or(k=3) then Print(w) end;

2013 1تقرر الخوارزمات و بنى المعطات

l:=l^.next; End;( المرور االول) L:=Dic[ch];( امساك راس سلسلة حرف الكلمة االول) Space:=0; While(L<>Null) do Begin W:=L^.str; If ( W> Inputedword)and(length(w)-

length(Inputedword) <=3 ) and(space<4)

then begin space:=space+1 ثالث الكلمات الت تزد ب

احرف Print(w);

End; L:=l^.next; End;( المرور الثان) end;

2013 1تقرر الخوارزمات و بنى المعطات

نتائج التنفيذ:

NoteBadالقاموس من ال كلمات قراءة

2013 1تقرر الخوارزمات و بنى المعطات

كلمة موجودة بالقاموس

اما طباعة البدائل :

الحظ ان الكلمات ذات نفس الطول)رغم انها اخرة ابجدا( تطبع باالول !

2013 1تقرر الخوارزمات و بنى المعطات

انهتى التقرير