السلام عليكم
كما ترون الصورة الأولى طرح مع الاستلاف والثانية جمع مع الحمل
اريد تطبيق هذا مع المصفوفات الاستلاف من القيمة التالية عند الطرح أو الحمل عند الجمع
فهل يوجد دالة تقوم بذلك؟ ان كان الجواب لا فما هي افضل طريقة لوضع الكود لهذه الغاية
ولكم فائق الشكر والتقدير
abudawoodd انت عاوز تتعمل في sql server ولا معادلة في البرنامج وخلاص
(19-01-17, 09:05 PM)ahmed.nabil كتب : [ -> ]abudawoodd انت عاوز تتعمل في sql server ولا معادلة في البرنامج وخلاص
اخي العزيز اريد فقط المعادلة على المصفوقة
ما هو افضل تصور برأيك للكود
شكرا لك
الطريقة الاولي هي انك تعملها في السيكوال سيرفر :
هتفتح السكوال سيرفر وبعد كده تختار التابل الي انت بتشتغل عليها وتضغط علي الكولم الي العمليه هتم فيه
بمجرد انك تضغط علي الكولم هيظهر تحت اختيارات هتدوس علي Computed Column Specification
بعد كده هتيظهر تحتها Formula هتكتب فيها المعادله الي انت عاوز تعملها
[Column1] + [Column 2] - [Colum3]
الطريقة التانيه في البرنامج نفسو
هتعمل Button جديد وتكتب فيه المعادله
text1.Text = CInt(text2.Text) - CInt(text3.Text)
text1 ده الي هيظهر فيه النتيجة
ارجو اني اكون افدتك بحاجه ولو فيه حاجه وقفت معاك قولي الي انت عاوز تعملو بالظبط وانا اعملهالك جاهزة
عزيزي احمد نبيل اشكر محاولتك مساعدتي
لكن انا لم اقصد هذا انا اقصد في المصفوفات لنقل انها مصفوفين كل واحدة بطول 10 خانات حجم كل خانة 1 بايت كالتالي:
المصفوفة الأولى: 240-099-022-232-099-250-077-044-034-253
المصفوفة الثانية : 245-129-202-121-199-020-057-024-134-153
الان اريد ان اجمع المصفوفتين . من المعروف والبديهي ان القيمة القصوى للبايت هي 255
لكن عند جمع الخانة الاولى من المصفوفة الاولى 240 مع الخانة الاولى من المصفوفة الثانية 245 النتيجة 485 البايت لا يحتمل هذه القيمة
لذا اريد تخزين قيمة 229 ثم نقل الزيادة الى الخانة التالية 1 والتي تمثل 256 يعني الحمل
كذلك عند الطرح
240 لا يمكن ان تطرح منها 245 لان البايت ليس فيه قيم سالبة لذلك استلاف واحد من الخانة التالية وهي 99 لتصبح 98 اما الواحد يمثل 256 يجمع الى 240
ليكون الناتج 496 ثم نطرح ل245 فيكون الناتج 251
ويرجى الانتباه ان القيمة التالية ربما تكون صفراً فنجعلها تستلف واحد من القيمة الثالثة لتصبح 256 ثم يتم الاستلاف منها لتصبح 255
هذا هو طلبي أخي العزيز
فهل هناك دالة تقوم بهذا وان كان لا فما هي الطريقة الامثل باستخدام الكود
طيب ممكن اعرف ايه البرنامج الي انت عاوز تعملو يمكن اقدر اساعدك فيه حاجه تعملك الي انت عاوزو بطريقة تانية
أصدقائي اشكركم جميعا وجزاكم الله كل خير على محاولة المساعدة لكن ليس هذا ما اريد
صديقي العزيز noway طريقتك تشبه ما اريد لكن ليست ما اريد
ربما انا السبب لم استطع ايصال الفكرة سأحاول شرح مطلبي مرة أخرى
اصدقائي لو عرفنا متغيرين من نوع بايت ووضعنا في الاول القيمة 255 والثاني يبقى 0
ما الذي سيحدث لو زدت واحد على القيمة القيمة الاولى
اكيد كلكم تعرفون ان البايت لا يقبل اي قيمة اكبر من 255 لذا سيتوقف البرنامج معلناً الطفحان اي قيمة اكبر من المتوقع للمتغير
لكن ان يصبح المتغير الثاني 1 ثم يكون المتغير الاول 0 سيحل الموضوع
أخي العزيز بمعى اخر انا لا اجمع او اطرح بشكل عشري انما اقوم بجمع وطرح بايتات يعني السداسي عشري
ولكم فائق احترامي وتقديري
(21-01-17, 02:28 PM)abudawoodd كتب : [ -> ]أصدقائي اشكركم جميعا وجزاكم الله كل خير على محاولة المساعدة لكن ليس هذا ما اريد
صديقي العزيز noway طريقتك تشبه ما اريد لكن ليست ما اريد
ربما انا السبب لم استطع ايصال الفكرة سأحاول شرح مطلبي مرة أخرى
اصدقائي لو عرفنا متغيرين من نوع بايت ووضعنا في الاول القيمة 255 والثاني يبقى 0
ما الذي سيحدث لو زدت واحد على القيمة القيمة الاولى
اكيد كلكم تعرفون ان البايت لا يقبل اي قيمة اكبر من 255 لذا سيتوقف البرنامج معلناً الطفحان اي قيمة اكبر من المتوقع للمتغير
لكن ان يصبح المتغير الثاني 1 ثم يكون المتغير الاول 0 سيحل الموضوع
أخي العزيز بمعى اخر انا لا اجمع او اطرح بشكل عشري انما اقوم بجمع وطرح بايتات يعني السداسي عشري
ولكم فائق احترامي وتقديري
انت بدخل بيانات بالصورة العشرية و لا بدخلها بنظام Hex
يعنى (255) و لا (FF)
اخي العزيز المهم هو جمع بايت مع بايت فكيفما ادخلت البيانات ستكون النتيجة واحدة
عشري او سداسي عشري او حتى بيانري وثماني لن يفرق هنا فكلها تؤدي في النهاية الى البايت ومضاعفاته
انا عندي تصور كامل للحل ووضع الكود لكن ما افكر به توقف أمام نقطة جعلته ضعيفا
ما افكر فيه هو كالتالي
هذه مصفوفة
0 55 56 124 254 0 0 1 99 88 234 0 0 22 2 55
اريد ان اطرح هذه منها
55 66 34 67 5 0 6 123 234 243 1 0 32 34 234 22
انظر لأكبر سلسة اصفار وهي هنا 2 فأقوم بقراءة كل ثلاثة بايتات كقيمة واحدة
ثم اطرح منها البايت المطلوب ثم اعيد تقسيم القيمة الناتجة الى ثلاث بايتات واعيد كل بيات الى مكانه بعد الناتج
ثم ازيح القراءة واحد بايت ثم اعيد قراءة ثلاث بايتات بعد الازاحة حتى نهاية المصفوفة
هذه الفكرة تحل الموضوع لكن ماذا لو وجدت سلسة اصفار اكبر من اكبر متغير يعني لو وجدت مثلا 64 صفر متتالي او اكثر من ذلك
فهنا يظهر ضعف فكرتي
جزاكم الله كل خير على صنيعكم معي