برمجة جامباس/أساسيات البرمجة


أنواع البيانات عدل

البيانات هي تجريد للعالم الحقيقي وهي ضرورة لدقة المهمة ويمكن تمثيلها بطريقة يمكن معالجتها عن طريق الحاسوب. من الممكن أن تكون عنصرا واحدا أو مجموعة عناصر تقدم معلومات حول المشكلة.

فإن كانت البيانات مكونة حصريا من الأرقام فسوف تكون رقمية. وإن كانت أحرفا فستكون نصية, والتي من الممكن أن تحوي أرقاما, محارف خاصة و كلمات. البيانات المنطقية أو "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

الثوابت عدل

الثابت  : هو بيانات مخزنة في الذاكرة لها قيمة لاتتغير أثناء تنفيذ البرنامج. ويمكن عرض الثوابت :

  1. بالإشارة إلى قيمتها (على سبيل المثال 3.14 ، 13033 أو "هذا النص" وهي ثوابت من أنواع بيانات مختلفة
  2. باستخدام اسم المعطى أثناء التعريف و الذي يسمح للإشارة إلى قيمتها في البرنامج. تخيل أننا نعين للمعرف "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 فقط''

إن أحد أسوأ العادات للمبرمج الا يتم إدراج التعليق على الكود ، فعند محاولة صيانة جزء من كود كتبته قبل بضعة أشهر ، فإنك لا تستطيع أن تتذكر بعض المتغيرات المستخدمة أو وظيفة جزء محدد من الكود . الآن تخيل أنك تعمل في فريق برمجة في مشروع ما سيقوم كل مطور بكتابة جزء من الكود سيتم استخدامه في أجزاء آخرى من الكود فإن لم يكن ذلك الجزء موثقا بتعليقات فمن سيفهم طريقة عمله أو وظيفته؟. أضن أنه وضحت الفائدة.