درس إحترافي عدد 11: أرقام و أعداد و متغيّرات

إنّ معرفة أنواع المتغيّرات مهم كثيرا في البرمجة.فإنّ ذاكرة لوحة الأردوينو محدودة جدّا.فبتّالي لا نخزّن متغيّر لا يتجاوز المائة في ومكان يخزن في يخزّن فيه إلى عدد يصل إلى 32768
يجب حسن إختيار نوع المتغيّر

أنواع متغيّرات الرقميّة

هناك عدّة أنواع من المتغيّرات بالنسبة للأعداد الرقميّة و لا يجب تجاوز الحد الأقصى لهذه المتغيّرات إما يحدث خطأ أو تتناقص الأعداد أو تعاد من البداية

byte

المتغيّر byte في لوحة أردوينو من 0 إلى 255

int

المتغيّر int و في لوحة أردوينو أونو arduino uno من -32768 إلى 32767
و إذا كنّا متأكّدين القيمة ستكون موجبة دائما يمكن أن نضيف قيمة السالبة إلى القيمة االموجبة بإضافة كلمة unsigned كما هو في المثال الموالي

unsigned int

بتعيين المتغيّر unsigned int يصبح من 0 إلى 65535

long

بتعيين المتغيّر long يصبح من 2147483648 -إلى 2147483647

unsigned long

بتعيين المتغيّر lunsigned long يصبح من 0 إلى 4294967295

float

إذا كان العدد عشري فيجب تعيينه بـ float وهو محصور بين 3.4028235E+38- إلى3.4028235E+38
E+38 تعني (10 قوّة 38)

bool

إذا كان المتغيّر له حالتين فقط (مصباح يضيء أو منطفأ) فنستعمل المتغيّر bool و يكون ذات قيمة true أو false (0 أو 1)
و عدّة دلالات تخرج لنا هذا المتغيّر
مثال الدّالة if إذا كان الشرط صحيح تعني true و إذا كان الشرط خطأ تكون false

العمليات الحسابية

يمكن إستعمال العمليّات الحسابيّة كالجمع (+) و الطرح () و الضرب (*) و القسمة(/) و تساوي(=)
كما أنّ هناك باقي القسمة(%)
7=2*3+1 إذا قسمنا العدد 7 على 3 سنجد 2 و باقي القسمة 1 بالتالي
x=7 % 3 أو x=7 % 2 فإن x مساوية لـ 1

المقارنة

يمكن إستعمال المقارنة بين لمتغيّرات العددّية مثل الأكبر (<) أو أكبر أو يساوي (<=) أو أصغر (>) أو أصغر أو يساوي (>=) أو مساوية (==) أو غير مساوية (!=)

إذا كان هناك أكثر من مقارنة فيمكن إستعمال أداوات أخرى مثل
(الشرط الأوّل)&& (الشرط الثاني) يجب أن تتوفّر الشرط الأوّل و الشرط الثاني معا
(الشرط الأوّل)|| (الشرط الثاني) يجب أن تتوفّر الشرط الأوّل أو الشرط الثاني معا (واحدة تكفي)
(الشرط)! يجب أن لا يتوفّر هذا الشرط

إختصارات العمليّات

يمكن إختصار لبعض العمليّات و تكون أفضل عند إستعمالها
x=x + 2 أفضل إذا كتبت بهذا الشكل x += 2 و تعني إن المتغيّر x سوف تخزن فيه قيمة x الأصلية زائدة 2
x=x - 2 أفضل إذا كتبت بهذا الشكل x -= 2 و تعني إن المتغيّر x سوف تخزن فيه قيمة x الأصلية ناقصة 2
x=x * 2 أفضل إذا كتبت بهذا الشكل x *= 2 و تعني إن المتغيّر x سوف تخزن فيه قيمة x الأصليةضاربة 2
x=x / 2 أفضل إذا كتبت بهذا الشكل x /= 2 و تعني إن المتغيّر x سوف تخزن فيه قيمة x الأصلية مقسومة 2
x=x%2 أفضل إذا كتبت بهذا الشكل x%=2 و تعني إن المتغيّر x سوف تخزن فيه قيمة باقي القسمة x الأصلية على 2
x=x + 1 أفضل إذا كتبت بهذا الشكل x++ و تعني إن المتغيّر x سوف تخزن فيه قيمة x تضاف إليها 1
x=x - 1 أفضل إذا كتبت بهذا الشكل x-- و تعني إن المتغيّر x سوف تخزن فيه قيمة x تنقص منها 1

ريّاضيات

abs()

القيمة المطلقة و تخرج لنا القيمة موجبة مثال
x=abs(-5) قيمة x تساوي 5

max() 

تبحث عن أكبر قيمة بين عددين مثال x= max(5, 20); النتيجة x مساوية لـ 20

min() 

تبحث عن أكبر قيمة بين عددين مثال x= min(5, 20); النتيجة x مساوية لـ 5

sq() 

القوّة 2 مثال x= sq(5)قيمة x تساوي 25

sqrt()

ججر تربيعي مثال x= sqrt(25) قيمة x مساوية لـ 5
int x1= sqrt(14) في هذا المثال x1 مساوية لـ 3 لإن xعدد صحيح
float y1= sqrt(14)في هذا المثال y1 مساوية لـ 3.74 لإن xعدد عشري
Serial.println(y1,1) تعطينا رقم واحد بعد الفاصل

round()

تقوم دالة round بتضخيم العدد إلى أن يصبح عدد صحيح مثال y = round(3.74) تساوي 4

map()

تستعمل هذه الدالة لتسهيل القاعدة الثلاثية فمثل المنفذ A3 يعطي قيمة من 0 إلى 1023 إنطلاقا من مقاوم متغيّر من 0 إلى 2000 أوم
إذا قيمة A3 مساوية لـ 100 فإنّ قيمة المقاومة المقاوم المتغيّر في هذه الوضعيّة
y1=100.0 *2000.0/1023.0 و القيمة المخرجة 195.50

map (val, basse_val, haute_val, basse_des, haute_des)
val=قيمة ََA3
basse_val=أدنى قيمة A3
basse_haute=أدنى قيمة للمكوّن المرتبط (المقاوم المتغيّر 0 أوم)
haute_des=أعلى قيمة للمكوّن المرتبط (المقاوم المتغيّر 2000 أوم)

cos() sin() tan()

خاصة بالرياضيّات trigonométrie

delay() 

لإنتطار مدّة زمنيّة بالمليّثانية 1/1000 ثانية

delayMicroseconds()

 لإنتطار مدّة زمنيّة 1/1000000 ثانية
micros()

لقراءة المدّة الزمنيّة المستغرقة بالميكرو ثانية

millis() 

 لقراءة المدّة الزمنيّة المستغرقة بالمليّثانية

random()

لإختيار رقم عشوائي نستعمل الدّالة random
و إذا أردنى بأن العدد لا يتجاوز 350 نستعمل random(350)
و إذا أردنى بأن العدد محصور بين 100 و 200 نستعمل نستعملrandom(100, 200)

أي سؤال أو إستفسار حول هذا الدرس الرجاء إضغط هنا