الاتصال بنا



النتائج 1 إلى 6 من 6

الموضوع: الرس الثاني:C

  1. #1
    عضو نشيط
    تاريخ التسجيل
    Mar 2000
    المشاركات
    62


    *************************
    *****الدرس الثاني******
    *************************
    ها نحن أخي العزيز نتواصل في تقديم الدروس في لغة سي عسى أن ينفعنا المولى عز وجل بها .... ولا تنسى أني لا أدعي معرفة كل شيء عن هذه اللغة و لكن على الأقل لن أنشر معلومات خاطئة بإذن الله.... باب النقد مفتوح على مصراعيه -------------------------------
    إن البرنامج بلغة سي عبارة عن كتابة دوال(functions)
    في ملف واحد على أن يكون أحد هذه الدوال اسمهmain
    حيث يبدء تنفيذ البرنامج من هذه الداله .أما الدوال الأخرى فيتم استدعائها داخل هذه الداله
    Functions:
    تتكون كل داله من جزئين أساسيين هما:
    1-Header(الرأس)
    2-Body(الجسم)
    و لتوضيح ذلك انظر المثال التالي:
    ---------
    1- | #include <stdio.h>
    | int main(void)
    ----------
    ----------
    2- | {
    | int x;
    | printf("I Love Swalif \n");
    | printf("If you love swalif then press 1\n");
    | printf("If you don't then press 0\n");
    | scanf("%d",&x);
    | return 0;
    | }
    ---------
    إن الجزء المرقم برقم واحد هو الرأس والثاني هو الجسم
    التفاصيل:
    #include <stdio.h>:
    هذه الرموز تفيد الcompiler لإنها تأخذ نسخه من الملف المكتوب اسمه بين القوسين وتضعه هنا ونحن نحتاج هذا الملف حتى نتمكن من استخدام الدالتين المعرفتين مسبقافي مكتبة السي (printf & scanf)
    اللتين سنأتي على شرحهما لاحقا
    int main(void):
    هذا هو اسم الداله و نوعها
    int:يعني عدد عشري صحيح
    void:أي أن الداله لاتقبل أي متغيرات مرسله
    {
    هذا القوس هو للدلالة على بداية جسم الداله
    int x;
    هنا عرفنا متغير اسمهx و نوعه int ثم كتبنا الفاصله المنقوطه للدلالة على نهاية أي سطر في جسم الداله مع ملاحظة اننا لانكتبها بعد اسم الداله كما هو موضح أعلاه
    printf(" أي نص \n");
    هذه الداله تكتب على الشاشة أي نص مكتوب بداخلها ثم تنزل السطر التالي بسبب كتابة \n داخلها و يمكن أن تكتب \n أكثر من مره داخل النص ليبدء سطر جديد في كل مره تكتبها كما تستطيع الاستغناء عنها تماما
    scanf:هذه الداله تقرأ من لوحة المفاتيح ما تدخله و تخزنه في المتغير المذكور فيها x في المثال السابق
    %d:حتى تبين للجهاز أنك ستقرأ عدد صحيح
    &x:أي خزن ما تقرأه في عنوان المتغير xفي الذاكره
    return 0; :
    حتى يرجع التحكم لنظام التشغيل والرقم صفر دلاله على الرجوع بطريقة صحيحة
    }
    هذا القوس لانهاء الداله
    حاول كتابة هذا البرنامج بنفسك و تأكد من أنك فهمت كل سطر
    لا تترد بطرح أي سؤال

    -------------------------------------
    لمراجعة الدرس الأول اضغط هنا
    www.swalif.net/swalifsoft/ubb/Forum6/HTML/000083.html

    ------------------
    لا إله إلا الله





    xoxo غير متواجد حالياً


  2. #2
    عضو نشيط
    تاريخ التسجيل
    Mar 2000
    المشاركات
    62


    يا جماعه أنا آسفة اذا كان الكتابة غير واضحه اعذروني

    ------------------
    لا إله إلا الله





    xoxo غير متواجد حالياً

  3. #3


    شكرا xoxo على الدرس

    d% معناها قراءة عدد صحيح ووضعه في المتغير x ماذا لو أريد قراءة عدد حقيقي كسري أو قراءة حروف
    وكيف يتم تعريف العدد الكسري real والرموز char


    كيف أتحكم بالمدخلات بحيث أجعل البرنامج لا يقبل مدخل إلا العددين 0 ويرفض الأعداد الأخرى ويعيد السؤال

    أتمنى شرح الدالة return بشكل أكبر فلم أفهم عملها جيدا

    وشكرا لك

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





    ------------------
    البريد الإلكتروني lonly200@yahoo.com








    الخبير غير متواجد حالياً

  4. #4
    عضو نشيط
    تاريخ التسجيل
    Mar 2000
    المشاركات
    62


    أخوي الخبير أنا كنت ناوية أترك الإجابة عن أسئلتك في دروس مخصصة
    لكن ما في مانع من ذكرها هنا للفائدة
    لتعريف realفي سي نستخدم النوع duoble or float
    و الأفضل هو double
    مثلا double x;
    و لتعريف حرف نستخدمchar مثل باسكال
    مثلا char ch;
    ولقراءة الأرقام اللي فيها فاصله لازم نستخدمF%
    و لقراءة الحروف نستخدم c%
    ولقراءة سلسلة من الحروفstringنستخدم s%
    بدل d%
    ولقراءة رقمين مثلا نكتب
    (scanf("%d%d",&x,&y
    يعني خزن في xالعدد الأول و في yالعدد الثاني
    بالنسبة لاقتراحك صدقني أنا كنت أفكر بنفس الفكرة وأنا عندي خبرة
    صحيحة بسيطة بس اسمها خبرة في تصميم الصفحات ياريت يكون في خطوة
    جدية...إذا ماعندك مانع ارسلي الباس ورد حقت موقعك الجديد علشان
    أقدر أتصرف من عندي وأرسل كل اقتراحاتك على عنواني
    xoxo@swalif.com

    ------------------
    لا إله إلا الله





    xoxo غير متواجد حالياً

  5. #5
    عضو نشيط
    تاريخ التسجيل
    Mar 2000
    المشاركات
    62


    .....
    ....
    ..
    .
    أما بالنسبة ل return
    أنت لو كتبت هذا الأمر بأي مكان داخل الbody لأي دالة
    فإنها راح تتسبب بوقف هذه الدالة و العودة إلى الدالة المنادية
    كما أنك إذا كتبت قيمة بعدها مثلاreturn 0 كما في المثال السابق
    فإن الدالة تصبح لها هذه القيمة يعني لو طلبت أنك تطبع الدالة
    فإن القيمة المطبوعة هي القيمة الي كتبتها عند return


    ------------------
    لا إله إلا الله





    xoxo غير متواجد حالياً

  6. #6
    عضو نشيط
    تاريخ التسجيل
    Jan 2000
    المشاركات
    36


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

    بالنسبة لسؤال "الخبير" : كيف أتحكم بالمدخلات بحيث أجعل البرنامج لا يقبل مدخل إلا العددين 0 ويرفض الأعداد الأخرى ويعيد السؤال ...(على فكرة ليس هناك سوى عدد واحد ، سأفترض أن العدد الثاني هو 1 ) .

    قم بالتالي :

    }do
    ؛("printf("(Re)Enter your choice..\n
    ؛(scanf("%d",&x
    ؛(while(x != 0 && x != 1{

    تستطيع أن تتحكم في الشرط الذي تريده ، فمثلا لو إشترطت أن يكون العدد المدخل أكبر من أو يساوي الخمسه و أقل من العشره ، فغير آخر سطر ليكون كالتالي :
    ؛(while(x >= 5 && x < 10

    ملاحظة (في الوقت الضائع) حول أمر العودة إلى الداعي return :
    يمكن إرجاع القيمه المحدده في وصف الداله فقط Function declaration ، يعني لو كانت هناك داله معرفه كالتالي :
    ؛(...)int SomeFunction
    فإنك داخل هذه الداله لا تستطيع إستخدام الأمر return هكذا لوحده بدون قيمه(ويجب أن تكون هذه القيمه من النوع int ).
    كذلك لو كانت الداله محايده void أي لا تعيد أي قيمه كالتالي :
    ؛(...)void SomeFunction
    فإنك لا تستطيع غير إستخدام الأمر return لوحده ، بينما لو إستخدمته ليعيد قيمه ما مثلا 1 كالتالي :
    ؛return 1
    فإن هذا سينتج عن خطأ في الترجمه .

    دمتم بخير


    [b]<small><small>[ تم تعديل الموضوع بواسطة &nbsp; xeerh &nbsp; يوم &nbsp; 24-03-2000]





    xeerh غير متواجد حالياً





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  
0