الدرس الثالث المتغيرات Variables
منتديات الهندسة الكهربية والإلكترونية والميكاترونكس والكومبيوتر :: الهنسة الإلكترونية :: سنة أولى برمجة - دروس برمجة الكمبيوتر بلغة QBasic
صفحة 1 من اصل 1
الدرس الثالث المتغيرات Variables
الدرس الثالث المتغيرات Variables
فى هذا الدرس سوف نتناول المتغيرات فى لغة QBasic . المتغيرات تمكن البرنامج الخاص بك أن يتذكر القيم من عبارة برنامج إلى عبارة تالية .
المحتويات :
· المتغيرات .
· أنواع المتغيرات .
· استخدام المتغيرات فى العبارات .
· الحساب بالمتغيرات .
· تغيير محتويات المتغيرات .
السؤال رقم 1 :
فى الجبر ، ماذا تسمى الرموز مثل "x" و "y" ، مثل الموجودة فى العبارة 3x2 + 2y ? .
الإجابة :
تسمى المتغيرات Variables .
المتغيرات Variables :
أجهزة الكمبيوتر الحديثة تمتلك كمية كبيرة من الذاكرة الرئيسية ( تسمى ذاكرة RAM ) . تستخدم هذه الذاكرة من أجل أشياء كثيرة . عندما تقوم بتشغيل برنامج لغة QBasic ، يتم تخزين عبارات statements البرنامج فى الذاكرة الرئيسية . كما يمكن تخزين البيانات data من أجل البرنامج فى هذه الذاكرة الرئيسية .
المتغير فى لغة QBasic هو كمية صغيرة من ذاكرة البرنامج والتى يتم تخصيص اسم لها . أنت ، كمبرمج ، عليك التفكير فى الاسم الذى تريد استخدامه . سيقوم نظام QBasic باستخدام (حجز) جزء من الذاكرة الرئيسية من أجل ذلك الاسم .
المتغير يشبه الصندوق الصغير الذى يحمل (يحتفظ) قيمة . يمكن أن تتغير القيمة فى المتغير ( وهذا هو السبب فى التسمية "المتغير" ) . فيما يلى برنامج يستخدم متغير :
عند تشغيل هذا البرنامج ، يتم وضع القيمة "23.5" فى المتغير NUM . بعد ذلك يتم كتابة ما يلى على الشاشة :
السؤال رقم 2 :ما الذى سوف يكتبه البرنامج التالى على شاشة الكمبيوتر :
الإجابة :سوف يطبع البرنامج ما يلى :
فى هذا الدرس سوف نتناول المتغيرات فى لغة QBasic . المتغيرات تمكن البرنامج الخاص بك أن يتذكر القيم من عبارة برنامج إلى عبارة تالية .
المحتويات :
· المتغيرات .
· أنواع المتغيرات .
· استخدام المتغيرات فى العبارات .
· الحساب بالمتغيرات .
· تغيير محتويات المتغيرات .
السؤال رقم 1 :
فى الجبر ، ماذا تسمى الرموز مثل "x" و "y" ، مثل الموجودة فى العبارة 3x2 + 2y ? .
الإجابة :
تسمى المتغيرات Variables .
المتغيرات Variables :
أجهزة الكمبيوتر الحديثة تمتلك كمية كبيرة من الذاكرة الرئيسية ( تسمى ذاكرة RAM ) . تستخدم هذه الذاكرة من أجل أشياء كثيرة . عندما تقوم بتشغيل برنامج لغة QBasic ، يتم تخزين عبارات statements البرنامج فى الذاكرة الرئيسية . كما يمكن تخزين البيانات data من أجل البرنامج فى هذه الذاكرة الرئيسية .
المتغير فى لغة QBasic هو كمية صغيرة من ذاكرة البرنامج والتى يتم تخصيص اسم لها . أنت ، كمبرمج ، عليك التفكير فى الاسم الذى تريد استخدامه . سيقوم نظام QBasic باستخدام (حجز) جزء من الذاكرة الرئيسية من أجل ذلك الاسم .
المتغير يشبه الصندوق الصغير الذى يحمل (يحتفظ) قيمة . يمكن أن تتغير القيمة فى المتغير ( وهذا هو السبب فى التسمية "المتغير" ) . فيما يلى برنامج يستخدم متغير :
- الكود:
' Program that uses a variable
'
LET NUM = 23.5
PRINT "The variable contains", NUM
END
عند تشغيل هذا البرنامج ، يتم وضع القيمة "23.5" فى المتغير NUM . بعد ذلك يتم كتابة ما يلى على الشاشة :
- الكود:
The variable contains 23.5
السؤال رقم 2 :ما الذى سوف يكتبه البرنامج التالى على شاشة الكمبيوتر :
- الكود:
' Program with a variable
'
LET NUM = 53
PRINT "The variable contains", NUM
END
الإجابة :سوف يطبع البرنامج ما يلى :
- الكود:
The variable contains 53
رد: الدرس الثالث المتغيرات Variables
العبارة LET :تفحص البرنامج السابق مرة أخرى :
فى هذا البرنامج ، NUM هو متغير . لقد اختار المبرمج له الاسم NUM . عند تشغيل البرنامج ، وعندما يتم تنفيذ عبارة LET ، يحدث الكثير من الأشياء :
· يتم حجز جزء من الذاكرة للمتغير NUM ، ويتم تخزين (تحميل) العدد "23.5" فى هذا المتغير .
نتيجة لذلك ، بعد تنفيذ هذه العبارة فأن جزء من الذاكرة يسمى NUM ، ويحتفظ بالعدد "23.5" كما فى الشكل التالى :
بعد تنفيذ العبارة الأولى (عبارة LET) ، يتم تنفيذ العبارة الثانية وهى :
المتغير NUM موجود بالفعل ، لذلك فلا حاجة لحجز ذاكرة له . تقوم عبارة PRINT بأشياء عديدة :
· طباعة السلسلة النصية "The variable contains" .
· البحث فى المتغير NUM من أجل قيمة عددية .
· طباعة العدد الذى وجدته .
نتيجة لذلك ، ترى على الشاشة ما يلى :
السؤال رقم 3 :
ما الذى سوف يكتبه البرنامج التالى على شاشة الكمبيوتر :
الإجابة :سوف يقوم البرنامج بطباعة ما يلى :
حفظ النتيجة :تفحص البرنامج السابق مرة أخرى :
العبارة الأولى ، عبارة LET تقوم بعمل أشياء عديدة :
1- حجز ذاكرة من أجل المتغير VALUE .
2- حساب العدد "2 + 3 = 5 " .
3- حفظ النتيجة وهى العدد "5" فى المتغير .
يمكن استخدام عبارة LET مع المتغير لحفظ نتيجة الحساب . القيمة المحفوظة فى المتغير سوف تظل هناك حتى تقوم عبارة أخرى بتغييرها ، أو حتى يتم إيقاف تشغيل البرنامج .
السؤال رقم 4 :
ما الذى سوف يكتبه البرنامج التالى على شاشة الكمبيوتر :
الإجابة :سوف يقوم البرنامج بطباعة ما يلى :
- الكود:
' Program that uses a variable
'
LET NUM = 23.5
PRINT "The variable contains", NUM
END
فى هذا البرنامج ، NUM هو متغير . لقد اختار المبرمج له الاسم NUM . عند تشغيل البرنامج ، وعندما يتم تنفيذ عبارة LET ، يحدث الكثير من الأشياء :
· يتم حجز جزء من الذاكرة للمتغير NUM ، ويتم تخزين (تحميل) العدد "23.5" فى هذا المتغير .
نتيجة لذلك ، بعد تنفيذ هذه العبارة فأن جزء من الذاكرة يسمى NUM ، ويحتفظ بالعدد "23.5" كما فى الشكل التالى :
بعد تنفيذ العبارة الأولى (عبارة LET) ، يتم تنفيذ العبارة الثانية وهى :
- الكود:
PRINT "The variable contains", NUM
المتغير NUM موجود بالفعل ، لذلك فلا حاجة لحجز ذاكرة له . تقوم عبارة PRINT بأشياء عديدة :
· طباعة السلسلة النصية "The variable contains" .
· البحث فى المتغير NUM من أجل قيمة عددية .
· طباعة العدد الذى وجدته .
نتيجة لذلك ، ترى على الشاشة ما يلى :
- الكود:
The variable contains 23.5
السؤال رقم 3 :
ما الذى سوف يكتبه البرنامج التالى على شاشة الكمبيوتر :
- الكود:
' Program with a variable
- الكود:
'
LET VALUE = 2 + 3
PRINT "The result is", VALUE
END
الإجابة :سوف يقوم البرنامج بطباعة ما يلى :
- الكود:
The result is 5
حفظ النتيجة :تفحص البرنامج السابق مرة أخرى :
- الكود:
' Program with a variable
'
LET VALUE = 2 + 3
PRINT "The result is", VALUE
END
العبارة الأولى ، عبارة LET تقوم بعمل أشياء عديدة :
1- حجز ذاكرة من أجل المتغير VALUE .
2- حساب العدد "2 + 3 = 5 " .
3- حفظ النتيجة وهى العدد "5" فى المتغير .
يمكن استخدام عبارة LET مع المتغير لحفظ نتيجة الحساب . القيمة المحفوظة فى المتغير سوف تظل هناك حتى تقوم عبارة أخرى بتغييرها ، أو حتى يتم إيقاف تشغيل البرنامج .
السؤال رقم 4 :
ما الذى سوف يكتبه البرنامج التالى على شاشة الكمبيوتر :
- الكود:
' Saving a result in a variable
- الكود:
'
LET SUM = 1 + 2 + 3
PRINT "The sum is", SUM
الإجابة :سوف يقوم البرنامج بطباعة ما يلى :
- الكود:
The sum is 6
رد: الدرس الثالث المتغيرات Variables
العمليات الحسابية مع المتغيرات :
تفحص البرنامج التالى . تذكر فكرة التنفيذ المتسلسل (المتتابع) : ما لم يذكر خلاف ذلك ، فإن برنامج QBasic يعمل عن طريق البدء من أول عبارة وتنفيذ العبارات فى تسلسل .
العبارة الأولى LET AGE = 23 تقوم بعمل شيئين :
· حجز الذاكرة من أجل المتغير AGE .
· حفظ القيمة "23" فى هذا المتغير .
نتيجة لذلك ، بعد تنفيذ هذه العبارة فإن جزء من الذاكرة يسمى AGE ويحفظ العدد "23" :
عند استخدام متغير معين لأول مرة فى البرنامج ، سوف يتم حجز جزء من الذاكرة الرئيسية من أجل هذا المتغير .
السؤال رقم 5 :
هل يمكن استخدام القيمة المحفوظة فى المتغير AGE فى العمليات الحسابية ؟
الإجابة :
نعم . هذا هو الغرض من استخدام المتغيرات .
العمليات الحسابية :
بعد تنفيذ العبارة الأولى ، يتم تنفيذ العبارة الثانية :
هذه العبارة تقوم بعمل عدة أشياء :
1- طباعة السلسلة النصية "You have lived more than" .
2- البحث فى المتغير AGE من أجل قيمة للاستخدام .
3- ضرب هذه القيمة فى العدد "365" لكن مع عدم تغيير محتويات المتغير AGE .
4- طباعة نتيجة العملية الحسابية .
5- وأخيرا طباعة السلسلة النصية " days" .
نتيجة لذلك سوف ترى على الشاشة ما يلى :
السؤال 6 :
ما الذى سوف يكتبه البرنامج التالى على شاشة الكمبيوتر ؟
سوف يطبع البرنامج ما يلى :
لاحظ أن استخدام المتغير POUNDS فى عبارة PRINT لا يغير من محتوياته . المتغير POUNDS يكون مثل الصندوق الذى يحفظ قيمة والتى يمكنك استخدامها العديد من المرات كما ترغب بدون تغييرها .
تفحص البرنامج التالى . تذكر فكرة التنفيذ المتسلسل (المتتابع) : ما لم يذكر خلاف ذلك ، فإن برنامج QBasic يعمل عن طريق البدء من أول عبارة وتنفيذ العبارات فى تسلسل .
- الكود:
' Arithmetic with Variables'
LET AGE = 23
PRINT "You have lived more than", AGE * 365, " days"
END
العبارة الأولى LET AGE = 23 تقوم بعمل شيئين :
· حجز الذاكرة من أجل المتغير AGE .
· حفظ القيمة "23" فى هذا المتغير .
نتيجة لذلك ، بعد تنفيذ هذه العبارة فإن جزء من الذاكرة يسمى AGE ويحفظ العدد "23" :
عند استخدام متغير معين لأول مرة فى البرنامج ، سوف يتم حجز جزء من الذاكرة الرئيسية من أجل هذا المتغير .
السؤال رقم 5 :
هل يمكن استخدام القيمة المحفوظة فى المتغير AGE فى العمليات الحسابية ؟
الإجابة :
نعم . هذا هو الغرض من استخدام المتغيرات .
العمليات الحسابية :
بعد تنفيذ العبارة الأولى ، يتم تنفيذ العبارة الثانية :
- الكود:
PRINT "You have lived more than", AGE*365, " days"
هذه العبارة تقوم بعمل عدة أشياء :
1- طباعة السلسلة النصية "You have lived more than" .
2- البحث فى المتغير AGE من أجل قيمة للاستخدام .
3- ضرب هذه القيمة فى العدد "365" لكن مع عدم تغيير محتويات المتغير AGE .
4- طباعة نتيجة العملية الحسابية .
5- وأخيرا طباعة السلسلة النصية " days" .
نتيجة لذلك سوف ترى على الشاشة ما يلى :
- الكود:
You have lived more than 8395 days
السؤال 6 :
ما الذى سوف يكتبه البرنامج التالى على شاشة الكمبيوتر ؟
- الكود:
' Pounds to ounces'
LET POUNDS = 3
PRINT "The number of ounces is ", POUNDS * 16
PRINT "The number of pounds is ", POUNDS
END
سوف يطبع البرنامج ما يلى :
- الكود:
The number of ounces is 48 The number of pounds is 3
لاحظ أن استخدام المتغير POUNDS فى عبارة PRINT لا يغير من محتوياته . المتغير POUNDS يكون مثل الصندوق الذى يحفظ قيمة والتى يمكنك استخدامها العديد من المرات كما ترغب بدون تغييرها .
رد: الدرس الثالث المتغيرات Variables
استخدام محتويات المتغير :
يمكن استخدام القيمة المخزنة فى المتغير عدة مرات كما تريد . فيما يلى برنامج يستخدم المتغير عدة مرات بدون تغيير المحتويات :
- الكود:
' 5280 feet per Mile
' 1 yard per 3 feet
' 12 inches per foot
'
LET MILE = 5
PRINT "Number of Miles", MILE
PRINT "Number of Yards", MILE * 5280 / 3
PRINT "Number of Feet", MILE * 5280
PRINT "Number of Inches", MILE * 5280 * 12
PRINT "Number of Miles", MILE
END
العبارة الأولى تحجز جزء من الذاكرة من أجل المتغير MILE وتضع به القيمة "5" :
القيمة "5" سوف تبقى فى المتغير MILE حتى تقوم بتغيرها ( بعبارة LET ، على سبيل المثال) . استخدام المتغير فى العمليات الحسابية لا يغير محتوياته . العبارات التالية للعبارة الأولى سوف تنفذ واحدة بعد الأخرى ، وبالترتيب . نتيجة لذلك سوف يقوم البرنامج بطباعة ما يلى على الشاشة :
- الكود:
Number of Miles 5
Number of Yards 8800
Number of Feet 26400
Number of Inches 316800
Number of Miles 5
لاحظ أن القيمة "5" بالمتغير MILE لا تتغير ، نتيجة لذلك فإن عبارة PRINT الأولى وعبارة PRINT الأخيرة سوف تكتب نفس الشىء على الشاشة .
السؤال رقم 7 :
ما الذى سوف يكتبه البرنامج التالى على شاشة الكمبيوتر ؟
- الكود:
' Hours of Boring Lectures'
LET CLASSES = 4
PRINT "Hours per Week", CLASSES * 3
PRINT "Hours per Semester", CLASSES * 3 * 15
PRINT "Ho Hum..."
END
الإجابة :
سوف يطبع البرنامج ما يلى :
- الكود:
Hours per Week 12Hours per Semester 180Ho Hum...
رد: الدرس الثالث المتغيرات Variables
أسماء المتغيرات :
تذكر أن المتغير هو كمية صغيرة من ذاكرة الكمبيوتر التى أعطيت اسما . حتى الآن شاهدت عدة أسماء لمتغيرات :
أسماء المتغيرات هى عبارة عن كلمات مفردة والتى يختارها المبرمج . هذه الأسماء لا يجب أن تكون كلمات حقيقية ، ولكنها تساعد فى فهم البرنامج . ألقى نظرة على القواعد التالية ( فقط من خلال قراءتها مرة أو مرتين ، ولست مضطرا لحفظها ) .
قواعد أسماء المتغيرات :
1- المتغير هو كمية صغيرة من ذاكرة الكمبيوتر التى أعطيت اسما .
2- الاسم :
· طوله يصل حتى 40 حرفا .
· أول حرف يجب أن يكون أحد الهروف الأبجدية A-Z, a-z .
· باقى الحروف يجب أن تكون أحد الحروف الأبجدية A-Z, a-z ، ؟أو الأرقام 0-9 أو "." .
· لا يسمح بوجود مسافات فارغة داخل الاسم .
3- لا يمكنك استخدام كلمة والتى تستخدم (محجوزة) بالفعل لشىء آخر ( على سبيل المثال ، لا يمكنك استخدام PRINT كاسم لمتغير ) .
4- الحرف الأخير من الاسم يخبر عن ما هو نوع البيانات التى تحفظ بالذاكرة :
· المتغير SUM% يحفظ (يحمل) بيانات لعدد صحيح integer ( لا توجد نقطة عشرية) .
· المتغير SUM& يحفظ بيانات لعدد صحيح كبير جدا .
· المتغير SUM يحفظ بيانات لعدد حقيقى float ( عدد بنقطة عشرية ) .
· المتغير SUM# يحفظ بيانات عدد حقيقى كبير جدا .
· المتغير SUM$ يحفظ بيانات سلسلة من الأحرف .
5- الأسماء المختلفة تعنى أماكن مختلفة فى الذاكرة .
6- الحرف الأخير هو جزء من الاسم ( لذلك فإن SUM% و SUM هى متغيرات مختلفة ).
7- إذا اختلف اسمين فقط فى حالة الحروف ، فهما فى الحقيقة نفس الاسم .
حتى الآن كنا نستخدم متغيرات تحمل أعداد حقيقية (بنقطة عشرية) . هذا النوع من المتغيرات هو الأكثر فائدة . فهذه المتغيرات يمكن أن تحمل الأعداد مثل 1.3, -45.78, 0.001 ، كما يمكنها أيضا أن تحمل أعداد بدون جزء كسر عشرى مثل 1.0, -23.0, 94.0 وغيرها .
السؤال رقم 8 :
أى من الأسماء التالية صالح للاستخدام من أجل متغير يحمل عدد حقيقى float ؟
الإجابة :
تذكر أن المتغير هو كمية صغيرة من ذاكرة الكمبيوتر التى أعطيت اسما . حتى الآن شاهدت عدة أسماء لمتغيرات :
- الكود:
NUM POUNDS
VALUE MILE
SUM CLASSES
AGE
أسماء المتغيرات هى عبارة عن كلمات مفردة والتى يختارها المبرمج . هذه الأسماء لا يجب أن تكون كلمات حقيقية ، ولكنها تساعد فى فهم البرنامج . ألقى نظرة على القواعد التالية ( فقط من خلال قراءتها مرة أو مرتين ، ولست مضطرا لحفظها ) .
قواعد أسماء المتغيرات :
1- المتغير هو كمية صغيرة من ذاكرة الكمبيوتر التى أعطيت اسما .
2- الاسم :
· طوله يصل حتى 40 حرفا .
· أول حرف يجب أن يكون أحد الهروف الأبجدية A-Z, a-z .
· باقى الحروف يجب أن تكون أحد الحروف الأبجدية A-Z, a-z ، ؟أو الأرقام 0-9 أو "." .
· لا يسمح بوجود مسافات فارغة داخل الاسم .
3- لا يمكنك استخدام كلمة والتى تستخدم (محجوزة) بالفعل لشىء آخر ( على سبيل المثال ، لا يمكنك استخدام PRINT كاسم لمتغير ) .
4- الحرف الأخير من الاسم يخبر عن ما هو نوع البيانات التى تحفظ بالذاكرة :
· المتغير SUM% يحفظ (يحمل) بيانات لعدد صحيح integer ( لا توجد نقطة عشرية) .
· المتغير SUM& يحفظ بيانات لعدد صحيح كبير جدا .
· المتغير SUM يحفظ بيانات لعدد حقيقى float ( عدد بنقطة عشرية ) .
· المتغير SUM# يحفظ بيانات عدد حقيقى كبير جدا .
· المتغير SUM$ يحفظ بيانات سلسلة من الأحرف .
5- الأسماء المختلفة تعنى أماكن مختلفة فى الذاكرة .
6- الحرف الأخير هو جزء من الاسم ( لذلك فإن SUM% و SUM هى متغيرات مختلفة ).
7- إذا اختلف اسمين فقط فى حالة الحروف ، فهما فى الحقيقة نفس الاسم .
حتى الآن كنا نستخدم متغيرات تحمل أعداد حقيقية (بنقطة عشرية) . هذا النوع من المتغيرات هو الأكثر فائدة . فهذه المتغيرات يمكن أن تحمل الأعداد مثل 1.3, -45.78, 0.001 ، كما يمكنها أيضا أن تحمل أعداد بدون جزء كسر عشرى مثل 1.0, -23.0, 94.0 وغيرها .
السؤال رقم 8 :
أى من الأسماء التالية صالح للاستخدام من أجل متغير يحمل عدد حقيقى float ؟
- الكود:
SUM GRAND TOTAL
MyValue 16Candles
SUM23 YEAR%
الإجابة :
- الكود:
SUM --- OK (made up of correct characters, not too long)
MyValue --- OK (upper and lower case letters can be used)
SUM23 --- OK (digits can be used after the first letter)
GRAND TOTAL --- BAD (no spaces allowed)
16Candles --- BAD (digits can't be used as first character)
YEAR% --- BAD (last character % means this is an integer variable)
رد: الدرس الثالث المتغيرات Variables
حالة الاختلافات فى الاسماء :
تفحص القاعدة الأخيرة مرة أخرى :
إذا اختلف اسمين فقط فى حالة الحروف ، فهما فى الحقيقة نفس الاسم . هذا يعنى أن :
هى فى الحقيقة جميعها لنفس الاسم . فى الحقيقة ، إذا حاولت استخدام أكثر من واحد من هذه الاسماء فى البرنامج الخاص بك ، فإن نظام QBasic سوف يغير ما كتبته ليكون بنفس الشكل بحيث يتم استخدام شكل واحد فقط . على فرض أنك كتبت البرنامج التالى :
فبمجرد أن تحرك المؤشر خارج عبارة PRINT فإن نظام QBasic سوف يغير البرنامج بالشكل التالى :
السؤال رقم 9 :
بفرض أن VALUE هو اسم المتغير . أى الأسماء التالية يكون اسم لمتغير مختلف ، مع ذكر السبب ؟
الإجابة :
تفحص القاعدة الأخيرة مرة أخرى :
إذا اختلف اسمين فقط فى حالة الحروف ، فهما فى الحقيقة نفس الاسم . هذا يعنى أن :
- الكود:
VALUE Value value vALuE
هى فى الحقيقة جميعها لنفس الاسم . فى الحقيقة ، إذا حاولت استخدام أكثر من واحد من هذه الاسماء فى البرنامج الخاص بك ، فإن نظام QBasic سوف يغير ما كتبته ليكون بنفس الشكل بحيث يتم استخدام شكل واحد فقط . على فرض أنك كتبت البرنامج التالى :
- الكود:
' Attempt to use two versions of the same name
'
LET VALUE = 123
PRINT value
فبمجرد أن تحرك المؤشر خارج عبارة PRINT فإن نظام QBasic سوف يغير البرنامج بالشكل التالى :
- الكود:
' Attempt to use two versions of the same name
'
LET value = 123
PRINT value
السؤال رقم 9 :
بفرض أن VALUE هو اسم المتغير . أى الأسماء التالية يكون اسم لمتغير مختلف ، مع ذكر السبب ؟
- الكود:
VALUES value
VALU vALUe
VALUE$ Value
الإجابة :
- الكود:
VALUES --- different, because it ends with an S
VALU --- different, because the final E is mission
VALUE$ --- different, because the final $ means a character variable
value --- same
vALUe --- same
Value --- same
رد: الدرس الثالث المتغيرات Variables
متغير واحد أو متغيرين ؟
هناك مشكلة شائعة فى كتابة البرنامج ، وهى الاستخدام عن طريق الخطأ اسمين لمتغيرين تكون مختلفة قليلا عندما تقصد متغير واحد فقط . البرنامج التالى به خطأ شخصى Bug :
السؤال رقم 10 :
أوجد الخطأ الشخصى فى البرنامج السابق ، واكتب البرنامج الصحيح .
الإجابة :
البرنامج الصحيح يكون بالشكل التالى :
البرنامج الذى به خطأ شخصى يستخدم اسمين : MILES و MILE فى حين يجب أن يكون هناك اسم واحد فقط . أى من الاسمين يكون اسم متغير صحيح ، ولكن يجب أن تستخدم اسم واحد فقط من أجل المتغير الواحد .
هناك مشكلة شائعة فى كتابة البرنامج ، وهى الاستخدام عن طريق الخطأ اسمين لمتغيرين تكون مختلفة قليلا عندما تقصد متغير واحد فقط . البرنامج التالى به خطأ شخصى Bug :
- الكود:
' Calculate Miles per Gallon (Buggy Version)
'
' second odometer reading is 45,678.3
' first odometer reading is 45,149.6
' gallons of gas used is 12.5
'
LET MILES = (45678.3 - 45149.6)
PRINT MILE / 12.5
END
السؤال رقم 10 :
أوجد الخطأ الشخصى فى البرنامج السابق ، واكتب البرنامج الصحيح .
الإجابة :
البرنامج الصحيح يكون بالشكل التالى :
- الكود:
' Calculate Miles per Gallon (Correct Version)
'
' second odometer reading is 45,678.3
' first odometer reading is 45,149.6
' gallons of gas used is 12.5
'
LET MILES = (45678.3 - 45149.6)
PRINT MILES / 12.5
END
البرنامج الذى به خطأ شخصى يستخدم اسمين : MILES و MILE فى حين يجب أن يكون هناك اسم واحد فقط . أى من الاسمين يكون اسم متغير صحيح ، ولكن يجب أن تستخدم اسم واحد فقط من أجل المتغير الواحد .
رد: الدرس الثالث المتغيرات Variables
متى يتم حجز ذاكرة من أجل المتغيرات :
عندما يتم استخدام المتغير فى البرنامج لأول مرة ، فإن نظام QBasic يجد (يحجز) الذاكرة من أجله . وينطبق هذا على أى عبارة ، وليس عبارة LET فقط . إذا لم تكن هناك أى معلومات أخرى ، فإن النظام سوف يضع الصفر zero كقيمة عددية بالمتغير . فيما يلى البرنامج الخطأ السابق :
اسم المتغير MILE يظهر لأول مرة فى عبارة PRINT ( الاسم MILES اسم مختلف تماما من وجة نظر QBasic) . نتيجة لذلك فإن النظام يحجز ذاكرة من أجل هذا الاسم الجديد MILE ، وهو ليس له أى معلومات أخرى ، فيتم وضع الصفر به . الآن يوجد متغيرين فى الذاكرة :
التعبير الرياضى "MILE / 12.5" سوف يحصل على الصفر من المتغير MILE ويقسمه على "12.5" ، والنتيجة هى الصفر . وفى النهاية سوف يطبع "0" على الشاشة .
وهذا خطأ Bug ، ويصعب تعقبه إلا إذا كنت تنظر بعناية فى هجاء كل اسم لمتغير فى البرنامج . إذا أعطى برنامج نتيجة حسابات خاطئة بقيمة الصفر ، تحقق من هجاء كل اسم متغير .
السؤال رقم 11 :
ما الذى سوف يكتبه البرنامج التالى على شاشة الكمبيوتر ؟
الإجابة :
البرنامج سوف يطبع ما يلى :
وذلك لأن MILE و MILE# هى اسماء مختلفة ، لمتغيرين مختلفين . الاسم MILE# يستخدم لأول مرة فى العبارة PRINT لذلك يتم حجز ذاكرة من أجله كما يتم وضع الصفر به ، ومن ثم تكون محتوياته هى الصفر عند تنفيذ عملية القسمة MILE# / 12.5 .
عندما يتم استخدام المتغير فى البرنامج لأول مرة ، فإن نظام QBasic يجد (يحجز) الذاكرة من أجله . وينطبق هذا على أى عبارة ، وليس عبارة LET فقط . إذا لم تكن هناك أى معلومات أخرى ، فإن النظام سوف يضع الصفر zero كقيمة عددية بالمتغير . فيما يلى البرنامج الخطأ السابق :
- الكود:
' Calculate Miles per Gallon (Buggy Version)
'
LET MILES = (45678.3 - 45149.6)
PRINT MILE / 12.5
END
اسم المتغير MILE يظهر لأول مرة فى عبارة PRINT ( الاسم MILES اسم مختلف تماما من وجة نظر QBasic) . نتيجة لذلك فإن النظام يحجز ذاكرة من أجل هذا الاسم الجديد MILE ، وهو ليس له أى معلومات أخرى ، فيتم وضع الصفر به . الآن يوجد متغيرين فى الذاكرة :
التعبير الرياضى "MILE / 12.5" سوف يحصل على الصفر من المتغير MILE ويقسمه على "12.5" ، والنتيجة هى الصفر . وفى النهاية سوف يطبع "0" على الشاشة .
وهذا خطأ Bug ، ويصعب تعقبه إلا إذا كنت تنظر بعناية فى هجاء كل اسم لمتغير فى البرنامج . إذا أعطى برنامج نتيجة حسابات خاطئة بقيمة الصفر ، تحقق من هجاء كل اسم متغير .
السؤال رقم 11 :
ما الذى سوف يكتبه البرنامج التالى على شاشة الكمبيوتر ؟
- الكود:
' Calculate Miles per Gallon (Buggy? or not?)
'
LET MILE = (45678.3 - 45149.6)
PRINT MILE# / 12.5
END
الإجابة :
البرنامج سوف يطبع ما يلى :
- الكود:
0
وذلك لأن MILE و MILE# هى اسماء مختلفة ، لمتغيرين مختلفين . الاسم MILE# يستخدم لأول مرة فى العبارة PRINT لذلك يتم حجز ذاكرة من أجله كما يتم وضع الصفر به ، ومن ثم تكون محتوياته هى الصفر عند تنفيذ عملية القسمة MILE# / 12.5 .
رد: الدرس الثالث المتغيرات Variables
استخدام عدة متغيرات فى البرنامج :
قد يستخدم البرنامج العديد من المتغيرات . المتغيرات تكون مفيدة لتخزين الأجزاء الوسيطة من العمليات الحسابية .
مثال :
المطلوب حساب عدد الأكواب المستهلكة من صودا العنب ، سعة الكوب 8 أونس ، إذا تبقى 1.5 جالون من برميل سعته 5 جالون ( يوجد 128 أونس بكل جالون ) .
تذكر فكرة التنفيذ المتسلسل . عبارات هذا البرنامج سوف يتم تنفيذها واحدة تلو الأخرى بالترتيب بدءا من العبارة الأولى .
فى العبارة الأولى :
يتم استخدام المتغير KEGSIZE لأول مرة ، لذلك يتم حجز ذاكرة له . الأمر LET يضع القيمة "5" فى هذه الذاكرة . الشكل التالى يبين شكل الذاكرة بعد تنفيذ العبارة الأولى :
الآن يتم تنفيذ العبارة الثانية :
يتم حجز ذاكرة للمتغير LEFTOVER وحفظ القيمة "1.5" فيه ، وتكون الذاكرة كما يلى :
العبارة الثالثة أكثر تعقيدا :
هذه العبارة تقوم بعمل عدة أشياء :
1- حجز ذاكرة من أجل المتغير GALLONS .
2- البحث فى المتغير KEGSIZE للحصول على القيمة "5" .
3- البحث فى المتغير LEFTOVER للحصول على القيم "1.5" .
4- أجراء العملية الحسابية "5 – 1.5" .
5- وضع النتيجة "3.5" فى المتغير GALLONS .
تذكر أن استخدام المتغيرات KEGSIZE و LEFTOVER فى العبارة الثالثة لا يغير من محتوياتها . بعد تنفيذ العبارة الثالثة ، يكون شكل الذاكرة الرئيسية كما يلى :
بعد الانتهاء من العبارة الثالثة ، يتم تنفيذ العبارة الرابعة .
السؤال رقم 12 :
ما هى الأربعة أشياء التى تقوم بعملها العبارة الرابعة ؟
الإجابة :
العبارة الرابعة تقوم بعمل أربعة أشياء :
1- حجز ذاكرة من أجل المتغير OUNCES .
2- البحث فى المتغير GALLONS للحصول على القيمة "3.5" .
3- إجراء العملية الحسابية "3.5 * 128" .
4- وضع النتيجة "448" فى المتغير OUNCES .
يتم إجراء الخطوة الأولى لأن المتغير OUNCES لم يتم رؤيته من قبل فى البرنامج لذلك يجب حجز ذاكرة له الآن .
بعد تنفيذ العبارة الرابعة يكون شكل الذاكرة كما يلى :
بالطبع ، هناك الكثير من الأشياء فى الذاكرة ، ولكنها ليست محور اهتمامنا الآن .
وأخيرا يتم تنفيذ العبارة الأخيرة :
السؤال رقم 15 :
ما الذى سوف تكتبه هذه العبارة على شاشة الكمبيوتر ؟
الإجابة :
هذا البرنامج سوف يطبع ما يلى :
هذه العبارة تقوم بعمل أربعة أشياء :
1- كتابة السلسة "glasses of soda =" على الشاشة .
2- الحصول على القيمة "448" من المتغير OUNCES .
3- قسمة هذه القيمة على "8" ( لكن مع ترك محتويات المتغير OUNCES بدون تغيير ) .
4- كتابة النتيجة "56" على الشاشة .
ملاحظات :
· غالبا يتم وضع جزء من العمليات الحسابية فى متغير واستخدامها فى وقت لاحق فى باقى العمليات الحسابية . وهذا يقسم العمل بين عدة عبارات من البرنامج .
· احيانا يتم استخدام متغيرات مؤقتة داخل البرنامج للوصول إلى الجواب . هذه المتغيرات تستخدم فى حفظ خطوة على طول طريق النتيجة التى تريدها . عبارة PRINT النهائية قد لا تستخدم هذه المتغيرات .
قد يستخدم البرنامج العديد من المتغيرات . المتغيرات تكون مفيدة لتخزين الأجزاء الوسيطة من العمليات الحسابية .
مثال :
المطلوب حساب عدد الأكواب المستهلكة من صودا العنب ، سعة الكوب 8 أونس ، إذا تبقى 1.5 جالون من برميل سعته 5 جالون ( يوجد 128 أونس بكل جالون ) .
- الكود:
' Glasses of Grape soda
'
LET KEGSIZE = 5 ' statement 1
LET LEFTOVER = 1.5 ' statement 2
LET GALLONS = KEGSIZE - LEFTOVER ' statement 3
LET OUNCES = GALLONS * 128 ' statement 4
PRINT "glasses of soda =", OUNCES / 8 ' statement 5
END
تذكر فكرة التنفيذ المتسلسل . عبارات هذا البرنامج سوف يتم تنفيذها واحدة تلو الأخرى بالترتيب بدءا من العبارة الأولى .
فى العبارة الأولى :
يتم استخدام المتغير KEGSIZE لأول مرة ، لذلك يتم حجز ذاكرة له . الأمر LET يضع القيمة "5" فى هذه الذاكرة . الشكل التالى يبين شكل الذاكرة بعد تنفيذ العبارة الأولى :
الآن يتم تنفيذ العبارة الثانية :
يتم حجز ذاكرة للمتغير LEFTOVER وحفظ القيمة "1.5" فيه ، وتكون الذاكرة كما يلى :
العبارة الثالثة أكثر تعقيدا :
- الكود:
LET GALLONS = KEGSIZE - LEFTOVER ' statement 3
هذه العبارة تقوم بعمل عدة أشياء :
1- حجز ذاكرة من أجل المتغير GALLONS .
2- البحث فى المتغير KEGSIZE للحصول على القيمة "5" .
3- البحث فى المتغير LEFTOVER للحصول على القيم "1.5" .
4- أجراء العملية الحسابية "5 – 1.5" .
5- وضع النتيجة "3.5" فى المتغير GALLONS .
تذكر أن استخدام المتغيرات KEGSIZE و LEFTOVER فى العبارة الثالثة لا يغير من محتوياتها . بعد تنفيذ العبارة الثالثة ، يكون شكل الذاكرة الرئيسية كما يلى :
بعد الانتهاء من العبارة الثالثة ، يتم تنفيذ العبارة الرابعة .
السؤال رقم 12 :
ما هى الأربعة أشياء التى تقوم بعملها العبارة الرابعة ؟
- الكود:
LET OUNCES = GALLONS * 128 ' statement 4
الإجابة :
العبارة الرابعة تقوم بعمل أربعة أشياء :
1- حجز ذاكرة من أجل المتغير OUNCES .
2- البحث فى المتغير GALLONS للحصول على القيمة "3.5" .
3- إجراء العملية الحسابية "3.5 * 128" .
4- وضع النتيجة "448" فى المتغير OUNCES .
يتم إجراء الخطوة الأولى لأن المتغير OUNCES لم يتم رؤيته من قبل فى البرنامج لذلك يجب حجز ذاكرة له الآن .
بعد تنفيذ العبارة الرابعة يكون شكل الذاكرة كما يلى :
بالطبع ، هناك الكثير من الأشياء فى الذاكرة ، ولكنها ليست محور اهتمامنا الآن .
وأخيرا يتم تنفيذ العبارة الأخيرة :
- الكود:
PRINT "glasses of soda =", OUNCES / 8 ' statement 5
السؤال رقم 15 :
ما الذى سوف تكتبه هذه العبارة على شاشة الكمبيوتر ؟
الإجابة :
هذا البرنامج سوف يطبع ما يلى :
- الكود:
glasses of soda = 56
هذه العبارة تقوم بعمل أربعة أشياء :
1- كتابة السلسة "glasses of soda =" على الشاشة .
2- الحصول على القيمة "448" من المتغير OUNCES .
3- قسمة هذه القيمة على "8" ( لكن مع ترك محتويات المتغير OUNCES بدون تغيير ) .
4- كتابة النتيجة "56" على الشاشة .
ملاحظات :
· غالبا يتم وضع جزء من العمليات الحسابية فى متغير واستخدامها فى وقت لاحق فى باقى العمليات الحسابية . وهذا يقسم العمل بين عدة عبارات من البرنامج .
· احيانا يتم استخدام متغيرات مؤقتة داخل البرنامج للوصول إلى الجواب . هذه المتغيرات تستخدم فى حفظ خطوة على طول طريق النتيجة التى تريدها . عبارة PRINT النهائية قد لا تستخدم هذه المتغيرات .
رد: الدرس الثالث المتغيرات Variables
تغيير محتويات المتغير :
تذكر أن المتغير هو كمية صغيرة من ذاكرة الكمبيوتر والتى أعطيت اسما . يمكن تغيير محتويات ذاكرة الكمبيوتر . يمكنك القيام بذلك فى البرنامج الخاص بك عن طريق استخدام عبارة LET مع المتغير الذى يكون لديه بالفعل شىء ما . انظر إلى البرنامج التالى :
- الكود:
' Changing the contents of a variable
'
LET NUMBER = 23.5 ' create NUMBER, put 23.5 into it
PRINT "First", NUMBER ' look in NUMBER to find a value to print
LET NUMBER = 45.1 ' put 45.1 into NUMBER (erasing the 23.5)
PRINT "Second", NUMBER ' look in NUMBER to find a value to print
END
يبدأ التنفيذ بأول عبارة ، عبارة LET الأولى . هذه هى المرة الأولى التى يستخدم فيها المتغير NUMBER ، لذلك يتم حجز ذاكرة له . ثم وضع العدد "23.5" به :
الآن يتم تنفيذ عبارة PRINT الأولى . وهى تبحث فى المتغير NUMBER لتجد القيمة "23.5" ، وتطبعها على الشاشة . قيمة المتغير NUMBER لن تتغير .
السؤال رقم 16 :
هل العبارة LET دائما تحجز ذاكرة جديدة للمتغير ؟
الإجابة :
لا . فقط يتم حجز ذاكرة للمتغير الذى يستخدم لأول مرة فى العبارة .
عبارة LET الثانية :
عبارة LET الثانية تغير محتويات المتغير .
- الكود:
LET NUMBER = 45.1 ' put 45.1 into NUMBER (erasing the 23.5)
· حيث أن المتغير NUMBER موجود بالفعل ، فلن يتم حجز ذاكرة جديدة له .
· القيمة "45.1" تحل محل المحتويات السابقة للمتغير NUMBER .
إذا فكرت فى المتغير كصندوق ، وهذا الصندوق يمكن أن يحفظ شىء واحد فقط . ومن ثم بعد عبارة LET الثانية تكون الذاكرة بالشكل التالى :
الآن ، يتم تنفيذ عبارة PRINT الثانية . وهى تبحث فى المتغير NUMBER ، لتجد القيمة "45.1" ، وتطبعها على الشاشة . عبارة PRINT لن تغير من محتويات المتغير NUMBER .
السؤال رقم 17 :
أنظر مرة أخرى إلى البرنامج الكامل :
- الكود:
' Changing the contents of a variable
'
LET NUMBER = 23.5 ' create NUMBER, put 23.5 into it
PRINT "First", NUMBER ' look in NUMBER to find a value to print
LET NUMBER = 45.1 ' put 45.1 into NUMBER (erasing the 23.5)
PRINT "Second", NUMBER ' look in NUMBER to find a value to print
END
ما الذى تتوقع أن يتم طباعته على الشاشة ؟
الإجابة :
- الكود:
First 23.5
Second 45.1
رد: الدرس الثالث المتغيرات Variables
استبدال محتويات المتغير بالنتيجة :
محتويات المتغير يمكن أن تأتى من نتيجة عملية حسابية . يمكنك استخدام النتيجة لاستبدال محتويات متغير . انظر إلى البرنامج التالى :
- الكود:
' Which earns the most money?
' 40 hours at $5 an hour, or
' 30 hours at $6 an hour
'
LET RATE = 5
LET HOURS = 40
LET PAY = HOURS * RATE
PRINT "Pay for ", HOURS, "hours at ", RATE, " = " , PAY
'
LET RATE = 6
LET HOURS = 30
LET PAY = HOURS * RATE
PRINT "Pay for ", HOURS, "hours at ", RATE, " = " , PAY
'
END
فيما يلى كيف يعمل النصف الأول من البرنامج :
1- حجز ذاكرة للمتغير RATE ، وتخزين القيمة "5" به .
2- حجز ذاكرة للمتغير HOURS وتخزين القيمة "40" به .
3- عبارة LET الثالثة :
· تحجز ذاكرة للمتغير PAY .
· تستخدم القيمة "40" الموجودة فى المتغير HOURS .
· تستخدم القيمة "5" الموجودة فى المتغير RATE .
· إجراء العملية الحسابية "40 * 5 " .
· حفظ النتيجة "200" فى المتغير PAY .
4- عبارة PRINT :
· تكتب السلسلة "Pay for " .
· تبحث فى المتغير HOURS ، لتحصل على القيمة "40" وتكتبها .
· تكتب السلسلة "hours at " .
· تبحث فى المتغير RATE ، لتحصل على القيمة "5" وتكتبها .
· تكتب حرف علامة التساوى " = " .
· تبحث فى المتغير PAY ، لتحصل على القيمة "200" وتكتبها .
عند هذه النقطة تكون ذاكرة الكمبيوتر بالشكل التالى :
السؤال رقم 18 :
ما الذى سوف يطبعه الجزء الأول من البرنامج على شاشة الكمبيوتر ؟
الإجابة :
- الكود:
Pay for 40 hours at 5 = 200
النصف الثانى من البرنامج :
النصف الثانى من البرنامج يماثل الجزء الأول . فهو يعيد استخدام المتغيرات التى تم إنشاؤها فى الجزء الأول :
- الكود:
' Which earns the most money? 40 hours at $5 an hour
' or 30 hours at $6 an hour
'
LET RATE = 5
LET HOURS = 40
LET PAY = HOURS * RATE
PRINT "Pay for ", HOURS, "hours at ", RATE, " = " , PAY
'
LET RATE = 6
LET HOURS = 30
LET PAY = HOURS * RATE
PRINT "Pay for ", HOURS, "hours at ", RATE, " = " , PAY
'
END
فيما يلى كيف يعمل الجزء الثانى من البرنامج :
1- القيمة الموجودة فى المتغير RATE يتم استبدالها بالقيمة "6" .
2- القيمة الموجودة فى المتغير HOURS يتم استبدالها بالقيمة "30" .
3- عبارة LET الثالثة :
· تستخدم القيمة "30" الموجودة فى المتغير HOURS .
· وتستخدم القيمة "6" الموجودة فى المتغير RATE .
· إجراء العملية الحسابية "30 * 6 " .
· تخزين النتيجة "180" فى المتغير PAY .
4- عبارة PRINT :
· تكتب السلسلة "Pay for " .
· تبحث فى المتغير HOURS ، لتحصل على القيمة "30" وتكتبها .
· تكتب السلسلة "hours at " .
· تبحث فى المتغير RATE ، لتحصل على القيمة "6" وتكتبها .
· تكتب حرف علامة التساوى " = " .
· تبحث فى المتغير PAY ، لتحصل على القيمة "180" وتكتبها .
السؤال رقم 19 :
ما الذى سوف يطبعه البرنامج الكامل على شاشة الكمبيوتر ؟
الإجابة :
- الكود:
Pay for 40 hours at 5 = 200
Pay for 30 hours at 6 = 180
رد: الدرس الثالث المتغيرات Variables
استبدال محتويات المتغير عدة مرات :
يمكن استبدال محتويات المتغير عدة مرات . انظر إلى البرنامج التالى :
السؤال رقم 20 :
ما الذى سوف يطبعه البرنامج السابق على شاشة الكمبيوتر ؟
الإجابة :
ثلاث خطوات لعبارة LET :
عبارة LET يمكن أن تقوم بقدر كبير من العمل . لقد رأيت أمثلة على هذا بالفعل . انظر إلى العبارة التالية :
فيما يلى ملخص لما يمكن أن يحدث :
عبارة LET :
1- توجد (تحجز) ذاكرة من أجل كل متغير "جديد" فى العبارة . سوف يتم وضع الصفر فى المتغيرات العددية إذا لم يكن هناك معلومات أخرى ، ( إذا لم يكن هناك متغيرات جديدة ، فإن هذه الخطوة لا تقوم بعمل أى شىء) .
2- القيام بإجراء العمليات الحسابية الموجودة "يمين" علامة التساوى ( إذا لم يكن هناك أى عمليات حسابية ، فقط يتم استخدام القيمة الموجودة هناك) .
3- استبدال محتويات المتغير الموجود "يسار" علامة التساوى بنتيجة العملية الحسابية .
السؤال رقم 21 :
ما الذى سوف يطبعه البرنامج التالى ؟
الإجابة :
شرح البرنامج :
العبارة الأولى :
1- تحجز ذاكرة للمتغير "A" .
2- تستخدم القيمة "2" .
3- تخزن هذه القيمة فى هذا المتغير .
العبارة الثانية :
1- تحجز ذاكرة للمتغير "B" .
2- تستخدم القيمة "4" .
3- تخزن هذه القيمة فى هذا المتغير .
العبارة الثالثة :
1- تحجز ذاكرة للمتغير "C" ( المتغير A والمتغير B لا تحتاج لذاكرة جديدة) .
2- إجراء العملية الحسابية "(A + B ) / 2 ".
3- تخزين النتيجة فى المتغير "C" .
وأخيرا عبارة PRINT تبحث فى كل من المتغيرات A,B,C وتكتب محتوياتها .
السؤال رقم 22 :
هل ظهور المتغير لأول مرة على يمين علامة التساوى فى عبارة LET يعتبر خطأ ؟
الإجابة :
نعم ، على الأرحج أنه خطأ . سوف يتم حجز ذاكرة لمتغير جديد ، ويتم وضع صفر به . عادة يكون ذلك خطأ .
لقد وصلنا إلى نهاية الدرس .
فى الدرس القادم سوف نناقش عبارة INPUT ، وهى الوسيلة للحصول على البيانات للمتغير من المستخدم . وهذا سوف يجعل البرنامج مفيد أكثر من ذلك بكثير ، وبطبيعة الحال أكثر متعة .
يمكن استبدال محتويات المتغير عدة مرات . انظر إلى البرنامج التالى :
- الكود:
' Changing the contents of VALUE
'
LET VALUE = 1
PRINT VALUE
LET VALUE = 2
PRINT VALUE
LET VALUE = 3
PRINT VALUE
END
السؤال رقم 20 :
ما الذى سوف يطبعه البرنامج السابق على شاشة الكمبيوتر ؟
الإجابة :
- الكود:
1
2
3
ثلاث خطوات لعبارة LET :
عبارة LET يمكن أن تقوم بقدر كبير من العمل . لقد رأيت أمثلة على هذا بالفعل . انظر إلى العبارة التالية :
- الكود:
LET SUM = A + 23
فيما يلى ملخص لما يمكن أن يحدث :
عبارة LET :
1- توجد (تحجز) ذاكرة من أجل كل متغير "جديد" فى العبارة . سوف يتم وضع الصفر فى المتغيرات العددية إذا لم يكن هناك معلومات أخرى ، ( إذا لم يكن هناك متغيرات جديدة ، فإن هذه الخطوة لا تقوم بعمل أى شىء) .
2- القيام بإجراء العمليات الحسابية الموجودة "يمين" علامة التساوى ( إذا لم يكن هناك أى عمليات حسابية ، فقط يتم استخدام القيمة الموجودة هناك) .
3- استبدال محتويات المتغير الموجود "يسار" علامة التساوى بنتيجة العملية الحسابية .
السؤال رقم 21 :
ما الذى سوف يطبعه البرنامج التالى ؟
- الكود:
' LET example
'
LET A = 2
LET B = 4
LET C = (A + B) / 2
PRINT A, B, C
END
الإجابة :
- الكود:
2 4 3
شرح البرنامج :
العبارة الأولى :
1- تحجز ذاكرة للمتغير "A" .
2- تستخدم القيمة "2" .
3- تخزن هذه القيمة فى هذا المتغير .
العبارة الثانية :
1- تحجز ذاكرة للمتغير "B" .
2- تستخدم القيمة "4" .
3- تخزن هذه القيمة فى هذا المتغير .
العبارة الثالثة :
1- تحجز ذاكرة للمتغير "C" ( المتغير A والمتغير B لا تحتاج لذاكرة جديدة) .
2- إجراء العملية الحسابية "(A + B ) / 2 ".
3- تخزين النتيجة فى المتغير "C" .
وأخيرا عبارة PRINT تبحث فى كل من المتغيرات A,B,C وتكتب محتوياتها .
السؤال رقم 22 :
هل ظهور المتغير لأول مرة على يمين علامة التساوى فى عبارة LET يعتبر خطأ ؟
الإجابة :
نعم ، على الأرحج أنه خطأ . سوف يتم حجز ذاكرة لمتغير جديد ، ويتم وضع صفر به . عادة يكون ذلك خطأ .
لقد وصلنا إلى نهاية الدرس .
فى الدرس القادم سوف نناقش عبارة INPUT ، وهى الوسيلة للحصول على البيانات للمتغير من المستخدم . وهذا سوف يجعل البرنامج مفيد أكثر من ذلك بكثير ، وبطبيعة الحال أكثر متعة .
رد: الدرس الثالث المتغيرات Variables
الدرس الرابع عبارة INPUT
فى هذا الدرس سوف تتعلم عبارة INPUT فى لغة Qbasic . عبارة INPUT تحصل على البيانات من لوحة مفاتيح الكمبيوتر .
المحتويات :
· المدخلات والمخرجات فى نظام الكمبيوتر .
· عبارة INPUT .
· مطالبة المستخدم .
· إدخال بيانات العدد .
· استخدام عدة عبارات INPUT .
حتى الآن ، جميع البيانات التى يستخدمها البرنامج كانت جزءا من البرنامج نفسه . على سبيل المثال :
البيانات هى القراءة الأولى لعداد المسافات (45149.6) ، والقراءة الثانية لعداد المسافات (45678.3) وعدد الجالونات .
سؤال :
هل سوف يفعل البرنامج نفس الشىء فى كل مرة يتم تشغيله ؟
الإجابة :
نعم .
أجهزة الدخل Input Devices :
انظر إلى البرنامج التالى :
فى كل مرة تقوم بتشغيل البرنامج سوف يقوم بعمل نفس الشىء بالضبط . فى المرة التالية التى تملأ فيها خزان الوقود مرة أخرى ، يجب عليك تغيير البرنامج لحساب القيم الجديدة . ويصبح البرنامج غير مفيد على الإطلاق .
معظم برامج الكمبيوتر المفيدة تحصل على بيانات الدخل (المدخلات) من مصادر مختلفة عند تشغيلها . المدخلات input تعنى البيانات التى تأتى من خارج البرنامج . البرنامج الذى يفعل ذلك يمكن أن يعمل ببيانات جديدة فى كل مرة يتم تشغيله .
مصادر بيانات الدخل :
· لوحة المفاتيح .
· القرص الصلب .
· القرص المرن .
· القرص المدمج CD .
· الماوس .
· كاميرا الفيدو .
· التحويل الرقمى للصوت (جزء من كارتة الصوت) .
· الإنترنت .
· مئات من المصادر الأخرى.
بالنسبة لنا ، سوف تأتى معظم البيانات من المستخدم وكتابة البرنامج على لوحة المفاتيح . بعض مصادر البيانات (مثل البيانات الصوتية) تتطلب معدات خاصة . يطلق على قطعة المعدات hardware التى تكون مصدر لمدخلات لبرنامج الكمبيوتر "جهاز الدخل" Input device .
أجهزة الخرج Output Devices :
أثناء تشغيل معظم برامج الكمبيوتر تقوم بإخراج البيانات إلى أماكن مختلفة . فى البرمجة "المخرجات" output تعنى البيانات التى يرسلها البرنامج خارجة منه إلى بعض الأجهزة . بالنسبة لنا ، المخارج معظمها سوف يذهب إلى شاشة الكمبيوتر .
يمكن إرسال المخارج إلى :
· الشاشة .
· القرص الصلب .
· القرص المرن .
· الطابعة .
· كارتة الصوت .
· الإنترنت .
· المئات من الأماكن الأخرى .
قطعة الهاردوير التى تستخدم البيانت من البرنامج تسمى "جهاز الخرج" Output device .
سؤال :
بعض الأجهزة توجد فى قائمة أجهزة الدخل كما توجد فى قائمة أجهزة الخرج . اذكر بعض هذه الأجهزة .
الإجابة :
· القرص الصلب .
· القرص المرن .
· الإنترنت .
المداخل / المخارج I / O :
يستخدم القرص الصلب لنظام الكمبيوتر من أجل كل من المدخلات إلى البرنامج والمخرجات من البرنامج . الأجهزة الأخرى هى حصرا أجهزة دخل ( مثا لوحة المفاتيح والماوس) أو أجهزة خرج ( مثل الطابعة والشاشة) .
المدخلات والمخرجات تكون فى غاية الأهمية لنظام الكمبيوتر ويستخدم لها الاختصارا I/O . أى جهاز يقوم بعمل إدخال أو إخراج أو كليهما يسمى جهاز دخل / خرج I/O device . وغالبا ما تسمى حركة البيانات من أو إلى مثل هذا الجهاز "مدخلات / مخرجات" I/O .
العبارة INPUT :
فى هذا الدرس سوف تتعلم عبارة INPUT فى لغة Qbasic . عبارة INPUT تحصل على البيانات من لوحة مفاتيح الكمبيوتر .
المحتويات :
· المدخلات والمخرجات فى نظام الكمبيوتر .
· عبارة INPUT .
· مطالبة المستخدم .
· إدخال بيانات العدد .
· استخدام عدة عبارات INPUT .
حتى الآن ، جميع البيانات التى يستخدمها البرنامج كانت جزءا من البرنامج نفسه . على سبيل المثال :
- الكود:
' Calculate Miles per Gallon
'
LET MILES = 45678.3 - 45149.6
LET GALLONS = 12.5
PRINT MILES / GALLONS
END
البيانات هى القراءة الأولى لعداد المسافات (45149.6) ، والقراءة الثانية لعداد المسافات (45678.3) وعدد الجالونات .
سؤال :
هل سوف يفعل البرنامج نفس الشىء فى كل مرة يتم تشغيله ؟
الإجابة :
نعم .
أجهزة الدخل Input Devices :
انظر إلى البرنامج التالى :
- الكود:
LET MILES = 45678.3 - 45149.6
LET GALLONS = 12.5
PRINT MILES / GALLONS
END
فى كل مرة تقوم بتشغيل البرنامج سوف يقوم بعمل نفس الشىء بالضبط . فى المرة التالية التى تملأ فيها خزان الوقود مرة أخرى ، يجب عليك تغيير البرنامج لحساب القيم الجديدة . ويصبح البرنامج غير مفيد على الإطلاق .
معظم برامج الكمبيوتر المفيدة تحصل على بيانات الدخل (المدخلات) من مصادر مختلفة عند تشغيلها . المدخلات input تعنى البيانات التى تأتى من خارج البرنامج . البرنامج الذى يفعل ذلك يمكن أن يعمل ببيانات جديدة فى كل مرة يتم تشغيله .
مصادر بيانات الدخل :
· لوحة المفاتيح .
· القرص الصلب .
· القرص المرن .
· القرص المدمج CD .
· الماوس .
· كاميرا الفيدو .
· التحويل الرقمى للصوت (جزء من كارتة الصوت) .
· الإنترنت .
· مئات من المصادر الأخرى.
بالنسبة لنا ، سوف تأتى معظم البيانات من المستخدم وكتابة البرنامج على لوحة المفاتيح . بعض مصادر البيانات (مثل البيانات الصوتية) تتطلب معدات خاصة . يطلق على قطعة المعدات hardware التى تكون مصدر لمدخلات لبرنامج الكمبيوتر "جهاز الدخل" Input device .
أجهزة الخرج Output Devices :
أثناء تشغيل معظم برامج الكمبيوتر تقوم بإخراج البيانات إلى أماكن مختلفة . فى البرمجة "المخرجات" output تعنى البيانات التى يرسلها البرنامج خارجة منه إلى بعض الأجهزة . بالنسبة لنا ، المخارج معظمها سوف يذهب إلى شاشة الكمبيوتر .
يمكن إرسال المخارج إلى :
· الشاشة .
· القرص الصلب .
· القرص المرن .
· الطابعة .
· كارتة الصوت .
· الإنترنت .
· المئات من الأماكن الأخرى .
قطعة الهاردوير التى تستخدم البيانت من البرنامج تسمى "جهاز الخرج" Output device .
سؤال :
بعض الأجهزة توجد فى قائمة أجهزة الدخل كما توجد فى قائمة أجهزة الخرج . اذكر بعض هذه الأجهزة .
الإجابة :
· القرص الصلب .
· القرص المرن .
· الإنترنت .
المداخل / المخارج I / O :
يستخدم القرص الصلب لنظام الكمبيوتر من أجل كل من المدخلات إلى البرنامج والمخرجات من البرنامج . الأجهزة الأخرى هى حصرا أجهزة دخل ( مثا لوحة المفاتيح والماوس) أو أجهزة خرج ( مثل الطابعة والشاشة) .
المدخلات والمخرجات تكون فى غاية الأهمية لنظام الكمبيوتر ويستخدم لها الاختصارا I/O . أى جهاز يقوم بعمل إدخال أو إخراج أو كليهما يسمى جهاز دخل / خرج I/O device . وغالبا ما تسمى حركة البيانات من أو إلى مثل هذا الجهاز "مدخلات / مخرجات" I/O .
العبارة INPUT :
مواضيع مماثلة
» الأردوينو Arduino للمبتدئين
» الدرس الثالث : مرجع التعليمات : INSTRUCTIONS REFERENCE
» البرمجة بلغة البايثون أسئلة وأجوبة على الدرس الثالث
» برمجة تطبيقات الوندوز بلغة السى شارب للمبتدئين كليا
» الدرس الثالث الحلقات Loops والقرارات Decisions الجزء الأول الحلقات Loops
» الدرس الثالث : مرجع التعليمات : INSTRUCTIONS REFERENCE
» البرمجة بلغة البايثون أسئلة وأجوبة على الدرس الثالث
» برمجة تطبيقات الوندوز بلغة السى شارب للمبتدئين كليا
» الدرس الثالث الحلقات Loops والقرارات Decisions الجزء الأول الحلقات Loops
منتديات الهندسة الكهربية والإلكترونية والميكاترونكس والكومبيوتر :: الهنسة الإلكترونية :: سنة أولى برمجة - دروس برمجة الكمبيوتر بلغة QBasic
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى