برمجة جامباس/أساسيات البرمجة
أنواع البيانات
[عدل]البيانات هي تجريد للعالم الحقيقي وهي ضرورة لدقة المهمة ويمكن تمثيلها بطريقة يمكن معالجتها عن طريق الحاسوب. من الممكن أن تكون عنصرا واحدا أو مجموعة عناصر تقدم معلومات حول المشكلة.
فإن كانت البيانات مكونة حصريا من الأرقام فسوف تكون رقمية. وإن كانت أحرفا فستكون نصية, والتي من الممكن أن تحوي أرقاما, محارف خاصة و كلمات. البيانات المنطقية أو "Boolean", تحتمل فقط قيمتين هما: True (صح) أو False (خطأ).
ومن الممكن أن تكون البيانات قيما متغيرة أو ثابتة.
النوع | القيمة |
---|---|
Boolean | True أو False |
Byte | 0 إلى 255 |
Short | -32.768 إلى +32.767 |
Integer | -2.147.483.648 إلى +2.147.483.647 |
Long | -9.223.372.036.854.775.808 إلى +9.223.372.036.854.775.807 |
Single | مماثل لنوع البياناتfloatفي لغة C |
Float | مماثل لنوع البياناتdoubleفي لغة C |
Date | التاريخ و الوقت, كل منها يتم تخزينها كعدد صحيح |
String | متغير نصي |
Variant | أي نوع من البيانات |
Object | مرجع غير معرف لأي كائن |
Pointer | عنوان ذاكرة |
المتغيرات
[عدل]المتغيرات هي بيانات قابلة للتغيير قيمتها يتم تخزينها في ذاكرة الحاسب أثناء تشغيل البرنامج .والمتغير بشكل عام جملة تستخدم كمرجع وقيمة
الإعلان
[عدل]- تركيب الجملة
[STATIC] {PUBLIC|PRIVATE} Identifier [Static array declaration] AS Datatype [=Expression]
STATIC PUBLIC GridX AS Integer
STATIC PRIVATE bGrid AS Boolean
PUBLIC Name AS String
PRIVATE Control AS Object
PRIVATE Languages AS String[] = [ "fr", "it", "es", "de", "ja" ]
PRIVATE DefaultLanguage AS String = Languages[1]
يجب أن يتم التعريف عن البيانات داخل الوظيفة أو الإجراء قبل أي أمر
DIM fTimeDiff2 AS Float
DIM iTest AS Integer
DIM iK[9] AS Integer 'ik[0] to ik[8]
DIM shX[3,3] AS Short
DIM date1 AS Date
- تركيب الجملة
[STATIC] {PUBLIC|PRIVATE} Identifier AS NEW Native Datatype [Array dimensions...]
PUBLIC CONST WORD_MAX AS Integer = 12
PRIVATE Words AS NEW String[WORD_MAX * 2]
PUBLIC Matrix AS NEW Float[3, 3]
الإسناد
[عدل]الوجهة = التعبير
P iVal = 1972
Name = "Gambas"
hObject.Property = iVal
cCollection[sKey] = Name
الثوابت
[عدل]الثابت : هو بيانات مخزنة في الذاكرة لها قيمة لاتتغير أثناء تنفيذ البرنامج. ويمكن عرض الثوابت :
- بالإشارة إلى قيمتها (على سبيل المثال 3.14 ، 13033 أو "هذا النص" وهي ثوابت من أنواع بيانات مختلفة
- باستخدام اسم المعطى أثناء التعريف و الذي يسمح للإشارة إلى قيمتها في البرنامج. تخيل أننا نعين للمعرف "pi" قيمة ثابتة 3.14159. فمن الأسهل لنا أن نتذكر ذلك المعرف من أن نتذكر قيمته ويجعل البرنامج أكثر سهولة للتعديل إذا كانت قيمة ثابت تختلف ، كما أنها كافية لتحديث القيمة المعينة إلى معرف ما.
- بناء الجملة
''(PUBLIC | PRIVATE) CONST Identifier = Constant value AS datatype ''
الثوابت تقبل أنواع البيانات التالية: Boolean, Integer, Long,
Float أو String
PUBLIC CONST MAX_FILE AS Integer = 30
AS Boolean PRIVATE CONST DEBUG = TRUE
PRIVATE CONST MAGIC_HEADER AS String = "# Gambas form file"
AS Boolean PRIVATE CONST DEBUG = TRUE
استخدام المعاملات الحسابية
[عدل]في الحساب
[عدل]جمع رقمين
A = number1 + number2
بعكس علامة الرقم. (الصفر عكس نفسه)
A =- Number
يطرح الرقم الثاني من الأول
A = number1 - number2
يضرب الرقمين
A = number1 * Number2
يقسم الرقمين. القسمة على الصفر تعطي الخطأ [A Division By Zero (# 26) error]
A = number1 / number2
يرفع الرقم إلى القوة
A = Number ^ Power
A = number1 \ number2
يعطي نتيجة القسمة مع تجاهل المتبقى منها. القسمة على الصفر تسبب الخطأ (# 26)
A = Number1 DIV Number2
يخرج باقي القسمة. القسمة على الصفر تسبب الخطأ (# 26)
A = number 1 MOD Number2
في المقارنة
[عدل]Number1 = number2
يعطي القيمة "صحيح" TRUE إذا كان العددين متساويين
Number1 <> Number2'
يعطي القيمة "صحيح" TRUE إذا كان الرقمين غير متساويين
Number1 <number2
يعطي القيمة "صحيح" TRUE إذا كان number1 أقل من number2
Number1> number2
يعطي القيمة "صحيح" TRUE إذا كان number1 أكبر من number2
Number1 <= number2
يعطي القيمة "صحيح" TRUE إذا كان number1 أقل من أو يساوي number2
Number1> = number2
يعطي القيمة "صحيح" TRUE إذا كان number1 أكبر من أو يساوي number2
'إذا كانت نتيجة المقارنة مسندة إلى متغير رقمي , فالنتيجة ستكون 1 (True) صحيح أو 0 (False) خطأ
نص مائل=== العمليات المخصصة ===
Variable = Expression
'إسناد مباشر
Variable + = Expression
'إسناد مع الإضافة. وهي اختصارا للعملية Variable + Variable = Expression
Variable -= Expression
'إسناد مع طرح. وهي اختصارا للعملية Variable = Variable - Expression
Variable *= Expression
'إسناد مع الضرب. وهي اختصارا للعملية Variable = Variable * Expression
Variable / = Expression
'إسناد مع القسمة. وهي اختصارا للعملية Variable = Variable / Expression
Variable \ = Expression
'إسناد مع القسمة الصحيحة. وهي اختصارا للعملية Variable Variable = \ expression
Variable & = Expression
'إسناد لمحتوى نصي. وهي اختصارا للعملية Variable & Variable = Expression
Variable &/= expression
'with concatenation assignment map. وهي اختصارا للعملية Variable = Variable & / Expression
التعليقات
[عدل]من الممارسات الجيدة أن تقوم بإضافة التعليقات إلى الكود ، بغض النظر إذا كنت تستخدم جامباس أو أي لغة أخرى. في الأمثلة أعلاه نستخدم هذه التعليقات لتقديم تفاصيل عن معنى العمليات. جميع التعليقات تبدأ الفاصلة العليا (') و كل ما هو مكتوب بعد ذلك سيتم تجاهله من قبل المصنف.
'سيتم تجاهل هذا السطر من قبل مصنف جامباس
PRINT "Hello World'''هذا سيطبع الجملة Hello World فقط''
إن أحد أسوأ العادات للمبرمج الا يتم إدراج التعليق على الكود ، فعند محاولة صيانة جزء من كود كتبته قبل بضعة أشهر ، فإنك لا تستطيع أن تتذكر بعض المتغيرات المستخدمة أو وظيفة جزء محدد من الكود . الآن تخيل أنك تعمل في فريق برمجة في مشروع ما سيقوم كل مطور بكتابة جزء من الكود سيتم استخدامه في أجزاء آخرى من الكود فإن لم يكن ذلك الجزء موثقا بتعليقات فمن سيفهم طريقة عمله أو وظيفته؟. أضن أنه وضحت الفائدة.