الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مطلوب تطوير المعادلة الرياضية لبرنامج طرحته سابقاً

مغلق
بدأه المدمر007 في 25 مارس 2007 · 6 رد · 640 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مرحباً أخوتي الأحبة

قبل كل شيء وحتى تفهموا ما أقصده .. كنت قد طرحت هذا الموضوع سابقاً بعنوان

ممكن كود يقوم باختيار المعادلة الرياضية المطلوبة لإظهار النتيجة النهائية بالشكل الصحيح؟!

وساعتها تدخل الكثير من الإخوة الكرام لمساعدتي ، وتفاعلوا مع سؤالي بحماسة شديدة حتى استطاع الأخ { أسامة } تطوير الحل المطلوب للمعادلة التي وضعتها ...

وتنفست الصعداء ،وانهيت المشروع، وسلمته لأصحابه ..

بس طراء على العملية الحسابية تغيير 180 درجة ...

وحتى تصل الفكرة سأحاول التوضيح هنا قدر الإمكان ( راجياً مراجعة الموضوع المتعلق بهذه الجزئية، حتى تتضح الصورة أكثر )

في السابق .. البرنامج كان يحوي 4Texts

يتم طرح القيمة بالتكست الأول من التكست الثاني ، وتطلع نتيجة الطرح بالتكست الثالث على هذا الشكل

Text3.Text = (Val(Text2.Text) - Val(Text1.Text))

والنتيجة إللي تطلع بالـText3 يتم ضربها في الآتي .. إذا كان

من صفر إلى 3000 يضرب الناتج في 0.010 ( يعني بين الصفر والثلاثة ألف )

من 3001 إلى 5000 يضرب الناتج في 0.015 ( يعني بين 3001 والـ 5000 )

من 5001 إلى 7000 يضرب الناتج في 0.020 ( بين 5001 والـ7000 )

من 7001 إلى 10000 يضرب الناتج في 0.025 ( بين 7001 والـ10000)

ويطلع النتيجة في الـText4

وهذا هو ما تم بالضبط إنجازه من قبل الأخ { أسامة } والشباب جزاءهم الله عنا خير الجزاء

والآن .........

صارت العملية بالنسبة لي أصعب ...

حيث المطلوب هو الآتي

عندما تطلع النتيجة بـText3 أكبر من 3000 يتم تقسيم العدد كالصورة التالية

picturejw9.jpg

حيث تلاحظون في الصورة :-

أن يتم طرح ما سبق ومقارنة النتيجة النهائية فإذا كان العدد أكبر من 3000 حينها يقوم البرنامج بالآتي

يعطي الشريحة الأولى 3000 وتضرب في 0.010

ثم يتأكد البرنامج هل مازال العدد أكبر من 3000 عندها يعطي

الشريحة الثانية 2000 وتضرب في 0.015

ثم يتأكد البرنامج هل مازال العدد أكبر من 3000 عندها يعطي

الشريحة الثالثة 2000 وتضرب في 0.020

ثم يتأكد البرنامج هل مازال العدد أكبر من 3000 عندها يعطي

الشريحة الرابعة 3000وتضرب في 0.025

ثم يقوم البرنامج في الشريحة الخامسةبضرب بقية القيمة ( مهما كان عددها حتى وإن كانت أكثر من 3000 أو أقل ) في 0.030

وكأنه بهذا يعلن في شريحته الخامسه حدي تعبت ويخلص نفسه !!!!

ثم تجمع نواتج الضرب كلها ، ليعطيه النتيجة أو المستحقات النهائية ...

وإليكم الصور التالية .. حيث نلاحظ فيها بأن البرنامج حينما يجد بأن القيمة في أحد الشرائح أقل من3000فإنه يتوقف عندها ويحسب كما هو موضح بالصور :-

picture2yr8.jpg

picture3de1.jpg

فهل أجد مساعدتكم..

يمكنكم الإستعانة بالملف المرفق

Example.rar

#2

أخي الكريم انا لان لايوجد عندي فيجيول بيسك يمكن وضعها على أكسس وابشر بسعدك

من سار على الدرب وصل

#3
اقتباس
أخي الكريم انا لان لايوجد عندي فيجيول بيسك يمكن وضعها على أكسس وابشر بسعدك

حياك الله أخوي { مفرج }

وسعدت بعونك لي ..

بس أنا ما فهمت شو دخل الأكسس بمشكلتي الحالية :blink: ؟!!

على العموم مازلت بإنتظار عونكم جميعاً أخوتي الأحبة :)

#4

السلام عليكم ورحمة الله

الاخ المدمر

هناك تناقد في عملية شرحك للمشكلة

انت تقول ان البرنامج يتاكد في كل مرة هل القيمة اكبر من 3000

ولكن المثال المرفق في الصورة الثانية يقول غير ذلك

picture2yr8.jpg

فهنا القيمة هي 5250 فعندما تطرح منها 3000 يكون الباقي 2250 فهي ليست اكبر من 3000

اذا كان من المفترض ان توضع ال 2250 كلها لماذا قسمت الى 2000 و 250

او ان الشرط الاول غير صحيح

عموما انا قمت بعمل مثال مرفق ارجو ان يكون يلبي طلبك

انا في انتظار النتائج

السلام عليكم

EXA.zip

#5

أخي { مختار }

بداية أشكرك جزيل الشكر لمد يد العون لي..

وبصراحة أنت أقتربت كثيراً من الحل ... ولقد عدلت فيه قدر الإمكان .. وتقريباً أجده شغال معي تمام التمام ومع ذلك أرفق لك المثال ، لعلك تجد فيه شيء سهوت أنا عنه ...

وجل من لا يسهو

الخطأ مني ... حيث يفترض أن أقوم بتعديل الكلام المتناقض الذي أشرت إليه ، والسبب ببساطة

أنني كنت أقوم بنسخ العبارة ولصقها ، تمهيداً لتعديلها فيما بعد .. إلا أنني عدلت الجزء الخاص بالنسب العشرية ونسيت قيمة الشرائح الرئيسية

والآن سأوضح ما في الصور التالية

picturejw9.jpg

كما تلاحظ أخي بأنه ناتج عملية الطرح = 19389 ( ولنسميه الناتج الرئيسي )

والناتج أكبر من 3000 عندها يقوم بوضع شرائح 5 ثابتة :-

الشريحة الأولى يأخذ من الناتج الرئيسي 3000 ويضربها في 0.010 ويطلع ناتج الضرب

ثم في الشريحة الثانية لو وجد أن الناتج الرئيسي أكبر من 2000 عندها يأخذ منه 2000 ويضربها في 0.015

وفي الشريحة الثالثة إذا ما زال الناتج الرئيسي أكبر من 2000 سيطرح منها 2000 أخرى ويضربها في 0.020

وفي الشريحة الرابعة يهتم بأن تكون القيمة أكبر من 3000 فلو كانت أقل لن يكمل للشريحة الخامسة بل يعتبر هذا المتبقي فيتوقف ويضربها في 0.025

ولوالناتج الرئيسي أكبر من 3000 يكمل نفس العملية يطرح منها 3000 ويضربها في 0.025 ثم ينتقل للشريحة الخامسة والتي تعتبر المتبقي من الناتج ومهما تكون القيمة فيها يضربها في 0.030

وهذا ما تجده في الصورة الملخصة

picture4oy3.jpg

وفي الأخير لا يسعني إلا شكرك مجدداً ...

وخالص إحترامي وأطيب تحياتي لشخصك الكريم

أخوك / المدمر007

EXA.rar

تم تعديل هذه المشاركة بواسطة المدمر007 في 27 مارس 2007 في 10:54

#6

السلام عليكم ورحمة الله وبركاته

اخي العزيز المدمر

لا شكر على واجب تفضل اي وقت

ماشاء الله عليك انت عدلت الكود وصار يلبي طلبك لكني انصح بان تعيد وضع كلمة clear في بداية حدث الزر لكي يقوم بمسح كل محتوايات مربعات النص للعملية السابقة :rolleyes:

Private Sub Command1_Click()
clear
Text3.Text = Val(Text2.Text) - Val(Text1.Text)

السلام عليكم

#7

مرحباً أخي { مختار }

لقد طبقت ما قلته من إضافة الـClear

ودمتم بألف عافية يالغالي :) ...

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…