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

مشاهدة النسخة كاملة : الفرق بين زاويتين


ثامر أبو بلقيس
03-02-2014, 11:38 AM
السلام عليكم
ما الأكواد اللازمة لإجراء الفرق بين زاويتين بدائرة
مثلا :
50 و 30 درجة

6 و 270 درجة ....

سلامي

فرح صالحي
03-02-2014, 11:53 AM
السلام عليكم ورحمة الله وبركاته
انا متابع معك للاستفادة .
موفق بإذن الله ... لك مني أجمل تحية .
:abc_152:

ثامر أبو بلقيس
03-02-2014, 07:22 PM
السلام عليكم ورحمة الله وبركاته
انا متابع معك للاستفادة .
موفق بإذن الله ... لك مني أجمل تحية .
:abc_152:
شكرا على الاهتمام و المتابعة وستستفيد إن شاء الله :abc_152:

علاء الدين حسين
04-02-2014, 01:48 PM
السلام عليكم
ما الأكواد اللازمة لإجراء الفرق بين زاويتين بدائرة
مثلا :
50 و 30 درجة

6 و 270 درجة ....

سلامي

معذرة
أليس الفرق بين 50 و 30 هو 20 ؟؟

قم بوضع حل للمثالين الذين وضعتهما رياضيا حتى يتسنى التفكير فيهما برمجيا
تحياتى

ثامر أبو بلقيس
04-02-2014, 05:35 PM
جميل أخي علاء : إليك بمثالين
http://im35.gulfup.com/GbOeK.png (http://www.gulfup.com/?sn7ypo)

http://im34.gulfup.com/EfYEn.png (http://www.gulfup.com/?xTuhHo)

علاء الدين حسين
05-02-2014, 02:08 AM
يصعب فهم المثال الثانى
المعضلة تبدو رياضية بالنسبة لى

لذلك
عذرا صديقى
ما الذى يدعوك للقول بأن 230 - 20 = 150 ؟؟
و ليس الجواب المنطقى 210 ؟؟
علام إستندت فى حساب هذه النتيجة ؟؟
أو من أين حصلت عليها لو لم تكن أنت من حسبها ؟؟
:abc_152:

ثامر أبو بلقيس
05-02-2014, 07:55 AM
لا تعتذر أخي علاء اذ وجدت الخطأ عندي
نبهني الأصل هو أني أتعلم
أخي : قلتَ المنطق
230 - 20 =210 وليس 150
جميل :
210 +210 = 420
هنا غير منطقي لأن الصورة توضح أن
الدائرة لا تتجاوز 360
مع ملاحظة أني حذفت 20 درجة أثناء عملية الجمع من
القيمة 230
ولتطبيق ذلك على العملية التي وضعتها في الرسم:
نجد :210 +150 = 360
احترامي وتقديري لك

النصل القاطع
05-02-2014, 11:32 AM
230 - 20 =210 وليس 150
جميل :
210 +210 = 420
هنا غير منطقي لأن الصورة توضح أن
الدائرة لا تتجاوز 360
مع ملاحظة أني حذفت 20 درجة أثناء عملية الجمع من
القيمة 230
ولتطبيق ذلك على العملية التي وضعتها في الرسم:
نجد :210 +150 = 360
احترامي وتقديري لك

مجموع الزوايا المركزية فى الدائرة لا يتجاوز 360
و لو جاوزته فذلك يعنى أننا بدأنا بلفة أخرى على نفس الدائرة أو نفس المقياس

ل
ولتطبيق ذلك على العملية التي وضعتها في الرسم:
نجد :210 +150 = 360


لا ينطبق ما ذكرت على الرسم
الرسم يصف عملية طرح بينما نجد فى الإقتباس عملية جمع

لو كنا نتفق أن 230 - 20 = 210
فأعتقد أن تطبيق عملية mod بسيطةعلى الناتج ستفى بالغرض و سيتم إستخدام 360 كمعامل لهذه الدالة
بداية لاحظ أن الصفر و 360 متجاورتان فى الترقيم (مع حفظ القيم طبعا فالصفر لا يساوى 360 عمليا)
فلو تخيلنا أن الزاوية هى 3615

فسنعرف أن هناك نقطة لفت حول مركز دائرتها 10 لفات كاملة فأعطت زاوية 3600 ( عشرة أضعاف 360 ) و بذلك سيشير القياس إلى صفر
ثم مضت 15 درجة و عليه فهى لا تبتعد عن صفر الترقيم إلا 15 درجة فقط بالرغم من قيمتها المرتفعة جدا
لذلك هنا الزاوية = 15 (بتعبير أدق هو قيمة المحصلة النظرية لتلك الزاوية)

و أقول النظرية و ليس العملية
فلو لوينا عنق أحدهم 362 درجة فهو لا محالة هالك برغم أن المحصلة تشير أننا لوينا عنقه درجتان فقط !!!
لا تقلق أمزح فقط :abc_065:

أما دالة المود فستعطيك بإيجاز باقى القسمة على الرقم الذى حددته

المثال
3615 مود 360 = 15

أعتقد أنك لا تحتاج منى إدراج الكود لك فهو كود قياسى جاهز فى المجموعة math
تحديدا هو math.mod
أنصحك بدراسة تلك الدالة و فهمها جيدا
فطالما أنك تهتم بالرياضيات فهى تغنيك عن حلقة برمجية كاملة
تحياتى
:abc_152:

ثامر أبو بلقيس
05-02-2014, 01:03 PM
السلام عليكم
في البداية مرورك أخي هام .
اهتمامي بالرياضيات فرضه عني واقع العمل
و دوال الرياضيات الموجودة في البرنامج مهتم بها كثيرا
ودائما أسال الاساتذة اذ استعصي الامر بعد المحاولة شكرا جزيلا

أستاذ خالد : عملية الجمع وضعتها بالقصد لأن الزاوية المجتمعة حول نقطة
أو في دائرة لا تتجاوز 360 درجة

وعليه سأضع أكواد " محاولة " لحساب الفرق بين زاويتين وفق حالتنا
على أن تصحح أو تنتقد :
x=Input.GetText("Input1");
y=Input.GetText("Input2");
----
t= Math.Abs(x-y);
if t <= 180 then
Input.SetText("Input3", Math.Abs(x-y));
elseif t > 180 then
Input.SetText("Input3", 360-t);
end

النصل القاطع
05-02-2014, 10:02 PM
لا زالت معادلتك تتعامل مع 230 -20 على أنها تساوى 150

لا أفهم
فهمت الجمع جيدا
لكن عند الطرح ... ما دخل 180 فى القصة ؟؟

أنا فتحت صنبور المياه بدرجة زاوية 230 ثم عدت و رجعت و أغلقت الصنبور فى الإتجاه المعاكس 20 درجة
كم ستكون قياس زاوية فتح صنبور المياه ؟؟
150 ؟؟ أم 210 ؟؟ لا أعرف

دائرة القياس بها أربعة أرباع
السؤال
هل لهذه الأرباع إشارات ؟؟


حسنا لناقش كودك كما هو بإفتراض صحته رياضيا
لن يستقيم معك الأمر قبل أن تقوم بإجراء مود ل x على الأساس 360
و نفس الشيئ لل y
أو للتسهيل عمل مود بأساس 360 للناتج
و إلا تجد مشاكل عند طرح قيم صغيرة من قيم كبيرة جدا

النصل القاطع
05-02-2014, 10:19 PM
حسنا بعد البحث تبين أنك لم تصف المشكلة بشكل صحيح
المسألة ليست الفرق بين زاويتين
هذا هو ما تتكلم عنه

*الانحراف الدائرى هو عباره عن الزاويه من اتجاه الشمال الى الخط مقاسه فى اتجاه عقارب الساعة ويتراوح قيمته من 0 الى 360

*الانحراف المختصر ويمكن حسابه من الانحراف الدائرى وتتراوح قيمته بين 0 و 90 مع تحديد الربع الواقع فيه

- الانحراف المختصر فى الربع الاول هو نفسه الانحراف الدائرى

- فى الربع الثانى يتم حساب الانحراف المختصر من طرح 180 من الدائرى

- فى الربع الثالث يتم حساب الانحراف المختصر من طرح الدائرى من 180

- فى الربع الرابع يتم حساب الانحراف المختصر من طرح الدائرى من 360

* الانحراف الربع دائرى يحسب هذا الانحراف من اتجاه الخط الشمال او الشرقى او الجنوبى او الغربى الى الخط نفسه



هل هذا ما تقصده ؟؟

ثامر أبو بلقيس
05-02-2014, 10:23 PM
السلام عليكم
درسنا في الرياضيات أن الزاوية تبدأ من الدرجة 0 لقد أخطأتَ عندما
بدأت حساب الزاوية الثانية 20 من الزاوية الأولى 230 فالأصح
عند تعيين الزاوية 230 ترجع للنقطة 0 لتعين الزاوية 20
دقق في الرسم لتظهر لك الحقيقة و لمعالجة المشكلة التي طرحتها
حتى و إن من المستحيل أن تعلم زاوية أكثر من 360
وأرجع إلى صنبور الحنفية هل ستحقق زاوية أكثر من 360
طبعا لا لأن في الحقيقة 360 هي نفسها الزاوية 0
وحتى و إنها مستحيلة التحقيق عمليا فقد وضعت تصحيحا نظريا
x= Input.GetText("Input1");
x = String.ToNumber(x);
y= Input.GetText("Input2");
y = String.ToNumber(y);
t = Math.Abs(x-y);
if t <= 180 then
Input.SetText("Input3",Math.Abs(x-y));
elseif t >180 then
Input.SetText("Input3",360-Math.Abs(x-y));
end
-------
if x>360 and y>360 then
t1 = Math.Abs(Math.Mod(x,360 )-Math.Mod(y,360));
if t1 <= 180 then
Input.SetText("Input3",Math.Abs(Math.Mod(x,360)-Math.Mod(y,360)));
elseif t1 >180 then
Input.SetText("Input3",360-Math.Abs(Math.Mod(x,360 )-Math.Mod(y,360)));
end
end

النصل القاطع
05-02-2014, 10:34 PM
فهمتك أخى
انت تقصد قياس الزاوية من خط الزاوية إلى خط الصفر من أقصر طريق

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

ثامر أبو بلقيس
05-02-2014, 10:38 PM
أعرف بأنك ستفهمني لذلك قلت مرورك هام بالنسبة لي
تقديري واحترامي :abc_152:

ثامر أبو بلقيس
06-02-2014, 01:07 AM
محاولة لضبط العملية قدر الامكان ومعالجة بعض الاختلالات

x= Input.GetText("Input1");
x = String.ToNumber(x);
y= Input.GetText("Input2");
y = String.ToNumber(y);
if x >= y then
t = Math.Mod((x + 180 -y), 360) - 180
Input.SetText("Input3", Math.Abs(t));
elseif x< y then
t = Math.Mod((y + 180 -x), 360) - 180
Input.SetText("Input3", Math.Abs(t));
end