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

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

Aug 04, 2015

Download

Software

Kinan Ke
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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;

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

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

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

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

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

التوصيف

)الخوارزهية

بالعربي(

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

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

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

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

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

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

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

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

طرق اخرى

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

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

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

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

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

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

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

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

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

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

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

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;

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

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;

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

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

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

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

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

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

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

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

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

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

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

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