اي كود، شكرا لك
وصل برنامجك وسأحاول ان ارى ما استطيع فعله في اقرب فرصة
اعذرني، كثرت المشاغل التي تنتظرني بسبب الإنقطاع الطويل ^^"
وعليكم السلام
عفوا أخي،
في الحقيقة لم استعمل مكتبة window قبلا لذا لا اظن اني سأفيدك في هذا الأمر
قد يفيدك الاخ wahdain في هذا الموضوع
لكن عموما استطيع استنتاج ان مكتبة ويندوز تحوي دوال و كلاسات تستخدم لتسهيل التعامل وصنع البرامج التي تبستخدم نوافذ لبنائها وليس البرامج التي تحتاج الى بيئة دوس مثلا لتشغيلها كما يحدث عند عمل برنامج الكونسول (console applications)
اما مكتبة iostream فأحد استخداماتها الأساسية تسهيل أخذ المعطيات من المستخدم واخراج المخرجات على الشاشة السوداء وذلك باستخدام cin و cout على سبيل المثال
والمكتبة مليئة بالدوال وليست مقتصرة على ذلك فقط
يمكنك البحث في ال help الخاص بال c++ عن المزيد ان كنت تتطلع الى أكثر من ذلك
عفوا جدو، وعذرا عن التأخر
المعذرة، لا اعلم ماذا تقصد ب 64G؟!!
^^"
اهلا أهلا ^_^
انا بخير كيف حالك انت؟
همممم، بصراحة يبدو انك لم تقرأ جيدا
الرقم الذي اردت تحويله هو رقم binary
وهذا هو:
1011010110
اريدك ان تحوله الى octal
حسنا اريدك ان تضع في اعتبارك نقطتين:
1 - ان اردت التحويل من اي نظام الى اي نظام حول اولا الى النظام ال binary ثم من ال binary حول الى النظام الاخر
بمعنى مثلا
انت الان اردت ان تحول 13 من نظام عشري (decimal) الى ثماني (octal)
قم اولا بتحويلها الى نظام ثنائي (binary) ثم بعد ذلك حولها الى الثماني
2 - لا تقم بالحفظ، الأمر اسهل مما تتخيل، سأشرح لك نقطة ضعها في اعتبارك جيدا وستفهم كيف تتم هذه المسائل
كيف تعد الأرقام العادية؟ (بالمناسبة الأرقام العادية هي الأرقام العشرية (decimal))
سأخبرك: الأرقام العادية (العشرية) سميت بهذا الإسم لأن أي رقم فيها يتكون من عناصر عددهم 10
هذه العناصر هي: 0 و 1 و 2 و 3 و 4 ....... الى 9
فمثلا عندما نعد حتى نصل الى 9 ثم نزيد واحد سيصبح العدد لدينا يساوي 10
كيف نمثل العشرة اذن؟
عندما كنا نعد من 0 الى 9 كنا نمثل الرقم لدينا بخانة واحدة فقط من الأرقام
لكن بما ان الرقم لدينا زاد عن 9 فوجب ان نمثله بخانتين
خانة الآحاد صارت بصفر ثم استحدثنا خانة جديدة اسمها العشرات وضعنا فيها 1 لتمثيل قيمة العشرة
اذن عندما نكتب 11 مثلا، هذا يعني ان خانة الأحاد نقوم بعدها كما هي دون تغير، لكن خانة العشرات نقوم بضرب الرقم الموجود تحتها في 10 ليعطينا قيمته الحقيقية اليس كذلك؟
كأنما نقول بأن 11 = 1 + 10
نظام الترقيم كله بهذه الطريقة
نعد في خانة الأحاد حتى نكتب اكبر قيمة ممكنة يمكن ان نصل اليها ثم بعد ذلك نزيد خانة جديدة بقيمة الرقم الأول من نظام العد
الجملة بالأحمر مهمة جدا اقرأها مرارا حتى تفهمها تماما
فمثلا في النظام العشري لدينا 10 ارقام يمثلون العدد وهم من 0 الى 9
اما في النظام الثنائي فلدينا رقمين فقط (كل نظام لديه عدد من الأرقام مشتق من اسمه) وهما الصفر والواحد
فلو استخدمنا الصفر لتمثيل الصفر ثم بعد ذلك استخدمنا الواحد لتمثيل الواحد فلن نجد ما يمثل رقم 2
اذن نستحدث خانة جديدة لتمثيل رقم 2 نضع فيها 1 وعن يمينه صفر كما فعلنا تمام عند تمثيل العشرة
وهكذا
كذلك النظام الست عشري (hexa) الخانة الواحدة فيه مكونة من 16 رقما مختلفا، من 0 الى 9 ثم بعد ذلك 10 يمثلها a و11 يمثلها b وهكذا حتى 15 يمثلها f
بعد ذلك لن نجد ما يمثل 16، اذن لنستحدث خانة اخرى بجانبها ونكتب فيها 1 ونصفر الخانة السابقة لتصبح قيمة 16 في الhexa تساوي 10
اذن سأكتب لك القيم من 1 الى 20 على سبيل المثال بكل النظم المتاحلة لتفهم الأمر أكثر
سيكون التمثيل هكذا:
الرقم العادي -- الرقم بالbinary -- الرقم بالoctal -- الرقم بالhexa
0 -- 0 -- 0 -- 0
1 -- 1 -- 1 -- 1
2 -- 10 -- 2 -- 2
3 -- 11 -- 3 -- 3
4 -- 100 -- 4 -- 4
5 -- 101 -- 5 -- 5
6 -- 110 -- 6 -- 6
7 -- 111 -- 7 -- 7
8 -- 1000 -- 10 -- 8
9 -- 1001 -- 11 -- 9
10 -- 1010 -- 12 -- A
11 -- 1011 -- 13 -- B
12 -- 1100 -- 14 -- C
13 -- 1101 -- 15 -- D
14 -- 1110 -- 16 -- E
15 -- 1111 -- 17 -- F
16 -- 10000 -- 20 -- 10
17 -- 10001 -- 21 -- 11
18 -- 10010 -- 22 -- 12
19 -- 10011 -- 23 -- 13
20 -- 10100 -- 24 -- 14
كما لاحظت من الأرقام السابقة، نحن نكتب في خانة الأحاد كل الأرقام الممكنة في نظام معين، بعد ان نفرغ من جميع الأرقام الممكنة في هذا النظام نقوم باستحداث خانة جديدة قيمتها = 1 ثم نبدأ العد مرة أخرى في الأحاد من اول صفر وحتى اخر رقم متاح في النظام، بعد ان نصل مرة اخرى في خانة الأحاد الى اقصى رقم متاح في نظام العد، نقوم بزيادة الخانة الجدية التي كانت بواحد مرة اخرى
طيب اذا وصلت تلك الخانة المستحدثة الى اقصى عدد متاح في انظام هي الأخرى؟
نقوم عندها باستحداث خانة جديدة ثالثة قيمتها بواحد كذلك ثم نصفر الخانتين الأولتين ونبدأ العد فيهما من جديد
هل فهمت هذه النقطة؟
مهم جدا ان تكون فهمتها لأنك لو مثلت اي رقم بشكل خاطئ ستشعر بذلك وحدك مع الوقت ^_^
لن لم تكن قد فهمتها اخبرني وسأعيد شرحها لك بطريقة اخرى
الان لتحويل رقم 13 من عشري الى ثنائي ثم بعد ذلك الى ثماني نقوم بالآتي:
نقسم ال 13 على 2 كما اتفقنا سابقا
13/2 = 6.5
هذا هو الناتج الحقيقي، ستة ونصف
لكننا لن نقسم بهذه الطريقة فنحن لا نحتاج الكسور لذا سنقول ان الناتج يساوي 6 فقط ويبقى 1 (كما تعرف 6 ضرب 2 = 12 + الواحد المتبقي فيكون الناتج 13)
اذن سنكتب القسمة هكذا:
13/2 = 6 والباقي 1
الان نأخذ ناتج القسمة وهو ال6 ونقسمها هي الاخرى على 2 هكذا
6/2 = 3 والباقي = 0
3/2 = 1 والباقي = 1 -> (اقسم 3 على 2 سينتج 1.5 لكن كما قلت لك لا نعترف هنا بالكسر و لذا سنقول ان ناتج القسمة يساوي 1 والباقي 1)
الان نأخذ ناتج القسمة والذي هو 1 ونقسمه هو الاخر على 2
1/2 = 0 والباقي 1 -> (اقسم 1 على 2 سينتج 0.5 لكن كما قلت لك لا نعترف هنا بالكسر و لذا سنقول ان ناتج القسمة يساوي 0 والباقي 1)
الان هل ترى الأرقام المكتوبة باللون البرتقالي؟
خذها من اعلى الى أسفل ورصها من اليمين الى اليسار (بحيث يكون الرقم في السطر العلوي هو الذي على اليمين والرقم الذي في السطر السفلي هو الذي على اليسار) هكذا 1101
هذا هو تمثيل 13 بالbinary
الان نريد تحويل هذا ال binary الى octal
الأمر سهل
نرص الرقم الbinary هكذا:
1101
بعدها نأخذ كل 3 ارقام مع بعضهم ونمثلهم في هيئة رقم واحد
لكن الرقم الbinary السابق مكون من 4 خانات ولا يمكن تقسيم هذه الأربعة على 3 !!!!
لا مشكلة كما قلنا سابقة، نزيد اصفار من اليسار ليصبح الارقم السابق هكذا:
001101
الان اصبح مكون من 6 خانات نستطيع تقسيمهم الى عددين كل عدد منهم مكون من 3 خانات
نقسمه هكذا:
101 001
101 هذه نستطيع ايجاد قيمتها بمجرد النظر وهي تمثل 5 وأيضا 001 تمثل 1
اذن الرقم 13 العشري = 15 في النظام الثماني او ال octal
فقط هذا هو كل شيئ
هل ترى كم هو بسيط
ستحل الواجب كذلك، لا تحاول الهروب
مازال الواجب مطلوب
حول هذا الرقم من ثنائي الى ثماني والعكس حتى اتأكد انك فهمت
الرقم هو:
1011010110 <- رقم ثنائي (binary)
لا تنسى، للتحويل من اي نظام الى اي نظام نحول اولا الى ثنائي ثم الى النظام المطلوب
ايضا للتحويل من النظام الثماني او السادس عشري الى النظام الثنائي، مثل كل خانة بما يقابلها في الbinary بحيث يكون عدد الخانات في النظام الثماني 3 والسادس عشري 4
ثم رصهم بجانب بعضهم تحصل على الرقم الثنائي
اما نظام الBCD فهو سهل وسأشرحه لك بعد التأكد من انك فهمت هذا النظام


رد مع اقتباس

المفضلات