كنت تبرمج برنامجا لتحرير النصوص يتميز بمجموعة من
الخاصيات الرئعة؛ منها خاصية البحث عن كلمة أو عبارة في
.١ خليل الإشكاليث المطروحثة
الكونستراكتور (60015417006400) هو دالة تستدعي أثناء وقت إنشاء الكائن و غالبا ما تستعمل
لتمهيد قيم المتخيرات المعرفة.
الباراميتر ©03+807616 هو قيمة تمرر لدالة أثناء استدعاتها .
لن تكتب البرنامج كاملا ورنامج تحرير اللصوص) بل فقط خاصية البحث.
58276010067 : اسم الكلاس (1355)
دور هو تحديد قيمة اذفتراضية للنص المكتوب 16:60
(03737816 واحد نوعد نص (511178) سيتم وضع قيمته لل_نص المكتوب 8«0).
(نام 588+011)50108 : دالة (0081006 تأخذ بارميتر 03+81761©0 واحد نوعد نص.
دورها هو البحث عن الكلمة 0100 في النص المكتوب 18:60 و هي ل" ترجع أي شيء.
16 500108 : متخير (©0/31131 نوعد نص (511178) يمثل النص المكتوب.
معلمسمت عيماعدم
حالات استعمال النصوص (تمرير النص كبارميتر 08181078189 - تعيين نص كقيمة -لتغير
- تعريف متخير نصي - مقارنة متخيرين نصيين - .00 ) -
طلبعا القيمة الافتراضية ستحدد في الكونستراكتور 601158006405 الأول الذي بدون
المعتادة (181/8 40 1/0/6160118) تعجبني أكثر من أي قيمة أخرى؛ أما بالنسبة للكونستراكتور
الدالة (568:6 ستقوم بالبحث عن الكلمة أو العبارة اللطلوبة (0ا؛ إذا وجدتها في
النص 46(60) تخبر المستخدم بأن الكلمة اللطلوبة (0لام) جودة في اذ ن 160 أما
استمسال ل ةل
)ل لم ) ممتمتصمم عامط ) لز
"عا عط م1 " + بم + ” تنه 1116" ) ملتعلم انه 1ر5
العكس صحيح.
107" ) ملتمشمانه. سعتفرق
ستذهب كل توقمعاتك أدراج الرياحج ©؛ عند تجربة هذا الكود ستظهر كلمة 0لا لأن الكلمة 0لا
موجودة في النص لكن باختلاف الحرف الأول؛ لأن الدالة اس لطريقة كتابة الحروف هذا
اعتبرها غير موجودة في النص» أخظن أن أول ما سيخطر ببالك هو استعمال إحدى الا تين
7م ) ملتمم انه سعاسرق
هنا لن يحدث أي مشكل فهد تم تحويل كل الحروف بشكل واحد ليسهل مقارنتها. ©
إذن ستتخير الدالة ()569:6 تخيرا طفيفا:
) غثاء (
جل "تدعا عط صا "+ بع + " مي أمه مل 17" ) ملتعتم نا0. 51ر5
الآن و بعد أن حددنا وجود الكلمة 00100 من عدمها في النص 18(60)؛ نريد أن نعرف مكفها
في هذا النص )8م لدينا طرق عديدة لفعل ذلك لكننا سنحدد مكان الكلمة 00100 عبر
الأرقاب لذلك سنستعمل الدوال ()01 100و ():608ا.
في المتشيرات النصية يمثل كل حرف برقم و يبدا العد من 0؛ و تعثبر اللسافة (©658086) حرفا
أيضاء
كان القيمة للأخوذة موجودة في النص المعليق عليد الدالة فنها ترجع رقم أول حرف منها
عند تنفيذ هذا الكود سيظهر الرقم (3) لأند هو رقم أول حرف من الكلمة 0ه في افص
ل ما عسمعك 117 حمها يما
اعسك” ديس 508
أما عند تنفيذ هذا الكود سيظهر الرقم (1-)»؛ لأن الكلمة 00م غير موجودة في افص ص6
(تصحك بتجربة الدالة بنفسك لكي تفهمها جيدا
سيتم تحديد الكلمة بالأرقام على الشكل التالي:
الكلمة المطلوبة توجد بين الحرف كذا و العرف كذا
الحرف الأول ستحدده باستعمال دالة ()006*01 أما الحرف الأخير فستحدده باستعمال
الدالتين ()1008:041 و ()180885, لأن العرف الأخير هو رقم الحرف الأول زائد طول الكلمة
المطلوبة (/0ا0) ناقص واحد . (اقرأ هذه الجملة جيد لتفهمها)
ستتخير الدالة ()5860 الآن لتصبج على الشكل التالي:
ل "اينع عط ها " + بوم + " فمنه] 11/6" ) ملتمتم اناه .ع1 5ر5
7-() معام + 216 16 غصا
) عقاء [
> مشكل منطقي:
المشكل المطروح الآن عبارة عن مشكلين:
1- المشكل الأول هو أن المستخدم عندما يتعامل مع النص يبدا العد من 1 و ليس 0؛ لكن و +
واحد للرقمين معا)
2- المشكل الثاني هو الأصعب؛ عندما يدخل المستخدم كلمة تتكرر عدة مرات في النص؛ فدالة
()100©*0 ستعتبر الكلمة الأولي فقط. (يمكنك التجربة بنفسك لتتأكم
ك مبدأ البحث عن اك من كلمة:
الدالة ()1008«01 تعود برقم أول حرف من أول كلمة موجودة في النصء هذا فقط للتوضيح:
تمعن في الموضوع جيدا و ستجد العل بإذن الله
أو تقترب من إيجاذ الل المي يم مم ماه
الحل بسيط (صراحة أحب التشويق هذا جعلتك تتشوق لمعرفة الحل؛ سنستخدم آل م100
الكلمة المطلوبة: 60
تطبيق مبداً البحث الجديد:
باع اام سا و6 اامداوماع 0
2- البحث في الجزء التبقي 1-
لام مات ا ماعا 0 230 0+ 0
3- البحث في الجزء اللتبقي 2-
4- البحث في الجزء التبقي 3-
تأخذ بارميترا 027817216 واحدا و الأخرى تأخذ اثنين و كلاهما تأخذان أعداد صحيحة
هو إرجاع مقطع من الفص المطبق عليه الدالة» الأولى أي التي تأخذ بارميترا واحدا ترجع من
أما الثاية أي التي تأخذ بارميئرين توجع من الحرف الذي رقم يساوي القيمة الأول المأخوذة إلى
الحرف الذي رقمد يساوي القيمة الثانية امأخوذة ناقص واحد .
11 ما مس700 دعا 5006
(أنصحك بتجربة هذه الدالة عدة مرات بنفسك لتفهم مطريقة عملها جيذا)
الآن بعد أن فهمت جزءا من كيفية عمل حل هذا المشكل المطروج؛ يمكنك كتابة الدالة أو يمكنك
و "لمعا عطها ”
7) عملم + () عممعن ««ملما. سم ) مما + مرحم
بل ": "جا + 7م 177011" ) ملنعتم انه- 51ر5