Skip to content

مكتبة io — الإدخال والإخراج

مكتبة io هي المكتبة الأساسية للتعامل مع الإدخال والإخراج في لغة ص. توفر دوال الطباعة على الشاشة، وقراءة المدخلات من المستخدم، ومسح الشاشة. وهي الأكثر استخداماً في أي برنامج بلغة ص، حيث تُسجَّل تلقائياً ولا تحتاج إلى استيراد.

sad
# دوال الطباعة والإدخال متاحة مباشرة بدون استيراد
اطبع("بسم الله الرحمن الرحيم")
اطبع_سطر("مرحباً بك في لغة ص!")

متغير الاسم = أدخل("ما اسمك؟ ")
اطبع_سطر("أهلاً يا " + الاسم + "، حيّاك الله!")

ملخص الدوال

الدالةالوصفالمعاملات
اطبع(...)طباعة بدون سطر جديدقيمة واحدة أو أكثر
اطبع_سطر(...)طباعة مع سطر جديدقيمة واحدة أو أكثر
أدخل(رسالة؟)قراءة مدخل من المستخدمرسالة اختيارية
قراءة_سطر(رسالة؟)قراءة سطر كاملرسالة اختيارية
مسح_الشاشة()مسح شاشة الطرفيةبدون معاملات

دوال الإخراج (الطباعة)

اطبع(...) — الطباعة بدون سطر جديد

تطبع القيم المُمرَّرة إليها على الشاشة دون إضافة سطر جديد في النهاية. يمكن تمرير عدة قيم وستُطبع مفصولة بمسافات. تدعم جميع أنواع البيانات: الأرقام، النصوص، القيم المنطقية، المصفوفات، وحتى القيمة الفارغة لاشيء. هذه الدالة مفيدة عند الحاجة لطباعة عدة عناصر على نفس السطر، مثل عرض شريط تقدم أو بناء سطر من أجزاء متعددة.

sad
# طباعة نص بسيط
اطبع("بسم الله")

# طباعة عدة قيم على نفس السطر
اطبع("عدد الركعات: ")
اطبع(4)
اطبع_سطر("")

# طباعة أنواع مختلفة
متغير المبلغ = 2500
اطبع("مبلغ الزكاة: ", المبلغ, " ريال")

اطبع_سطر(...) — الطباعة مع سطر جديد

تعمل مثل اطبع تماماً لكنها تضيف سطراً جديداً تلقائياً بعد الطباعة. هي الدالة الأكثر شيوعاً للإخراج، وتستخدم في معظم الحالات لأنها تضمن أن كل طباعة تظهر في سطر منفصل. تدعم كذلك تعدد المعاملات ويتم الفصل بينها بمسافة.

sad
# طباعة أسماء أيام الأسبوع بالعربية
اطبع_سطر("أيام الأسبوع:")
اطبع_سطر("السبت - الأحد - الاثنين")
اطبع_سطر("الثلاثاء - الأربعاء - الخميس - الجمعة")

# طباعة بيانات طالب
متغير الاسم = "يوسف"
متغير العمر = 20
متغير الجامعة = "جامعة الأزهر"
اطبع_سطر("الطالب: " + الاسم)
اطبع_سطر("العمر: " + العمر)
اطبع_سطر("الجامعة: " + الجامعة)

دوال الإدخال (القراءة)

أدخل(رسالة؟) — قراءة مدخل من المستخدم

تقرأ سطراً من المدخلات التي يكتبها المستخدم في الطرفية وتُرجعه كنص. يمكن تمرير رسالة اختيارية تظهر للمستخدم كموجّه قبل القراءة، مما يسهّل بناء برامج تفاعلية. القيمة المُرجعة دائماً من نوع نص، لذا إذا أردت التعامل معها كرقم يجب تحويلها باستخدام لرقم() أو لعشري().

sad
# حاسبة الزكاة البسيطة
اطبع_سطر("=== حاسبة زكاة المال ===")
متغير المال = أدخل("أدخل مبلغ المال (بالريال): ")
متغير المبلغ = لعشري(المال)

متغير النصاب = 85 * 250   # 85 غرام ذهب × سعر الغرام التقريبي
إذا (المبلغ >= النصاب)
    متغير الزكاة = المبلغ * 0.025
    اطبع_سطر("الزكاة المستحقة: " + الزكاة + " ريال")
وإلا
    اطبع_سطر("المبلغ لم يبلغ النصاب")
نهاية

قراءة_سطر(رسالة؟) — قراءة سطر كامل

تعمل بنفس طريقة أدخل — تقرأ سطراً كاملاً من الإدخال. الفرق أنها مُصمَّمة خصيصاً لقراءة الأسطر وتُعطي وضوحاً أكبر في الكود عند القراءة السطرية. مفيدة عند قراءة نصوص تحتوي على مسافات أو عبارات كاملة.

sad
# تسجيل معلومات المسجد
اطبع_سطر("=== تسجيل بيانات مسجد ===")
متغير اسم_المسجد = قراءة_سطر("اسم المسجد: ")
متغير المدينة = قراءة_سطر("المدينة: ")
متغير السعة = قراءة_سطر("سعة المصلى: ")

اطبع_سطر("تم تسجيل: " + اسم_المسجد + " في " + المدينة)

دوال الشاشة

مسح_الشاشة() — مسح شاشة الطرفية

تمسح جميع المحتويات المعروضة على شاشة الطرفية وتنقل المؤشر إلى الزاوية العلوية اليسرى. مفيدة لتنظيف الشاشة قبل عرض واجهة جديدة، مثل قوائم البرامج التفاعلية أو عرض نتائج جديدة.

sad
# قائمة تفاعلية بسيطة
مسح_الشاشة()
اطبع_سطر("╔══════════════════════╗")
اطبع_سطر("║   نظام إدارة المكتبة  ║")
اطبع_سطر("╠══════════════════════╣")
اطبع_سطر("║ 1. إضافة كتاب        ║")
اطبع_سطر("║ 2. البحث عن كتاب     ║")
اطبع_سطر("║ 3. عرض الكتب         ║")
اطبع_سطر("║ 4. خروج              ║")
اطبع_سطر("╚══════════════════════╝")
متغير الاختيار = أدخل("اختر رقم العملية: ")

مثال شامل

sad
# برنامج سجل الحضور اليومي للحلقة القرآنية
مسح_الشاشة()
اطبع_سطر("بسم الله الرحمن الرحيم")
اطبع_سطر("=== سجل حضور الحلقة القرآنية ===")
اطبع_سطر("")

متغير اسم_الحلقة = أدخل("اسم الحلقة: ")
متغير عدد_الطلاب = لرقم(أدخل("عدد الطلاب: "))

متغير الحاضرون = 0
لكل ط في مدى(1، عدد_الطلاب + 1)
    متغير الاسم = أدخل("اسم الطالب " + ط + ": ")
    متغير الحالة = أدخل("حاضر؟ (نعم/لا): ")
    إذا (الحالة == "نعم")
        الحاضرون = الحاضرون + 1
        اطبع_سطر("  ✓ " + الاسم + " — حاضر")
    وإلا
        اطبع_سطر("  ✗ " + الاسم + " — غائب")
    نهاية
نهاية

اطبع_سطر("")
اطبع_سطر("--- ملخص الحضور ---")
اطبع_سطر("الحلقة: " + اسم_الحلقة)
اطبع_سطر("الحاضرون: " + الحاضرون + " من " + عدد_الطلاب)

مُرخَّص بموجب رخصة MIT