المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : ما سبب رسالة الخطأ عند التحويل للنظام الثنائي


ثامر أبو بلقيس
31-03-2014, 11:50 PM
السلام عليكم ورحمة الله
باستعمال الاضافة MathEx
وعند كتابة أعداد في العمود 0 في عنصر Grid
ولتحويلها للنظام الثنائي binary استعملت
x=0
p=Grid.GetRowCount("Grid1");
for i=x,p do
c= Grid.GetCellText("Grid1", i, 0);
c = String.ToNumber(c);
h=MathEx.Base10ToBaseX(c,2);
Grid.SetCellText("Grid1", i, 0, h, true);
end


تظهر النتائج صحيحة لكن ترافقها رسالة خطأ
ما السبب ؟ لأتفاداها
شكرا :abc_138:

عبود عبود
01-04-2014, 01:01 AM
x=0
p=grid.getrowcount("grid1");
for i=x,p do
c= grid.getcelltext("grid1", i, 0);
c = string.tonumber(c);
h=mathex.base10tobasex(c,2);
grid.setcelltext("grid1", i, 0, h, true);
end


تظهر النتائج صحيحة لكن ترافقها رسالة خطأ
ما السبب ؟ لأتفاداها


أولا كان يجب ألا تختصر عند طرح سؤال فأين الملف المفتوح أو على الأقل صورة لرسالة الخطأ .

ثانيا وهذا هو الأهم لماذا قمت بتحديد قيمة x بـــــ صفر ؟

طبعا هذا خطأ لأن عدد الصفوف الفعلى سوف يكون أقل بمقدار 1 فى هذه الحالة عن قيمة التكرار .

أى أنه كان يجب أن يكون التكرار من 0 كما كتبت سابقا إلى p-1
أو عدم تحديد قيمة للــــ x ويكون التكرار من i-1 إلى الـــ طبعا عندما يكون for i=1,p do


هل فهمت ما أقصده الآن ؟ التكرار لديك كان سيكون +1 عن عدد الصفوف المتحصل عليها بكود إيجاد عدد الصفوف لأنك بدأت بصفر .



:abc_065::abc_051:

ثامر أبو بلقيس
01-04-2014, 01:20 AM
السلام عليكم ورحمة الله وبركاته

أخي عبود للإجابة عن الملاحظات
أنا لا أستعمل أي صف أو عمود fixed
هذا فقط للتوضيح
لماذا وضعت للقيمة x صفر ؟ الاجابة : لكي تتحول القيمة الموجودة في
الخلية 0 . 0
اذا كتبت 1 لـ x سيبدأ التحويل من الخلية الموالية
لذلك لايوجد خطأ أخي

مشكور جدا :abc_138:

عبود عبود
01-04-2014, 01:22 AM
السلام عليكم ورحمة الله وبركاته
اذا كتبت 1 لـ x سيبدأ التحويل من الخلية الموالية
لذلك لايوجد خطأ أخي




وعليكم السلام أخى
وبالتوفيق مع الحل الصحيح
الذى تجده أو وجدته :abc_138:

ثامر أبو بلقيس
01-04-2014, 01:31 AM
وعليكم السلام أخى
وبالتوفيق مع الحل الصحيح
الذى تجده أو وجدته :abc_138:

بإذن الله شكرا :abc_138:

عبود عبود
01-04-2014, 01:56 AM
هل يمكنك وضع ناتج الــــ p الموجود فى الكود التالى ؟ :

p=Grid.GetRowCount("Grid1");

طبعا ضع قيمتها فى كل أحوال الـــ fixed أو غيره فى نفس هذا الموضوع .

بعد ذلك سوف يكون عددا ........... فهل التكرار من صفر إلى هذا العدد هو نفسه التكرار من 1 إلى هذا العدد ؟

هذا للتسهيل على المبتدئين فى فهم ما ذكرته إذا مروا على السؤال هذا .

ولا ننسى أن ما تم ذكره تم بناءا على :



تظهر النتائج صحيحة لكن ترافقها رسالة خطأ

فلم أجرب باقى الكود فتعليقى على التكرار و إقترانه بعدد صفوف ثم الحصول على نص من خلية بعد ذلك فى التكرار فقط لا غير .

:abc_152:

ثامر أبو بلقيس
01-04-2014, 03:02 AM
أخي عبود جميل هذا الاثراء للطلب
حتى و إني محتاج لحل لرسالة الخطأ وبالتأكيد لن نختلف
لكن علينا أن نسمع بعض لما قلت fixed قلت للتوضيح
حتى يسهل بناء الملف لأن فعلا ظروفي لم تسمح لرفعه ..
======================
لكن مازلت أقول لك أن النتائج تنزل في الخلايا صحيحة وفق ماذكرت
واذ وضعت في الكود الذي في أعلى المشاركة القيمة 1 لــ x
فإن الخلية الأولى لن تتحول قيمتها
================================
ياسيدي الإضافة تعمل وفق الكود التالي المبني على عجل
أي القسمة المتتالية
p = Input.GetText("Input1");
p = Math.Floor(p/1);
g=""
if p ==1 then
Dialog.Message("Notice", 1);
else
while (p >0) do
p = Math.Floor(p/2);
g = g..Math.Mod(p, 2);
end
Dialog.Message("Notice", g);
end

ابني مشروعين واحد بالاضافة تطلع نتائجه في grid
وهذا الكود سيعطيك القيمة وقارن

مشكور جدا لكن في كل الحالات لم أجد حلا لرسالة الخطأ
ألقاك أخي بخير إن شاء الله :abc_138:
ملحوظة :
لكن حتى يستفيد زملائي الذين قد يمروا من هنااا الوضع مختلف لأن الخلية الأولى
في grid لاتسمى الخلية 1 بل تسمى الخلية 0
انتبه لهذا أخي برجاء

ثامر أبو بلقيس
01-04-2014, 03:40 AM
فعلا أنا الغلطان سطر كان زيادة هو السبب
جزيل الشكر :abc_152::abc_152:
بسبب تحديد قيمة x

عذرا بارك الله فيك :abc_050:

ثامر أبو بلقيس
01-04-2014, 04:15 AM
هذا هو الكود و أضفت له شرط قد يفيد يوما
p=Grid.GetRowCount("Grid1");
p = String.ToNumber(p);
for i=0,p-1 do
c= Grid.GetCellText("Grid1",i, 0);
c = String.ToNumber(c);
if c ~=0 then
h=MathEx.Base10ToBaseX(c,2);
h = String.ToNumber(h);
Grid.SetCellText("Grid1", i, 0, h, true);
end
end

شكرا :abc_050:
ملاحظة : يمكن استغلال أو يستثمر
كل مادار في عملية الترتيب أو ماشابه

عبود عبود
01-04-2014, 06:03 AM
فعلا أنا الغلطان سطر كان زيادة هو السبب
جزيل الشكر :abc_152::abc_152:
بسبب تحديد قيمة x

عذرا بارك الله فيك :abc_050:


من بعض الأخطاء التى يقع فيها المبرمجين هو عدم الإعتراف بخطأهم
وللأسف لا يعطون لأنفسهم أو لغيرهم فرصة للمساعدة لأنهم يظنون أن الخطأ دائما بعيدا عنهم
فاحذر هذا الخطأ

فعلا أنا الغلطان سطر كان زيادة هو السبب
جزيل الشكر :abc_152::abc_152:
بسبب تحديد قيمة x

عذرا بارك الله فيك :abc_050:

طبعا يوجد عملية تكرار زيادة عن المطلوب كما أشرت سابقا


عذرك مقبول وتحياتى لك وبالتوفيق دون عناد وإحذر من مرحلة التكبر فهذا الكلام لى ولك وللجميع :abc_152:

تحياتى لك مرة أخرى وأتمنى أن يكون ردك عن إقتناع ووصول لسبب الخطأ :abc_138:

النصل القاطع
01-04-2014, 07:42 AM
مرحلة التكبر :

التكبر من أكبر الأخطاء
يحرم المتعلم من أشياء كثيرة
و قد يمنعه من شكر معلمه بالشكل اللائق (قد يرى الشكر إعترافا بالخطأ !!)
و هذا قد يفقده متابعة معلمه

علما بأن المتعلم و المعلم مسألة نسبية
لا أحد معلم طول الوقت
و لا أحد متعلم طول الوقت

أنا أتعلم من الجميع
حتى المبتدئين

هم يخطئون فأتعلم من أخطائهم ألا أخطئ مثلهم (هنا أنا متعلم)
ثم أنقلب إلى دور المعلم للتصحيح (ان أمكننى)

و قد أتعلم منهم مباشرة و لا أجد أى غضاضة فى ذلك
و أحيانا أجد فى ردودهم معلومات أعرفها للمرة الأولى

ببساطة لا يوجد الشخص الذى يعلم كل شيئ عن كل شيئ

طبعا الكلام موجه للجميع
:abc_152:

فرح صالحي
01-04-2014, 09:41 AM
السلام عليكم ورحمة الله وبركاته
حوار مثمر وجاد ، نحن نستفيد بكل تأكيد منه
من تكبر وضعه الله ومن تواضع رفعه
سلامي واحترامي للجميع
:abc_139:

ثامر أبو بلقيس
01-04-2014, 12:44 PM
السلام عليكم ورحمة الله وبركاته
ردود تثلج القلب ماجاء في ردك أستاذي عبود
من نصائح ثمينة ثق أني مستمع جيد إن شاء الله للنصائح
فالتكبر الذي سيولد احتقار أو التقليل من فكر الآخرين لن يترك المرء يتطور
البارحة أي نعم بعد ما أرسلت الكود أو التصحيح للانطلاق من قيمة 0 على أن يتم
الوصول إلى p-1 والذي كان فعلا هو الحل قمت بذلك على الملف عند المعاينة
كتبت أرقام بحيث لم املأ كل العمود ستبقى الرسالة تصدر لأن الخلايا الفارغة ستمرر
قيمة 0 وهي مرفوظة أساسا في العملية فتبقى رسالة الخطأ تنتج لكن عند تعبئة كامل
العمود بأرقام لن تصدر الرسالة فسبب ردي في كل مرة بعدم جدوى الحل كان لهذا السبب
وبمجرد أني عرفت بأن القيمة 0 ستصدر الرسالة عدت لحلك و أضفت له استثناء الصفر
فنجح العمل لذلك عدت للموضوع لكتابة اعتذار و سأعتذر ثانية و بارك الله فيك
حتى لا تعجبني نفسي شكرا :abc_138:

أخي و أستاذي خالد منكم تعلمنا ومازلنا أجدت في تدخلك
المفيد جدا جزاك الله خيرا عن كل حرف كتبته :abc_138:

أخي فرح مرور عطر صديقي
شكرا . وجزاك الله كل خير احترامي و تقديري :abc_138:

النصل القاطع
01-04-2014, 01:15 PM
حسنا أخى أبو بلقيس
x=0
for i=x,p do
---------
end
ما فائدة تحديد قيمة ل إكس ؟
ما فائدة السطر من الأساس ؟

أرح رأسك
و حاول التخلص من هذه العادة و أكتب بداية و نهاية for بشكل مباشر
for i=0,p do
---------
end


الحالة التى أرحب بها بالمتغير إكس هى مثل
x=0
for i=0,p do
---------
if condition1 == condition2 then
x=x+1
end
end

واضح أننا هنا نريد صنع عداد غير عداد الحلقة
خالص تحياتى