إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

الدرس 6 █▓▒░ دورة كتابة الملفات الدفعية : التعامل مع المتغيرات و الشروط if,goto,set

تقليص
هذا الموضوع مغلق.
X
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • الدرس 6 █▓▒░ دورة كتابة الملفات الدفعية : التعامل مع المتغيرات و الشروط if,goto,set

    [frame="20 85"]


    دورة كتابة الملفات الدفعية
    الدرس السادس
    التعامل مع المتغيرات الحرفية و الشروط if,goto,set



    الأمر goto
    صيغة كتابة هذا الأمر
    كود PHP:
    [B]goto[/Blabel 
    حيث label اسم اختياري يمكن أن تكتب أي كلمة بدلاً منه
    و يجب أن يكون معرفاً قبل استعمال تعليمة goto
    أعتقد أن الأمور غير واضحة أبداً و لذلك سأودر الأمثلة لتوضيح هذه العملية المهمة جداً


    مثال 1
    كود PHP:
    @echo off

    [B]:start[/B]
    echo 
    tahasoft

    [B]goto[/Bstart 
    في البداية سيتعرف البرنامج على نقطة مرجعية هي start و يفهم مكان هذه النقطة
    و يمكننا نقله إليها متى لزم الأمر
    بعد ذلك سيطبع البرنامج عبارة tahasoftعلى الشاشة
    و في السطر الأخير و عند أمر goto سينتقل البرنامج إلى المكان start
    و بذلك سيكرر نفسه كلما وصل للنهاية

    ملاحظة :
    يجب و ضع نقطتين قبل النقطة المرجعية التي تم تعريف البرنامج عليها حتى يفهمها



    مثال 2

    اكتب برنامجاً يقوم بإنشاء ملف نصي يحوي كلمة welcome في السطر الأول
    ثم يحوي كلمة bye في بقية الأسطر بشكل متكرر

    الحل :

    كود PHP:
    echo welcome c:\1.txt
    [B]:t[/B]
    echo 
    bye >> c:\1.txt
    [B]goto[/B
    الشرح :
    بداية وضعنا تعليمة echo و استعملنا معها الإشارة > من أجل أن يكون الخرج في ملف نصي سميناه 1.txt و جعلنا مكانه على القرص c
    طبعاً من كان متابعاً معنا في الدروس السابقة يفهم هذا السطر بشكل جيد
    ثم عرفنا البرنامج على النقطة المرجعية التي سميناها t
    و على فكرة يوجد في مجموعة برامج أوفيس office ما يسمى بالارتباط التشعبي و الإشارة المرجعية و هنا فإن النقطة المرجعية شبيهة بها
    ثم بعد ذلك أضفنا على الملف الني 1.txt السطر الثاني الذي يحوي كلمة bye
    و في النهاية أعطينا البرنامج أمراً بالعودة إلى السطر t ليكرر نفسه و ذلك باستخدام الأمر goto

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

    كيف يمكننا كسر هذه الحلقة المستمرة عند عدد معين
    أي مثلاً لو أردنا من البرنامج أن يكتب كلمة bye عشرين مرة فقط
    هذا ما سنتعرف عليه بعد أن نأخذ تعليمة if
    ولكن قبل الانتقال لتعليمة if لنرى معاً تعليمة set

    الأمر set :

    الأمر set
    وهو من الأوامر التي تعطي حيوية ً و تفاعلاً بين البرنامج و المستخدم و تتيح له إمكانية
    الاختيار في البرنامج و هي سهلة الاستخدام

    لن نكتب الصيغة لهذه التعليمة لكن سنبدأ فوراً بالأمثلة :
    مثال :
    كود PHP:
    @echo off
    [B]set z[/B]=[COLOR=Green]www.[/COLOR]tahasoft[COLOR=Green].com[/COLOR]
    echo [
    B]%z%[/B]
    pause 
    في المثال السابق يتوضح لنا كيفية استعمال التعليمة set
    الشرح :
    عندما كتبنا السطر الثاني set z=www.tahasoft.com
    فإن هذا يعني أننا عرفنا المتغير z بالاسم www.tahasoft.com
    و أصبح البرنامج الآن يفهم أن z هو www.tahasoft.com
    لكن مع شرط و ضع علامتي النسبة المئوية على طرفي المتغير z عند استعماله
    أي نكتب %z% و يفهم البرنامج أن %z% تعني بالضبط www.tahasoft.com

    فالسطر الثالث
    كود PHP:
    echo %z
    مكافئ تماماً لأن نكتب
    echo www.tahasoft.com

    مثال آخر :


    الشرح :
    في السطر الأول كتبنا السطر الشهير @echo off و هو كما تعرفون لإخفاء الأوامر في نافذة الخرج ( التنفيذ )
    في السطر الثاني استعملنا تعليمة set لإسناد قيمة 1 إلى x
    و لاحظوا أننا هنا استخدمنا المتغير a مع التعليمة و تذكروا استخدام هذه الطريقة دوماً أثناء التعامل مع الأرقام
    ثم عرفنا النقطة المرجعية start و ذلك بكتابة كلمة start ووضع نقطتين قبلها
    و عند استخدامنا لبرنامج Notepad++ نلاحظ تغير اللون بشكل تلقائي إلى اللون الأحمر مع تظليل باللون الأصفر خلفه لتوضيح النقطة المرجعية
    في السطر الرابع استعملنا تعليمة set مع المتغير a لزيادة قيمة x السابقة بمقدار 1
    و هذه الطريقة شائعة و مهمة في لغات البرمجة ستكون صعبة في البداية لكن ستعتادون عليها و لمن يعمل على لغة برمجة سابقاً ستكون عادية بالنسبة له
    و يمكن كتابة السطر الرابع بطريقة أخرى كالتالي :
    كود PHP:
    [B]set/a[/Bx+=
    وهذه الطريقة محببة أكثر للمبرمجين أيضاً من الممارسة يمكن الاعتياد عليها بالنسة للجدد
    في السطر الخامس سيقوم البرنامج بإظهار قيمة x وهي الآن كم ؟
    كانت قيمة x عند بداية البرنامج هي 1 عند بداية الإسناد في السطر الثاني
    ولكن عندما وصل البرنامج في تنفيذه للسطر الرابع تمت زيادتها بمقدار 1 لتصبح 2
    أي أصبح لدينا x=2 و في السطر الخامس تم إخراج قيمة x الحالية و هي 2
    عندما يصل البرنامج للسطر السادس فإنه سيجد أمر عودة للسطر الثالث
    و هنا سينتقل فوراً للسطر الرابع و ستزيد قيمة x بمقدار 1 و ستصبح 3
    و سيبقى يكرر نفسه بدون توقف
    و سيكون نتيجة تشغيل الملف الدفعي الناتج كما يلي
    كود PHP:
    2
    3
    4
    5
    … 
    أي مجموعة من الأرقام بدءاً من 2 فصاعداً
    ملاحظة :
    في حال وجود حلقات تكرار كما في الأمثلة السابقة يمكن إيقاف التنفيذ بالضغط على الاختصار
    Ctrl+C و يمكن المتابعة بالضغط على نفس الاختصار أيضاً
    و هو اختصار عام لوقف تنفيذ برنامج في dos

    مثال :
    كود PHP:
    @echo off
    echo Enter your name :
    set/"x="
    echo Your name is : %x%
    pause 
    شرح المثال :
    في البداية أظهرنا للمستخدم رسالة تسأله عن اسمه
    ثم باستخدام تعليمة set مع المتغير p نستطيع أن نجعل البرنامج يفهم أن ما يدخله المستخدم هو x و السطر الثالث يكتب و يحفظ حرفياً كما هو مع تغيير x بأي اسم نريده
    و بعد ذلك قمنا بإظهار العبارة اسمك هو مع إظهار قيمة x التي أدخلها المستخدم سابقاً

    التعليمة صعبة شوي كأول مرة لكن ستصبح سهلة مع الممارسة
    و الدرس من أهم الدروس اليوم لذلك يرجى الانتباه و الاهتمام

    و أعتقد أن شرح هذه التعليمة بهذه الطريقة و التفصيل غير موجود في كافة المواقع العربية
    و إن وجد في المواقع الأجنبية ففيه من التعقيد ما يجعلها غير واضح

    لننتقل إلى تعليمة الشرط if
    إن لم تكن تعليمة set واضحة ( مع العلم أنه تم ذكر كافة حالاتها ) فستذكر بشكل متكرر في الأمثلة
    القادمة و في الدروس القادمة أيضاً

    تعليمة الشرط if
    ولها عدة صيغ و أشكال سنناقش أشهر هذه الصيغ
    أولاً :
    كود PHP:
    if [COLOR=Teal]condition[/COLOR] [COLOR=Green]command[/COLOR
    أي إذا تحقق الشرط condition فنفذ الأمر command
    و الشروط أو صيغ المقارنة هي :

    صيغة المقارنة المعنى
    EQU يساوي أو يمكن استعمال ==
    NEQ لا يساوي
    LSS أصغر من
    LEQ أصغر من أو يساوي
    GTR أكبر من
    GEQ أكبر من أو يساوي

    مثال :
    اكتب برنامجاً يعد من 1 إلى 100 و يظهر النتائج على الشاشة
    و عندما يصل إلى 100 يتوقف

    الحل:


    الشـــرح :
    هذا مثال جيد لفهم الأوامر set,if.goto
    في بداية البرنامج و في السطر الأول قمنا بـ.... ( الكل صار يعرف شو هذا صح )
    و في السطر الثاني عرفنا متغير رقمي اسمه x و أعطيناه قيمة ابتدائية هي الصفر 0
    و في السطر الثالث وضعنا علامة مرجعية سميناها mmm
    وفي السطر الرابع زدنا المتغير x رقماً واحداً لكل عملية
    ( و قد ذكرت بأن هذه الطريقة هي المحببة أكثر مع أنها تبدو أكير تقعيداً قبل الاعتياد عليها
    و إن جماعة ++C و #C يعرفونها تماماً .. أليس كذلك ! )
    وفي السطر الخامس خلينا البرنامج يظهر القيمة المخزنة في المتغير x عند وصوله لهذا السطر
    وفي السطر السادس وضعنا شرطاً أنه إذا كانت قيمة x تساوي المئة 100 فنفذ الأمر pause
    وفي السطر الأخير وضعنا أمر ذهاب إلى goto و جعلنا البرنامج يعود إلى mmm
    و سيبقى يعود طالما أن الشرط الموجود في السطر السادس لم يتحقق
    و عندما سيتحقق الشرط الموجود في السطر السادس سيكسر حلقة التكرار هذه و يخرج من البرنامج

    المثال السابق يحتاج منكم إلى شوية تركيز و لكن عند التدقيق فيه و محاولة فهمه جيداً و تطبيقه و تغيير بعض الأسطر هنا وهناك فستكون الأمور و اضحة

    إن عملية الشرط if لم تنته بعد و لكن نظراً لصعوبة و أهمية ما تم أخذه في هذا الدرس سأتوقف اليوم
    و سنكمل الدرس التالي و سنأخذ إن شاء الله تعليمة التكرار الهامة جداً for مع إكمال الشرط if
    أرجوا الانتباه جيداًَ و أي سؤال أنا في الخدمة فقد تعذبت حتى فهمت هذه الأوامر المهمة عندما كنت أتعلمها و الآن إن شاء الله أنا جاهز للأسئلة و الاستفسارات حول هذا الموضوع


    الوظيفة :
    اكتب برنامجاً بحيث يقوم المستخدم بإدخال رقمين الأول سنسميه x و الثاني y
    ثم سيقوم البرنامج بالعد بين هذين الرقيمين و سيظهر النتيجة في ملف نصي
    على القرص c



    [/frame]
    التعديل الأخير تم بواسطة محمود عفيفى; الساعة 11-10-2010, 05:23 PM.

  • #2
    بارك الله فيك ياطيب على هذه الدروس الرائعة

    لك أجمل تحية

    تعليق


    • #3
      شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

      تعليق


      • #4
        جزاك الله خيرا أخي محمود عفيفي وبارك الله فيك

        تعليق


        • #5
          شــــ لك ــــكراً أخي الطيب محمود

          وجزاك الله خيراً

          تعليق

          مواضيع تهمك

          تقليص

          المنتدى: القسم العام نشرت بواسطة: Reem2Rabeh الوقت: 04-23-2025 الساعة 04:27 PM
          المنتدى: ضبط وتوكيد الجودة نشرت بواسطة: HeaD Master الوقت: 04-15-2025 الساعة 09:30 AM
          المنتدى: التصنيع والانتاج نشرت بواسطة: HeaD Master الوقت: 04-11-2025 الساعة 01:08 PM
          المنتدى: القسم العام نشرت بواسطة: نوال الخطيب الوقت: 03-19-2025 الساعة 03:07 AM
          المنتدى: الكمبيوتر والإنترنت نشرت بواسطة: عوض السوداني الوقت: 03-18-2025 الساعة 07:22 AM
          يعمل...
          X