قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

   

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 25-09-2014, 08:51 AM المشاركة 9   
افتراضي



السلام عليكم
تحياتي استازنا الكبير
الف شكر علي هذا الموضوع المهم
تسافر وتعود لنا بسلامه الله وربنا يوفقك
اخى الكريم شكرا جزيﻻ لك
دعاء مقبول ان شاء الله
لقد دعوت لك ولجميع الاخوة فى المسجد النبوى وان شاء الله سادعو لكم جميعا فى المسجد الحرام وعلى عرفات

كل عام وانتم بخير
مع تمنياتى بالتوفيق

اعلانات

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 25-09-2014, 08:57 AM المشاركة 10   
افتراضي


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

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 11-10-2014, 02:47 PM المشاركة 11   
افتراضي


الدرس الثالث المتغيرات Variables

فى هذا الدرس سوف نتناول المتغيرات فى لغة 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



الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 11-10-2014, 03:08 PM المشاركة 12   
افتراضي


العبارة LET :تفحص البرنامج السابق مرة أخرى :
كود:
' 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




الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 11-10-2014, 03:28 PM المشاركة 13   
افتراضي


العمليات الحسابية مع المتغيرات :تفحص البرنامج التالى . تذكر فكرة التنفيذ المتسلسل (المتتابع) : ما لم يذكر خلاف ذلك ، فإن برنامج 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   48The number of pounds is   3
لاحظ أن استخدام المتغير POUNDS فى عبارة PRINT لا يغير من محتوياته . المتغير POUNDS يكون مثل الصندوق الذى يحفظ قيمة والتى يمكنك استخدامها العديد من المرات كما ترغب بدون تغييرها .


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 11-10-2014, 04:50 PM المشاركة 14   
افتراضي


استخدام محتويات المتغير :يمكن استخدام القيمة المخزنة فى المتغير عدة مرات كما تريد . فيما يلى برنامج يستخدم المتغير عدة مرات بدون تغيير المحتويات :
كود:
' 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 12
Hours per Semester 180 Ho Hum...
كود:



الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 11-10-2014, 05:31 PM المشاركة 15   
افتراضي


أسماء المتغيرات :تذكر أن المتغير هو كمية صغيرة من ذاكرة الكمبيوتر التى أعطيت اسما . حتى الآن شاهدت عدة أسماء لمتغيرات :
كود:
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)


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 11-10-2014, 05:37 PM المشاركة 16   
افتراضي


حالة الاختلافات فى الاسماء :
تفحص القاعدة الأخيرة مرة أخرى :
إذا اختلف اسمين فقط فى حالة الحروف ، فهما فى الحقيقة نفس الاسم . هذا يعنى أن :



كود:
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



الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 01:44 AM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)