[وثائقيات وعلوم] تحويل الأنواع (علوم حاسوب)

[ منتدى نور المعرفة ]


النتائج 1 إلى 6 من 6
  1. #1

    الصورة الرمزية _MasterPiece

    تاريخ التسجيل
    Nov 2008
    المـشـــاركــات
    1,960
    الــــدولــــــــة
    اليمن
    الــجـــــنــــــس
    ذكر
    الـتـــقـــــيـيــم:

    Post [وثائقيات وعلوم] تحويل الأنواع (علوم حاسوب)





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


    واو! ثالث مواضيعي في هذا المنتدى المفيد. فرحان

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

    هذا الموضوع يتحدث عن تحويل الأنواع في البرمجة (Type Conversion). ومع أنه موضوع مخصص في مجال محدود لا أظن كثيرًا سيقرؤنه، ولكن إن شاء الله تستفيدون. ما دفعني لكتابته هو عدم احتواء الويكيبيديا العربية لهذا الموضوع بتاتًا، بل لا تحتوي كثيرًا عن مواضيع الحاسوب، ونحاول ما استطعنا أن نترجم.

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

    خلاص، بلا فلسفة. شدوا الأحزمة، وانطلقوا.

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







    تحويل الأنواع "Type conversion وأحيانًا يسمى بقولبة الأنواع، بأنه تغيير ماهية نوع معين من البيانات الحاسوبية إلى ماهية نوع آخر
    سواءٌ كانت هذه العملية
    صريحة "من قبل المبرمج" أو ضمنية"من قبل المصرف".
    تتم هذه العملية بالاستفادة من تسلسل الأنواع
    ، فمثلاً في لغة السي، إن كان لدينا نوع قصير "short" والذي يتكون بايتين اثنين،
    فإنه يمكن أن تُعاد صياغته ليكون من نوع رقم صحيح "integer" دون خسران أي بيانات.
    وفي البرمجة
    كائنية التوجه، فإن تحويل الأنواع يمكن البرامج من أن تتعامل مع الكائنات "object" كما لو كانت
    واحدة من أسلافها بالاستفادة من ميزة
    الوراثة "inheritance".




    تفاسير مختلفة لذات البيانات أو ما يعرف بالقولبة.


    ------------------------

    في اللغات البرمجية
    خوارزمية البناء "Algol-based" كباسكال والتي تدعم تعريف الدوال المتداخلة فإن عبارتي قولبة وتحويل مختلفتان في المعنى.
    فالتحويل هنا يعني أن تصاغ الأنواع بشكل آخر يغير في متطلبات تخزينها،
    وقد يحدث فيها أيضًا فقدانٌ لدقة البيانات خاصة الكبيرة والصغيرة منها.
    أما قولبة فتعني أن تفسر الأنواع بشكلٍ آخر دون تغييرها،
    فعدد صحيح من بايتين يمكن تفسيره كستة عشر نوع من بولْيِن "Boolean" أو كنوعين من المحارف.
    أما في
    لغة السي وشاكلاتها فإن قولبة تعبر عن تحويل صريح والتحويل يعبر عن تحويل ضمني دون تدخل المبرمج.







    تحول الأنواع في العبارات البرمجية التي تحتوي على أنواع مختلفة إلى النوع الأكبر بينها حسب أولوية التنفيذ
    .
    لتوضيح كيفية حدوث هذا الأمر
    ، انظر إلى هذا الكود البرمجي:







    لاحظ أن السطر الرابع في الكود يقارن بين متغير عدد صحيح كبير وآخر من نوع مضاعف "double"،
    في هذه الحالة لا يستطيع الحاسوب المقارنة إلا إذا كان المتغيران من نفس النوع،
    حينئذ يحول
    الصغير "في حالتنا هذه يكون متغير العدد الصحيح الكبير" إلى الأكبر منه"المضاعف".
    تجدر الإشارة إلى أن
    المبرمج يستطيع عكس العملية، ولكن ذلك يعطي خطأً حين التصريف.
    وهذا ما عليه
    السطر الخامس من الكود السابق حين تخزن قيمة مضاعفة تحتل8 بايتات في مساحة عدد صحيح يحتل غالبًا 4 بايتات. "استنادًا إلى نظام ويندوز 32-بت"
    أما في
    السطر الرابع والسادس فلا بأس فيهما لأن ما يُخزن في المتغيرات في نطاق مساحتهما.
    ومن المفيد الإشارة إلى أن التحويل من
    عدد صحيح إلى عدد صحيح كبير لا يعدو كونه
    أكثر من
    نسخ حرفي للبتات "مع الأخذ بعين الاعتبار إشارة الرقم في الأنواع ذوات الإشارتين"كما الحال في السطر السادس،
    أما حين التحويل من
    عدد صحيح"عاديًا كان أو كبيرًا" فإن المصرف يقوم بترجمته إلى صيغة مقابلة في أنواع الفاصلة العائمة "floating-point
    وغالبًا ما يكون هذا بالاستناد إلى
    معيار IEEE 754.
    إلا أن بعض أنواع الفاصلة العائمة ذات الـ 32 بتَّا لا تستطيع أن تخزن أرقامًا كبيرة من نوع عدد صحيح كبير كما هو ظاهر في الكود أسفلاً.
    حيث يظهر أن البرنامج سيطبع حين التنفيذ16777217، و 16777216.0، وحين المقارنة سيساوي البرنامج بينهم!
    ما حدث هنا هو أن الفاصلة العائمة لا تستطيع أن تحوي العدد الكبير
    16777217 بل أنقصته حتى أكبر عدد صحيح تستيطع تخزينه وهو 16777216،
    وأما المساواة بينهما صحيحة لأن المصرف سيحول العدد الكبير إلى نوع فاصلة عائمة بدقة32 بت
    والتي بدورها ستنقص قيمة العدد الصحيح حتى أكبر عدد صحيح يمكنها تخزينه وعندها يتساوى المختلفان!








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





    التحويل الصريح هو ذلك الذي يقوم به المبرمج به من تلقاء نفسه ولا دخل للمصرف فيه.
    أحد أهم الاستخدامات في
    التحويل الصريح تتمحور حول كيفية الحفاظ على القيمة الناتجة عن العمليات الحسابية المختلفة.
    مثلاً، إن قسمنا
    3 على 2 مع الأخذ بعين الاعتبار أنهما من نوع عدد صحيح، فإن الناتج سيكون 1،
    ومع أنه من المفترض أن يكون الناتج
    1.5، إلا أن المصرف يعتقد بأن العملية الحسابية بين نوعين متساويين تنتج نفس النوع فهو يحول 1.5 لتكون عدد صحيح لذلك السبب،
    وللاتفاف على هذا تقولب أحد الأنواع كالتالي
    :






    -------------------------



    كان معكم
    :

    المترجم: Gh.S
    المدقق: ポートガス・D・エース
    المصمم: ポートガス・D・エース
    المنسق: ポートガス・D・エース
    ناشر مسومس: Gh.S
    ناشر ويكيبيديا: Gh.S




    التعديل الأخير تم بواسطة _MasterPiece ; 30-3-2012 الساعة 10:49 AM

  2. #2

    الصورة الرمزية إكسير الحياة

    تاريخ التسجيل
    Jul 2010
    المـشـــاركــات
    667
    الــــدولــــــــة
    مغترب
    الــجـــــنــــــس
    ذكر
    الـتـــقـــــيـيــم:

    افتراضي رد: [وثائقيات وعلوم] تحويل الأنواع (علوم حاسوب)

    شكرا أيها العضو الجديد
    رفايل يظنك عضو جديد هههه
    نسيت أنك غيرت لقبك .. ووضعت القديم في فقرة العاملين على الموضوع =ـ=

  3. #3

    الصورة الرمزية القـ{الطموح}ـمر

    تاريخ التسجيل
    Apr 2007
    المـشـــاركــات
    605
    الــــدولــــــــة
    السعودية
    الــجـــــنــــــس
    أنثى
    الـتـــقـــــيـيــم:

    افتراضي رد: [وثائقيات وعلوم] تحويل الأنواع (علوم حاسوب)


    رائع رائع رائع جداً ما شاء الله
    أحببت هذا الموضوع كونه قريب من تخصصي الممتع ~_~
    وفقكم الله و بارك في جهودكم

  4. #4

    الصورة الرمزية _MasterPiece

    تاريخ التسجيل
    Nov 2008
    المـشـــاركــات
    1,960
    الــــدولــــــــة
    اليمن
    الــجـــــنــــــس
    ذكر
    الـتـــقـــــيـيــم:
    كاتب الموضوع

    افتراضي رد: [وثائقيات وعلوم] تحويل الأنواع (علوم حاسوب)

    اقتباس المشاركة الأصلية كتبت بواسطة ポートガス・D・エース مشاهدة المشاركة
    شكرا أيها العضو الجديد
    رفايل يظنك عضو جديد هههه
    نسيت أنك غيرت لقبك .. ووضعت القديم في فقرة العاملين على الموضوع =ـ=
    لا بأس. أفضل استخدام الأول مع الفريق وأرجو أن تقبلوني عضوًا في الفريق P:

    اقتباس المشاركة الأصلية كتبت بواسطة القـ{الطموح}ـمر مشاهدة المشاركة

    رائع رائع رائع جداً ما شاء الله
    أحببت هذا الموضوع كونه قريب من تخصصي الممتع ~_~
    وفقكم الله و بارك في جهودكم
    إن شاء الله تكوني استفدت ^^

  5. #5

    الصورة الرمزية نجمة الإسلام

    تاريخ التسجيل
    Jun 2010
    المـشـــاركــات
    1,302
    الــــدولــــــــة
    الجزائر
    الــجـــــنــــــس
    أنثى
    الـتـــقـــــيـيــم:

    افتراضي رد: [وثائقيات وعلوم] تحويل الأنواع (علوم حاسوب)

    ماشاء الله ..موضوع مميز و تنسيق جمييل

    جزيتم خيرا على المعلومات الفريدة و العمل

    ننتظر جديدكم دوما

  6. #6

    الصورة الرمزية سميد

    تاريخ التسجيل
    Apr 2008
    المـشـــاركــات
    33,763
    الــــدولــــــــة
    السعودية
    الــجـــــنــــــس
    ذكر
    الـتـــقـــــيـيــم:

    افتراضي رد: [وثائقيات وعلوم] تحويل الأنواع (علوم حاسوب)

    وعليكم سلام
    ما شاءالله ابداع هنا او هنا
    ك
    اشكرك على معلومات مثيره عن اللغه جديده في الاوامر
    و كمان شكر الى كل من ساهم معك
    الله يحفظكم ويبارك فيكم
    تحياتي

الكلمات الدلالية لهذا الموضوع

المفضلات

المفضلات

ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  
Loading...