مشاهدة النسخة كاملة : HomeWork_02 تمرين تطبيقي
STRELiTZIA
16-12-2008, 11:38 AM
بسم الله الرحمن الرحيم
تمرين تطبيقي مكمل لدرس المتغيرات و الثوابت
المطلوب :
- عمل مشروع مطابق للملف المرفق.
- اكتشاف الخطأ البرمجي المتعمد في التمرين.
ملاحظة : الاطلاع على الدرس امر ضروري لحل التمرين :)
بالتوفيق إن شاء الله
AL-MOB4RM3G
16-12-2008, 12:31 PM
السلام عليكم ورحمة الله
اخي اولا الخطأ البرمجي هو و الله اعلم كما في الصورة... انه يظهر 0 اذا ضغطنا على ال Get قبل ال Set والله العلم ؟
http://img241.imageshack.us/img241/9671/errpi2.th.jpg (http://img241.imageshack.us/my.php?image=errpi2.jpg)
اما عن التمرين فأعتقد انني قد نفذته بنجاح هذه المرة والله اعلم
بارك الله فيك...
انتظر الملاحظات
STRELiTZIA
16-12-2008, 01:09 PM
و عليكم السلام و رحمة الله
اخي اولا الخطأ البرمجي هو و الله اعلم كما في الصورة... انه يظهر 0 اذا ضغطنا على ال get قبل ال set والله العلم ؟
لا ليس هو الخطأ :p
ايضا ليس المتغير الأخير string :D لهذا اذا كان المتغير فارغ يعطي 0
بالتوفيق ان شاء الله
AL-MOB4RM3G
16-12-2008, 01:19 PM
ايضا ليس المتغير الأخيرstring لهذا اذا كان المتغير فارغ يعطي0
يعني مقبول حلّي ام يجب تغير المتغير الأخير ؟ :eek::eek:
همممم
سأحاول ايجاد الخطأ :confused:
STRELiTZIA
16-12-2008, 01:30 PM
يعني مقبول حلّي ام يجب تغير المتغير الأخير ؟
همممم
المتغير الأخير مبني عليه نصف التمرين بدونه يعتبر حل عير مقبول :d جرب و ستواجهك بعض المشاكل :d
AL-MOB4RM3G
16-12-2008, 02:23 PM
المتغير الأخير مبني عليه نصف التمرين بدونه يعتبر حل عير مقبول :d جرب و ستواجهك بعض المشاكل :d
والله في الحقيقة معك حق :D
هذا نصف التمرين...
ولكن دوخني والله المستعان...
لا يقبل لا integer ولا real ولا double ... يعني عن ماذا سأبحث ؟
الله المستعان..
hanipino
16-12-2008, 04:55 PM
السلام عليكم
تمرين رائع .
هده هى ترجمة فهمى للتمرين و الله اعلم . :)
STRELiTZIA
16-12-2008, 05:39 PM
لا يقبل لا integer ولا real ولا double ... يعني عن ماذا سأبحث ؟
موجود امامك، صدقني اخي العزيز انت لست بعيد... فقط ركز اكثر و ارجع الى الدرس فالحل واضح زي الشمس :D
هده هى ترجمة فهمى للتمرين و الله اعلم
اولا : لم استعمل اي فحص في التمرين و لا تعطيل ازرار اخي hanipino
ثانيا : المتغير الأخير ليس String كما ذكرت سابقا و الصفر يأتي افتراضيا من المتغير نفسه.
ثالثا : لم استعمل المتغير العام Variant - كلو على بعضو - هم متغيرين اثنين فقط مع بعض البهارات المحلية :D
الحل سهل !
بالتوفيق ان شاء الله
hanipino
16-12-2008, 06:22 PM
لا يقبل لا integer ولا real ولا double ...
اعتقد انه متعلق بمتغير من نوع Boolean
فى البداية يكون False و غند الضغط على زر Set ياخد القيمة True
و بالنسبة للزر Get .. ادا كان المتغير يحتوى على قيمة False : ندخل القيمة 0 فى Edit
فى غير دالك
edit.Text:=label.Caption;
__________
اما فى خصوص الخطاء اين هو الله اعلم . ساعدنا قليلا اخى : :)STRELiTZIA
STRELiTZIA
16-12-2008, 07:01 PM
اعتقد انه متعلق بمتغير من نوع Boolean
فى البداية يكون False و غند الضغط على زر Set ياخد القيمة True
و بالنسبة للزر Get .. ادا كان المتغير يحتوى على قيمة False : ندخل القيمة 0 فى Edit
فى غير دالك
لا انت بعيد جدا...
لا يوجد اي فحص اطلاقا الا CheckBox الخاصة بالنافذة الثانية و هي ليست لها اي علاقة بالمتغير الأخير.
edit.Text:=label.Caption;
لا... القيمة التي في الكبشن توضع في المنتغير بــ Set و تؤخذ من المتغير و توضع في Edit بــ Get
اما فى خصوص الخطاء اين هو الله اعلم . ساعدنا قليلا اخى : STRELiTZIA
الخطا البرمجي المتعمد واضح امامكم، و اي اشارة صغيرة اليه تحرق التمرين نهائيا و تخرج الأعضاءالذين يحاولون ايجاد حل من التمرين...
Dr.MOT
16-12-2008, 08:02 PM
السلام عليكم ,,
حلي في المرفقات ,,
إن شاء الله يكون صحييح : ) ,,
me&delphi
17-12-2008, 12:12 AM
أضن أن الحل هو تعطيل الزر Get أدا كانت قيمة المتغير فارغة أي '' أو 0
STRELiTZIA
17-12-2008, 09:50 AM
و عليكم السلام و رحمة الله
أضن أن الحل هو تعطيل الزر Get أدا كانت قيمة المتغير فارغة أي '' أو 0
التمرين المرفق لا يطلب اي تعديل...
أخي دكتر :D الجزء الأول صحيح و ليس عليه غبار...
الجزء الخاص بالمتغير الأخير ليس هو المطلوب، بمعنى :
- لا يوجد فحص كما ذكرت في مشاركاتي السابقة
if v=label6.Caption then
- لا يوجد تبادل مباشر بين المكونين
edit6.Text:=label6.Caption
سأحاول إيضاح الفكرة أكثر أن شاء الله
- يتم وضع محتوى الــ Caption التابعة للمكونLabel في متغير غير حرفي يعني رقمي بالنقر على Set.
- ثم بالنقر على Get يوضع محتوى نفس المتغير في Text الخاص بالمكون Edit.
ٍSetOnClick - Event
MyVariable := Label.Caption;
GetOnClick - Event
Edit.Test := MyVariable
Hints
------
- المتغير MyVariable ليس نوعه حرفي بل نوعه رقمي
- الخطأ البرمجي المتعمد عنده علاقة بالمتغير Local
الآن نريد حلول كاملة :D
بالتوفيق إن شاء الله
Dr.MOT
17-12-2008, 04:47 PM
السلام عليكم ,,
الحمدلله وجدت الحل أخيرا بعد تعب وبحث طوووويل ( لم أتوقعه بهذه السهوله :eek: ,, ) - كنت أحاول في comp و currency لكن كانت تواجهني أخطاء -
السورس في المرفقات ,,
بإذن الله يكون صحيح ,,
STRELiTZIA
17-12-2008, 05:05 PM
مبروك اخي Dr.Mot حل صحيح... :)
لم يبقى لك الآن سوى ايجاد الخطأ البرمجي المتعمد...
حل جميل جدا..
تحياتي
Dr.MOT
17-12-2008, 10:37 PM
السلام عليكم ,,
لاحظت ملاحظة وأعتقد أنها هي الخطأ البرمجي المتعمد ,, :D
وهي أنه عند التحديد على الــ Cheked Box والضغط على Get
تظهر الفورم الثاني قبل إيجاد Global , Local في الأسفل ,, ولا يوجدهما إلا بعد الضغط على الزر Close Me من الفورم الثاني !!!
- ربما لم أصغ الفكره بشكل جيد ,, لكني وضحت ذلك في ملف فيديو في المرفقات -
وشكرا
hanipino
18-12-2008, 06:04 AM
بالنسبة للمتغير . اخى STRELiTZIA . فقط . لا تقل لى ليس هو ... :confused: :)
المستفيد
18-12-2008, 10:38 AM
السلام عليكم ورحمة الله وبركاته
هذه محاولتي وكذلك محاولة إصلاح الخطأ البرمجي المتعمد
AL-MOB4RM3G
18-12-2008, 03:24 PM
ها اني قد اعلنها....
لقد استسلمت...
لم يتم العثور على اي حافظ
يقبل رقم كبير...
مع انني تقريبا قرأت نصف ان لم يكن كل
ال هيــــــــــلب :eek:
لعلني انتظر حتى الإثنين....
ان لم يكن الأخ دوكتور موت قد
وافق على تسريب المعلومات :D
هههههه
امزح...
والسلام عليكم
Dr.MOT
18-12-2008, 04:25 PM
ها اني قد اعلنها....
لقد استسلمت...
لا يا أخي لا تقلها - استسلمت -
إذا أردت أن تتطور بسرعه فلن تقولها مره أخرىا !!
هي بسيطه بسييطه ولن تتوقعها !!!
حاول ,,,
بالتوفيق
Rover
18-12-2008, 10:20 PM
Hint :
هل يمكن الأستغناء عن بعض الأزرار , و لماذا ؟
STRELiTZIA
19-12-2008, 08:44 AM
السلام عليكم و رحمة الله
---
المستفيد : حل صحيح.. ممتاز :)
hanipino : حل صحيح... اجتهادك رائع :)
moh__ : كلنا تعرضنا و سنتعرض للفشل... اعلم فقط ان يومك هو الذي يصنع غدك :)
هل يمكن الأستغناء عن بعض الأزرار , و لماذا ؟
اهلا باخي roben نورت المنتدى :)
مممممــــم نعم :D لحل الخطأ المتعمد
بالتوفيق ان شاء الله
Dr.MOT
19-12-2008, 12:57 PM
السلام عليكم ,,
ماذا عن :
لاحظت ملاحظة وأعتقد أنها هي الخطأ البرمجي المتعمد ,,
وهي أنه عند التحديد على الــ cheked box والضغط على get
تظهر الفورم الثاني قبل إيجاد global , local في الأسفل ,, ولا يوجدهما إلا بعد الضغط على الزر close me من الفورم الثاني !!!
هل إجابتي خاطئة ؟
وشكرا
STRELiTZIA
19-12-2008, 05:33 PM
هل إجابتي خاطئة ؟
نعم اخي العزيز...
الخطأ العمدي يخص فقط استعمال المتغير Local و مـــــداه في Set و Get
me&delphi
19-12-2008, 09:10 PM
لكن أخي الكريم STRELiTZIA استعملنا أحد الدوال و الدرس عن المتغيرات فقط
STRELiTZIA
20-12-2008, 09:48 AM
لكن أخي الكريم STRELiTZIA استعملنا أحد الدوال و الدرس عن المتغيرات فقط
و هذا كافي جدا اخي العزيز لايجاد الخطأ المبرمج عمدا...
--
هل استعمال Local variable يحتاج الى حدثين اثنين او حدث واحد فقط ؟ هل هو صحيح استعمال زرين مستقلين Set و Get و تسمية المتغير Local ؟
للتذكير : المتغير Local حدود استعماله لا يتجاور اجرائية واحدة.
و كل هذا مذكور في درس المتغيرات... هل من حلول ؟
بالتوفيق ان شاء الله
me&delphi
22-12-2008, 02:22 AM
أهدا ما تعني أخي الكريم
Fzarada
22-12-2008, 10:25 AM
السلام عليك أخي STRELiTZIA
هذا أول مشروع لي بدلفي، فشكرا جزيلا لك
في انتظار الدروس القادمة، دمت في رعاية الله.
STRELiTZIA
22-12-2008, 10:25 AM
السلام عليكم و رحمة الله
أهدا ما تعني أخي الكريم
نعم اخي العزيز... بارك الله فيك :)
السلام عليك أخي STRELiTZIA
هذا أول مشروع لي بدلفي، فشكرا جزيلا لك
في انتظار الدروس القادمة، دمت في رعاية الله.
و عليكم السلام و رحمة الله
مرحبا بك في المنتدى و ان شاء الله بالمنفعة
بالنسبة للحل حمل المرفقات و احكم بنفسك على حلك :)
---
تعليق بما يخص التمرين رقم : 02
- الرقم الموضوع في Label يفوق احتواء المتغير Integer لذا يجب استعمال متغير اكبر و هو Int64
Integer : -2147483648..2147483647
Int64 -2^63..2^63-1
و دالة التحويل من حرفي إلى رقمي64 هي StrToInt64
- الخطأ البرمجي المتعمد هو مجال المتغير المحلي Local variable الذي لا يجب أن يتعدى حدث واحد في المثال المرفق و عملية تعريفة تكتب مع حدث واحد فقط...
المرفقات تحتوي على الملفات المصدرية للتمرين + مقارنة بين Integer و Int64
بالتوفيق أن شاء الله
Rover
22-12-2008, 12:22 PM
أخي STRELiTZIA :
أظن أن هناك خلط في المفاهيم :
Global Variable : هو متحول عام يمكن الوصول له في أي أجراء ضمن الوحدة و يحافظ على قيمته خارج الأجراءات.
Local Variable : هو متحول محلي, يستخدم ضمن الأجراء المعرف به فقط , و يفقد قيمته بعد الخروج من الأجراء,
--------------------
--- في المرفق أنت عرفت الأثنين كـــ ( Global Var ) ...
-------------------
بالنسبة للـ : Lable
فالخاصية ( TestVarLbl.Caption ) >>> تنتج قيمة ( String )
و يمكن أسناد هذه القيمة الى ( TestVarEdt.text ) دون تحويلات ..
---------------------------------------------------------------------------------------------------
قد تكون الصياغة جاءت هكذا لأهداف تعليمية ,
و لكن يجب التنبيه لذلك حتى لا يحدث خلط .. للمتعلمين ...
---------------------------------------------------------------------------------
بارك الله بك و بمجهودك أخي Strelitizia
و نفع الله المسلمين بعلمك...
STRELiTZIA
22-12-2008, 03:01 PM
أظن أن هناك خلط في المفاهيم :
Global Variable : هو متحول عام يمكن الوصول له في أي أجراء ضمن الوحدة و يحافظ على قيمته خارج الأجراءات.
Local Variable : هو متحول محلي, يستخدم ضمن الأجراء المعرف به فقط , و يفقد قيمته بعد الخروج من الأجراء,
و من قال غير ذلك... في الدرس شرح مفصل لكل واحد منهم... و تطرقنا اليها في هذا التمرين
--- في المرفق أنت عرفت الأثنين كـــ ( Global Var ) ...
انت لم تنتبه الى التمرين و المطلوب فيه كان معرفة الخطأ العمدي.. و المرفق يحتوى على سورس التمرين كما هو... اما شرح الخطأ فهو في المشاركة السابقة.
بالنسبة للـ : Lable
فالخاصية ( TestVarLbl.Caption ) >>> تنتج قيمة ( String )
و يمكن أسناد هذه القيمة الى ( TestVarEdt.text ) دون تحويلات ..
انك لم تفهم المطلوب...
المطلوب هو وضح محتوى الــ Label في متغير رقمي و من ثما وضع محتوى المتغير في Edit من جديد و ليس وضع القيم مباشرة... . و تم ذكر هذا في المشاركات السابقة
اما شرحك فهو امر بديهي..
قد تكون الصياغة جاءت هكذا لأهداف تعليمية , و لكن يجب التنبيه لذلك حتى لا يحدث خلط .. للمتعلمين ...
- المطلوب كان واضح و لا يتعدى موضوع الدرس... التمرين يحتوي على ملف Readme، و ملاحظة اول مشاركة.
- المرفق يحتوي على سورس التمرين كما هو، و شرح الخطأ في المشاركات.
- تم بناء التمرين على فكرتين، الأولى حجم المتغير الرقمي، و الثانية مدى و مجال المتغير Local و الحمد لله تم التطرق اليهم بنجاح، يبقى فقط على المنتتبع المتابعة الحقيقية للدرس و التمرين لتكون الفائدة ان شاء الله.
Rover
22-12-2008, 03:36 PM
آسف أخي Strelitzia ظننت أن السورس كود المرفق , هو حل التمرين الثاني ...
بارك الله بكم ..
مبتدأ جدا
15-01-2009, 01:10 AM
السلام عليكم..
اعتذر أولا لايراد رد الآن..
التحقت متأخرا لدورتكم ولكني سأحاول تدارك مافاتني واللحاق بالركب..
الحمد لله الدرس مهضوم مفهوم وكذلك التمرين تم حله عدا إنني مكثت مليا أتعجب لما التحويل int64tostr لا يعمل خخخ.
- الخطأ البرمجي المتعمد هو مجال المتغير المحلي Local variable الذي لا يجب أن يتعدى حدث واحد في المثال المرفق و عملية تعريفة تكتب مع حدث واحد فقط...
ربما فهمتك فهما آخر ..أنتظرك منك توضيحا..
والدعاء يظهر الغيب بإذن الله.
Obito
01-04-2009, 08:18 PM
يعطيكم العافية شباب...
vBulletin® , Copyright ©2008-2012