الفصل 1: المتغيرات والأنواع
ما ستتعلم في هذا الفصل
- كيفية تعريف المتغيرات والثوابت في لغة ص
- أنواع البيانات الأساسية: رقم، عشري، نص، منطقي
- التحويل بين الأنواع
- قواعد تسمية المتغيرات
- الفرق بين
متغيروثابت
1.1 تعريف المتغيرات
المتغير هو صندوق يحمل قيمة يمكن تغييرها. في لغة ص نستخدم الكلمة المفتاحية متغير لتعريف متغير:
sad
# تعريف متغير بسيط
متغير اسم = "أحمد"
متغير عمر = 25
متغير طول = 1.75
متغير متزوج = صحيح
اطبع_سطر("الاسم: " + اسم)
اطبع_سطر("العمر: " + عمر)قواعد تسمية المتغيرات
| القاعدة | مثال صحيح | مثال خاطئ |
|---|---|---|
يبدأ بحرف أو _ | اسم، _عداد | 1اسم |
| لا يحتوي مسافات | اسم_المستخدم | اسم المستخدم |
| ليس كلمة محجوزة | نتيجة | إذا |
| يدعم العربية والإنجليزية | counter، عداد | — |
💡 نصيحة
اختر أسماء واضحة ومعبّرة. بدلاً من س استخدم عمر_المستخدم.
1.2 الثوابت
الثابت لا يمكن تغيير قيمته بعد التعريف. نستخدم ثابت بدلاً من متغير:
sad
ثابت PI = 3.14159
ثابت اسم_التطبيق = "برنامجي"
ثابت الحد_الأقصى = 100
# ❌ هذا سيسبب خطأ:
# PI = 3.14 # خطأ! لا يمكن تغيير ثابت⚠️ تحذير
محاولة تغيير قيمة ثابت ستسبب خطأ في وقت التشغيل.
1.3 أنواع البيانات الأساسية
لغة ص تحتوي على 7 أنواع أساسية:
🔢 رقم (Integer)
sad
متغير عمر = 25
متغير عدد_سالب = -10
متغير صفر = 0
اطبع_سطر("النوع: " + نوع(عمر)) # رقم🔣 عشري (Float)
sad
متغير وزن = 72.5
متغير درجة_حرارة = -3.14
متغير نسبة = 0.95
اطبع_سطر("الوزن: " + وزن)📝 نص (String)
sad
متغير اسم = "سارة"
متغير جملة = "مرحباً بالعالم!"
متغير فارغ = ""
# عمليات النصوص
اطبع_سطر("الطول: " + طول(اسم))
اطبع_سطر("مرحباً " + اسم + "!")✅ منطقي (Boolean)
sad
متغير نشط = صحيح
متغير محذوف = خطأ
إذا (نشط)
اطبع_سطر("المستخدم نشط")
نهاية📋 مصفوفة (Array)
sad
متغير أرقام = [1، 2، 3، 4، 5]
متغير أسماء = ["أحمد"، "سارة"، "محمد"]
متغير مختلطة = [1، "نص"، صحيح]
اطبع_سطر("الأول: " + أرقام[0])
اطبع_سطر("العدد: " + طول(أرقام))🗂 خريطة (Map)
sad
متغير شخص = {
"اسم": "أحمد"،
"عمر": 30،
"مدينة": "الرياض"
}
اطبع_سطر("الاسم: " + شخص["اسم"])∅ لاشيء (Null)
sad
متغير قيمة = لاشيء
إذا (قيمة == لاشيء)
اطبع_سطر("لا توجد قيمة")
نهاية1.4 التحويل بين الأنواع
sad
# من رقم إلى نص
متغير رقم = 42
متغير نص_رقم = نص(رقم) # "42"
# من نص إلى رقم
متغير نص_عدد = "100"
متغير عدد = رقم(نص_عدد) # 100
# من رقم إلى عشري
متغير ع = 5
متغير عش = عشري(ع) # 5.0
# فحص النوع
اطبع_سطر(نوع(42)) # "رقم"
اطبع_سطر(نوع("مرحبا")) # "نص"
اطبع_سطر(نوع(صحيح)) # "منطقي"1.5 نطاق المتغيرات (Scope)
sad
متغير عالمي = "أنا عالمي"
دالة مثال()
متغير محلي = "أنا محلي"
اطبع_سطر(عالمي) # ✅ يمكن الوصول
اطبع_سطر(محلي) # ✅ يمكن الوصول
نهاية
مثال()
# اطبع_سطر(محلي) # ❌ خطأ! المتغير غير معرّف هنا📌 ملاحظة مهمة
المتغير المعرّف داخل دالة أو كتلة إذا/بينما لا يمكن الوصول إليه خارجها.
1.6 أنماط عملية
نمط التبادل (Swap)
sad
متغير أ = 10
متغير ب = 20
# تبادل القيم
متغير مؤقت = أ
أ = ب
ب = مؤقت
اطبع_سطر("أ = " + أ) # 20
اطبع_سطر("ب = " + ب) # 10نمط العدّاد
sad
متغير عداد = 0
بينما (عداد < 5)
اطبع_سطر("العدد: " + عداد)
عداد = عداد + 1
نهايةنمط التراكم
sad
متغير أرقام = [10، 20، 30، 40، 50]
متغير مجموع = 0
لكل رقم في أرقام
مجموع = مجموع + رقم
نهاية
اطبع_سطر("المجموع: " + مجموع) # 150تمارين
تمرين 1: التعريف الأساسي
عرّف متغيرات تمثل بطاقة هوية (اسم، عمر، مدينة، رقم الهوية) واطبعها.
💡 الحل
sad
متغير اسم = "محمد العلي"
متغير عمر = 28
متغير مدينة = "جدة"
متغير رقم_هوية = "1234567890"
اطبع_سطر("=== بطاقة هوية ===")
اطبع_سطر("الاسم: " + اسم)
اطبع_سطر("العمر: " + عمر)
اطبع_سطر("المدينة: " + مدينة)
اطبع_سطر("رقم الهوية: " + رقم_هوية)تمرين 2: حاسبة بسيطة
اكتب برنامجاً يحسب مساحة ومحيط مستطيل بأبعاد 8 × 5.
💡 الحل
sad
ثابت الطول = 8
ثابت العرض = 5
متغير المساحة = الطول * العرض
متغير المحيط = 2 * (الطول + العرض)
اطبع_سطر("المساحة: " + المساحة) # 40
اطبع_سطر("المحيط: " + المحيط) # 26تمرين 3: تحويل درجات الحرارة
اكتب برنامجاً يحوّل درجة حرارة من فهرنهايت إلى مئوية.
💡 الحل
sad
متغير فهرنهايت = 98.6
متغير مئوية = (فهرنهايت - 32) * 5 / 9
اطبع_سطر("الفهرنهايت: " + فهرنهايت)
اطبع_سطر("المئوية: " + مئوية)ملخص الفصل
| المفهوم | الصياغة | مثال |
|---|---|---|
| تعريف متغير | متغير اسم = قيمة | متغير عمر = 25 |
| تعريف ثابت | ثابت اسم = قيمة | ثابت PI = 3.14 |
| رقم صحيح | 42 | متغير ع = 42 |
| عدد عشري | 3.14 | متغير ع = 3.14 |
| نص | "مرحبا" | متغير ن = "مرحبا" |
| منطقي | صحيح / خطأ | متغير م = صحيح |
| مصفوفة | [1، 2، 3] | متغير م = [1، 2] |
| خريطة | {"مفتاح": "قيمة"} | متغير خ = {"أ": 1} |
| لاشيء | لاشيء | متغير ق = لاشيء |