المتغيرات variable في لغة الأسس هي فقط أماكن يتم حجزها في الذاكرة لتخزين بيانات عندما يتم تشغيل البرنامج. والنوع الذي نعطيه للمتغير يحدد صنف البيانات الذي يمكن تخزينه في المساحة المحجوزة لهذا المتغير في الذاكرة.
لتعريف أي متغير نستخدم الكلمة المحجوزة def يتبعها اسم المتغير يتبعها نقطتين : يتبعها صنف المتغير.
عرف اسم_المتغير: صـنف_المتغير؛
def variable_name: Data_type;
عرف اسم_المتغير: صـنف_المتغير = قيمة؛
def variable_name: Data_type = value;
اسم_المتغير = قيمة
variable_name = value
اشمل "مـتم/طـرفية.أسس"؛ استخدم مـتم؛ عرف عمر: صـحيح = 40؛ طـرفية.اطبع("عمري %d عامًا.\ج"، عمر)؛ \* عمري 40 عامًا. *\
import "Srl/Console.alusus"; use Srl; def age: Int = 40; Console.print("I am %d years old.\n", age); /* I am 40 years old. */
اﻷﻧﻮاع اﻷﺳﺎﺳﻴﺔ (اﻷوﻟﻴﺔ أو اﻟﺒﺪاﺋﻴﺔ) ﻟﻠﻤﺘﻐﻴﺮات ﻓﻲ ﻟﻐﺔ اﻷﺳﺲ ﺗﻌﺘﺒﺮ نفسها تقريبا ً في أﻏﻠﺐ ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ.وﻫﻲ :
ﺛـﻨﺎﺋﻲ (Bool)- عائم (Float)-محرف(Char)- طبيعي(Word)- صحيح(Int) إضافة ً إلى الصنفين صحيح_متكيف(ArchInt) وطبيعي_متكيف (ArchWord).
ملاحظة: الأسس تعرّف الصنف "int" كلقب للصنف "Int" أي أنه لافرق بين كتابة "int" أو "Int" عند تعريف متغير من الصنف الصحيح، والحال نفسه مع الأصناف الأساسية الأخرى، أي أن "char" هو لقب للصنف "Char" و "word" لقب ل "Word" إلخ..
عرف رقمي: صحيح // 32 بت
def my_number: int // 32 bits
عرف عددي_الصحيح: صحيح[16] // 16 بت
def my_int_number: int[16] // 16 bits
عرف عددي_الصحيح: صـحيح_متكيف؛
def my_int_number: ArchInt;
اشمل "مـتم/طـرفية"؛ استخدم مـتم؛ عرف ا: صحيح = 3؛ // تعريف متغير من الصنف صحيح وإسناد قيمة له مباشرةً عرف ب: صحيح؛ // تعريف عدد آخر من الصنف صحيح ب = 8؛ // إسناد القيمة 8 لهذا العدد عرف مجموع: صحيح = ا + ب؛ // تخزين الناتج في متحول جديد طـرفية.اطبع(مجموع)؛ // طباعة الناتج
import "Srl/Console.alusus"; use Srl; def a: Int = 3; // تعريف متغير من الصنف صحيح وإسناد قيمة له مباشرةً def b:int; // تعريف عدد آخر من الصنف صحيح b=8 // إسناد القيمة 8 لهذا العدد def sum:int=a+b; // تخزين الناتج في متحول جديد Console.print(sum); // طباعة الناتج
عرف عددي_العائم: عائم = قيمة؛
def my_float_number: float = value;
اشمل "مـتم/طـرفية"؛ استخدم مـتم؛ عرف س1: عائم[64] = 0.3؛ عرف س2: عائم[64] = 0.6؛ عرف مجموع: عائم[64] = س1 + س2؛ طـرفية.اطبع("س1 + س2 = %f"، مجموع)؛ // س1 + س2 = 0.900000
import "Srl/Console.alusus"; use Srl; def x1: float[64]=0.3; def x2: float[64]=0.6; def sum: float[64]=x1+x2; Console.print("x1+x2 = %f",sum); // x1+x2 = 0.900000
طـرفية.اطبع("س1 + س2 = %0.1f"، مجموع)؛ // س1 + س2 = 0.9 طـرفية.اطبع("س1 + س2 = %0.2f"، مجموع)؛ // س1 + س2 = 0.90
Console.print("x1+x2 = %0.1f",sum); // x1+x2 = 0.9 Console.print("x1+x2 = %0.2f",sum); // x1+x2 = 0.90
اشمل "متـم/طـرفية"؛ استخدم مـتم.طـرفية؛ عرف عدد_عائم: عائم؛ // افتراضيًا سيكون 32 بت عدد_عائم = أدخل_عائم()؛ // إدخال العدد اطبع("%f"، عدد_عائم~مثل[عـائم[64]])؛ // قمنا بعملية تحويل عند الطباعة
import "Srl/Console.alusus"; use Srl.Console; def float_num: float; // افتراضيًا سيكون 32 بت float_num=getFloat (); // إدخال العدد print("%f", float_num~cast[Float[64]]); // قمنا بعملية تحويل عند الطباعة
عرف ا: محرف = 65؛ طـرفية.اطبع("%c"، ا)؛ // A
def a: char = 65; Console.print("%c", a); // A
ملاحظة: يمكن أيضاً تعريف الثوابت بنفس الطريقة وذلك بوضع القيمة نفسها بدل الصنف ويمكن هذا مع الأعداد الصحيحة والعائمة بالإضافة إلى سلاسل المحارف، كما في المثال التالي:
عرف بسملة: "بسم الله الرحمن الرحيم"؛ عرف النسبة_الثابتة: 3.141592؛ عرف عدد_أيام_الأسبوع: 7؛
def hello: "Hello World"; def pi: 3.141592; def daysPerWeek: 7;
أي نوع أصله كائن من كلاس يعتبر من البيانات الكائنية وأهم هذه الأصناف هو الصنف Array والصنف String وكلها تعتبر متغيرات كائنية في لغة الأسس. وسنتطرق لكل منها في درس مخصص.