بسم الله الرحمن الرحيم
العلامات التقريبية
الملخص : العلامات التقريبية تجعلك قادر على المقارنة بين الارقام و الحروم و تعلم انيى اكبر, اصغر, او متساوى, او غير متساوى.
الى الان كل البرامج التى قمنا بعملها هى فى الفروع التالية:
الادخال من المستخدم
عمل المسائل الحسابية
عرض النتائج على الشاشة
الكمبيوتر شئ مثالى فى عمل العمليات الحسابية, لكنه ايضا قادر على مقارنة النتائج و معرفة اى واحدا اكبر,اصغر,متساوى و غير متساى هذه الانواع من العمليات مفيدة فى : معرفة المبيعات مثلا, معرفة المكسبة , الخسارة, و تحسب الكمية المقدمة من المستخدم.
البيانات الرقمية يتم مقارنتاه بأستخدام العلامات التقريبية. كل علامة تقريبية تقوم بمعرفة شئ محدد حسب استخدامها بين رقمين فقط ( اكثر من ذلك , فى الشباتر القادمة) مثال:
علامة الاكبر من (>) تعرف اذا كان العدد اكبر من الاخر ام لا. علامة المتساوى ( == ( تقارن لنا اذا كانت الارقام متساوية ام لا.
الجدول التالى به كل العلمات و معناها:
اقتباسالعلامة--------------------------------المعنى
اكبر من >
اصغر من <
اكبر من او يساوى >=
اصغر من او يساوى <=
يساوى ==
لا يساوى !=
كل هذه العلامات التقريبية تدعى binary اى انها تستخدم عمليتان, مثال على عملية اكبر من:
x>y
هذه العملية تسمى العملية التقريبية. هنا تقوم بمعرفة ايا من x ام y هو الاكبر . المثال التالى يقوم بمعرفة اي واحد هو الاصغر
x<y
الجدول التالى يرينا العمليات و ما معنى تلك العمليات بين متغيرين x,y
اقتباسالعملية---------------------المعنى
هل x اكبر من y x>y
هل x اصغر من y x<y
هل x اكبر من او متساوية مع y x>=y
هل ال x اصغر من او متساوية مع ال y x<=y
هل x تساوى y x==y
هل x لا تساوى y x!=y
ملاحظة : كل العلامات التقريبية تمتلك القدرة (من اليسار الى اليمين) اى انها تقوم بعمل ترتيب للعملياتا من اليسار الى اليمين.
العلاقة بين الارقام
اذا, فكيف تتم العمليات التقريبية فى البرنامج؟ تذكر كل العمليات التقريبية يجب ان يكون لها ارقام. ايضا تُعرف هذه العملية بأسم عمليات Boolean, التى تعنى انه يوجد صح او خطاء فقط . اذا كان x اكبر من y , فأن العملية x>y ستكون صحيحة اما العملية x==y فستكون خاطئة.
العلامة == تعنى اذا كان المتغيير الذى على اليسار يساوى الذى على اليمين. اذا كان الاثنان متساويات تكون true فلنقول ان a يساوى 4 ,اذا فالمثال التالى سوف يكون true:
a == 4
اما التالى فسوف يكون false:
a == 2
تحذير: لاحظ ان علامة يساوى هى 2 = سويا. لا تخلط بين علامة التهيئة = و هى 1= فقط و بين == التى تعنى انه اذا كان المتغير كذة يساوى كذة . لكن علامة = تقوم بعمل تهيئة للمتعير الذى على اليمين الى الذى على اليسار. سيكون هناك المزيد عن هذه المعلومات لاحقا فى هذا الشابتر.
اثنين من العلامات التقريبية فقط هم من يقومون بعمليتين مختلفتيين. علامة >= و هى تقوم بمعرفة اذا كان الرقم الذى على اليسار يساوى او اكبر من الرقم الى على اليمين. فلنفترض ان a يساوى 4 و ان b يساوى 6 و ان c يساوى 4 , كلا العمليتان التاليتان صحيحتان:
b >= a a >= c
لكن القادم ليس صحيح
a >= 5
علامة <= تعنى ان اليسار اصغر من او يساوى الذى على اليمين. مرة اخرى فلنفترض ان a يساوى 4 و ان b يساوى 6 و ان c يساوى 4 المثالين التاليين صحيحان
: a <= c b <= 10
لكن القادم غير صحيح
b <= a
اخير علامة تقريبية هى != و التى تعنى لا تساوى هى تقوم بمقارنة الرقم الايسر الى الرقم الايمن لترى اذا كانوا متساويين. كالسابق فلنفترض ان a = 4 و b = 6, c=4 العمليتان القادمتان سيكونون صح
a != b b != c
لكن العملية التالية غير صحيحة (
a !=c
الجدول التالى يقوم بعمل مقارنة بين
x = 10 y = 7
اقتباسالعملية-------------------------------الناتج
خطاء, لأن ال x ليست اكبر من y x<y
صحيح, لأن ال x اكبر من y x>y
صحيح, لأن ال x اكبر من او يساوى y x>=y
خطاء, لأن x ليست اقل او تساوى y x<=y
صحيح, لأن ال yلا تساوى x x!=y
ما هو الصحيح
السؤال " ما هو الصحيح " سؤال تجده فى كتاب الفيلسوف :D و ليس فى دورة برمجة , لكنه سؤال جيد لكى نفكر فيه, . لو ان عملية تقريبية فهى تكون يأما صح او خطاء, لكن كيف يتم استخدامهم فى البرامج, كيف يتم تخزين صح او خطاء فى الكمبيوتر ( رام )
فى السى++ المعادلات التقريبية تقوم بوضع صح كرقم 1 و خطاء كرقم 0
ملاحظة : 1 ليس الرقم الوحيد للصح , سوف ترى ذلك لاحقا فى الشابتر
مثال : لمعرفة الصح و الخطاء و ارقامهم
#include <iostream>
using namespace std;
int main() {
bool trueValue, falseValue;
int x = 5, y = 10;
trueValue = x < y;
falseValue = y == x;
cout << “True is “ << trueValue << endl;
cout << “False is “ << falseValue << endl;
cin.get();
return 0;
}المخرجات:
اقتباسTrue is 1
False is 0
لنشرح السطران الذان يحويا على علميات التقريبة
trueValue = x < y; falseValue = y == x;
هذه الجمل ربنا يبدون قدام لأنه يتم العمل معهم من داخل المتغييرات. المتغير trueValue تم تم اعطائه الناتج x < y و بما ان هذا صحيح فأن ال boolean سوف يعطى له القيمةا 1 لانه صحيح. و من ثم تم اعطاء falseValue الناتج 0 لأنه خطاء او غير صحيح.
ملاحظة : العمليات التقريبية لديها قوة اكبر من العلامة التهيئية :
z = x < y;
فى البداية تتم عملية المقارنة لأنها الاقوى من ثم يتم تخزين الناتج الى z
جدول : فلنفترض ان x = 10 و ان y = 7 و ان z , a,b يكونو int او bool:
اقتباسالجملة---------------------------------الناتج
z تم تهيئتها على انها 0 لان x ليست اقل من y z = x < y
اظهار 1 على الشاشة لأنه x اكبر من y cout << (x > y);
a تم اعطاء 1 لها لأن x اكبر من او يساوى y a = x >=y;
اظهار 0 على الشاشة لأن x ليست اقل من او تساوى y cout << (x <= y);
b تم اعطائها 1 لأن y لا تساوى x b = y != x;
عند كتابة جمل برمجية مثل هذه, من المفضل ادخالها بين اقواس مثال:
trueValue = (x < y); falseValue = (y == x);
فى الدروس القادمة سوف نتعلم كيف استخدام العلامات التقريبية بشكل افضل و بشكل عملى , تعلمناها الان فقط فى شكل سطحى.
فى المشاركة التالية سوف نتحدث عن الجملة الشرطية if