Swift 02 : العمليات الحسابية وعمليات المقارنة

Abatherمنذ 8 سنوات

بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته

في هذا الموضوع استكمالا لما سبقه سأتطرق إلى العمليات الحسابية وعمليات المقارنة

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

هناك بعض الاختلاف البسيط عند كتابة العمليات الحسابية او بالاحرى عند كتابة الرموز

"+" :

يختلف استخدام علامة الاضافة على حسب اختلاف نوع المتغير

- عندما يكون المتغير عددي سواء Int او Double او غيرهما فإن العملية هنا

هي عملية جمع  كما التالي:


var num1 : Int = 5
var num2 : Int = 4
var num3 : Int = num1 + num2

في هذه الحالة ستكون قيمة num3 عبارة عن مجموع num1 و num2.

- اما اذا كان المتغير نصي String فإن العملية هنا عبارة عن

اضافة النصين إلى بعضهما البعض كما في التالي:
 


var name : String = "Mohammed"
var fullname : String = name + " Sadiq"

عندما نقوم بطباعة او استخدام المتغير fullname فإن ما يطبع سيكون

Mohammed Sadiq

هذا بالتسبة علامة "+" اما ما تبقى من العلامات فإنها تستخدم فقط على الأعداد

- "-" : تستخدم للطرح.

- "*" : تستخدم للضرب.

- "/" : تستخدم للقسمة.

- "٪" : تستخدم لإجاد باقي القسمة لعدد ما مثلا:


var num1 = 10%2
var num2 = 11%2

ستكون قيمة num1 هي : 0

بينما num2 هي : 1

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

المقصود هنا من من العمليات الحسابية تسبق من في حال كان هناك اكثر من عملية حسابية

في سطر واحد ولدينا هنا ثلاث مستويات

- في المستوى الأول "()" القوسين وهما في أعلى السلم بحيث يجب عليك

القيام بم بين الأقواس أولاً.

- في المستوى الثاني عمليتي "*" و "/" الضرب والقسمة.

- والمستوى الثالث والأخير هما "-" و "+" الطرح والجمع.

مثلا لو كانت لدينا العملية التالية:


var num = 12 - 2 * 3

في هذه الحالة سوف نبدأ بعملية الضرب ومن ثم نقوم بعملية الطرح

أي أن قيمة num ستكون : 6  وليست : 30


var num = 2 * (3 + 4)

في هذا المثال نبدأ بالعملية اللتي بين القوسين ومن ثم ما خارج القوسين

وستكون قيمة num في هذه الحالة : 14

أما في حالة اجتمعت عمليتان من نفس المستوى فببساطة نقوم

بالعملية على حسب ترتيبها من اليسار إلى اليمين


var num = 14 - 5 + 2 * 3 / 2

في هذا المثال لدينا عمليتين من نفس المستوى فعند إذ الترتيب يكون كالتالي

اولآ نقوم بـ 3 * 2 = 6 وبعدها نقسم ناتجهما على 2 = 3

عمليتنا الحسابية اصبحت كما التالي

3 + 5 - 14

بما ان العمليتان من نفس المستوى فنبدأ من اليسار 

3 + 9 

اذا قيمة num تساوي : 12

ويفض لتفادي الخطأ وضع كل عمليتين تريد البدأ بهما او اتمامهما اولا بين قوسين.

 

تطبيق العمليات على انواع مختلفة 


var num1 : Int = 2
var num2 : Double = 3.5
var num3 = num1 + num2

في هذا المثال لا يمكن اتمام العملية الحسابية لأننا نقوم بها على

متغييرين يحملان نوعين مختلفين Int و Double سيظهر لنا خطأ 

ولحل هذا الخطأ يجب علينا تحويل احد المتغيرين إلى النوع الآخر


var num1 : Int = 2
var num2 : Double = 3.5

var num3 = Double(num1) + num2

في المثال السابق قمنا بتحويل نوع المتغير num1 إلى Double لكي يتمثال مع num2

بكل بساطة لتغيير نوع المتغير كل ما علينا فعله كتابة النوع المراد قبل اسم المتغير ووضع اسم المتغير بين قوسين

(ملاحظة : نوع المتغير سوف يتم تبدليه فقط لهذه العملية أي انه سيكون على حاله num1 سيكون Int )

عندها سيكون نوع num3 هو Double

بإمكننا كذلك تغير نوع num2 إلى Int


var num1 : Int = 2
var num2 : Double = 3.5
var num3 = num1 + Int(num2)

لكن في هذه الحالة سيفقد num2 بعضاً من قيمة

لأن Int سيحذف كل ما بعد الفاصلة.

عمليات المقارنة:

قبل الشروع في عمليات المقارنة لدينا ملاحظة يجب ان نزيح الغبار عليها 

* علامة "=" اغلبنا يعرف بانها للمساوة بين شيئا لكن في دائرة البرمج هي مختلفة تماما

لو لحظتم بأننا كنا نستخدم علامة "=" في جميع امثلتنا لإعطاء المتغير قيمة، إذا علامة "=" لوحدة ليست للمغارنة

لكنها تستخدم لإعطاء المتغير قيمة او لتغيير قيمة الحالية :


var name : String = "Mohammed"

name = "Sadiq"

في مثالنا هذا اعطينا للمتغير قيمة بوضع علامة "=" بعد المتغير، كذلك قمنا بتغيير قيمة المتغير 

عن طريق كتابة اسم المتغير ومن ثم علامة "=" يتلوها القيمة الجديدة للمتغيير.

عمليات المقارنة:

- "==" وتستخدم للسؤل التالي "هل القيمة اللتي على اليسار تساوي القيمة اللتي على اليمين؟"

- "=!" وتستخدم للسؤال "هل القيمتين مختلفتين؟"

- ">" وتستخدم للسؤال "هل القيمة اللتي باليمين اكبير من اليسار؟"

- "=>" وهي كسابقتها لكن يضاف عليها "هل القيمة اللتي باليمين اكبير من اليسار أو مساوية لها؟"

- "<" وتستخدم للإجابة عن السؤال "هل القيمة اللتي باليمين اصغر من اليسار؟"

- "=<" كما السابقة لكن يضاف لها "هل القيمة اللتي باليمين اصغر من اليسار أو مساوية لها؟"

جميع هذه العمليات تعطين احد هاتين الاجابتين صحيح "true" او خاطئ "flase" 

بإمكاننا حفظ هذه القيمة في متغيير من نوع Bool (هذا المتغير يقبل احد القيمتين فقط true or flase)


var boolean1 : Bool = true
var boolean2 : Bool = 1 == 2
var boolean3 : Bool = 4 <= 5
var boolean4 : Bool = 6 > 9

في هذا المثال لدى المتغيرات القيم التالية:

boolean1 : صحيح

boolean2 : خاطئة (لأن 1 لا يساوي 2)

boolean3 : صحيح (لأن 4 اصغر من 5)

boolean4 : خاطئة (لأن 6 ليست أكبر من 9)

قد تبدوا هذه العمليات ليست ذات قيمة عالية في هذه

اللحظة لكن ستتبين فائدتها فيما بعد، مع العلم بان هذه العمليات لا تنطبق فقط على 

القيم العديدية لكنها كذلك تنطبق على النصوص.

بما اننا تكلمنا عن عمليات المقارنة لابد بأن نعرج على العمليات المنطقية

والعمليات المنطقية تجرى فقط على قيم المقارنة أي على المتغيرات من نوع Bool

- "&&" وهذه العلامة تستخدم للسؤال "هل كلتا القيمتين صحيحتين؟"

تكون صحيحة في حالة كانت القيمتين صحيحتين

- "||" وهذه العلامة تستخدم للإجابة عن " هل أحد القيمتين صحيحة؟"

وتكون القيمة صحيحة في حال كانت احد القيمتين صحيح

لنشرع في المثال التالي لتكون الامور اكثر وضوحاً


var bool1 : Bool = 1<2 && 3 == (6/2)
var bool2 : Bool = 1 > 3 || 2 < 0

في هذا المثال قيمة bool1 هي true  لماذا؟

لأن 1 اصغر من 2 و 3 تساوي (6\2) 

اما قيمة bool2 فهي خاطئة 

لأن 1 ليس أكبر من 3 أو 2 ليس اصغر من 0

هذا الجدول سوف يوضح لنا هاتين العمليتين اكثر

bool1 bool2 bool1 && bool2 bool1 || bool2
F F F F
T F F T
F T F T
T T T T

اتمنى من أن يكون هذا الشرح المتواضع كفيل بإصال ما آردت إصاله

هذا وفي دعة الله إلى آن يوفقني الله تعالى لكتابة موضوع آخر

أي استفسار بخصوص هذين الموضوعين لا تتردد بطحرحه

لأجيب عليه او يجيب عليه أحد الأخوة

كلمات دليلية:
2
إعجاب
10090
مشاهدات
0
مشاركة
0
متابع
متميز
محتوى رهيب

التعليقات (1)

NAJIALFARIDI:

بارك الله فيك وجعل ماكتبت في ميزان حسناتك

 

 

أخوي الغالي

 

لاتوقف وواصل طروحاتك في هذا الموضوع

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !