# برمجة جامباس/أساسيات البرمجة
## أنواع البيانات

البيانات هي تجريد للعالم الحقيقي وهي ضرورة لدقة المهمة ويمكن تمثيلها بطريقة يمكن معالجتها عن طريق الحاسوب. من الممكن أن تكون عنصرا واحدا أو مجموعة عناصر تقدم معلومات حول المشكلة.
فإن كانت البيانات مكونة حصريا من الأرقام فسوف تكون رقمية. وإن كانت أحرفا فستكون نصية, والتي من الممكن أن تحوي أرقاما, محارف خاصة و كلمات. البيانات المنطقية أو "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 | عنوان ذاكرة |

## المتغيرات

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

### الإعلان

* تركيب الجملة
يجب أن يتم التعريف عن البيانات داخل الوظيفة أو الإجراء قبل أي أمر
* تركيب الجملة

### الإسناد
## الثوابت

الثابت : هو بيانات مخزنة في الذاكرة لها قيمة لاتتغير أثناء تنفيذ البرنامج. ويمكن عرض الثوابت :
* بالإشارة إلى قيمتها (على سبيل المثال 3.14 ، 13033 أو "هذا النص" وهي ثوابت من أنواع بيانات مختلفة
* باستخدام اسم المعطى أثناء التعريف و الذي يسمح للإشارة إلى قيمتها في البرنامج. تخيل أننا نعين للمعرف "pi" قيمة ثابتة 3.14159. فمن الأسهل لنا أن نتذكر ذلك المعرف من أن نتذكر قيمته ويجعل البرنامج أكثر سهولة للتعديل إذا كانت قيمة ثابت تختلف ، كما أنها كافية لتحديث القيمة المعينة إلى معرف ما.
* بناء الجملة
الثوابت تقبل أنواع البيانات التالية: Boolean, Integer, Long,

## استخدام المعاملات الحسابية
### في الحساب

جمع رقمين
بعكس علامة الرقم. (الصفر عكس نفسه)
يطرح الرقم الثاني من الأول
يضرب الرقمين
يقسم الرقمين. القسمة على الصفر تعطي الخطأ [A Division By Zero (# 26) error]
يرفع الرقم إلى القوة
يعطي نتيجة القسمة مع تجاهل المتبقى منها. القسمة على الصفر تسبب الخطأ (# 26)
يخرج باقي القسمة. القسمة على الصفر تسبب الخطأ (# 26)

### في المقارنة

يعطي القيمة "صحيح" TRUE إذا كان العددين متساويين
يعطي القيمة "صحيح" TRUE إذا كان الرقمين غير متساويين
يعطي القيمة "صحيح" TRUE إذا كان number1 أقل من number2
يعطي القيمة "صحيح" TRUE إذا كان number1 أكبر من number2
يعطي القيمة "صحيح" TRUE إذا كان number1 أقل من أو يساوي number2
يعطي القيمة "صحيح" TRUE إذا كان number1 أكبر من أو يساوي number2
نص مائل=== العمليات المخصصة ===
'إسناد مباشر
'إسناد مع الإضافة. وهي اختصارا للعملية Variable + Variable = Expression
'إسناد مع طرح. وهي اختصارا للعملية Variable = Variable - Expression
'إسناد مع الضرب. وهي اختصارا للعملية Variable = Variable * Expression
'إسناد مع القسمة. وهي اختصارا للعملية Variable = Variable / Expression
'إسناد مع القسمة الصحيحة. وهي اختصارا للعملية Variable Variable = \ expression
'إسناد لمحتوى نصي. وهي اختصارا للعملية Variable & Variable = Expression
'with concatenation assignment map. وهي اختصارا للعملية Variable = Variable & / Expression

## التعليقات

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