محاضرة برمجة - أنواع البيانات PDF
Document Details
Tags
Summary
هذه المحاضرة تلخص أنواع البيانات في لغة البرمجة فيجوال بيزك. تناقش أنواع البيانات الرقمية (الصحيحة والعشرية) وأنواع البيانات النصية وتشرح كيفية تحديد الأنواع المناسبة للبيانات في البرامج.
Full Transcript
ا صل ا ث ني أنواع ا ب ن ت أهداف ا صل ا ث ني ح سة لفص م ب د إن هاء لطال رت طة ب يكو قا ً ع ى أ : نشطة لرق ة ل انا د أنو ...
ا صل ا ث ني أنواع ا ب ن ت أهداف ا صل ا ث ني ح سة لفص م ب د إن هاء لطال رت طة ب يكو قا ً ع ى أ : نشطة لرق ة ل انا د أنو لصة ل انا د أنو غ عى ي ر ع ى لثو ب ي ر ل و م Operators ب ي ا ل خص عو م اب ة لوم ا نة عو م ل عو م ط ة لوم Content Page مقدمة لو نظرنا إلى مراحل العمل فى الحاسب سنجد أنها عبارة عن ٣خطوات أساسية وهى )إدخال -معالجة -إخراج( ُ ،تعرف المرحلة اﻷولى بمرحلة إدخال البيانات والمرحلة الثانية هى معالجة البيانات وإجراء العمليات الحسابية والمنطقية عليها ثم مرحلة إخراج النتائج أو المعلومات ،والبيانات هى عبارة عن قيم أوليه ُتجرى عليها بعض العمليات لتصبح معلومات أى قيم لها معنى ومدلول يمكن اﻻستفادة منها ،إذن فجميع مراحل العمل داخل الحاسب تحتوى على بيانات والبيانات لها صور متعددة فيمكن أن تكون أرقام أو حروف أو عﻼمات أو صور أو صوت أو فيديو ،هذه الصور جميعا يتعامل معها الحاسب على هيئة أرقام بالنظام الثنائى ) لغة اﻵلة ( وتخزن بالذاكرة أثناء فترة العمل عليها ،بناء على ما ذكرناه فإن أى برنامج يتعامل مع بيانات بحيث يستقبل بيانات من المستخدم ويرسلها للحاسب ثم يستقبل النتائج من الحاسب ويعرضها للمستخدم. أنواع البيانات Data Types فى لغات البرمجة إذا أردت أن تتعامل مع بيانات معينة يجب عليك أن تحجز لها مكانا فى ذاكرة الحاسب حتى يستطيع الحاسب التعامل معها ،هذه البيانات يمكن أن تكون أعداد واﻷعداد تختلف من حيث النوع فمنها الصحيح ومنها الحقيقى ) الذى يحتوى على فاصلة عشرية ( ويمكن أن يكون العدد قيمته صغيرة أو كبيرة ،والبيانات أيضا يمكن أن تكون نصوص والنص يحتوى على حروف أو أرقام أو عﻼمات أو خليط بينهما ،من هذا اﻻختﻼف تم تقسيم البيانات إلى أنواع فى لغات البرمجة حتى يستطيع المترجم التعرف على البيانات وإجراء العمليات المطلوبة عليها وحجز المساحة المناسبة لها فى الذاكرة حتى ﻻ يتم إهدار المساحة المتوفرة فى الذاكرة بسرعة وتوقف عمل البرنامج أو توقف النظام بالكامل. توجد فى فيجوال بيزك العديد من أنواع البيانات ،فاﻷعداد لها أنواع تخزن بها قيم صحيحة وأنواع تخزن بها قيم كسرية ،وكذلك توجد أنواع بيانات نصية ومنطقية وتاريخ ووقت وغير ذلك الكثير. Content Page ٢٠ أنواع البيانات الرقمية الصحيحة فى فيجوال بيزك: الحجم القيمة العظمى القيمة الصغرى النوع بالبايت ٢٥٥ ٠ ١ Byte ١٢٧ ١٢٨- ١ SByte ٣٢٧٦٧ ٣٢٧٦٨- ٢ Short ٦٥٥٣٥ ٠ ٢ UShort ٢١٤٧٤٨٣٦٤٧ ٢١٤٧٤٨٣٦٤٨- ٤ Integer ٤٢٩٤٩٦٧٢٩٥ ٠ ٤ UInteger ٩٢٢٣٣٧٢٠٣٦٨٥٤٧٧٥٨٠٧ ٩٢٢٣٣٧٢٠٣٦٨٥٤٧٧٥٨٠٨- ٨ Long ١٨٤٤٦٧٤٤٠٧٣٧٠٩٥٥١٦١٥ ٠ ٨ ULong أنواع البيانات الرقمية العشرية : الحجم القيمة العظمى القيمة الصغرى النوع بالبايت 3.4028235E38 -3.4028235E38 ٤ Single 1.79769313486231E308 1.79769313486231E308- ٨ Double يستخدم لتمثيل اﻷعداد الصحيحة والعشرية ويمكن تحديد ١٦ Decimal الدقة العشرية من صفر إلى ٢٨خانة عشرية أنواع البيانات النصية : الحجم القيمة النوع بالبايت يخزن به حرف واحد بترميز Unicode ٢ Char يخزن به سلسلة حرفية من صفر إلى ٢مليار حرف بترميز غير محدود String Unicode Content Page ٢١ Booleanويخزن به قيمة منطقية كما يوجد أيضا أنواع أخرى من البيانات أهمها True/Falseونوع Dateويخزن به التاريخ والوقت کیف تحدد النوع المناسب للبیانات التى ستستخدمها فى برنامجک؟ بنــاء علــى تحديــد نــوع البيــان يقــوم المتــرجم بحجــز المــساحة الﻼزمــة لتخزينــه فــى الــذاكرة ، ويجب مراعـاة تحديـد النـوع المناسـب حـسب القيمـة التـى سـيتم التعامـل مع هـا فمـثﻼ إذا كـان المطلــوب هــو إدخــال قيمــة رقميــة لدرجــة طالــب فــى امتحــان مــادة اللغــة العربيــة فكيــف يــتم اختيار النوع المناسب لهذه القمية ،ببساطة اتبع الخطوات التالية: حدد أدنى قيمة يمكن إدخالها فى درجة اللغة العربية ) صفر ( حدد أكبر قيمة يمكن إدخالها فى درجة اللغة العربية ) ( ٤٠ حدد ما إذا كانت القيمة المطلوب إدخالها صحيحة أم عشرية ) قيمة صحيحة ( إذن فالمطلوب هو حجز مساحة فى الذاكرة لتخزين عدد صحيح يقبل إدخال اﻷعداد من صفر إلى ٤٠ بالنظر إلى جدول أنواع البيانات الرقمية الصحيحة تجد أن النوع اﻷنسب فى هذه الحالة هو Byteأو SByte لماذا ﻻ نختار النوع Shortأو Integerمثﻼ أو أى نوع صحيح آخر؟ ﻷن هذه اﻷنواع تحجز مساحة أكبر فى الذاكرة والقيمة المطلوب إدخالها لن تتعدى الرقم ٤٠ فليس هناك فائدة من تحديد نوع بيان أكبر بل بالعكس سيؤدى ذلك إلى إهدار المساحة المتوفرة فى الذاكرة وإبطاء تنفيذ العمليات التى ستتم على هذا البيان بدون داعى. المتغيرات Variables المتغير هو مكان ُيحجز فى ذاكرة الحاسب لتخزين قيمة معينة هذه القيمة يمكن لها أن تتغير أثناء تشغيل البرنامج ،وهذا المتغير له اسم ونوع وحجم وقيمة. قواعد تسمية المتغيرات: أن يبدأ اسم المتغير بحرف أبجدى أو عﻼمة _ ) الشرطة التحتية ( - يمكن أن يحتوى اسم المتغير على أرقام أو حروف أو عﻼمة _ - -عدم استخدام الكلمات المحجوزة للغة Keywords عدم استخدام أى عﻼمات غير عﻼمة الشرطة التحتية _ - عدم استخدام المسافات داخل اسم المتغير - ﻻ يجب أن يتعدى اسم المتغير ٢٥٥حرف - عدم استخدام اسم لمتغير آخر فى نفس مجال الرؤية - Content Page ٢٢ تحديد نوع المتغير: يتم تحديد نوع المتغير من اﻷنواع التى تم عرضها فى الجداول السابقة أو من اﻷنواع اﻷخرى الموجودة فى لغة فيجوال بيزك دوت نت ،ويراعى عند تحديد نوع المتغير أن يكون النوع مناسب للقيمة التى سيتم إسنادها إليه وأن يكون المدى المسموح به لهذا النوع مناسب ﻷقصى قيمة سيتم تخزينها فيه. مثال: إذا أردت كتابة برنامج لحساب النسبة المئوية لمجموع طالب فى المرحلة الثانوية ،فما هى المدخﻼت والمخرجات الخاصة بالبرنامج وأنواع البيانات المناسبة لكل منها مدخﻼت البرنامج ستكون ) درجة الطالب – المجموع الكلى ( مخرجات البرنامج ) النسبة المئوية ( أنواع البيانات المناسبة: بالنسبة للمدخﻼت فدرجة الطالب ستكون رقم يبدأ من الصفر وينتهى عند المجموع الكلى ويمكن أن تكون الدرجة رقما صحيحا ) ( ٣٢٠أو ربما تحتوى على جزء عشرى ) ، ( ٣٥٣٥ وبالنسبة للمجموع الكلى فسيكون رقما صحيحا ثابتا وليكن ) ( ٤١٠فالنوع المناسب له هو Shortأو UShortودرجة الطالب ستكون من النوع Singleﻵنها يمكن أن تحتوى على جزء عشرى. أما بالنسبة للمخرجات فستكون رقم يبدأ من الصفر وينتهى عند ١٠٠وأيضا يمكن أن يتضمن جزء عشرى ) ( ٩٢٢٨فالنوع المناسب له هو .Single حجم المتغير ) المدى المتاح له فى الذاكرة ( : ُيقاس حجم المتغير بوحدة البايت Byteوالتى تحتوى بدورها على عدد Bit ٨والـ Bitهى أصغر وحدة تخزين فى الحاسب حيث ُيخزن بها رقم ) ( ١أو ) ( ٠بالنظام الثنائى ) لغة اﻵلة ( قيمة المتغير : هى القيمة التى ُتسند إليه والتى يمكن أن تتغير أثناء تشغيل البرنامج ويجب أن تقع هذه القيمة فى المدى المسموح به لنوع المتغير فمثﻼ متغير من نوع SByteمن الخطأ أن ُتسند له قيمة مثل ١٩٠ﻵن أقصى قيمة مسموح بها لهذا النوع هى ١٢٧ Content Page ٢٣ اﻹعﻼن عن المتغير Declaring Variable : يجب اﻹعﻼن عن أى متغير قبل استخدامه وعملية اﻹعﻼن تتضمن إنشاء المتغير وتحديد اسمه ونوعه وبناء على النوع المحدد للمتغير يتم حجز المساحة الﻼزمة فى الذاكرة صيغة اﻹعﻼن عن المتغير: ]Dim [Variable Name] As [Data Type تستخدم الكلمة المحجوزة Dimلﻺعﻼن عن المتغير يتم تحديد اسم المتغير Variable Nameوفق قواعد تسمية المتغيرات ثم تكتب الكلمة المحجوزة As ثم يتم تحديد نوع المتغير Data Type مثال: Dim Student_Mark As Short Dim FirstName As String Dim Status4 As Boolean ويمكن اﻹعﻼن عن أكثر من متغير من نفس النوع بهذا الشكل : Dim A, B, C As Byte إسناد قيمة للمتغير : Assignment يتم إسناد القيم للمتغيرات بهذا الشكل : ][Variable Name] = [Value ُيكتب اسم المتغير ثم عﻼمة اﻹسناد = ثم القيمة والقيمة يمكن أن تكون قيمة مباشرة مثل : Student_Mark = 120 ويمكن أن تكون تعبير Expressionمثل : Student_Mark = 9 * 6 ويمكن أن تكون قيمة من متغير آخر مثل : Student_Mark = C ويمكن إسناد قيمة للمتغير أثناء اﻹعﻼن عنه : Dim Student_Mark As Integer = 180 Content Page ٢٤ الثوابت Constants الثابت هو مكان ُيحجز فى ذاكرة الحاسب لتخزين قيمة معينة هذه القيمة ﻻ يمكن أن تتغير أثناء تشغيل البرنامج ،ويتم تسمية الثوابت بنفس قواعد تسمية المتغيرات. ويتم اﻹعﻼن عن الثوابت بهذه الصورة : ]Const [Constant Name] As [Data Type] = [Value تستخدم الكلمة المحجوزة Constلﻺعﻼن عن الثوابت ،واﻹعﻼن عن الثابت يجب أن يشمل إسناد قيمة له والسبب هو أنه ﻻ يمكن تغيير هذه القيمة بعد اﻹعﻼن عنه والفرق بين الثابت والمتغير فى طريقة إسناد القيمة هى أن الثابت يجب أن تضع القيمة المجردة مباشرة أو تستخدم تعبير ُينتج قيمة رقمية أو نصية وﻻ يمكن أن تستخدم أسماء متغيرات أخرى أو تستدعى دوال فى تعبير ﻹسناد قيمة للثابت. أمثلة : إسناد قيمة مجردة مباشرة ) صحيح ( Const X As Byte = 90 "Const FirstName As String = "Sameh إسناد قيمة من تعبير ) صحيح ( Const Mark As Integer = 9 * 3 إسناد قيمة من متغير ) خطأ ( Const Z As Single = B علما بأن Bهو متغير رقمى إسناد قيمة من تعبير يحتوى على دالة ) خطأ ( )Const Total As Short = Fix(a نطاق رؤية المتغيرات والثوابت: والمقصود بنطاق الرؤية هو اﻷماكن التى يكون فيها المتغير أو الثابت مرئيا بحيث يمكن استخدامه ،فإذا تم اﻹعﻼن عن متغير داخل إجراء معين ) اﻹجراء هو جزء من الكود له اسم محدد ويتم تنفيذه باستدعاءه أو عند وقوع حدث معين ( فى هذه الحالة ﻻيمكن استخدام هذا المتغير خارج هذا اﻹجراء مثال )(Private Sub Calc Dim Number1 As Integer End Sub Content Page ٢٥ تم اﻹعﻼن عن متغير رقمى باسم Number1داخل اﻹجراء المسمى ، Calcهذا المتغير ﻻ يمكن استخدامه خارج نطاق اﻹجراء Calc أما إذا تم اﻹعﻼن عن المتغير داخل وحدة الكود الرئيسية فسيكون مرئيا داخل جميع اﻹجراءات التى تتضمنها هذه الوحدة Module Module1 Dim Number1 As Integer )(Sub Main End Sub )(Private Sub Calc End Sub End Module فى هذا المثال تم اﻹعﻼن عن المتغير داخل وحدة الكود Module1والتى تضم بداخلها اﻹجراء Mainواﻹجراء ، Calcفى هذه الحالة يمكن استخدام المتغير فى أى مكان داخل الوحدة وأيضا داخل اﻹجراءات Mainو Calc العوامل Operators تستخدم العوامل فى إجراء العمليات المختلفة على القيم كما تستخدم فى تكوين التعبيرات Expressionsعن طريق الربط بين المتغيرات والثوابت والتعبيرات اﻷخرى ،وتوجد فى لغة فيجوال بيزك دوت نت عدة أنواع من العوامل منها: عوامل التخصيص Assignment Operators العوامل الحسابية Arithmetic Operators عوامل المقارنة Comparison Operators عوامل التسلسل Concatenation Operators العوامل المنطقية Logical Operators عوامل التخصيص: يستخدم العامل = لتخصيص قيمة لمتغير أو خاصية معينة بالصيغة التالية: Property = Value VariableName = Value Content Page ٢٦ الجانب اﻷيسر من عبارة التخصيص يحتوى على اسم الخاصية أو المتغير المطلوب تخصيص قيمة له ،والجانب اﻷيمن يحتوى على أى شىء له قيمة مناسبة لنوع المتغير أو الخاصية ،أى يمكن أن يحتوى الجانب اﻷيمن من عبارة التخصيص على قيمة مجردة أو خاصية أو ثابت أو متغير أو تعبير. أمثلة: A = 10 B = A C = (B * A) - 2 "TextBox1.Text = "Alazhar MyName = Label1.Text العوامل الحسابية Arithmetic Operators تستخدم العوامل الحسابية ﻹجراء العمليات الحسابية المختلفة الصيغة الوظيفة العامل A+B الجمع + A-B الطرح - A*B الضرب * A/B القسمة / A\B قسمة اﻷعداد الصحيحة \ A Mod B باقى القسمة Mod A^2 الرفع لقوة ) اﻷس ( ^ ً أيضا فى لغة فيجوال بيزك دوت نت عوامل تسمى بعوامل التعيين الحسابى وهى ويتوفر خليط بين العوامل الحسابية وعامل التخصيص وهى اختصار لعمليات رياضية شائعة التعبير باستخدام عوامل التعيين الحسابى التعبير الحسابى a += 1 a=a+1 b -= 6 b=b-6 c *= 3 c=c*3 d /= 2 d=d/2 x \= 7 x=x\7 Content Page ٢٧ عوامل المقارنة Comparison Operators تقوم عوامل المقارنة بمقارنة تعبيرين وإعادة قيمة منطقية إما Trueأو False المعنى العامل يساوى = ﻻ يساوى > أصغر من أصغر من أو يساوى =bلو افترضنا أن قيمة aهى ١٠وقيمة bهى ٧فإن نتيجة عملية المقارنة ستكون True ً أيضا فإن نتيجة عملية المقارنة أما التعبير xzفلو كانت قيمة xهى ٩وقيمة zهى ٩ ستكون False عوامل التسلسل Concatenation Operators ً معا لتكون سلسلة واحدة ويستخدم العامل & تقوم هذه العوامل بربط عدد من السﻼسل والعامل +ﻹجراء هذه العملية لربط سلسلتين حرفيتين لتكوين سلسلة واحدة: Dim MyName As String "MyName = "Alazhar" & "Alsharief أعلنا عن متغير نصى باسم MyNameوأسندنا له قيمتين نصيتين تم دمجهما باستخدام العامل & ً أيضا أن بعد عملية اﻹسناد ستصبح قيمة المتغير تساوى " "AlazharAlshariefويمكن نستخدم العامل +فى هذه الحالة ،ويمكن دمج قيم متغيرات نصية بالتعديل على المثال السابق سيصبح بالشكل التالى: Dim MyName, S1, S2 As String "S1 = "Alazhar "S2 = "Alsharief MyName = S1 + S2 Content Page ٢٨ العوامل المنطقية Logical Operators تقوم العوامل المنطقية بمقارنة التعبيرات المنطقية وإعادة نتيجة منطقية ،ولتوضيح ذلك ً سابقا فإن التعبير x>yهو تعبير منطقى فبالعودة إلى عوامل المقارنة التى ذكرناها استخدمنا فيه عامل المقارنة > للمقارنة بين متغيرين هما xو y فإذا كانت قيمة المتغير xأكبر من قيمة المتغير yفإن نتيجة عملية المقارنة ستكون True وستكون النتيجة Falseإذا كانت قيمة المتغير xأقل من أو تساوى قيمة المتغير y فإذا أردنا مقارنة تعبيرين منطقيين أو أكثر نستخدم العوامل المنطقية ومنها: المعنى مثال العامل إذا كانت قيمة التعبير x>y هى Trueوقيمة التعبير ً أيضا فإن x20هى True x>y And x20 And نتيجة المقارنة بين التعبيرين ستكون Trueوفيما عدا ذلك ستكون النتيجة False نتيجة هذا التعبير ستصبح فى جميع الحاﻻت Trueفيما عدا حالة واحدة وهى أن x=c Or تكون قيمة التعبيرين هى False عامل Notهو عامل أحادى يقوم بنفى القيمة التالية له ، فإذا كانت قيمة التعبير a>b Not a>b Not هى Trueستكون النتيجة Falseوالعكس صحيح Content Page ٢٩ أولويات تنفيذ العمليات الحسابية: المعنى العامل العمليات التى تقع بين أقواس وإذا تداخلت اﻷقواس يتم تنفيذ اﻷقواس )( الداخلية ثم الخارجية عمليات الرفع للقوة ) اﻷس ( ^ عمليات الضرب والقسمة بأولوية من اليسار إلى اليمين * / عملية قسمة اﻷعداد الصحيحة \ عملية إيجاد باقى القسمة Mod عمليات الجمع والطرح بأولوية من اليسار إلى اليمين - + مثال: Dim x, y, z As Integer = x 9 = y 5 = z x + y * 4 – 1 ستكون أولوية التنفيذ بهذا الشكل: Content Page ٣٠ مثال لحساب النسبة المئوية لمجموع طالب: Dim mark, pers As Single Const total As UShort = 410 mark = 389.5 pers = (mark / total) * 100 سيتم تنفيذ العملية التى تقع بين اﻷقواس أوﻻً ثم يتم ضرب الناتج فى ١٠٠كما فى الشكل التالى سؤال :ما هى النتيجة فى حالة عدم استخدام أقواس لحساب النسبة المئوية بحيث تكون العملية الحسابية بهذا الشكل : pers = mark / total * 100 ؟ Content Page ٣١