بسم الله الرحمن الرحيم خلونا اليوم إن شاء الله
نستكمل في chapter تلاتة الدرس اللي أخدناه يمكن
احنا في آخر محاضرة بدأنا ناخد حاجة اسمها pattern
اللي هي عبارة عن وصفال token تمام لكن لسه ماشوفناش
وصف ال token بشكل رياضي بشكل math بشكل معادلة اللي
هو هذا اليوم ان شاء الله بدنا نشوفه طبعا احنا بس
استكفنا المرة اللي فاتت انه شو يعني betterليش
موجود ال pattern و اليوم ان شاء الله هنستكمل و
نشوف كيف بالظبط بتنعمل على شكل رياضي و كيف بقدر اي
token موجود عندى اوصفه بهذا الشكل الرياضي طبعا
احنا في البداية بنسمي هذا الشكل الرياضي regular
expression او regular definition و شوية شوية هنشوف
شو هولكن بالتأكيد قبل ما أروح لهذا ال regular
expression في عندي بعض المصطلحات لازم أفهم معناها
في الأول بدنا ناخدهم بالترتيب و ندخل ان شاء الله
على ال regular expression بشكل بسيط ان شاء الله
طيب أول حاجة في حاجة اسمها prefix لأي كلمة لأي
string في حاجة اسمها prefix ايش يعني prefix
باختصار لو أنا عندي كلمات مثلا banana
البنانا نفسها الكلمة كاملة هي prefix لنفسها يعني
انا ممكن اقول البنانا هذه كلها هي prefix او لو انا
شلت حرف ال a الكلمة اللي ضلت هذه banana هذه prefix
لكلمة banana لو شلت كمان حرفين بنا هذه prefix لو
شلت تلت حروفprefix لما أشيلهم كلهم بتصير إبسلون صح
إيه prefix فجال القصة السهلة خالص أن أشيل من الآخر
zero or more characters تمام هيك بيطلعلي ال prefix
بتاعة هذه الكلمة باختصار مابنعش نعقد طبعا ليش هي
prefix لأنه خلاص هي السابقة للكلمة مظبوطة ولا لأ
يعني لما بشيل هيك هذه ال banana هي السابقة ل
banana ال banهي سارقة لبنانا شوفتي كيف prefix إلها
وبالتالي قاللي prefix ببساطة removing zero or more
symbols from the end of Sطبعا ماننساش ان الكلمة
كاملة بدون ما اشيل اشي هي prefix لنفسها و لو شلت
كل أوصار epsilon هي prefix لنفسها هذا باختصار ال
prefix الان في حاجة عكس ال prefix اللي هي ال
suffix اني بدي اشيل zero or more symbols from the
beginning من البداية يعني لو انا شلت ال b الباقي
هذي أنا انا هي suffix للكلمة لو شلت ال b و ال a
نانا هي ال prefix و لو شلتها كلها عفوا suffix تمام
و لو ماشلتاش كلها بالمرة لو ماشلتش اشي هي suffix
لنفسك هي suffix لنفسك اذا ماننساش و لحظة بين ال
suffix و ال prefix بيكون في common انه تكون الكلمة
نفسها هي بتكون نفسك prefix و هي نفسها بتكون suffix
و ال epsilon كذلك مرة هي نفسها بتكون prefix و مرة
بتكون suffix هاي باختصار الأمور مش معقدة سهلة جدا
طيبالـ substring هي باختصارإنه أي مقطع بدك إياه
تاخديه من الكلمة هي substring يعني لو أخدت الكلمة
كاملة هي substring لو أخدت بان هي substring لو
أخدت أنا substring نان .. نانا .. أي مقطع يعجبك في
الكلمة بتاخديه بغض النظر عن طوله هو substring يضاف
إلها الكلمة كاملة ويضاف إلها ال epsilon هي باختصار
ال substring تمام؟ طيب الآن فينا حاجة اسمها proper
prefix و proper suffix و proper substring ايش ال
proper prefix قال لي هو نفس ال prefix بس بدون
الكلمة الكاملة و بدون ال epsilonيعني لو أنا شيلت
من مجموعة ال prefix شيلت الكلمة الكاملة وشيلت ال
epsilon إيش بتصير هذه proper prefix نفس القصة لل
proper suffix لو شيلت من المجموعة الكلمة الكاملة
وشيلت ال epsilon البجين اللي بيضلوا هدهم هم ال
proper suffix ونفس القصة لل substring proper
substring يعني كل المقاطة اللي ممكن تاخديها من
الكلمة باستثناء الكلمة ككل أو ال epsilon هي
باختصار ال properطيب أخر إشي في سؤال واضح sub
-string بتكون لازم تتابع لحظة طبعا لازم تكون ورا
مع بعض sub-string أنا أخدت مقطعة تمام؟ طيب بعدين
في أخر حاجة عندي اللي هي ال sub-sequence ال sub
-sequence إيش بيقوللي؟ بيقوللي أنت جادر تشيلج زي
ما بدك تلغي أحرف و الكلمة اللي بتظل بتاخديها بنفس
الترتيب بمعنى أنا لو شلت ال إنهاي وشلت ال إيه
الأخيرةالـ B,A,A,N هذه sequence طيب لو شيلت ال N و
ال N ال B,A,A,A sequence لو شيلت مثلا ال B مع ال A
و مع ال A ال N,N,A sequence يعني نازم الترتيب يكون
موجود نفسه لكن مش شرط يكون ورا بعض الحروف يعني
ممكن تشيلي جد ما بدك منهمالباقي اللي بيظل هذا
بنسميه sequence لكن هل يُعقل أن يجي N بيه
sequence؟ لأ، عمروش بيجي الـB الـN قبل الـB فإذا
أنت ماشي بنفس الترتيب إلغي مين ما بدك وخلي مين ما
بدك اللي بيظل معك هذا هو ال sequence طبعا جد ما
بدك بتعملي sequence هنا في الكلمةهي باختصار ال
sequence تمام بدي مجرد مصطلحات لازم يكون ايش احنا
عارفينها لانها هتمر معانا في الكتاب ممكن يقول
prefix كل شوية لل string يقول suffix لل string
يكون يفهمها ايش بنقصته طيب الآن تعالوا للاشي المهم
ال operations on languages الان في عمليات احنا
بنعملها على ال language و بتطلعلي مجموعاتأو sits
من ال strings لكن في الأول لازم أعرف شون هو
العمليات هذه اللي بتنعمل زي إيش وهذه مرة و عالية
أخدناها كتير قبل هيك في المدارس و في الجامعة تعالى
نشوف العمليات الرئيسية الموجودة أول عملية مرت
علينا قبل هيك ال union الإبتحاد لو أنا عندي مثلا
المجموعة ال هي عبارة عن a b c مثلاو عند المجموعة M
هي واحد اتنين تلاتة مثلة لما نيجي نقول الاتحاد M
هتقولي ليه سهلة هتقولي ال A و ال B و ال C و ال
واحد و ال اتنين و التلاتة و الترتيب هنا مش مهم
يعني أقول الاتحاد M والله M اتحاد L في النهاية بدك
تحط كل ال L عناصرها في مجموعة و تحط في نفس
المجموعة كل عناصر ال M فهذا الاتحاد مافيش فيه
مشاكل سهل جدا واخدناه و أزيجنا منهطيب، هذه بس
عملية رئيسية، هتضل تمر معايا العملية التانية
الرئيسية اللي بتكلم عنها اللي هي ال concatenation
إيش ال concatenation اللي ممكن تتبريها زي عملية
الضرب أو إنه بنلزج الحروف مع بعضها، نشوف كيف الآن
على فرض إن ال L زي ما قلت قبل شوية هي عبارة عن AB
مثلاونبنى نعتبر ان في عندى انا مثلا ال D هي واحد
اتنين الان ايش بتتوقعى المجموعة L في D هتقوليلى L
في D A1 A2 B1 B2 هى كل عناصر L في D شوفتى كيف هذى
كنتينيشن لكن طب لو عكسنا D في Lبختلف بتصير ايش؟
واحد A واحد B اتنين A اتنين B طب قداش عدد عناصر L
في D اتنين في اتنين عدد عناصر هذه في عدد عناصر هذه
صح ولا لأ؟ و العكس صح دي في اي عناصر هذه في اي
عناصر هذه طيب ايش ال L تربية تساوي؟ ال L تربية
تساوي يا بنات L في L يعني شو بتطلع؟A B B A B B
باختصار صح؟ وبقدر انا اقول ان الالال او الالتر بيه
كل الكلمات المكورة من خنتين من A وB اللي ممكن تخطر
على بالكمش هيك؟ يعني وصف تاني غير الوصف اللي أنا
كتبته هان يعني انت ممكن تقوليلي هي عبارة عن a a او
a b او b a او b b صح؟ مش هيك ممكن تقوليلي لكن لو
أنا وصفتك وقلتلك كل الكلمات اللي ممكن تخطر على
بالك من حرفين يا a يا b مش هي نفس الوصف اللي هان؟
باختصار طيب إيش رأيك لو عملنا ال تكعيب يعني ال في
ال في ال يعني ضربت هذه كمان مرة في الهتقوليلي كل
الكلمات اللي من تلت أحرف اللي هم من A أو B ممكن
انا اعملهم ب ب ب ا ا ا ا ب ا زي ما بدك كل الكلمات
اللي ممكن تخطر على بالك من تلت أحرف صح ولا ده؟ طيب
ال four
كل الكلمات اللي من أربع أحرف اللي مكونة من A أو B
طيب لو أنا ضفت على C و قلت لك بدي L4 هتقولي لي كل
الكلمات اللي من أربع أحرف اللي من .. من أربع خنات
عفوا اللي هم ممكن يكونوا A أو B أو C أي كلمة تيجي
على بالك من أربع خنات مكوناتها A أو B أو C بتكون
جوا المجموعة هذه ماشي الحالطيب .. الآن تعالوا ..
إذا .. إذا وضحت موضوع ال concatenation كيف بيشتغل
ووضح موضوع ال union كيف بيشتغل، سهل أو لا؟ طيب،
إيش رأيك في ال clinicalosure؟ هاي .. هاي شكلها،
النجمة، يالا اتطلع و اقولولي إيش معناها؟ ال
clinicalosure إيش معناها؟
أنا كلامي واضح، لما ناجي أقولك النجمة، أصوفيلي ال
language اللي بتطلع، شو هي؟إيش يعني ال نجمة؟
يعني ال و بعدها إيش؟ هي أنا عندي a,b,c ال ال بدي
ال نجمة إيش
ال language اللي بتطلع من ال نجمة؟ كل
الكلمات
يعني كل الكلمات المكوناة المتكونة من ABC طيب كويس
تعالي نضغط على Epsilon طيب تعالي نشوف تعالي نشوف
القصة سهلة خالص الانش بيقول الانجمة عبارة عن إيش
الانجمة اتطلعي هنا الانجمة هي عبارة عن L0 اتحاد L1
اجرهامش ال I بتبدأ بال Zero و بتمشي ل Infinity و
حاطة ال I هنا يعني باختصار هذه معناها ال L closure
هذه ال L نجمة معناها L0 اتحاد L1 اتحاد L2 اتحاد L3
اتحاد .. بضلي ماشي لغاية وين؟infinity يعني بالعربي
انت بتجيبي هاي و هاي و هاي و هاي و هاي و هاي و هاي
و هاي و هاي و هاي و هاي و هاي و هاي و هاي و هاي و
هاي و هاي و هاي و هاي و هاي و هاي و هاي و هاي و
هاي و هاي و هاي و هاي و هاي و هاي و هايإيش ال L1؟
ال A لحالة ال B لحالة ال C لحالة إيش ال L2؟ كل
الكلمات اللي من خنتين من A وB وC إيش ال L3؟ كل
الكلمات اللي من تلات خناهات من A,B,C إيش ال L4؟ كل
الكلمات اللي من أربع خناهات طب انت هتظهر لماشي ل
L5 و L6 و L7 لغاية L Infinity إذن الخلاصة إن ال L
closure هي كل الكلمات اللي ممكن تخطر على بالك
وتتشكل من ال A,B,C باختصارشوفتي كيف؟ بما فيها طبعا
ال epsilon ال epsilon موجودة طيب إيش رأيكم في ال L
plus؟ يعني لو كان كاتب هذه L plus بدون epsilon
أيوة بدون epsilon بتصير بدون هاي يعني ألف ألف يعني
ألف إتحاد ألف تربية .. يعني باختصار شيل ال epsilon
من المجموعةبتصير L plus طبعا هو متى بيحط ال L plus
لما بيكون على الأقل بيشوف letter أو character أو
أكثر لكن طول ما L نجمة وارد جدا مايكونش الكلمة
موجودة ويكون فراغ إذا هو بدوش فراغ يشوفه على
الإطلاق بيحطش ال نجمة ويحط L plus بعدين في ملاحظة
صغيرة إيش رأيكم في هذه؟ لو عملنا زيك يا بنات L في
L نجمةمش هي ال plus لأن ال epsilon اللي كانت هان
بنضرب فيها اللاطل فبتروح يعني لما انا اقول a في
epsilon ايه؟ ايه في فراغ؟ ايه؟ مش هيقولها لأ إذا
ها هي equivalent للي تحت يعني لو أنا جبت ال L نجمة
وضربتها في L هي نفس ال L plus صح هذا ده طيب إيش
رأيكم لو عملت هيك يا بنات لو قلنا ال تربيعفي D إيش
ال language اللي بتطلع من هاي؟ و هاي ال L و هاي ال
D ال كلمات اللي تسوء من حرف A تروفها A أو B أو A1
شوفي أنا باختصار وصفكم بده يكون دقيق أنا ممكن أقول
هذه عبارة عن إيش كل الكلمات اللي من تلت خانات بحيث
إنه أول خانتين أحرف ABC و آخر إشي digitاللي هم ال
digit اللي هم يا واحد يا اتنين في الحالة تبعتي
شفتي كيف؟ فبأي طريقة أوصفي لكن وصفك بيكون كامل
ودقيق الآن طب لو أعمل زي هيك ال .. دي .. ال .. دي
.. إيش ال language اللي هتطلع؟ من أربع خنات ..
هتقوليلي أيوة كل الكلمات اللي من أربع خنات على
أساس أن يكون letter بعدها digit بعدها letter بعدها
digit شفتي كيف؟ باختصار تكتبي للقصة هاي طيب لو
قولنا ال ..تلاتة دي اتنين كل الكلمات اللي بيبدأوا
طبعا من خمس خنات بيبدأوا برقامين يا واحد يا اتنين
و بيخلصوا بتلات أحرف حسب ال combination موجود ABC
شفتي كيف؟ إذا إيش احنا بنلاحظ؟ بنلاحظ إنه من
العمليات التلاتة هدول الأساسيات أو الأربعة هدول
صار يطلع عندي language صار يطلع عندي وصفشوفتي كيف؟
يعني لما أنا أجي أقولك دي اتنين التكعيب هذا وصفلي
language فيها strings و إيش أنا حددتها؟ كل الكلمات
من خمس أحرف أو من خمس خنات و بديهم يبدوا بيش
بأرقام خمس خنتين و يخلصوا بإيشبـ Plotters اللي هم
انا محددهم اللي هم مين ABC فشوفت انت كيف الان كل
عملية بتطلع language اللي حلو في الموضوع ان ال
tokens تبعتنا هنقدر نوصفهم بس من خلال عمليات هدول
ال combination من هدول يعني انا مش هحتاج عمليات
كتير انا كل بس اللي بدي اعرفه ال union او ال or
الاتحادالـ concatenation والـ closure سواء
positive أو clean closure هاي بس اللي بنلزمونيه
هدول العمليات هم اللي هيصيروا يكوّنوا المعادلة
اللي بنسميها regular expression وهدول هم اللي
هيقدروا يعملوا ال definition لل token اللي انا
بديهه وهده هشوفه تباعا شوية شوية في محاضرتي اليوم
ان شاء الله بس هيك بديت اتلاحظي انه بدت تطلع وصفمن
خلال ال operators اللي قاعد انا استخدمهم طيب
تعالوا نشوف الأمور بشكل أفضل تعالوا ناخد مثال كويس
ايش بيقولك المثال بيقولك اعتبري ال letters اعتبري
ال L اعتبري ال L هي المجموعة ايش حطته هوإيش حطت ال
L؟ كل الحروف اللي بالإنقليزي ال small و ال capital
من A to Z مش هيك، هي فرضت، جالف ترضي ال letter L
هي A أو B أو C أو D أو Z أو A لغاية ما عاملهم كلهم
وفترضي يجالك ال D طبعا هيها بس مش كاتب أنا كامل
عشان بدي أبين هذا في التسجيل ال D جالكي فترضيها
إيش؟ صفر، واحد، اتنين، تلات، غير التسعة، خلاص؟
الآن تعالي بدأ يسألك، هاي المثال الأول، بيقولك إيش
المجموعة اللي هتطلع من الاتحاد D؟هتقوليلي مجموعة
واحدة فيها كل الـ small و ال capital letters و
يضاف عليها كل ال digits اللي عندك من زيه لتسعة،
هاي الاتحاد دي، باختصار طب كام عنصر فيها؟ هتقوليلي
26 زي 26 زي 10 لأن ال capital 26 و ال small 26، 52
و عندك من زيه لتسعة عشر يعني 62، هاي باختصار، إذا
القل اتحاد دي هتطلعلي كل الحروف ال small و ال
capital و الأرقام مع بعض في مجموعة واحدةهذا لو
بدنا نقل التحدي طب تعالى نشوف المثال اللى وراه ايش
بقولك بقولك طب شو ال الف دى ايش رايك ايش الف دى
بتطلع ايش الف دى
اوصفي ليها بدك تدل زي هيك تعمليه واصف أنه يغطي كل
المجموعة من خنتين الأول letter و تاني digit من
خنتين الأول letter و تاني digit من خنتين الأول
letter و تاني digit من خنتين الأول letter و تاني
digit من خنتين الأول letter و تاني digit من خنتين
الأول letter و تاني digit من خنتين الأول letter و
تاني digit من خنتين الأول letter و تاني digit من
خنتين الأول letter و تاني digit من خنتين الأول
letter و تاني digit من خنتين الأول letter و تاني
digit من خنتين الأول letter و تاني digit من خنتين
الأول letter و تاني digit من خنتين الأول letter و
تاني digit من خنتين الأول letter و تاني digit من
خنتين الأول letter و تانلأنه A0A1A2 لغاية A9 B0
وحط جالبيهم كلهم فتاخد 52×10 يعني 520 طيب هذا لو
عملنا ال في D طب مبارك لو عملنا D في L
من الخنتين لكن تبدأ ب digit ثم تنتهي ب letter
شوفتي كيف فهذه طلعت language هذه ال concatenation
طلعت language فانا قاعد الآن بوصف ال language عشان
هيك هتصيري تشوفي بعديك أسئلة كتير لو بدنا نوصف ال
language الفلانية إيش ال regular expression اللي
بيوصفها أو ال regular expression اللي موجود إيش ال
language اللي بيطلعها شوية شوية هنشوف أسئلة زي هيك
طيب تعالي نكمل إيش ال fourكل الكلمات اللي ممكن
تخطر على بالي من أربع خنات أي كلمة تيجي على بالك
طبعا كل الحروف داخلة ال capital و ال small لأنه حط
ال L مش زي ABC قبل شوية حط كل الحروف ال capital و
ال small ال L فلما يقول لي L for يعني ألف ألف ألف
L يعني كل الكلمات اللي ممكن تخطر على بالي من أربع
خنات أو من أربع أحرف زي ما بدك small و capital طيب
تعالى شوية ركزى في هذه هذه أكتر من operation مع
بعض هي طلع هذه عملت تلاتة مع بعض أوليش عمل اتحاد
وعمل closure وضرب في L تعالوا نشوف أشي يطلع معانا
لما نعمل اتحاد كل الحروف ال capital أرقام صار في
مجموعة ال closure كل الكلمات اللي ممكن تخطر على
بالي من الأرقام ومن الحروفبما فيها الـ Epsilon
ولمّا ضرب في الأول L يعني لازم تبدأ ب L ثم letter
or digits ولحظة هذا بدأ تعريف ال ID يعوصله إيش ال
ID؟ ال ID كل الكلمات اللي ممكن تختار على بالي تبدأ
ب letter followed by letter or digit صح ولا لأ
فالأن هاي صارت ID تعريف ال IDليش؟ لأنه لما جال
الاتحاد دي إيش عمل؟ حط كل الحروف والأرقام في
مجموعة، مش هيك؟ ولمّا عمل لهذه closure يعني جالت
كل الكلمات اللي ممكن تكوينها من هذه الحروف
والأرقام، صح؟ ولمّا ضرب ال L في الأول راحت ال
epsilon طبعا لأنه ضربت في ال L فصارت معناه كل
الكلمات اللي تبدأ ب letterfollowed by letter order
شفتي كيف؟ بس من هاي من عملياتها دو وهذا فعلا تعريف
ال ID واحدة هتقولي طب في ال C ال ID تعريفها بيبدأ
ب underscore صح؟ كيف نعدل؟ هتروح تضيفي على ال
letter underscore فبصير ليش؟ مسموح تبدأ ب
underscore و بعدين يبين جد ما يبين underscore بس
كل حتسوي تروح مجموعة ال letter عشان تضيفي على
الحروف underscore لو بدك تعمليها لل C أو لل Java
okay طيب إيش رأيك بال D plus؟ماذا يظهر دي plus؟ كل
الأرقام الانتجارية ممكن يخطروا على بالك المكان من
0 ل 9 صح؟ 125 .. 625 .. 30 .. 300 .. 1600 .. اللي
بيخطروا على بالك جد ما بدك خنات عارف لو انا اعتبرت
ال D من 1 ل 9 و قلتله بدي D زائد بيصير ال 109 غلط
مش في ال languageليه؟ لأنه أصلا مافيش zero في
المجموعة كيف طلعت ال 109؟ فبتصير ال 109 برا لكن
لأنه فارض هو كل الأرقام بالزفر معناها خلاص كل
الأرقام اللي كنت تخطر علي بالك بالزفر و بالواحد و
الاتنين لغاية التسعة هذه هي ال D plus طبعا هل
الإبسه الموجودة؟ الإبسه مش موجودة لأنه هنا معناه
بفرضي لازم أشوف على الأقل خانة عارفة لو أعملها
نجمة؟بنفس الأرقام الانتجار بالاضافة للepsilon، هاي
باختصار طيب، الآن بعد ما عرفتم أنتم العمليات
الرئيسية بدأ يدخل على مفهوم إيش ال regular
expression الحلو في هذا الدرس والسهل في هذا الدرس
أن احنا مش هنطلع عن العمليات التلاتة هدول اللي هم
ال unionو ال concatenation و ال closure مش هنطلع
عنهم يعني أي regular هتكتبيه خليط من هدول ال
closure مع ال concatenation مع ال union وبالتالي
سهل السيطرة عليه الموضوع هذا مش صعب كتير تمام طيب
تعالى نشوف ايش بقصد هنا بال regular هاي بدا يكتبك
المثال اللي اتكلمنا عنه توه اللي هو ايش قال لو
بدنانعمل لل ID تبع الـ C أو الجابة قال الكل اللي
هيصير انه طبعا لاحظى ال union استبدلناها بإشارة ال
or هيك شكلها في ال regular ال union هي عبارة عن
إيش؟ ال or هذه ما هي نفس المعنى تمام؟ الآن إيش
بقصد letter underscore؟ هذه اسم جديد يعني مش كانت
قبل شوية كنا نكتب هيك يا بنات letterتساوي كل
الحروف مظبوط الأهم تضيفال underscore فسمها غير
الاسم عشان يميزها عن اسم السبب فسمها letter
underscore بس يعني عشان يقولك أن هذه المجموعة أنا
ضفطلها ال underscore بس هي كل الفكرة فهذا اسمي
جديد فجالكي الآن هيك ال ID بتعرف بتاع ال C ليش؟
لأن letter هذه underscore كاسم اللي فيها الحروف
capital و small و underscore عملنا لها or أو union
مع من؟ مع الأرقاموعملنا للاتنين كلهم closure إيش
بيطلع هنا؟ كل الكلمات المكونة من أحرف و underscore
و أرقام و لما راح ضرب في الأول بال letter معناها
إيش؟ لكن تبدأب letter أو تبدأ كمان ب underscore
لأنه مسموح بال C و بال Java يبدأ بال underscore
عادة لو مش مسموح يبدأ بال underscore و فقط ال
underscore يبين في النص بحطوش في مجموعة ال letter
بحطوه في مجموعة ال digit خلاص إنه هذا خليت في النص
مثلا شوفت كيف لكن لأنه مسموح نبدأ بيه فصار يعامل
معاملة ال letter فراح حطه في مجموعة ال letter وقال
لك خلاص لازم أدره في الأول letter طيب ده سألك
السؤالهيك افتراضي يعني لو هذه أنا قلتها في الآخر
إيش بيصير؟ بيصيرش تعريف ال ID بيصير كل الكلمات
اللي تنتهي ب letter لكن ممكن تبدأ ب digits ممكن
تبدأ ب underscore ممكن تبدأ بحروف لكن خلاص صار
المقياس أنها تنتهي ب letter مش هيك تعريف ال ID
احنا في ال ID لأ لازم تبدأ ب letter عشان هيك احنا
حاطناها في الأول فماشي فتكونوا بتبقوا للقصة هذهبدا
في الكلمة نفسها كتير في ال .. أكتر من underscore و
ربعين؟ أه ممنوع في ال .. في ال .. في ال .. في
الجامعة تكتب underscore زي ما بدك؟ لأ مش ممنوع
يبقى مسموحشوفت كيف؟ خلاص، صارت ضمن ال language لأن
هذا بدو يوصف ال identifier المهم الحلو في الموضوع،
هاي النقطة اللي انا بوصلها ان انت الآن وضعتي تعريف
لل ID من خلال ايش؟ من خلال معادر رياضية نسميها
regular expression بتتضمن ايش؟ بتتضمن يا or، يا
concatenation، يا closure، بس الحلو الآن في
الموضوع ان كل ال tokens بقدر اوصفهم وهذا هشوفه
كمان شوية كمثالبس أمضي و أصبح لك الفكرة تمام؟
لحدها مافي مشاكل؟ طيب خلونا الآن بس نشوف ..
بنادروني لو سمحتوا خلونا نشوف الآن بعض القوانين
الخاصة بال regular expressions نحاول بس نستوعبها
أشياء لنشوفطبعا إيش بقولك؟ أول قانون هنا إيش
بقولك؟ طبعا على فرض إن ال R هو عبارة عن regular
expression R تمام؟ طبعا ممكن يكون كل المعادلة اللي
كتبناها قبل شوية ال or digit closure هذا مش اسمه
regular expression هذا ممكن كله على بعض يكون إيش؟
R فال R تمثل regular expression طبعا هذا برضه إلو
إيش؟ language مش هذا إله language تمامعلى فرض أن
ال S هو عبارة عن regular expression آخر مثلا يكون
ال S مثلا ال for مثلا هذا regular expression وهذا
regular expression الانش بيقول ليه؟ بيقول لي طبعا
لما أعمل بناتهم orصار في عندي regular expression
تاني جديد مكوّن من regular expression الأول مع
التاني مش رابطهم ب or يعني و كأنه جبت هذا regular
expression الأولاني وجبت التاني و رابطهم ب or
فكأنه صار سؤال جديد صار regular expression أكبر و
بالتالي هيكون له language مالها تانية جديدة صح
ولا؟ عاداش بقول القانون بقول لو أنت عارف ال
language تعتي الأولوكنت عارف ال language بتاعتي
التاني خلاص اعمل اتحاد لل languages في بعض بطلع
نفس الجواب اللي كنت انت حاططلعيه بعد الاتحاد يعني
مافيش داعي ارجع افكر في السؤال من جديد اذا انا
عارف هذا regular شو language و هذا regular شو
language و المطلوب regular جديد or الاتنين خلاص
الجواب هيكون هو language هاي و language هايبينهم
or شوفتي كيف؟ يعني مافيش داعي تعيدي التفكير من
جديد إذا كنت عارف ال language الأول وعارف ال
language التاني بس روح ايش سوي فيهم اعملينهم or
هذا بس بشرط تكون رابط ال regular تبعتهم ب or طب
ماذا لو رابطهم مع بعض ال regularين هذول ال
concatenation يعني مسكت الأولاني وضربته في التاني
نفس الفكرة لو انت عارف ال language الأول ال
language التاني ضربهم في بعضفبدي أدرك يان وقانون
طب لو هدولة مش عندي خلاص بشتغل عادي بعمل regular
جديد و بفكر فيه إيش ال language اللي بتطلع لكن لو
عندي عارف language هاي و عارف language هاي و كل
قصتنا انه regular الجديد هذا ضرب هذا قالك نفس
الجواب هيطلع لو مسكت ال language الأول و ال
language التاني و ضربتين في بعض واضحة؟ طيب طب لو
أخدنا له closure يعني أنا عندي مثلا ال fourواخدتله
closure ايش النتيجة؟ قال ال language دا ات هاي
خديلها closure باختصار شفتي كيف؟ طيب لو عندي مثلا
ال four وحطيتها بين جثين اتغيرت ال language؟
الشيخية؟ عشان هيك ايش بقول ايه؟ بقول ان احط الجثين
ما اتغيرت ال language دلت نفس ما هي بس في هاي
الأربع قوانين اللي بديك تاخدي بالك منهاإنه لو عملت
oring هي نفس الجواب لو عملت oring لل languages إذا
عملت concatenation هي نفس الجواب لو عملت
concatenation لل languages إذا عملت closure هي
نفسها لو عملت closure لل language حطيتي أجواس مش
هتفرق هي نفس ال language هي باختصار بس بيدوضّخلك
هذه القوانين واضح؟ طبعا لو ال language مش عندي في
الأساس خلاص بشت العادي بعمل regular expression
كبير بفكر فيه إيش ال language اللي هتطلعالأن تعالى
نشوف في شغلة تانية مهمة في القوانين مبدأ الأولويات
مين له أولوية أكتر الان انت عشان تقدر تحفظيها
بسهولة تخيل ال or كأنه جمعواتخيلي ال concatenation
كأنه ضرب واتخيل ال closure كأنه إشارة الرقم minus
أو زائد مين أعلى أولوية لإشارة الرقم؟ يعني ال
closure مين أقل منه أولوية؟ الضرب ال concatenation
مين الأقل خالص أولوية؟ ال or أو الجمع لكن مين
الأعلى من التلاتة هدول؟ الأقواس، ما تنسيش الأقواس
highest priorityخلاص لن ننسى طيب الآن بناء على هذا
الكلام لو كتبلنا حاجة هو زي هيك زي هذه A or B نجمة
C مين هيتنفذ في الأول هل ال A و ال B هيخلصوا و
closure و بعدين يضربوا في ال C و لا مين هيعمل في
الأول؟ closure ال B في الأول هيضربها في ال C في
التاني و بعدين هيضيف عليها ال A شوفتي كيف؟ طيب لو
أنا حاطط أقوات زي هيك يا بناتأيوة A مع B في الأول
بعدين closure بعدين في ال C فبتكتب الأقواص أعلى
أولوية بدون الأقواص الأولوية الأعلى لل closure طيب
سؤالي لكم طبعا هنا الأقواص يا بنات مالهاش لازمة
ليش لأن هو بده في الأول closure و بعدين بده
concatenation و بعدين بده or فجالك فاش ده على
الأقواص لأن الأولوية بتظبط المطلوب هذه بس ملاحظة
صغيرة طب سؤالي لك شو ال language اللي هتطلع من هيك
إيش ال language اللى بده تطلع من هذا ال regular
expression؟ language B، language C، language C بدي
إجابة تكون تغطي الكل، كويس، إجابة صحيحة، إيش ال
language؟ إيش
يعني closure تبع B؟ يعني zero or more B'sfollowed
by one C ويضاف على المجموعة A يعني انا لو بدي
اجاوبها بقول ان كل الكلمات اللي بيجي فيها zero or
more bees followed by C تمام ويضاف على المجموعة A
انت خرّف في طريقة الوصف أصفه باللغة اللي بدك إياها
المهم لازم وصفك يكون كامل شامل ما تنسيش الشيء طبعا
ليش ال a ضيفتها على ال 6 لأن هذي or مش هذي or يعني
ال a هذا أنصر موجود في المجموعة زائد ال b نجمة c
مش هيك؟ إيش ال b نجمة c؟ يا zero b وراها c يعني c
لحالأو بي واحدة وراها C أو بي تاني وراها C فاحنا
لماشي اختصرنا قولنا Zero or more bees followed by
C زائد ال A هيك انا بكون وصفة كل اللي في المجموعة
الـ A مش هتفرج .. هذي set .. ال set يا بنات مش مهم
الترتيب في المجموعة صح؟ لما أنا كنت أقول it's a
letter or digit مش هيفرج و أنا أحط ال letter و ال
digit جوا المجموعة، لكن لازم يكونوا جوا المجموعة
فانا مش هتفرج معايا ال A في النص، في الأول، في
الآخر، هذا مش continuationالمهم انا بدي اوصف كل ال
strings اللي بيطلعوا في المجموعة كيف وصفتهم بقول
كل الكلمات اني ممكن تيجي على بالي zero B or more
followed by C ويضاف على المجموعة هذه ال A شوفتي
كيف انت حرة كيف توصفيها تعالي تشوف كيف وصف هو you
know the set of string a single A عشان يخلص من هاي
or شايفة انه هيضاف عليها zero
or more bees followed by one C شفتي كيف كله صح طب
لو واحدة أجت توصفاش تقول ال A لحال أو ال C لحال أو
one or more bees followed by C برضه صح لإن أنا
جالت one or more bees followed by C يعني بيه C بيه
بيه C صح؟ بس مانسيتش أضيف ال C لحال و ال A لحالبس
أنا مش هعمل زي هيك بقول zero or more is .. zero or
more b is followed by c خلص كل الشق هذا و أضيف
عليه ال a المهم الخلاصة دائما في الأسئلة دي يا
بنات لما يقولك إيش ال language بتطلع لازم كلامك
اللي تشرحيه يغطي كل ال strings اللي جوا لو نسيتي
حاجة غلطفتبقى تنتبهي على القصة هذه يعني لو زمان
اتوقف في المثال هذه واحده أجد قالت المجموعة A أو
one or more Bs followed by C و سكتت بقولها غلط
لأنك نسيتي الـC لحال لأنه إيش يعني one or more بيه
بيه C بيه بيه C لكن نسيت أنه ممكن يكون Epsilon
Epsilon في C C لحال فهي لو ضافت على كلامها و C
بسكت بقول خلاص غطت كل المجموعةفانت مخيّرة كيف توصف
هذه أكتر من صيغة صحيحة لنفس السؤال شفت كيف؟ طيب
الآن برضه هذا مثال تاني لتأكيد على موضوع ال
regular expression و تأكيد على القوانين اللي قبل
شوية بقولك لو بدنا هذا regular expression A or B و
هذا A or B إيش المتيجة تبع هذا كله؟هتقوليلي
المجموع a a, a b, b a, b b مش هاي بتطلع a, b وهذه
نفسها a, b اضرب المجموعين في بعض صح ولا لا؟
فهتقوليلي a a, a b, b a, b b صح ولا لا؟ ولو أنت
عندك ال language تبع التهاي شو ال language تبع
التهاي؟ a, b صح؟ شو ال language تبع التهاي؟ a, b
لو ضربت ال languages في بعض نفس الشيء مش فيه
توقعناه قبل شوية أخدناه أنه لو ضربت ال language
تبع الأول في ال language تبع التاني بيطلع نفس
الجوابمظبوط انا لأ طيب خلّيني
نشوف a نجمة ايش معناها؟ zero or more a يعني يا ولا
a ابسلون يا اتين تانية تلاتة طيب a plus لازم على
أقل a واحدة فأكثر طيب ايش ال a or b نجمة؟ كل
الكلمات اللي ممكن تخطر على بالي من a و b بغض النظر
على طوالهاشيك؟ أول حاجة طبعا أول حاجة مظبوط ..
مظبوط طيب و هي هو بديكي تطلع أيه هنا بيعطيكي مثال
عليها شايفها؟ بديكي .. قبل ما يشرحها بيعطيكي مثال
بيقولك epsilon أو a أو ab بديكي تشكلها و بعدين
بقولك خلاص كلام اللي يوصف كل ال language واضح؟ طيب
السؤال اللي براه إيش رأيك في هاي؟خدنا زيها قبل
شوية a أو zero or more is followed by b خلاص ماقلت
a أو zero or more is followed by b فاير شفت؟ أه مش
هت .. مش هت .. لأ ليش ممكن تجي بي لحالك هذا تبريها
zero epsilon في بي بيفممكن تقولي a أو b أو one or
more a's followed by b أو تقولي a أو zero or more
a's followed by b كله صح تمام فهيو تعالى شوف شوه
كاتب كيف يوصفها that is the string a عشان يخلص
منها and طبعا إيشall string consisting of zero or
more is and ending in B طبعا المفروض مايقولش end
المفروض يقول or لإنه a أو مايقولش end الصح يقول or
ماشي الحال لإنه يا a أو zero or more is followed
by b ماشي الحال طيب
بمشي، المهم أنه في المجموعة لازم يكون في إيه، هي
اللي بيقولوا إيه ثم zero or more is for the binary
زي ما بدي أجيبها طيب تعالوا نشوف بعض القوانين
المهمة أيضا on your expression بنات و دول لو
سمحتوا أول إشي بيقولي ال or هو commutative
يعني لما أنا أقول R or S هي نفسها S or R لأن انت
بتحط كل عناصر R وكل عناصر S في نفس المجموعة مش هي
ال union فمش هيفرق فيها الترتيب وبالتالي R or S هو
نفسه S or R فهي commutativeطيب هل هي associative
يعني لو بدي أعمل R or S or T بيفرج معايا أخلص R مع
S بعدين T و لا S مع T بعدين R و لا R مع T بعدين ..
مش هيفرج أنا في النهاية بدي أحط R و S و T في نفس
المجموعة، صح؟ فمش هتفرج أني بخلصت R و S و بعدين
إيش أضافت T أو خلصت S و T و بعدين أضافت R، مش
هتفرج و بالتالي ال union أو ال or هو برضه
associative، تمام؟ طيبتعالوا نجلال ال
concatenation أول شيء ال concatenation أكميوتيتف
ولا لأ؟ يعني هل R في S هو نفسه S في R؟ لأ، في
الضرب بتفرق، لما أقول letter في digit، غير digit
في letter، وبالتالي هي مش أكميوتيتفطيب نيجي لل
associative لما نقول مثلا R بدي أضربها في S و بدي
أضربها في T هل بيفرج أن أضرب R في S و أخلص و بعدين
أضيف عليهم T عن أن أضرب S في T و بعدين أضيف فيهم R
من الأول؟ طبعا بيفرجش طولة ما في نفس الترتيب
بيفرجش أخلص مين في الأول يعني لو أنا عنديR S T W
بفرقش معايا مين أخلص، خلصت T مع W، خلصت R مع S،
بعدين ضربتهم في بعض أو خلصت S مع T، بعدين دخلت
عليهم R، بعدين دخلت من الآخر ال W، مش هتفرق، هنوصل
لنفس النتيجة لكن زي ما قلنا هي مش Accomitative، هي
Associative، عشانك لازم نفس الترتيب يظل، ان ال R
وراها ال S وراها ال T وراها ال W، بنفعش أضرب
بالعكسفعشانك هو ما كتب عشان انا ان ا commutative
هو كتب ان انا ا associative ان مافي مشكلة طول ما
نفس الترتيب اخلص مين ما اخلص بظبط في الآخر نفس
الجواب طيب كمان معلومة مهمة distributive زي تخيلي
R ضرب وهذه زائد بتوزع الزائد الضربفهي نفسها يا
بنات R في S أو R في T فلو أنت جبت ال language بتاع
التهادي وجبت ال language تبع التهادي و بعدين جبت
ال language الكلية هي نفسها لو أخدت ال language
تاعة دول التنتين و ضربتيها في R نفس الفكرة فال R
في S or T هي R في S أو R في T نفس الفكرة بالعكس S
or T بدي أضربهم من ورا في R هي S في R أو T في R
شوفتي كيف؟ و لاحظى هنا دايما الترتيب بيحافظ عليه
لإن أنا مش أكميته بيظل الترتيب موجود لكنها
distributed في مشكلة هنا طيب بعدين لو ضربنا في
epsilon مش هيتغير epsilon في R هي R في epsilon هي
R لحالها يعني A في epsilon هي A خمسة في epsilon هي
خمسةمش هتفرق طيب ال R closure بتفرج معايا لو حطيت
معاها epsilon في المجموعة و أخدتلك closure؟ لأ لأن
أصلا ال R closure انطلع ال epsilon طب إيش يعني
أضيفيها epsilon و أخدليك closure؟ ما هي موجودة هيك
هيك موجودة فمافيش داعي يعني فبقولك هذه هي نفسها طب
هل هذه
هي نفسها ايه؟ طبعا غلط لان هنا ضاف ال epsilon لان
مافيش فيها epsilon هل هيفرق معايا ان اجيب ال
closure مرتين عن مرة باختلفه يعني ال R closure
closure غير ال R closure ليه نفسها دي كانت للملة
نهاية فمش هتفرق فال R closure ال R closure closure
ال R3 closure كله زي بعضه هو في الآخر واحد لانه
كان ماشي القانون للملة نهاية وضحتها ان في مشاكل
طيب، الآن تعالوا لها النقطة إيش مكتوب يا بنات؟
Regular Definition إيش تتوقع انه يسوي الآن؟ الآن
بدي يوصف ال token بشكل رسمي وواضح هو كل اللي قبل
هذا إيش كان يعرفك؟ إيش كان يعلمك؟ الصياغ الرياضية
ال regular expression ال operators و ال languages
اللي بتطلع لكن لحد الآن ماعمش ولا تعريف كامل ل
tokenمظلوط او لا؟ بدي يبدأ من الآن يعرفك يوريكي
كيف نعمل التعريف فجالك عشان نعمل التعريف بيكون
بياخد هذا الصيغة هذا الشكل انه باجي بقول مثلا ال L
عبارة عن مثلا بعرفها AB شايفها هذا الصيغة شايفها
السهم ايش معناها؟ ان ال L هي ها باجي اقول مثلا ال
D مثلا 01 اذامثلا بدي أعرف token من نوع أنه حرفين
باجي بقوله خلاص إذا ال token اللي بديه T1 اللي أنا
بدور عليه ال D مثلا token one مثلا هانقش ال token
اللي أنا وصفته كل الكلمات اللي من خنتين تبدأ ب A
أو B و تنتهي ب 0 أو 1 لأنه ماحطتش كل المجموعة صح؟
مظلوك ولا لا؟ أو إذا بدك هي باختصار A0A1 نفس اللي
انا شرحته B0 B1 فهذا على بعضه كله ايش بنسميه يا
بنات definition انه انا استخدمت صيغة regular
expression وعملت definition لمين لل token فبتوقع
اي token بعد اليوم بدي اشوفه هشوفه على شكل
definition اللي هو الآن هناخد أمثلة نشوف كيف نصف
ال IDكيف نوصف ال number، كيف نوصف شوية شغلات،
شوفتي هذا الآن، هاي اللي أنا بدور عليه ال
definition اللي ممكن ال computer يفهمه لأن لازم
نعمل عملية systematic بعد هيك جولنا، تمام؟ طيب جبل
ما أروح أشوف الأمثلة اللي هناك، لو سألتك اعمليلي
definition لل keyword if keyword
if سهم EGI concatenation مع FI وراها F
Concatenation خلاص هيك انا اش عرفت ان تعريف ال KF
هي عبارة عن ايه؟ I وراها F مش هذه ال concatenation
لو سألتك شو ال language اللي هنا؟ شو ال language
اللي بتطلع؟ انا قلت مافيش فيه ايه I F هاي ال
language هاي ال string اللي طلت معايا اللي هي
تعريف مثلا keyword F لو ده عرف keyword themkeyword
then لازم يجي T يجي H يجي E يجي N شوفتي كيف؟ ليش؟
لأن أنا لو سألتك ها أنا ها دي شو ال language اللي
بتطلع؟ هأقول مافيش language بتطلع غير then اللي هي
وصف لمين لل token then شوفتي كيف؟ طيب تعالى نشوف
لو بدنا نوصف ال ID اللي في لغة ال C أو في الجابع
تعالى نشوف كيف نوصفها هي محلولة وسهلة
ركزوا يا بنات الله يعرف نخلص نتأخرين كتير شوفوا
إيه الشامل الآن بده يحط هو وصف من ال ID فأول ما
بدأ عرف letter قال ال letter هي عبارة عن a or b or
z or b لكل الحروف or underscore عرف الأول ال
letter بعدين إيش راح أعرف؟الـ digits بعدينش قال ..
قال إذا ال ID اللي أنا بدور عليها هي ال letter هذه
or ال digit ال كل closure أضربيها في ال letter
underscore فلو جيت سألتك الآن شو ال language اللي
بتطلع من هنا هتقولي لي كل الكلمات اللي بتبدأ بال
letter followed أو underscore followed by letter
أو digit or underscore اللي هو فعليا تعرف مين ال
ID في ال C أو في الجامعه شوفتي كيف؟ الآن هدول
التلاتة مع بعضdefinition للـ token ID انتبهي مش
بالضرورة دايما يطلع سطور كتير لل token هاي و هاي
شافها هانا ماطلعش غير سطر هانا ماطلعش غير سطر على
حسب طبعا نوع ال token اللي عندك ممكن يطلع سطر واحد
ويعرفه وممكن تضطري لمجموعة من القصد اللي عبالة
تعرفي هذا ال token طب هل يجوز اني ماكتبش هدول
الاتنين واكتفي بهذا؟طبعا لأ لأن إيش ال letter اللي
إنت كاتبه؟ إيش هذا اللغة اللي طلبها؟ فلازم تكون
معرفة لي إيش ال letter لازم تكون معرفة لي إيش ال
digit صح ولا لأ عشان هي كإجباري لازم أعمل التلات
سطور هدول إيش ال letter؟ إيش ال digit؟ إيش ال ID؟
لأن ال ID بتكون من اتنين هدولأما هنا لحظة خلاص
مابديش اشي سطر واحد definition واحد خلصنا ال F سطر
واحد خلصنا ال then شوفتي كيف فهي الحلو في الموضوع
انه انا اي token يجي على بالي سهل وصفه بال regular
expression وال regular expression الحلو في الموضوع
مافيش فيه غير تلت عمليات رئيسية او combinations
منهم orconcatenation و closure قال لك هدول بتجمع
بطريقة ما علشان انا اطلع ايش ال token هنا ما
استخدمتش الا concatenation هنا استخدمت
concatenation و closure على حسب طبيعة الرقم ماشي
الحال طيب في اي سؤال قبل ما ناخد المثال اللي ورا
واضحة الأمور في حد مش فاهم اش بنسوي
واضحة؟ طيب تعالى نشوف المثال اللى وراه المثال اللى
وراه الصحيح يبدو ببين للوهل الأولى انه صعب شوية
لكن تعالى نركز فيه ونشوف كيف نشتغله طبعا ايش بيقول
في المثال هذا؟ بدنا نعمل تعريف ل token numberبنعمل
تعريف لل token number وطبعا لازم يوصف لل number في
الأول علشان اعمله التعريف هذا ال token انت مسميه
number مش هو بس انتجر و خلاص بدنا نشوف طبعا هنا في
اكتر من صيغة و اكتر من شكل ايش بيقولك ال number في
ال language هاي ممكن يكون 125 انتجر عادي هيك شكله
او ممكن يكون 125.13
و ممكن يكون 125.13 exponent ال exponent مسموح مرات
في بعض ال languages تحطيه ك exponent و تحطي ورا
زائد او ناقص او ولا زائد او ناقص مرات بسمحني زائد
او ناقص و ورا ايش ارقام مثلا 15 هذا شايفاه كله هذا
number في بعض ال languages مسموح ان نحط ال
exponent هذه عبارة عن exponent الأسو ممكن يكون يا
بنات زي هيك واحد اتنين خمسة بدون الكسر خلاص اجي
اقولهم تلاتة اي زاد او ناقص او ولا زاد ولا ناقص
خمستاشر فالان عرفني كام صيغة مختلفة للرقام يمكن
اربع صيغة مختلفين انه انتجر لحال او كسر لحال او
انتجر مع ال اي او انتجر مع الكسر مع ال اي فقاللي
الان هيك شكل الرقم في ال language الفلانيةإيش
المطلوب الآن؟ المطلوب تعمل regular definition
بيوصف هذه ال language طيب عشان نقدر نحل الأسئلة من
هذا النوع بسهولة طبعا انت الوهلة الأولى تشعر ان
الموضوع صعب صح؟ والله شايفينه سهل كلكم بيبين انه
صعب انا هخليكي اتحلي بسهولة الأسئلة من هذا النوع
الآن انت جسم ال problem تبعتك زي ما بنقول دايما ل
sub problems كيف؟ ركزي معاياإيش المانع أني بس أوصف
هاي لحال و أسميها N1 و أوصف هاي لحال و أسميها ..
قولولي صح ولا غلط أنا مفكر فيه .. و أوصف هاي لحال
وأوصف هي لحال و انا بأقول ال number هو in واحد or
in اتنين or in تلاتة or in أربعة ايش رأيكم في الحل
هذا في الأول انسوني حل الكتاب الكتاب شاطر و بحل
يعني اططاير احنا خلنا عجبنا الحل نوصل و هنوصل نفس
الحل تعالى الكتاب طيب إذاواضح أن الطريقة هذه اللي
أنا كتبتها على الوصف سهلة جدا ليش؟ لأنه بس أعمل
الوصف لهذه، أعمل الوصف لهذه، مش هيك؟ و بعد ما أخلص
الوصفات الأربعة، مش هاي language و هاي language و
هاي language، كيف أحطهم كلهم في نفس ال language؟
أبقر، نظيفة ولا لأ؟ طيب تعالوا نحسر تفكيرنا الآن
فقط في الأولى، هتقوللي خلاص أول شي بعرف ال digit،
مش هيك؟ اللي هم الأرقام، و أجي أقوله أنوان هو D
plusمش هيك انا كل الأرقام اللي ممكن تيجي على بالي
من نوع انتجار بكون وصفتها و خلصت في انوان صح ولا
لأ فهي نرتاح اتناش من أول شكل طب في الشكل التاني
هتقوليلي بيجي أرقام بيجي dot concatenation و بيجي
أرقام هي خلصت التانيةمش هيك؟ مش بيجي أرقام
concatenation dot concatenation أرقام فخلصنا من
انتنين بسهولة طيب تعالوا لعين تلاتة اللي هي بيجي
أرقام بيجي dot بيجي أرقام مش هيك؟ بيجي E
concatenation بعدين إيش بيجي؟في غلط نعمل زائد أو
ناقص أو إبسلون عشان الـ E يجي وراها زائد أو الـ E
يجي وراها ناقص أو الـ E مايجيش ورا إشي مش هيك أنا
بكون وصلت لهنا إيش بيجي ورا هون أرقى مش هيك أنا
وصفت التلاتة أنه بيجيني أرقام بيجيني dot بيجيني
أرقام بيجيني E ورا الـ E يا زايد يا ناقص يا ولا
إشي وراها أرقى آخر حالة اللي هي بدون كسرهتقولي سهل
جدا بيجي أرقام بيجي E ورا ال E زائد أو ناقص أو
إبسلون عارف لو كان في ال language إجباري تظهر
الإشارة زائد أو ناقص بحطوش ال إبسلون لكن لأنه
مسموح أنه يكون ولا إشي بحط ال إبسلون ورا إشي يجي D
plusخلاص و اين الأخيرة؟ السؤال خلصت و الحل صح
مافيش فيه إشي يعني دائما انت زي ما قلت بصط القصة
إذا شفت حاجة جديدة زيك الأول مرة و أكتر من حالة و
أكتر من case سهلة امسك ال case الأولى لحاله و
التاني لحاله و التالت لحاله و اجمعهم فوقه طبعا
الكتاب عمل فنيات زيادة كيف؟شايفة هدول؟ عشان اوضحك
كيف الكتاب بيشتغل اعتبري بس مافيش غير النوعين هدول
بس عشان اوضحك الصورة مش انت كنت هتقولي ال num هو
ال D plus or ال D plus نقطة D plus خد ال D plus
عام المشترك مش بتصير epsilon او dotشوفتي كيف؟
فممكن الكتاب تلاقي إيش صار من كلهم لما بيحطهم طب
خد هذه عامة مشترك، طب خد دوت عامة مشترك، فممكن
توصلي بطريقتك لحل الكتاب، لكن أنا مش طالب هذا
الكلام، أنا بتحليلك كيف حل الكتاب بشكل مباشر برضه
سهل حله التاني، بس في الأول أن أنت في أسوأ
الاحتمالات بتحلي، مافيش إشي، مش مشكلت، شوفتي كيف؟
طيب تعالى نشوف نفهم حل الكتاب، كيف حل، كيف عمل،
تعالى نشوفالان عشان تفهم حال الكتاب بدي أمسح حد و
أعيد الحل بس في الأول في حد مش فاهم أنا إيش سوينا؟
في حد عنده أي استفسار؟ عشان هامسح وضحت؟ تمام؟
تمام؟ طيب خلينا الآن أوريكي كيف نحل الكتاب أركزوا
الكتاب إيش بيقول؟ وكلامه صح إيش بيقول؟ بيقول ال
number لحظة معايالازم يجي في الأول أرقام، صح؟ لازم
يجي أرقام، مش هيك؟ لكن، هل إجبار يجي نقطة أرقام؟
ولا .. ولا لا؟ فممكن يجي optional fraction، صح؟
إيش ال optional fraction؟ يا dot، D plus، يا
epsilon، وممكن كنت تحطيها هنا، يعني تيجي تقولي،
إذا بدكD plus يجي وراها D dot plus او امسكه بس هو
الكتاب رايح لعصو حطها وين في optional وعوض عن
optional شوفتي كيف فليش انا بيقول optional لأنه قد
يأتي الكثر او لأ طب ايش رأيك في ال E برضه optional
exponent لإن هي هذا بيقولExponent، صح؟ فممكن يأتي
أو مايأتيش الـ Exponent كيف شكله الـ Optional
Exponent؟ كيف شكله؟ هتقولي لي زأجة E زائد ناقص
إبسلون D plus أو كل هذا إبسلون، يا بيجي هذا كله،
يا بيجيشش صح ولا لأ؟ وممكن كنت تعود عنها مباشرة
فتعالى نشوف الحل كيفه، simple وسهل قال أولا ال
digital لازم يعرفهابعدين قالت digits اللي هي هذه
بالنسبالنا أنه لازم يكون فيه خانة لأنه لازم يكون
فيه رقم عشان أقول هذا number ماينفعش يكون فرق عشان
هيك إيش ريح راسه قال digit في digit plus أو إذا
بنتك اكتبيها في digit نجمة أو اكتبيها D plus
وخلصنا الان إيش ال optional fraction قالك يا بيجي
dot أرقام يا مابيجيش epsilonطب إيش الـ Optional
Exponent؟ يا تيجي الـ E وراها زائد أو ناقص أو ولا
إشي وراها digits يا هذا كله بييجي .. زي ما هذا كان
كله ييجي .. يا إبسلط إذا ال number الأخيرة عبارة
عن إيش؟ تعالي نشوفها آخر
إيش ال number خنصة يا ربي مش حنصةأخر إشي ايش قالك؟
قالك أول إشي في ال number في الآخر لازم يجي أرقام،
بظبط؟ بعد الأرقام إيش ممكن يجي؟ يا بيجي dot digits
يا خلاص it's epsilon مش أنت المفروض أنك تحطي هذا و
تضربي هذا فيهم فبيجي بعد ال digits dot digits أو
هذه تنضرب في ال epsilon فبتصفي هذه بدون هذهالان
خلصنا من ال optional هذه الان مين بيجي وراه هون
اللي هو يا بيجي كامل ال E وراه زاد أو نقص أو فراغ
وراه digits يا بيجي كامل يا بيجي ورا إبسل بحيث
باختصار وبهيك أنا أعمل التعريف ال number لل
language اللي عندي هاي باختصار ببساطة واضحيت؟ طبعا
هالغلط هالغلط أكتب زي هيك لو بديخلاص أنا بدي
أعملها plus أريح دماغي و أجي أقوله بدي digit plus
و بديش أكتب هذه و بديش أكتب هذه كمان و أجي أقوله
dot digit plus أو epsilon و أجي وراها أقوله بدي E
زائد ماقصepsilon digit plus هذا كله او هذا كله او
هذا كله او epsilon هل غلط اكتبها مباشرة زي هيك؟ مش
غلط خلاص بقوله ال digit يا بيجي epsilonيا بيجي
هذا، اعتبر ياجي أبسلون، خلاص بيصير ال digit على
طول لحاله، اعتبر ياجي ال dot و ال digit plus، صار
هذا الكسر، الآن وراهم مين هيجي؟ يا أبسلون خلص
الرقم، يا بيجي كل هذا، شوفتي كيف؟ وفيش داعي أعمل
هذي و هذي، يعني أنا قادر أحسن الكتابة تبع ال code
تبعي المهم لو سألتك الآن، شو ال language اللي
بتطلع من هنا؟ لو سألتك، شو ال language اللي بتطلع
من هنا؟هتقوليلي كل الأرقام اللي بالصورة هاي ال
integer أو ال dot أرقام أو ال exponent ولا هزاد أو
ناقص أو ولا حاجة أو أرقام يعني هذا اللي أنا أوصف
كامل لهذا طيب الآن عشان بس أنا أختم المحاضرة اللي
بس بدي عيد كتابة هذا ال code بطرق اختصارات بدي
أعلمنيها وفيه تلت شغلات للاختصارات هاي بدي أتعلمهم
و أعيد كتابته و أختم دقيقتين طلعوا معايا أول حاجة
أش بقولكأخدناهم أول معلومة بقولك ال
R في ال R نجمة أو ال R نجمة في ال R هي نفسها R
plus يعني هعيد كتابة اللي قبل شوية اللي أنا كتبته
بدل يحط digits في digit نجمة إيش حيصير يشجيرهم؟
أنا حولتها بس الآن المثال هيحولها خلاص هذا أول
ملاحظة الملاحظة التانش بقولك بيقولك في علامة
استفهام، هذا ايش معناها؟ أنه لما كنت أكتب زائد أو
ناقص أو إبسلون، هذا كيف هنصير نكتبها من أنه طالع؟
هنصير نقوله زائد أو ناقص استفهام، معناه يا بيجي
هدولة يا بيجيوش مثلا لما كنا نكتب dot digit زائد
أو إبسلون، كيف هنصير نعملها؟ dot digit زائداستفهام
بس يعني الاستفهام انه يا هذه اللى بتيجي يا ال
epsilon فهي هذه تانى عشان هنظبط ال code اللى مكتوب
فيها اخر معلومة اللى بين ال bracket زي هيك قال هد
ايش معناها A or B or C و هد ايش معناها A ل Z A or
B or C or Z عارف لو شيلت ال matrix هد ايش بتصير
معناها A او Z خلاص هى المعلومة اللى بيقولهافالان
ايش بقولك تعالى شوف كيف كتب المثالين اللى درسناهم
شايفه اللى قبل شوية ال ID شوف كيف قعدت كتابته
شايفه
قالك a تزد ار بعدين تطلع يلزق فيها ال a لأن هذا ار
معناها لان صارت ان هذا bracket و بعدين كمل تزد
بعدين ايش لزق فيها ال underscoreفهذه الصيغة تانية
للكتابة قبل شوية ال digit كيف كتبها؟ من zero
لتسعة، zero or one or two عشان بسرعة نختصر تعالوا
نشوف المثال التاني اللي كتبناه بتاع ال number ال
digit zero لتسعة شايف ال digits إيش عملها؟ digit
plus مافيش داعي يكتب النجمة في digit آخر حاجة
شايفه كتب digits و بعدين قال dot digits استفهام
يعني يا بيجي هذا يا بيجيشبعدين راح كتب هذا كله
اللي هو الـ E زائد ناقص epsilon digits كله يا
بيجيه يا بيجيش والزائد و ناقص اللي جوا يا بيجيه يا
بيجيش شوفتي كيف؟ بس قعد كتابة التعريف باستخدام
الاختصارات اللي اتكلم عنها بس مش أكتر مش إجباري
بالنسبالي اللي في امتحان مش إجباري لو أخدتي فيهم
ماواخدتيش فيهم يعني لو كتبتي بالصورة اللي قبل شوية
it's okay بس هذه أريحلك و أسلك واضحة يا بنات؟ في
أي سؤال الآن؟يعطيكم العافية هيك خلصنا محاضرتنا
اليوم ان شاء الله المرة الجاية ان شاء الله بنكمل