أ/جيهان القباري مؤسسة المنتدي
العمر : 52 نقاط : 2330 عدد المساهمات : 1279
| موضوع: شرح البرمجة للصف الثالث الإعدادى الأربعاء مايو 19, 2010 3:02 pm | |
| الفصل الأول الفصل الدراسى الثانى تمثيل البيانات البيانات المتغيرة و البيانات الثابتة هل تذكر عزيزى الطالب أننا فى الفصل الدراسى الأول قلنا أنه من العمليات الأساسية التى يجريها الحاسب هى استقبال البيانات من المستخدم و تخزينها فى الذاكرة و أن تلك الذاكرة مقسمة إلى أقسام و فى كل قسم يتم تخزين بيان . و أننا حين كنا نستخدم السودو كود لعملية قراءة رقمين و جمعهما و إخراج الناتج كنا نكتب ما يلى Read no1 Read no2 Sum = no1 + no2 فعندما نخبره بأن يقرأ الرقم الأول فهذا معناه قراءة الرقم و تخزينه فى الذاكرة أى نطلب من الحاسب أن يخصص جزءا فى الذاكرة يسميه no1 و يضع فيه قيمة الرقم الأول . طبعا هذه القيمة متغيرة حيث من الممكن أن تكون القيمة أى رقم تلك القيم المخزنة فى الذاكرة و التى تتغير أثناء البرنامج يطلق عليها المتغيرات variables انظر إلى القانون التالى الذى يقيس مساحة سطح كرة علما بان المساحة = 4 * ط * نق2 نلاحظ أن نق ( نصف القطر ) متغير حيث أن طول القطر يمكن أن يكون بأى طول و لكن ( ط ) التى نرمز إليها بالرمز π تساوى 22/7 و هذا المقدار ثابت حيث سيكون دائما 22/7مهما كان طول نصف القطر لذا نسمى ( ط ) ثابت constant نستنتج أن القيم المخزنة فى الذاكرة و التى لا تتغير أثناء البرنامج يطلق عليها الثوابت constants لاحظ أن إعطاء أسماء للخلايا التى تحمل قيما متغيرة يسمى إعلان للمتغيرات variablesDeclaration و أن إعطاء أسماء للخلايا التى تحمل قيما ثابتة يسمى إعلان الثوابت و سنتكلم عن إعلان المتغيرات و الثوابت بالتفصيل لاحقا أنواع البيانات أولا ما نوع البيانات التى يمكن أن تخزن فى ذاكرة الحاسب ؟ نلاحظ أنن يمكننا تخزين حروف مثل (a b ) أو كلمات مثل (My Name أو My address ) أو أرقام صحيحة مثل ( 1 – 33 ) أو حتى أرقام بعلامات عشرية مثل ( 1.3 – 66.234 ) يحدد نوع البيان نوع المعلومات التى سيتم تخزينها فى الذاكرة . فمثلا حجم الذاكرة التى سنحتاج إليها لتخزين حرف واحد سيختلف بكل تأكيد عن حجم الذاكرة التى سأحتاج إليها لتخزين جملة كاملة مع ملاحظة أن لكل بيان حجم من الذاكرة bytes و له أيضا مجال أو مدى range يحدد القيم التى يمكن تخزينها فى هذا النوع علاوة أن البيانات الرقمية لها دقة precision و هى تحدد عدد الخانات التى يتم تمثيل المتغير بها
أولا أنواع البيانات التى يمكن أن أخزن فيها أرقام عشرية فمثلا الرقم 5.123456789123456789 يحتوى على 19 خانة إذا قمت بتخزينه فى متغير من النوع single فسيظهر فى البرنامج بهذا الشكل 5.123456 لأن دقة هذا المتغير لا تسمح لك بتخزين أكثر من 7 خانات . أما إذا قمنا بتخزين الرقم فى متغير من النوع double فسيظهر بهذا الشكل 5.12345678912345 و لن يظهر بقية الرقم لأن أقصى عدد للخانات لهذا النوع من المتغيرات هو 15 خانة . أما إذا قمت بتخزين هذا الرقم فى متغير من النوع decimal فسيظهر كاملا لأن الرقم مكون من 19 خانة و المتغير من النوع decimal يسمح لنا ب 28 خانة . مع ملاحظة أن النوع decimal يمكن أن أخزن به كلا النوعين فلو خزنت به رقما صحيحا ستكون الدقة الخاصة به 29 رقم أما إذا خزنت به رقما عشريا ستكون مقدار الدقة رقما واحدا صحيحا و 28 رقم عشرى .
قواعد تكوين الأسماء فى الفيجوال بيسك 1.يجب أن يبدأ الاسم بحرف من حروف الهجاء الانجليزية capital أو small و يمكن أى يأتى بعده أى عدد من الحروف أو الأرقام أو الرمز _ underscore فمثلا الاسم 2ndfloor لا يصلح لأنه يبدأ برقم 2.لا يسمح ان يحتوى الاسم على أى رموز أو علامات خاصة كالنقطة أو المسافة أو علامة الاستفهام أو التعجب فمثلا الاسم Ahmed.Atef لا يصلح لأنه يحتوى على نقطة ( . ) , كذلك الاسم birth day لا يصلح لأنه يحتوى على مسافة 3.لا يسمح بأن يكون الاسم من الكلمات المحجوزة التى يستخدمها الفيجوال بيسك مثل dim – print – double اختيار النوع المناسب لكل متغير
يتحدد تلقائيا ثلاث خصائص لنوع المتغير و هى نوع البيانات التى ستخزنها و العمليات التى ستجريها عليه و حجم الذاكرة الذى سيحتاجه هذا المتغير . فمثلا إذا أردت تخزين مجموعة من الكلمات أو الأرقام التى لن تجرى عليها عمليات حسابية فأفضل نوع هو string أما إذا أردت تخزين حرف واحد فقط فمن الأفضل اختيار النوع char الثوابت constant قلنا أن الثوابت هى قيم فى الذاكرة لا تتغير أثناء البرنامج و هى تنقسم نوعان 1 - ثوابت جوهرية intrinsic constant : هى ثوابت موجودة مسبقا فى الفيجوال بيسك يستطيع المبرمج استخدامها مباشرة دون إعلان مثال لذلك مجموعة الألوان التى يستخدمها البرنامج فإذا قمت بكتابة كلمة color و اتبعتها بنقطة سيقوم البرنامج بعرض قائمة تحتوى على جميع الألوان المتاحة فمثلا إذا أردنا استخدام اللون الأحمر كلون أمامى للمتغير txtname نكتب Textname.forecolor = color.red 2 - ثوابت مسماة named constant : هى الثوابت التى يقوم المبرمج بتعريفها بنفسه و يجب الإعلان عنها باستخدام الكلمة cons و عند الإعلان عن ثابت يجب إعطاؤه اسم و نوع و قيمة . علما بأن قيمته لا تتغير أثناء تشغيل البرنامج و يفترض الفيجوال بيسك أن أى قيمة تحتوى على عدد صغير فهى من النوع integer و أى قيمة تحتوى رقم عشرى فهى من النوع double ما لم تحدد خلاف ذلك و كمثال إذا أردنا الإعلان عن ثابت يمثل اسم المدرسة فيتم ذلك كالتالى Cons School_Name As string = belal school
الإعلان عن المتغيرات يجب عليك عزيزي الطالب أن تقوم بالإعلان عن أى متغير فى برنامج قبل استعماله وهذا يتم من خلال كتابة صيغة معينة تسمى إعلان المتغير تبدأ بكلمة Dim ثم اسم المتغير ثم as متبوعة بنوع المتغير وأخيرا لك حرية إعطاء المتغير قيمة ابتدائية باستعمال علامة" = " ثم القيمة أو إنهاء الإعلان بعد نوع المتغير أي إهمال العلامة " =" والقيمة الابتدائية مثال : فإذا أردنا الإعلان عن متغير اسمه my address و نوعه string سنكتب ما يلى Dim MyAddress as string مثال 2 : إذا أردنا الإعلان عن متغير اسمه birthday و نوعه date سنكتب Dim BirthDay as date لاحظ أننا يمكننا الإعلان عن مجموعة من المتغيرات معا فمثلا لدينا متغيرين من النوع String اسمهما FirstName و LastName فبدلا من تعريف متغيرين من النوع String في سطرين منفصلين يمكنك من دمجهما في سطر واحد Dim FirstName, LastName As String أمر التخصيص ( الإحلال )=) إن أهم دور للمتغيرات فى البرامج هو تخزين البيانات بها؛ ولكى نخزن قيمة فى متغير فإننا نستعمل أمر التخصيص الذى يأخذ الشكل الآتي : قيمة = اسم متغير حيث تسمى علامة "=" معامل التخصيص ويوجد على يسارها اسم متغير وعلى يمينها قيمة. وعند تنفيذ هذا الأمر فإن القيمة الموجودة على يمين "=" يتم تخزينها فى المتغير الموجود على يسارها. ولكى يتم تنفيذ أمر التخزين يجب مراعاة الآتي: أ- اسم المتغير الذي نريد التخزين فيه يجب أن يكون علي شمال العلامة " =". ب- القيمة المراد تخزينها يجب أن تكون من نوع ملائم لنوع المتغير الذي سيتم التخزين به، فالقيم الرقمية يجب تخزينها في متغيرات رقمية أما القيم الحرفية فيتم تخزينها في متغيرات حرفية. ج- القيمة المراد تخزينها من الممكن أن تأخذ أحد الأشكال الآتية:- 1 قيمة مجردة كالرقم " 5 " مثلا: X= 5 يتم تخزين 5 فى x 2 x = y يتم تخزين قيمة y فى x 3 عملية حسابية X = 4 + 5 يتم تخزين 9 فى x د- المتغيرات التي علي يمين "=" لا يحدث بها أي تغيير أي أنها تحتفظ بقيمتها بعد تنفيذ الأمر، والذي يتغير فقط هو قيمة المتغير علي شمال "=". ه- مفهوم العلامة "=" في أمر التخصص يختلف تماما عن مفهومها في المعادلات الرياضية كيفية تنفيذ أمر التخصيص لتنفيذ أمر التخصيص يقوم الحاسب بعمل الخطوتين الآتيتين:- أ- تحديد القيمة الموجودة علي يمين "=" كالآتي: -1 استبدال كل متغير أو ثابت بقيمته. -2 إجراء العملية الحسابية واستخراج النتيجة. ب- تخزين النتيجة في المتغير علي شمال "=" فمثلا Count = 20 Count = count+1 أ- يبدأ الحاسب بحساب قيمة الجانب الأيمن للعلامة "=" وذلك بوضع قيمة المتغير و هى 20 ثم يقوم بجمع 1 على 20 فتصبح القيمة الجديدة للمتغير 21 التحويل بين الأنواع المختلفة للبيانات عندما تقوم بإدخال أرقام إلى البرنامج باستخدام الأداة textbox هذه الأرقام فى واقع الحال تقرأ كمتغيرات حرفية أى نصوص و ليست أرقام . لذا فلن تستطيع إجراء العمليات الحسابية عليها إلا إذا قمت بتحويل البيانات الحرفية إلى بيانات رقمية . تحويل البيانات الحرفية إلى بيانات رقمية لتحويل البيانات الحرفية إلى رقمية نستخدم وسيلة ( Method ) اسمها Parse الشكل العام لل Parse Method 1.لتحويل قيمة حرفية الي عدد صحيح Integer Integer.Parse (القيمة الحرفية ) 2.لتحويل قيمة حرفية إلى عدد عشرى Decimal Decimal.Parse (القيمة الحرفية ) مثال لديك سعر الكتاب ، و عدد الكتب و مطلوب حساب السعر الاجمالى الحل سعر الكتاب نرمز له بالمتغير Uprice عدد الكتب نرمز له بالمتغير Books Q السعر الإجمالى نرمز له بالمتغير Tprice حيث أن :- السعر الإجمالى = سعر الكتاب * عدد الكتب لتعريف المتغيرات التى سوف نستخدمها Dim BooksQ as Integer Dim Uprice as Decimal ا Dim Tprice as Decimal لتحويل النص المكتوب فى مربع النص BooksQ الى عدد صحيح BooksQ = Integer. Parse (me . BooksQ . Text ) لتحويل النص المكتوب فى مربع النص Uprice إلى عدد عشرى Uprice = Decimal. Parse (me . Uprice . Text ) لحساب السعر الإجمالى Tprice = BooksQ * Uprice تحويل البيانات الرقمية إلى بيانات حرفية لتحويل البيانات الرقمية إلى بيانات حرفية نستخدم الدالة To string ( ) فمثلاإذاأردناأننعرضالثمنالكلىللكتبفىالمثال السابق فى أداة الكتابة "ResultTextBox " فإننانستعملالأمرالآتى ResultTextBox. Text = decTotalPrice.ToString() | |
|