احصائيات سريعة
البحث

اكثر المحتويات زيارة
الدوال في الاكسل (5,664 مشاهده)
ربط قاعدة بيانات أكسس (MS Access) مع برنامج الفيجوال بيسك بطريقة(ODBC) (3,767 مشاهده)
الدرس الثالث : بعض تطبيقات الدوال في اكسل (2,800 مشاهده)
تعريف الاستعلام وطريقة عرضه في آكسس، أنواع الاستعلامات، نافذة تحديد الاستعلام! (2,134 مشاهده)
الدرس الثاني: بعض الحيل لتسهيل برنامج اكسل (2,038 مشاهده)
شرح طريقة استعمال الأوتلوك مع بريد الهوتميل (1,860 مشاهده)
تغيير لغة واجهة التطبيق من عربي الى انجليزي وبالعكس لـ Windows-based applications (1,850 مشاهده)
أنواع العلاقات وطريقة الربط بين الجداول. (1,758 مشاهده)
مقدمة عامة حول الاكسل وحيل خاصة بالاكسل (1,593 مشاهده)
أنشئ قاعدة بياناتك التي ستستند إليها في تعلم طريقة ربط الجداول والاستعلامات. (1,541 مشاهده)
الدرس الأول : عمل شريحة في البوربوينت (1,445 مشاهده)
دورة الأكسس: الدرس السادس : منوعات في أكسيس . (1,361 مشاهده)
كيفية حل مشاكل الانترنت اكسبلور Internet Explorer (1,295 مشاهده)
اضافه صوت ونص لخلفيه في باور بوينت (1,226 مشاهده)
شرح طريقة التجميع Grouping في برنامج الاكسل (1,216 مشاهده)
برنامج Windows Movie Maker لتكوين أفلام (1,169 مشاهده)
التعرف على مكونات الكمبيوتر (1,166 مشاهده)
دروس في الأوفيس الأكسس - Access0- (1,152 مشاهده)
درس تعريب المجلة (1,142 مشاهده)
مقدمة في ربط قواعد البيانات داخل بيئة الـ .NET باستخدام الـ VB.NET (1,094 مشاهده)
كيف تجعل برنامجك أكثر تألقا وجمالا باستخدام أداة Active Skin (1,049 مشاهده)
ما هو المات لاب MATLAB؟ (995 مشاهده)
مقدمة عن لغة البيسك (990 مشاهده)
دورة الأكسس: الدرس السادس : منوعات في أكسيس .0--- (964 مشاهده)
الفيجوال بيسك - مقدمة (946 مشاهده)
جديد مواد
التحويل التلقائي للحروف ل- ل- ه إلى اسم الجلالة0---- (626 مشاهده)
النسبة المئوية لا تظهر بالخط العربي & الشدة وألف المد في لفظ الجلالة0---النسبة المئوية لا تظهر بالخط العربي & الشدة وألف المد في لفظ الجلالة0--- (354 مشاهده)
ضبط خيارات اللغة فى الـ Microsoft Word0--- (392 مشاهده)
استخدام لوحة المفاتيح في الـ Word0---- (551 مشاهده)
إضافة كلمة سر إلي ملفات الورد دون استخدام برامج0--- (497 مشاهده)
دمج المراسلات0-- (245 مشاهده)
وضع صورة كخلفية للنص0-- (364 مشاهده)
السماح للمستخدمين بتعديل أجزاء من ملف وورد محمي (Word2003)0--- (272 مشاهده)
كتابة الأرقام الكسرية ورموز المعادلات0-- (436 مشاهده)
درس كامل عن الدمج السهل من لوحة المفاتيح ف0-ي برنامج الـ Word (341 مشاهده)
دورة الأكسس: الدرس السادس : منوعات في أكسيس .0--- (964 مشاهده)
دورة الأكسيس : الدرس الرابع : العلاقات0---- (568 مشاهده)
أساسيات في Access0--0 (384 مشاهده)
تصميم تقرير لطباعة البيانات0---- (432 مشاهده)
تصميم نموذج استعراض البيانات‏0--تصميم نموذج استعراض البيانات‏0-- (406 مشاهده)
تصميم نموذج إدخال‎ ‎البيانات0--- (433 مشاهده)
إنشاء قوائم خاصة باستخدام الماكرو(1)0-- (373 مشاهده)
خطوات إنشاء الماكرو في تذييل النموذج (2)0-- (310 مشاهده)
خطوات إنشاء الماكرو في تذييل النموذج (1)0- (283 مشاهده)
استعلامات SQL في Access - تعديل الجداول وإضافة الحقول0- (371 مشاهده)
استعلامات SQL في Access - تحديث البيانات الجدولية0-- (333 مشاهده)
الاستعلامات الإجرائية -4 (استعلام الحذف)0--- (185 مشاهده)
الاستعلامات الإجرائية -2 (استعلام الإلحاق)0--- (212 مشاهده)
تصميم تقرير لطباعة الإجمالي0--- (268 مشاهده)
استعلامات التحديد Select Query مع أمثله (1)0--- (337 مشاهده)
روابط ذات صلة
قريبا ان شاء الله
كلمات البحث
ابحث ايضا عن
التحويل العلني--

التحويل العلني- Explicit Conversion




التحويل العلني- Explicit Conversion


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


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


من الجدولين 1 و 2 في درس أنواع البيانات، نجد أن المساحة التخزينية المتاحة لمتغير من النوع int هي 2 بايت، ويشمل هذا جميع الأعداد الصحيحة 2147483648- وحتى 2147483647 ولمتغير من النوع long هي 4 بايت ويشمل هذا جميع الأعداد الصحيحة من 9223372036854775808 -  وحتى 9223372036854775807.


وهذا يؤكد إمكانية تحويل أي متغير long إلى int ولكن بشرط أن تكون قيمة المتغير long ضمن نطاق المتغير int. ولكن التحويل هنا علني أي يحتاج لكتابة كود إضافي كما في المثال التالي:

 

int a;

long b;


b=20;


a=(int) b;


Console.WriteLine("a = {0}", a);


Console.WriteLine("b = {0}", b);


 

هذا المثال عكس المثال السابق، فقد حولنا من long إلى int، وذلك بنقل القيمة الموجودة في المتغير b من النوع long إلى المتغير a من النوع int، وهذا ممكن حيث أن القيمة 20 موجودة ضمن نطاق النوعين long و int، ويتم ذلك بكتابة نوع المتغير الذي نريد التحويل إليه بين قوسين كما هو موضح أعلاه.


هذا في حال أن القيمة موجودة ضمن نطاقي المتغيرين، ولكن ماذا لو كانت القيمة أكبر من نطاق المتغير الذي نود التحويل إليه؟


كأن نحول من النوع short (مساحته التخزينية 2 بايت ويشمل هذا أي عدد صحيح ضمن النطاق من 32768- إلى 32767) إلى النوع byte (مساحته التخزينية 1 بايت ويشمل هذا أي عدد صحيح ضمن النطاق من 0 إلى 255) وذلك بنقل القيمة 257 من متغير نوعه short إلى متغير نوعه byte ؟


طبّق معنا هذا المثال لنرى النتيجة:

 

byte val1;

short val2;


val2=257;


val1= (byte) val2;


Console.WriteLine("val1 = {0}", val1);


Console.WriteLine("varl = {0}", val2);


 

لاحظ أن النتيجة ستظهر كالتالي:



نلاحظ أن القيمة قد تغيرت بعد نقلها إلى المتغير val1، أي بعد تحويلها من النوع short إلى النوع byte، ومن البديهي أن يحصل مثل هذا الأمر، والذي يعتبر من خطأ المبرمج وليس خطأ الكومبيوتر!


فكما عرفنا أن الكومبيوتر يحتفظ بالبيانات في صورتها الرقمية، أي في صورة سلسة من 0 أو 1 والتي يتم تخزين كل منها في خانة عشرية bit.


والنوع byte يحجز مساحة قدرها 1 بايت أي 8 خانات عشرية (1 بايت = 8 خانات عشرية) لتخزين قيمة المتغير من النوع byte فيها، بينما النوع short فيحجز مساحة قدرها 2 بايت أي 16 خانة عشرية لتخزين قيمة المتغير من النوع short فيها.


 


المساحة التخزينية المحجوزة للمتغير val1


من النوع byte



المساحة التخزينية المحجوزة للمتغير val2


من النوع short


في المثال السابق، قمنا بتخزين القيمة 257 في المتغير val2 وهو من النوع short وتم تخزينه كما يلي في ذاكرة الكومبيوتر:



وعند نقل هذه القيمة إلى المتغير val1 وهو من النوع byte يتم تخزين البيانات بدءً من اليمين إلى اليسار وحتى 8 خانات فقط وهي المساحة التخزينية المتاحة لهذا النوع! كالتالي:



وهذه القيمة الثنائية مساوية للواحد، ولهذا فالنتيجة ظهرت مساوية للواحد بعد نقل القيمة للمتغير val1 في المثال السابق.


هذا الأمر قد يسبب مشاكل في البرنامج، إذا لم ينتبه المبرمج لذلك أثناء البرمجة!


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


الطريقة الأولى:


checked(expression);

أو العبارة التالية لعدم التنبيه:


unchecked(expression);

وهذا المثال السابق بعد استخدام أمر التحقق من أن المتغير الجديد مناسب للقيمة المنقولة إليه:


byte val1;

short val2;


val2=257;


val1=checked((byte) val2);


Console.WriteLine("val1 = {0}", val1);


Console.WriteLine("varl = {0}", val2);


بعد تنفيذ هذا الكود ستظهر رسالة الخطأ التالية:



والطريقة الأخرى كما ذكرنا ضمن بيئة VS.NET تجعل المترجم ينبه المبرمج عن هذا الخطأ دون الحاجة لكتابة الأمر السابق، وذلك بالنقر على اسم المشروع في نافذة Window Explorer بالزر الأيمن، وأختيار Properities، لتظهر نافذة جديدة، اختر Configuration Properties من القائمة الموجودة على يسار هذه النافذة، ثم أختر build. ثم من القائمة الموجودة على يمين هذه النافذة غير في خصائص الخاصية Check for Arithmetic Overflow/Underflow واجعلها True كما هو موضح في الشكل التالي:



التحويل العلني--

أضف هذه المادة في موقعك:
مواد مشابهة:
Exception Handling-- Exception Handling--
Exception Handling--
(مرات المشاهدة: 42 مرات)
الدرس الثاني : شرح برنامج Print welcome مع بعض المختصرات للطباعة الدرس الثاني : شرح برنامج Print welcome مع بعض المختصرات للطباعة
الدرس الثاني : شرح برنامج Print welcome مع بعض المختصرات للطباعة
(مرات المشاهدة: 114 مرات)
أنواع البيانات – Data Types أنواع البيانات – Data Types
أنواع البيانات – Data Types
(مرات المشاهدة: 124 مرات)
أحد الإمكانيات الهامة في أي لغة برمجة هي التعامل مع الملفات أحد الإمكانيات الهامة في أي لغة برمجة هي التعامل مع الملفات
أحد الإمكانيات الهامة في أي لغة برمجة هي التعامل مع الملفات
(مرات المشاهدة: 172 مرات)
الدرس التاسع : تركيبة while وأشكال استخدامها الدرس التاسع : تركيبة while وأشكال استخدامها
الدرس التاسع : تركيبة while وأشكال استخدامها
(مرات المشاهدة: 138 مرات)
::البرنامج الأول في C#::- ::البرنامج الأول في C#::-
::البرنامج الأول في C#::-
(مرات المشاهدة: 87 مرات)
الدوال --2--#Methods in c الدوال --2--#Methods in c
الدوال --2--#Methods in c
(مرات المشاهدة: 63 مرات)
الخصائص (Properties الخصائص (Properties
الخصائص (Properties
(مرات المشاهدة: 84 مرات)
الدرس الثالث عشر : Methods الدرس الثالث عشر : Methods
الدرس الثالث عشر : Methods
(مرات المشاهدة: 110 مرات)
الدرس الثاني عشر : عبارة break وعبارة continue الدرس الثاني عشر : عبارة break وعبارة continue
الدرس الثاني عشر : عبارة break وعبارة continue
(مرات المشاهدة: 90 مرات)
منتديات مدرسة المشاغبين - افلام مقاطع يوتيوب - بروكسي proxy - ماسنجر مسنجر - العاب فلاش - اغاني اناشيد - مسجات رسائل sms - جوال موبايل بلوتوث - صور جديدة سنوات الضياع
جميع الحقوق محفوظة :Copyright © All rights reserved