التميز خلال 24 ساعة

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


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

الموضوع: تعلم لغة C في درس واحد!

  1. #1
    عضو موقوف مؤقتاً Bannd

    تاريخ التسجيل
    Mar 2005
    العمر
    41
    المشاركات
    493
    معدل تقييم المستوى
    0

    Post تعلم لغة C في درس واحد!

    بقلم: معاذ الجرادي المستوى: مبتدئ الاصدار: ANSI C

    --------------------------------------------------------------------------------

    لا يختلف اثنان على ان لغة البرمجة C من اقوى لغات البرمجة قديما وحديثا، وسواء كنت تريد تطوير تطبيقات في مختلف نظم التشغيل كـ Windows او Linux فمن الضرور تعلم اساسيات اللغة هذا ان علمنا ان لغة C هي لغة برمجة موحدة في مختلف منصات نظم التشغيل، يعتبر هذا الدرس مدخلك الابتدائي الى البرمجة بلغة C.
    قد تبدو فكرة تعلم لغة برمجة C في درس واحد ضرب من الخيال، وهي فعلا خيال! ولكننا هنا سنحاول التطرق لمعظم سمات اللغة واساسياتها بحيث تعطيك فكرة جيدة جدا عن لغة البرمجة C، وسنبدأ بكتابة برنامجك الاول بلغة C والمعروف بـ Hello World ولكن مع تغيير بسيط

    1 #inlcude <stdio.h>

    2 void main ()
    3 {
    4 /*طباعة جملة ترحيبية على الشاشة*/
    5 printf ("Welcome to dev4arabs.com\n");

    6 return;
    7 }
    ملاحظة: لا تكتب الارقام من 1-7 كما في المثال السابق، فلغة C لا تعتمد الترقيم لكتابة اوامرها، والغرض من هذه الارقام هو لشرح تفاصيل الكود في هذه المقالة.
    لنبدأ مع السطر (1) والذي يحتوي على جملة #include. تستخدم هذه العبارة اذا اردت تضمين او تشميل مكتبة وظائف اضافية في شفرة برنامجك، فالوظيفة المستخدمة printf ليست من ضمن وظائف لغة C، لذلك نحتاج الى تضمين مكتبة stdio.h في برنامجنا حتى نتمكن من استخدام الوظيفة printf.
    توجد مئات المكتبات والتي تأتي مع حزمة مترجم لغة C، معظمها قياسية تتبع لمعايير ANSI C. وفي العادة تكون معظم هذه المكتبات في مجلد خاص به، اما اذا كانت المكتبة في مجلد غير المجلد المحدد لمترجم بيئة التطوير، فعليك تحديده بنفسك باستخدام علامة التنصيص المزدوجة " و " عوضا عن الاقواس المثلثة < و >:
    #include <stdio.h>
    #include <conio.h>
    #include "C:\myLIB\MyHead.h"
    #include "D:\test.h"
    السطر (2) يعرف الوظيفة main، وهي اول وظيفة يتم استدعائها من قبل نظام التشغيل عند تنفيذ برنامج، صيغ كتابة الوظائف في لغة C سنتحدث عنه لاحقا، ولكن اعرف الان وبشكل مؤقت ان بداية ونهاية الوظيفة تحددها الاقواس المعكوفة { و }:
    void main ()
    {
    ...
    ...
    ...
    }

    void test ()
    {
    ...
    ...
    ...
    }
    اما في السطر (4) فنقوم بطباعة الجملة الترحيبية "Welcome to dev4arabs.com" وقد انهينا السلسة النصية string بالحرفين n\ وهما يستخدمنا للتعبير عن علامة سطر جديد Newline ينقل مؤشر الكتابة Cursor الى سطر جديد. يمكنك استخدام ايضا \" اذا اردت طباعة علامة التنصيص المزدوجة والرمز \\ للحرف\ وغيرها من الرموز التي تجدها في ملفات التعليمات.
    في السطر (6) استخدمنا الكلمة المحجوز return والتي تنهي مسار تنفيذ الوظيفة الحالية (وهي main) وبالتالي تنهي عملية تنفيذ البرنامج
    الثوابت والمتغيرات
    توفر لك لغة C اربع اشكال من الثوابت مختلفة الاحجام والاغراض يمكنك استخدامها في الكود وغالبا في عملية اسناد القيم الى المتغيرات هي:
    1. الاعداد الصحيحة:
    • بالنظام العشري DEC:
    10, 20, 0, -4
    • بالنظام الثماني OCT:
    01, 07, 03
    • بالنظام الستعشري HEX:
    0X1, 0XABC, 0XEE4
    2. الاعداد العشرية:
    10.5, 200.0000001, -120.123, 2e3, 4e-10
    3. الحروف:
    'A', 'B', 'C', '1', '2', '?'
    4. النصوص strings:
    "Welcome to dev4arabs.com", "A", "1"
    اما المتغيرات فتوجد خمسة انواع من المتغيرات char، int، double، float و void يمكنك البحث عن تفاصيلها في مكتبة MSDN، واذا اردت الاعلان عن متغير استخدم النوع ومن ثم اسم المتغير:
    int x;
    double X; /*فتسمية المتغيرات حساسة لحالة الاحرف الكبيرة والصغيرة X لا تساوي x*/
    char a = 3, y = 5, z;
    جمل التفرع وحلقات التكرار
    الصيغة التالية تمثل صيغة IF لتفيذ عبارة واحدة:
    if ( X > 3 )
    printf ("X > 3");
    واذا اردت تنفيذ مجموعة عبارات استخدم الاقواس { و } لتعريف كتلة Block:
    if ( X > 3 )
    {
    printf ("X > 3);
    printf ("\nX is Greater than 3");
    }
    يمكنك استخدام else ايضا، واذا اردت التحقق من المساواة، استخدام المعامل == وليس =:
    if (b == 0)
    printf ("Zero\n");
    else
    printf ("Not zero\nنقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي;
    التفرع باستخدام يتم باستخدام switch مع ضروري استخدام الكلمة المحجوزة break عند كل case:
    switch( x ) {
    case 1
    printf ("ONE");
    break;
    case 2
    printf ("TWO");
    break;
    case 3
    printf ("THREE");
    break;
    ...
    ...
    ...
    }
    اخيرا، الكود التالي يعرض صيغة استخدام حلقة for و while، واذا اردت تنفيذ مجموعة عبارات استخدام الاقواس { و }:
    for (int x=0; x < 10; x++)
    printf ("%d ", x);
    int x = 0
    While ( x < 10 )
    {
    printf ("%d ", x);
    x++;
    }
    الوظائف
    يمكنك تعريف الوظائف Functions بلغة C بنفس الصيغة التي استخدمناها لتعريف الوظيفة الرئيسة main في البرنامج الاول. من المهم جدا تعريف الوظيفة في سطر يسبق (اي فوق) السطر الذي يستخدم تلك الوظيفة، فالكود التالي:
    void main ()
    {
    MyFun ();
    }
    void MyFun ()
    {
    ...
    ...
    ...
    }
    لن تتم ترجمته بشكل صحيح، وذلك لان تعريف الوظيفة MyFun قد اتى في سطر يتلو (اسفل) السطر الذي استدعى تلك الوظيفة، لذلك عليك بتعريف الوظيفة MyFun فوق الوظيفة main:


    void MyFun ()
    {
    ...
    ...
    ...
    }

    void main ()
    {
    MyFun ();
    }
    مع ذلك، يمكنك تعريف الوظيفة MyFun في اسفل الوظيفة الرئيسة main شريطة كتابة تصريح Declration لها فوق الوظيفة main:
    /* تصريح للوظيفة MyFun */
    void MyFun ();
    void main ()
    {
    MyFuc ();
    }

    void MyFun ()
    {
    ...
    ...
    ...
    }
    يمكن للوظائف في لغة C استقبال المتغيرات Variables ايضا بمختلف الانواع التي تم ذكرها:
    /* تصريح للوظيفة MyFun */
    void MyFun (int, double);
    void main ()
    {
    int x = 100;
    MyFun (x, 10.5);
    }
    void MyFun (int x, double y)
    {
    printf ("X = %d, Y = %f", x, y);
    }
    النوع void المكتوب في يسار الوظيفة يحدد نوع القيمة التي تعود بها الوظيفة، يمكنك تحديد نوع اخر من القيم واستخدام العبارة return لتنهي عملية تنفيذ الوظيفة وتعود بالقيمة المطلوبة:
    int Abs (double x)
    {
    if (x < 0 )
    return x * (-1);
    else
    return x;
    }
    العناوين والمؤشرات
    في الحقيقة، ان من اهم الاسباب التي انجحت قوة لغة C هو تطبيقها لمبدأ المؤشرات Pointers، التحدث عن هذا الموضوع يتطلب عشرات المقالات وفصول متعددة من الكتب! الا اننا سنعرفك بالفكرة الرئيسية من المؤشرات وتطبيق بسيط يستخدمها.
    جميع المتغيرات التي تعلن عنها تحفظ في اماكن معينة في الذاكرة تسمى العنواين Addresses، فكل متغير له عنوان Address خاص به يمكنك الحصول عليه باستخدام المعامل &:
    void main ()
    {
    int a = 10;
    printf ("a = %d and its address is: %X", a, &a);
    }
    نفترض اننا نريد حفظ عنوان المتغير a في متغير اخر اسمه pa، في هذه الحالة ندعو المتغير pa بالاسم مؤشر Pointer فهو يشير الى عنوان متغير اخر اسمه a. لتعريف المؤشر pa، عليك استخدام المعامل*:
    void main ()
    {
    int a = 10, *pa;

    pa = &a;
    printf ("a address is: %X and the pointer pa = %X", &a, pa);
    }
    يمكنك الوصول الى العنوان الذي يشير اليه المتغير pa باستخدام المعامل * ايضا
    void main ()
    {
    int a, *pa;

    pa = &a;
    *pa = 10;

    printf ("a = %d", a);
    }
    الشكل التالي يوضح لك رسمي مبسط للذاكرة للمتغير a والمؤشر pa:
    الفوائد التي تعطيك اياها المؤشرات لا نهاية لها، الا اننا سننهي هذه الفقرة بتطبيق مثال يستخدمها وهو تعريف وظيفة باسم swap تمكنك من تبديل قيمة متغرين:
    void Swap (int*, int*);
    void main ()
    {
    int x = 100, y = 200;
    /*x = 100 and y = 200 */
    printf ("x = %d and y = %d \n", x, y);
    Swap (&x, &y);
    /*x = 200 and y = 100 */
    printf ("x = %d and y = %d \n", x, y);
    }

    void Swap (int* x, int* y);
    {
    int iTmp;

    iTmp = *x;
    *x = *y;
    *y = iTmp;
    }
    خاتمة
    هذه هي لغة C! استعرضنا في هذا المقال السمات الاساسية للغة البرمجة C وفقا لمواصفات ANSI C، يمكنك البدء بتعليم نفسك ذاتيا الان سواء من مكتبة MSDN او الحصول على كتب تعريفية في لغة البرمجة C للحصول على تطبيقات اكثر عملية وتفاصيل اشمل في كل ما ذكرناه.



    ________________________________________

  2. #2

    الصورة الرمزية وتر حساس
    تاريخ التسجيل
    Sep 2003
    الدولة
    تعز
    المشاركات
    3,708
    معدل تقييم المستوى
    327
    مشكور وإن شاء الله نستفيد من الدرس
    إذا ابكانا عشرات المرات فلن ننسى بانه افرحنا الاف المرات..REAL MADRID !!

  3. #3
    الصورة الرمزية الوحيشي
    تاريخ التسجيل
    Apr 2003
    الدولة
    Riyadh, Saudi Arabia, Saudi Arabia
    العمر
    40
    المشاركات
    16,667
    معدل تقييم المستوى
    1044
    درس أكثر من رائع وسوف يتسمر نشره إلى الكل بإذن الله ...

  4. #4

    الصورة الرمزية وائل عبدالله
    تاريخ التسجيل
    Sep 2003
    الدولة
    usa
    العمر
    42
    المشاركات
    7,125
    معدل تقييم المستوى
    426
    مشكوووور على الدرس

    و لكن كان يجب ان تنزله قبل درس السي بلس بلس
    مشرف سابق في شباب اليمن...

    تريد موقع قراني (تفصل من هنا)


    http://www.quran4u.co


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

    ادخل على مكتبة صور راح تخدربك

    www.funize.net


  5. #5
    عضو موقوف مؤقتاً Bannd

    تاريخ التسجيل
    Mar 2005
    العمر
    41
    المشاركات
    493
    معدل تقييم المستوى
    0
    مشكو اخي وتر حساس على مرورك الرائع
    ومشكور للمشرف العام مرورة العظيم

    اخي يوسف انا نزلت دردس c++
    علشان الي هم فاهمين
    وبعدين عرفت انة بعض الاخوة الاعضاء مش فاهمين لغة السي اولا واولهم انا فقمت بأنزال الدرس
    ومشكور على مرورك

معلومات الموضوع

الأعضاء الذين يشاهدون هذا الموضوع

الذين يشاهدون الموضوع الآن: 1 (0 من الأعضاء و 1 زائر)

المواضيع المتشابهه

  1. برنامج يجعل شاشة جهازك اربع شاشات تعمل فى وقت واحد
    بواسطة الجنرال مرحول في المنتدى ملتقى الرقميات
    مشاركات: 4
    آخر مشاركة: 21-04-2011, 04:23 AM
  2. تعلم لهجة من اللهجات السعودية وسوف باذن الله تفهم اي واحد سعودي خاصة بالكتابة...
    بواسطة الشمقمق في المنتدى ملتقى الاستراحة والترحيب بالأعضاء
    مشاركات: 12
    آخر مشاركة: 10-05-2009, 05:27 PM
  3. تعلم لهجة من اللهجات السعودية وسوف باذن الله تفهم اي واحد سعودي خاصة بالكتابة...
    بواسطة الشمقمق في المنتدى ملتقى الاستراحة والترحيب بالأعضاء
    مشاركات: 0
    آخر مشاركة: 05-05-2009, 10:15 PM
  4. فريق واحد ... قميص واحد ... عشق واحد !!
    بواسطة الوحيشي في المنتدى ملتقى الريــاضــة
    مشاركات: 3
    آخر مشاركة: 23-04-2006, 11:21 PM

المفضلات

المفضلات

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

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