الثلاثاء، 4 فبراير 2014

الفصل الأول تمثيل البيانات

تمثيل البيانات https://www.blogger.com/blogger.g?blogID=808266641882786960#editor/target=post;postID=387828770787414939;onPublishedMenu=allposts;onClosedMenu=allposts;postNum=0;src=link




تعريف البيانات المتغيرة أو الثابتة 

يقصد به عدد الخلايا والأماكن المتساوية الحجم التى تتكون منها ذاكرة الكمبيوتر

المتغيرات (( Variables ))أولا 


تختلف انواع المتغيرات التى يتم انشاوها كمخازن فى الذاكرة حسب نوع البيانات التى سوف توضع فيها ويتم استدعاء هذه البيانات من الذاكرة للاستفادة 
1) integer
يشغل 2 بايت وهى ارقام صحيحة صغيرة المدى وتتراوح بين 32767 الى -32767 
2) long يشغل 4 بايت وهى ارقام صحيحة كبيرة المدى وتتراوح بين
2147483648 الى-2147483648
3) single 
يشغل 4 بايت وهى ارقام حقيقية ذات دقة بسيطة
4)double 
يشغل 8 بايت وهى ارقام حقيقية ذات كسر عشرى وذات دقة عاليه
5)متغيرات عمله (ارقام ماليه) currency 
تستخدم فى البرامج المالية الدقيقة وتشغل 8 بايت فى الذاكرة
6)متغيرات حرفية string
تستخدم لتخزين قيم البيانات الحرفية مثل الاسماء وتشمل كل حروف لوحة المفاتيح
7)متغيرات منطقية boolean
تستخدم لتخزين قيم البيانات المنطقية (yes,no) او (true,false)
8) byte
يستخدم هذا المتغير عند استخدام ارقام محددة وتتراوح بين 0,255 
9) variant
يستخدم لتخزين اى قيمة لاى بيانات حسب نوعية البيانات نفسها بمعنى ان هذا المتغير يتشكل حسب الحاجة وحسب نوع البيانات 
وهذه القيمة default (القيم الابتدائية - الافتراضية) فى حالة عدم تحديد النوع لاى متغير.


حجز وتعريف المتغيرات 
الصورة العامة للامر نوع المتغير as اسم المتغير dim
يجب ان يتم تعريف اى متغير قبل استخدامه فى البرنامج بامر dim وهى اختصار لكلمة dimension
وتعنى ابعاد او مواصفات المتغير 

اسم المتغير : هو اسم للمتغير ويجب ان يبدا بحرف هجائى ولا يشمل حروف خاصة او مسافات 
نوع المتغير : احد انواع المتغيرات السابقة 
الان ناخذ بعض من الامثلة عن حجز المتغيرات 

dim n as string هنا نحجز مكان فى الذاكرة اسمه n ونوعة string (حرفى)

dim a as integer كما تعلمنا ان الاسم ياتى بعد كلمة dim اذن اسم المتغير هنا a
ونوعه integer 

dim a1 as integer هنا المتغير اسمه a1 والنوع زى السابق

dim abc as double اسم المتغير abc ونوعة double

dim ahmed as single اسم المتغير ahmed ونوعة single
بعض الأمثلة للاعلان عن المتغيرات 
dim 1ahmed as integer خطا لانه يبدا برقم
dim a 1 as integer خطا لا نة يحتوى على مسافة

الشروط اللازمة لكتابة اسماء المتغيرات في البرنامج:
1 - عدم استخدام الكلمات المحجوزة في البرنامج 
رموز PHP:(if dim while do ......) 
2 - عدم البدء برقم في اسم المتغير مثل لذلك :-
رموز PHP:Dim 1a as string 

3 - يمنع استخدام الرموز في اسماء المتغيرات مثل 
رموز PHP:Dim ? as Integer 
4 - يمنع استخدام النقطة او الفاصلة في اسم المتغير مثل :-
رموز PHP:Dim a.1 as string
Dim a
Dim a,as String 
طرق تعريف المتغيرات في البرنامج باستخدام الكلمة المحجوزة Dim
1 – الطريقة الافتراضية لتعريف المتغيرات
رموز PHP:Dim name As String 

2 - طريقة تعريف متغير منفصل مع نسب القيمة له في نفس السطر
رموز PHP:Dim name As String "ali" 
3 - طريقة تعريف اكثر من متغير في سطر واحد ويكونوا لنفس النوع (اي كلاهما من نوع نصي او كلاهما من نوع رقمي) مثل لذلك 
رموز PHP:Dim f_namel_name As String 
في هذا المتغير عرفنا متغيريين من نوع نص اسم المتغير الاول والثاني L_name F_name 
4 - تعريف متغيرات مختلفة في نفس السطر (اي مختلفة في النوع اي متغير نصي ومتغير رقمي ومتغير منطقي) مثل 
رموز PHP:Dim name As Stringage As Integermarry As Boolean 

لاحظ هنا اننا كتبنا المتغيرات جميعها بكلمة واحد فقط للتعريف وهي Dim
5 - تعريف متغيرات من غير نوع في سطر واحد ونسب القيم لها مثل 
رموز PHP:Dim name As String "mr.mohammed"age As Integer 12marry As Boolean True 
لاحظ اننا عرفنا 3 متغيرات من انواع مختلفة منها النصي ومنها الرقمي ومنها المنطقي..6 - تعريف متغير من دون ذكر الكلمة Dim مثل :- رموز PHP:Name="lo2i" 
طرق تعريف المتغيرات في البرنامج :_
باستخدام الكلمة المحجوزة static 
1 - يمكنك استخدمها بهذه الطريقة 
رموز PHP:Static name As String 
وسيبقى البرنامج محتفظاً بها داخل البرنامج من لحظة تشغيله إلى لحظة ايقافهالمعلومات المستخدمة لاضافة المتغيرات باستخدام الامر Dim لاتختلف عن طرق اضافة المتغيرات في الاستاتيك static 

الفرق بين الكلمتين Dim و static
عندما تريد من المتغير ان يحتفظ باقيمة داخل اجراء خاص فقط تستخدم له هذه الكلمة Dim 
عندما تريد من المتغير ان يحتفظ بقيمة المتغير طيلة فترة عمر البرنامج يمكنك استخدام هذه Static الانواع من المتغيرات 
مع التنبيه ان الكلمة الاولى تكون اخف على الذاكرة من الكلمة الثانية لان الاولى تحتفظ بالقيمة داخل اجراء منفصل بها والثانية تحتفظ بها طيلة وقت البرنامج.

أنواع المتغيرات التي يمكن التعامل معها نوضح كل ذلك

ويمكننا القول هنا ان انواع المتغيرات تنقسم إلى ثلاث اقسام رئيسية وهي كالتالي :-
1 - متغيرات عددية .2 - متغيرات نصية .3 - متغيرات منطقية. 4 - متغير عام ويحمل كل هذه القيم .

سوف اعطي هنا امثلة بسيطة عن المتغيرات النصية

رموز PHP:Dim NAME As StringStatic NAME2 As String
NAME 
NAME "ali"NAME2 "MOHAMMED"MsgBox(NAME " " NAME2

امثلة عن المتغيرات الرقيمة :_
رموز PHP:Dim num1 As IntegerStatic num2 As Integer
num1 
num1 10
num2 
num2 10
MsgBox
MsgBox(num1 num2

امثلة عن العمليات المنطقية في المتغيرات :-
رموز PHP:Dim value As Boolean
value 
value True
value 
value false
MsgBox
MsgBox(value

مثال على تعريف المتغير العام في البرنامج :-
رموز PHP:Dim s As Object
12345
12.345
"mohammed""lo2i"True
False
MsgBox
MsgBox(s

ثانيا الثوابت

ماهي الثوابت ؟ من الاسم يمكنك ان تستنج انه متغير ثابت ولا يتغير ابدا مهما حصل , قد تتسائل لماذا نحتاج الى هذه النوع من المتغيرات , والاجابه هي , تخيل ان لدينا اسعار بعض من منتجاتنا , وهذه الاسعار ثابته ولا تتغير ؟ فسوف نقوم بوضعها في الثوابت بالطريقه التاليه define( 'var' , value ) هل وضحت الصوره ؟؟ لنأخذها بالعربيه define('اسم المتغير' , القيمه ) , هل عرفت الان الطريقة ؟ لنقم ببعض الامثله ,تخيل انه لدينا مطعم ونبيع الببسي بثلاث انواع , صغير وقيمته ريال واحد , وسط وقيمته ريالان , كبير وقيمته 3 ريالات ,  قم بكتابة التالي ,

 ثوابت Variables البیانات في أي لغة من لغات البرمجة بما فیھا فیجول بیسك أما أن تكون متغیرات


و المتغیر ھو مكان في الذاكرة يتم تخصیصه لك لتقوم بوضع عنوان له ويخزن المعلومة التي Constants




تريدھا بداخلة كما يمكنك تغیر ھذه المعلومة بمعلومة أخري في نفس المكان ويظل عنوانه ثابت.أما الثابت فمثله مثل المتغیر تماما إلا انك لن تحتاج لتغیر ھذه المعلومة . وكما ھو واضح من الاسمعبارة عن اسم يحمل قیمة ثابتة لا تتغیر أثناء تنفیذ البرنامج.ولكي ھذان المثالین لیوضح لك وظیفة كل من المتغیرات والثوابت..مثال علي المتغیرات والثوابت :المتغیرات . إذا أردت أن تسال عن اسم العمیل الذي سیدخله المستخدم فان اسم العمیل قیمة متغیرةلأنك لا تعرف من ھو ھذا العمیل الذي سیقع علیه اختیار المستخدم في ھذه الحالة تستخدم متغیرلتضع فیه اسم العمیل انظر المثال التاليcode:HisName$=InputBox$

(" اكتب اسم العمیل")</TD< tr>يطالبه InputBox$ في ھذا المثال سیعرض 

فیجول بیسك علي المستخدم مربع حوار نتیجة لتنفیذ أمرويبقي HisName$ فیه بكتابه اسم العمیل ويقوم بحفظ اسم العمیل الذي يدخله المستخدم في المتغیريحمل ھذا الاسم حتى يقوم المستخدم بتغیره ويتم تغیر القیمة التي يحملھا HisName$ المتغیربوضع قیمة أخري داخلة فیقوم الفیجول بیسك باستبدال القیمة القديمة بالقیمة HisName$ المتغیرالجديدة.الثوابت . إذا كان عملك يتطلب مجموعة من العملیات الحسابیة ترتبط بوحدة ثابتة مثل وحدة القیاسالمتر وھو يساوي مائه سنتمتر فیمكن الإعلان عن ذلك بالأمر التالي:code:Const Meter=100</TD< tr>وھذه يفیدك عندما تكون جمیع حساباتك بالنسبة للوحدة سنتمتر فبدلا من قیمة المتر وكتابة الرقم 100في جمیع التعلیمات المطلوبة داخل البرنامج وھي فائدة Meter في كل مرة سیتم كتابه الثابتكبیرة تجعل برنامجك سھلا وبسیطا.فائدة أخري يمكن الحصول علیھا من استخدام الثوابت 

code:Const Meter=1000</TD< tr>

وبذلك تتم عملیة التعديل مرة واحدة فقط لتعطي النتیجة المطلوبة.و ألان وقد تعرفنا علي وظیفة كل من المتغیرات و الثوابت و الفائدة المرجوة من استخدامھم 

تسمية الثابت :


يخضع اسم الثابت لنفس الشروط التي شرحناها عند اختيا

ر اسم المتغير وهي ألا يزيد عدد حروفه عن 40 حرفا، وأن يبدأ

 بحرف هجائي وألا يستخدم إحدى الكلمات المحجوزة 

للفيجول بيسك .

مدي الثوابت :
تتبع الثوابت نفس القواعد التي تحدد مدي المتغيرات حيث يحدد مدي الثابت بالمكان الذي تعلن فيه عن هذا الثابت . وتوضيح ذلك كما يلي .
ثوابت عامة : إذا أردت أن يكون الثابت عاما أي يمكن استخدامه من أي مكان في البرنامج فيجب أن تعلن عنه في الوحدة النمطية بشرط أن يسبق الإعلان عنه كلمة Public هكذا.
Public Const My_Name As String = "TafTaf"
ثوابت علي مستوي الوحدة النمطية : لكي تستخدم الثابت في وحدة نمطية فقط يجب أن تعلن عنه في قسم الإعلانات في هذه الوحدة النمطية تسبقه كلمه Private هكذا.

Private Const My_Age As Integer = 25

ثوابت علي مستوي الأجراء : : لكي تستخدم الثابت مؤقتا

 داخل إجراء معين أعلن عن الثابت داخل هذا الإجراء بنفس

 الطريقة السابقة.

و نكتشف من الكلام السابق أن الثوابت مشابه إلي حد كبير 


للمتغيرات في طريقة الإعلان عنها بأمر الإعلان Const أو 

حتى الإعلان عن نوع الثابت لزيادة سرعة التعامل معه وأيضا

 مجال رؤية الثابت وعمرة .

وللثوابت أنواع منها ثوابت عددية وثوابت حرفيه String 


وللإعلان عن ثابت حرفي يجب وضعة بين علامتي تنصيص " " .

الإعلان عن الثوابت : ( هذا الجزء منقول عن موضوع العقل 
الصناعي : الثوابت و المتغيرات للأخ BSC )
يتم الإعلان عن الثوابت باستخدام( Const ) أو ( Public Const )

مستوى الإعلان :
1- إذا تم الإعلان داخل إجراء يعتبر الثابت المعلن عنه محليا Const a=5 


2- وإذا تم الإعلان في القسم العام للنافذة يصبح عاما لجميع إجراءات تلك النافذة Const a=5 


3- وإذا تم الإعلان في القسم العام للملف يصبح عاما لجميع إجراءات ذلك الملف Const a=5 


4- أما إذا تم الإعلان في القسم العام للملف - كما سبق - لكن سبقت كلمة Const بكلمة Public فسيصبح الثابت شاملا لجميع ملفات البرنامج ونوافذه

يتم الإعلان عن الثابت الشامل هكذا ( Public Const a=5 )


الثوابت و API :كلنا نعرف مكتبات الربط الديناميكي Dynamic 

Link Libraries ( DLL ) و الفائدة الكبيرة التي نستفيد منها

 في برامجنا من التوابع ( الدوال ) و التي يطلق عليها واجهة 

برمجة التطبيقات Application Programming Interface ( 

API ) .ولكن عند استخدام هذه التوابع يوجد بعض الثوابت

 التي يجب تمريرها لهذه التوابع لتقوم بعملها المطلوب منها علي أكمل وجهه لان الكل يعرف القاعدة الذهبية تقول أن لكل دالة من دوال API لها ثوابت خاصة بها . انظر المثالي التالي :يصرح بهذه الدالة في قسم التصاريح العامة :Private Declare Function MessageBox Lib "user32" _
Alias "MessageBoxA" (ByVal hwnd As Long, ByVal _ lpText
lpText As String, ByVal lpCaption As String, ByVal _ wType
wType As Long) As LongConst MB_OK = 0اكتب هذا الكود في حدث Click للـ CommandButton :

Private Sub Command1_Click()MessageBox Me.hwnd, "Hallow", "Example", MB_OK

End Sub
الكود السابق هو كود بسيط لعرض رسالة عن طريق توابع الــ API .
في البداية عملنا علي التصريح بالدالة في قسم التصاريح العامة بأمر الإعلان Private وبعد ذلك صرحنا عن ثابت وهو ثابت معرف مسبقا و موجود في الفيجول بيسك واسم الثابت MB_Ok وبالطبع لك مطلق الحرية في تسمية الثابت كما تعلمنا سابقا . 
والخطوة الثانية العمل علي تمرير الثابت ليؤدي وظيفته المطلوبة منه في حدث Click للـ CommandButton أو في أي حدث تريده . ووظيفة هذا الثابت هي إظهار الزر موافق vbOkOnly للرسالة .
واليك بعض الثوابت المعرفة مسبقا الفيجول بيسك .

فائدة (6) :
من الممكن الاستغناء عن أمر الإعلان Private إذا كان الإعلان علي مستوي الوحدة أو الأجراء 

Private Const MB_OK = 0

Const MB_OK = 0


ليست هناك تعليقات:

إرسال تعليق