عرض مشاركة واحدة
قديم 03-03-2011, 11:23 AM   رقم المشاركة : 10
بو حسين A.H.K.O
مصمم برامج






افتراضي رد: تبدأ اولى دورات لغة السى شارب 2008 من البدايه حتى الاحتراف ان شاء الله

بسم الله الرحمن الرحيم

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

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



The variable's type determines what kink of data it can store
(نوع المتغير تحدد نوع البيانات التي يمكن استخدامها)




هناك 15 نوع من انواع البيانات في السي شارب

(built-in value types)

وكل نوع يخزن أنواع مختلفة من البيانات.

في الدروس السابقة استخدمنا بعض الأنواع وعرفنا كيفية استخدامهم ، لكن هناك أخرى لم نستخدمها بعد



value types you'll use all the time
( المتغيرات الأكثر شيوعا)



*int
تخزن الأرقام الصحيحة بين(2.147.483-2.147.483-)




*string
تستطيع تخزين **** بأي طول ، متصمنا الفراغات " " .



*bool
لديها قيمتان منظقيتان "
True-False"



float *
تخزن أرقام تحتوي على كسور

ملاحظة : float اختصار للكلمة الانجليزية
floating point





More types for whole numbers
(أنواع أخرى للأرقام الصحيحة )

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

*byte
تخزن ارقام موجبة بين 255-0



*Sbyte
تخزن ارقام بين 128-127-


*short
تخزن أرقام بين
32.767-32.767-


*Ushort
تخزن أرقام موجبة بين 65.535-0



ملاحظة :"U" اختصار للكلمة Unsigned (بدون إشارة)


*long

تخزن أرقام بين
billion billion+_

رد: تبدأ اولى دورات لغة السى شارب 2008 من البدايه حتى الاحتراف ان شاء الله رد: تبدأ اولى دورات لغة السى شارب 2008 من البدايه حتى الاحتراف ان شاء الله


Ulong*
تخرن أرقام بين billion billion 18 -0




Types for storing really HUGE numbers
أنواع لتخزين قيم كبيرة جدا


في الأنواع السابقة مر ت علينا أنواع تستوعب أرقام كبيرة جدا قد تصل الى 38 صفر على اليمين

لكن هذا الرقم قد يكون غير كافي في بعض التطبيقات العلمية مثلا ، لذا وفرت السي شارب الأنواع التالية:

double *

decimal*



a few more useful built-in value
أنواع أخرى
مهمة

مررنا بالنوع byte وقلنا أنه يخزن 256 قيمة ، هناك نوع خر يخزن نفس الرقم لكن من نوع character

* char
اذا هذا النوع يخزن بيانات من نوع character كما ذكرنا ودائما نضع الكاركتر داخل تنصيص مفرد، مثال : ' a'

ويمكن تضمين escape sequence مثل : '\ n ' لعمل سطر جديد ، أو ' /t' لعمل tap , وهناك نوع اخر هام جدا من أنواع البيانات وهو ****** وسوف نتطرق له بشكل مفصل بالدرس التالي إن شاء الله تعالى .

Casting



casting هذا المصطلح يعني تحويل البيانات من نوع إلى اخر .


نستطيع تمثيل أنواع البيانات في السي شارب بهذه الصورة ، نمثلها
رد: تبدأ اولى دورات لغة السى شارب 2008 من البدايه حتى الاحتراف ان شاء الله
وبعد أن عرفنا أنواع البيانات بقي أن نعرف أن البيانات يجب أن تتوافق عند استخدامها ، لنفترض هذا المثال :

كود
int big = 20000;

short  small= big



القيمة 20,000 ممكن أن تخزن في النوع short ،

لكن نحن خزنا الرقم أولا في النوع int ،

الكومبايلر سوف يرى الحجم كنوع int ويعتبر أنك

تحاول وضع محتوى الكوب الكبير في الكوب الصغير ،

رد: تبدأ اولى دورات لغة السى شارب 2008 من البدايه حتى الاحتراف ان شاء الله
وبالتالي لن ينفذ الكود وسوف يعطينا خطأ :

إذا حتى لو كان الحجم صحيحا ، لايمكن أن نعطية لأي متغير ، لاحظوا هذا المثال أيضا:

كود
decimal myDicimalValue = 10;
            int myIntValue = myDicimalValue;



نعرف أن 10 يمكن أن تخزن في ال interger لكن هذا الكود لن ينفذ ، ونحصل على الخطأ التالي:

رد: تبدأ اولى دورات لغة السى شارب 2008 من البدايه حتى الاحتراف ان شاء الله
ويمكن أن نتخلص من الخطأ بعمل الإقتراح الموجود في الرسالة casting

كود PHP:
كود
decimal myDicimalValue = 10;
            int myIntValue =(int) myDicimalValue;


هذا الكود سينفذ بدون أخطاء ، هنا قام الكومبايلر بعمل إجراء توافق بين النوعين بطريقة معينة



نوضح الأمر بمثال :

في هذا الكود ، نريد أن ندخل قيمة ابتدائية لعدادا السيارة وقيمة نهائية، بحيث يقوم الكود بحساب عدد الأميال التي قطعتها السيارة في رحلة ، ويحسب المبلغ التعويضي المستحق من الشركة التي يعمل لديها الشخص( تقوم الشركة بدفع مبلغ 39.$ مقابل كل ميل في الرحلة)

نفتح مشروع جديد ، ونسحب الأدوات التالية:

two buttons

two NumbericUpDown

four lables

ونغير خاصية ال **** كما في الصورة :

رد: تبدأ اولى دورات لغة السى شارب 2008 من البدايه حتى الاحتراف ان شاء الله

ونغير خاصيل ال visible لل lable 4 الذي أمام amountOwed إلى false

نعرف المتغيرات التالية بعد الكلاس مباشرة وقبل عمل أي كود :

كود PHP:
كود
int StartngMileage;
        int endingMileage;
        double mileTraveled;
        double veimburseRate = .39;
        double amountOwed;


نضغط على زر
caluculate مرتين لكتابة الكود التالي :

كود PHP:
كود
StartngMileage = (int)numericUpDown1.Value;//casting 
            endingMileage = (int)numericUpDown2.Value;

            if (StartngMileage <= endingMileage)
            {
                mileTraveled = endingMileage - StartngMileage;
                amountOwed = mileTraveled * veimburseRate;
                label4.**** = "$" + amountOwed;
                label4.Visible = true;// make the lable 
            }
            else
            {
                MessageBox.Show("The sarting mileage number", "can not calculate mileage");


وفي زر Display نكتب الكود التالي حتى يعرض لنا الكود عدد الأميال


كود
                       MessageBox.Show(mileTraveled + "miles", "Mile Travled");



رد: تبدأ اولى دورات لغة السى شارب 2008 من البدايه حتى الاحتراف ان شاء الله
تنفيذ الكود

أدخلنا الرقم 60 كقيمة ابتدائية للعداد ،
و 90 كقيمة نهائية

عند الضغط على الزر calculate، ظهر لنا مبلغ 11.7 دولا قيمة التعويض

وعند الضغط على زر Display ظهر لنا المسافة التي قطعتها السياة وهي 30 ميل

رد: تبدأ اولى دورات لغة السى شارب 2008 من البدايه حتى الاحتراف ان شاء الله
الكود سهل ولايحتاج إلى شرح أكثر ، ووضحت كل النقاط المهمة في الكود نفسه

لكن أي سؤال ، لاتتردوا بطرحه ، وكلنا موجودون هنا لإجابة أسئلتكم



أتمنى أن أكون وفقت في الشرح ، دمتم في رعاية الله


 

 

 توقيع بو حسين A.H.K.O :

هناك من يتمنى لك هكذا
رد: تبدأ اولى دورات لغة السى شارب 2008 من البدايه حتى الاحتراف ان شاء الله
ولكن!!! تابع مسيرتك ولاتهتم بهم
فستصل الى هدفك بكل تأكيد
بو حسين A.H.K.O غير متصل   رد مع اقتباس