بســم الله الـرحمــن الرحيــم
السلام عليكــم ورحمـة الله وبركاتــه
الاخوة الاعزاء
قمت قبل ايام بوضع سؤال بعنوان تنفيذ كود من جدول
تجدونه على هذا الرابط
ولم يقصر الاخ"Koao" بالمساعدة مشكوراً
وقد كان مثال الاخت زهرة رائعاً وقد استفدت منه كثيراً واوحى الي بأمور اكثر
تقوم طريقة الاستاذة زهرة على تحويل الملف النصي الى دالة ثم تنفيذها وبعد ذلك حذفها
ولكن المشكلة ان تنفيذ الكود لدي يتم من داخل حلقات "Do.......While" وتدور الحلقة احياناً عشرات المرات ويتغير المتغير اثناء دوران الحلقة في كل مرة. وبالتالي فسيتم انشاء الدالة وتنفيذها ومن ثم حذفها في كل دورة من دورات الحلقة "Do .... While"
وسؤالي هنا الا يمكن حفظ الكود داخل متغير وتنفيذ الكود عند الحاجة.
كما هو مبين بالكود التالي:
dim ar1(3) as string dim arv(4, 2) as string dim nst, gst as string ar1(1) = "b = c ^ 2 *d" ar1(2) ="a = d*2*c" ar1(3) = "e = c^2" arv(1, 1) = "c" arv(1, 2) = "5" arv(2, 1) = "d" arv(2,2) = "2.45" nst = "" gst= ""
كما تلاحظون فان المصفوفة "Ar1" تحتوي على مجموعة من المعادلات الرياضية
المصفوفة "Arv"تحتوي على قيم لبعض تلك المتغيرات مقرونة باسماء المتغيرات ..
طبعاً المعادلات والمتغيرات السابقة يتم الحصول عليها من جدول ولكني ادخلتها على سبيل المثال
ثم لدينا الحلقة التالية التي تقوم بتعويض المتغيرات داخل المعادلات ليتم احتسابها كالتالي
for i = 1 to 3 nst="" if ar1(i)<>"" then for lst =1 to len(ar1(i)) for s = 1 to 4 if arv(s,1) = mid(ar1(i), s, 1) and arv(s, 2) <>"" then gst = arv(s, 2) next s if gst <> "" then nst = nst & gst else nst = nst & mid(ar1(i), s, 1) next lst ar1(i) = nst end if next i end sub
كما تلاحظون فانه عندما تصبح قيمة المتغير
i = "3"
فإن قيمة المتغير
nst = "e = 5 * 2"
فكيف يمكننا تنفيذ هذه المعادلة بحيث يتم احتساب القيمة فتصبح كالتالي
nst = "e = 10"
ارجو ان اكون قد اوضحت المطلوب
ناصر المصاروة

