الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الدرس الثاني

بدأه MohamedIBrahim في 24 يوليو 2011 · 4 رد · 1,111 مشاهدة · في المواضيع والدروس
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

المحتويات :


  1. لمحة سريعة
  2. الدالة () The Main
  3. أنواع البيانات

سوف تري فى هذا الفصل أول برنامج مكتوب بلغة C فلا تحاول ان تفهم كل حرف Chracter مكتوب فى البرامج الموجودة حاليا فى البداية ولكن انتظر حتي تعتاد على الشكل العام وبعد قليل سوف تبدأ فى التعرف على جميع العناصر الشائعة الاستخدام فى جميع برامج لغة C

لمحة سريعة :

سوف يعرض هذا الجزء برنامجا صغيرا بلغة C ولكنه متكامل ويحتوي على عناصر شائعة الاستخدام وعناصر اخري مختلفة ويعتبر البرنامج الاول غاية فى السهولة وهو كالاتي :

#include <stdio.h>

main ()

{

printf ("C Is Nice Language\n") 
printf ("Hello world!");
;return 0 

}

اذا كنت ستكتب هذا البرنامج باستخدام محرر الخاص بمترجم لغة الC فقم بعملية Compiling لهذا البرنامج ثم قم بتشغيله حيث ستظهر الرسالة هذه على الشاشة

C Is Nice Language
Hello World

تتطلب لغة C منك ان تستخدم الحروف الصغيرة فيما يخص الاوامر والدوال المعرفة مسبقا وسوف تعرف ما هى الدوال لاحقا بينما تعد الحالة الوحيدة التي تستخدم فيها الحروف الكبيرة عند كتابة سطر يبدا بالعبارة define# وبداخل الرسائل المطبوعة التي تقوم بطباعتها

الدالة () The Main :

يعتبر أهم جزء فى البرنامج المكتوب بلغة C هو main() function الخاص به فيوجد لدي البرنامج السابق الذي تمت مناقشته main() function خاص به ان main() function هى دالة وليست امرا من اوامر لغة C حيث يعد الدالة مجرد مجموعة من الاوامر التي تؤدي عملا معينا ودائما ما يختوي كل برنامج على دالة تسمي () main ويمكن تمييز الدالة عن الامر بأن بتبع اسم الدالة محاطا بالاقواس وتوضح النماذج التالية امثلة لبعض الدوال

() main () , printf

وفيما يلي أمثلة للاوامر

return , while , int , float

عند قراءة كتب او دليل للغة C فانك قد تجد المؤلف قرر بأن يحذف الاقواس من نهاية اسماء الدوال فانت تقرا مثلا عن الدالة printf بدلا من () printf وسوف تتعلم لاحقا كيف تتعرف على اسماء الدوال سريعا وبصورة كافية تجعل هذه الاختلافات لا تمثل الكثير بالنسبة لك

كما كان الدرس الاول يحدد كيفية تناول الدورة فان () main هى دائما ما تكون نقطة الانطلاق التي يبدأ البرنامج التشغيل من عندها فاذا ما كانت () main ليست الدالة الاولي المكتوبة فى البرنامج فستزال هي التي تحدد نقطة بداية تنفيذ البرنامج ولذلك عليك البدء بها فى العبارة الاولي من كل برنامج تقوم بكتابته ومن ثم ستجد ان البرامج الموجودة بالعديد من الدروس التالية دالة واحدة فقط وهى () main وبينما تقوم بتحسين قدراتك فى لغة C سوف تتعلم لماذا تقوم عملية اضافة دوال أخري بعد () main بتحسين من قدراتك فى البرمجة أكثر وأكثر

دائما ما تري بعد كلمة () main قوس بداية (}) وعندما تجد القوس المقابل له ({) تكون الدالة main قد انتهت وقد يكون هناك ايضا ازواج اضافية من الاقواس خلال الدالة () main وغالبا ما تحتاج جملة <include# <stdio.h فى كل برنامج مكتوب لغة C أما الان فدائما عليك بوضع هذه الجملة فى مكان ما قبل () main وستفهم اهميتها لاحقا فى الدرس السابع ان شاء الله

أنواع البيانات :

يجب ان تستخدم برامجك المكتوبة بلغة C بيانات مكونة من حروف وأرقام وكلمات حيث تقوم هذه البرامج بتحويل هذه البيانات الى معلومات ذات مدلول على الرغم من وجود انواع عديدة من البيانات فأنواع البيانات الثلاثة التالية تعتبر حتي الان هى الاكثر شيوعا فى البرمجة باستخدام لغة C

  1. الرموز Characters
  2. الاعداد الصحيحة Integers
  3. floating-points وتمسي أيضا real numbers ( الآعداد الحقيقية )

الرموز الخاصة بلغة C :

رمز لغة C هو أى رمز يمكن أن يمثله الحاسب حيث يعرف الحاسب 256 رمزا مختلفا يوجد كل منهما فى ما يطلق عليه جدول ASCII وينطق (ask-ee) فكل ما يمكن ان يمثله الحاسب يعتبرا رمزا بذلك فان الامثلة التالية تعتبر رموزا صحيحة حتي الضغط على المسافة يعتبر رمزا

A a 4 % Q ! + = } { G

تحاط جميع بيانات الرموز فة لغة C بالفاصلة العليا (') ويطلق البعض عليها علامة التنصيص المنفردة او المفردة حيث تميز الفاصلة العليا بين البيانات الرمزية وأنواع البيانات الاخري مثل الارقام والرموز الرياضية فعلي سبيل المثال فى برنامج مكتوب بلغة C فان كل ما يأتي يعتبر بيانات رمزية

      '_', ' '.'#','4', 'a', 'A'

يحتوي البرنامج فى بداية الشرح على رمز شكله "/n" ربما لا تعتقد فى البداية أن "/n" هى رمز فردي ولكنها واحدة من التركيبات الثنائية الرمزيو التي تفسرها لغة C على أنها رمز فردي وسيتضح هذا فيما بعد .

اذا كنت تريد تحديد اكثر من رمز (فيما عدا الرموز الخاصة التي ستتعلمها مثل "/n" فضع هذه الرموز بداخل علامات التنصيص ("") ويطلق البعض على مجموعة من الرموز المتعددة (سلسلة حرفية ) string ) وكمثال على السلسلة الحرفية فى لغة C انظر الاتي

"C Is My Favourite Programming Language For MohamedIBrahim"

الارقام فى لغة C :

على الرغم من أنك لا تفكر فى الشئ قبل الان فان الارقام تتخذ احجاما واشكالا مختلفة فلابد ان يكون لبرنامجك المكتوب بلغة C اسلوبا لتخزين الارقام مع عدم القاء بال بالشكل الذي تبدو عليه لذلك يجب ان يتم تخزين الارقام فى متغيرات عددية وقبل الدخول فى مجال المتغيرات دعنا نلقي نظرة سريعة على الارقام

يطلق على الآعداد الصحيحة integers ولا يوجد لدي الاعداد الصحيحة علامات عشرية وبذلك فان اى رقم بدون العلامة العشرية يعتبر عددا صحيحا يوعد كل ما يأتي عددا صحيحا

10 , 54 , 5 , 0 , -121 , -48 , 752

ويطلق على الاعداد الموجود لديها علامات عشرية floating-point -numbers (أرقام ذات علامة عشرية متسعة المدي) وتعد جميع الارقام التالية floating-point -numbers

547.43 , 0.0 , 0.448532 , 9.1234 , -124.31 , .22

ويعتمد الاختيار بين floating-point -numbers و الاعداد الصحيحة على البيانات التي يتعامل معها البرنامج فبعض القيم مثل (الاعمار والكميات) تعطي اعداد صحيحة كبيرة بينما القيم الاخري مثل (الاموال والبضائع) تعطي floating-point -numbers كبيرة فتقوم لغة C - داخليا فى جهاز الحاسب بتخزين الاعداد الصحيحة بطريقة مختلفة عن قيم floating-point وعادة تأخذ floating-point ضعف الحيز الذي تشغله الاعداد الصحيحة فافعل ذلك لتوفير المساحة فى الذاكرة وحتي لا يبطئ من سرعة وكفاءة برنامجك

الخلاصة :

  1. عليك ايقاف مفتاح Caps Lock بحيث تتطلب معظم الدوال والاوامر رموز صغيرة
  2. ضع العديد من المسافات الاضافية فى البرامج المكتوبة بلغة C حتي تكون أكثر وضوحا
  3. لابد من ان تكون الدوال التابعة للغة C بعدها اقواس تتبع اسمها حيث يتكون البرنامج المكتوب بلغة C دالة أو اكثر ودائما ما يتطلب البرنامج () main حيث ينفذ المترجم () main قبل أى دالة أخري
  4. اذا كنت تستخدم رمزا فضعه بين فواصل عليا بينما ضع السلاسل النصية بين علامات التنصيص
  5. تعد integers اعداد صحيحة بدون علامات عشرية وتعتبر floatin-point numbers لديها علامات عشرية

نصائح :

  1. تجنب الاخطاء عند عملية الكتابة فعندما تحتاج لغة C رمزا خاصا معينا مثل قوس منحني فان كتابة قوي مربع لن يصلح
  2. لا تضيع الصفر فى البداية قبل integer الا اذا كان هذ العدد الصحيح صفرا فى الاساس

والله ولي التوفيق

تم تعديل هذه المشاركة بواسطة محمد علاء الدين في 29 يوليو 2011 في 22:54 — السبب: تم حذف الصوره لإحتوائها على كلمه غير لائقه

GoodBye

#2

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

الله يبارك في علمك

#3

جميل جدا .. محاولة جيدة لكن تحتاج الى بعض التصحيحات ..

1- البرنامج الاول عد اليه وضع الفوارز المنقوطة ... فهو لا يعمل لانه يفتقر الي فارزتين ..

2-

لا تضع

return 0 ;

والدالة لم يحدد نوعها .. لغة السي بشكل عام تقبل هذه الحالة على العكس مع السي++ .. لكن لكي يكون العمل اكثر حذرا يجب تحديد نوع الدالة .. اذا اردت ترجيع صفر هذا يعني ان الدالة مهمتها فارغة مجرد العمل .. او تأدية واجب معين .. فانصحك بان تكون الدالة void ..

void main ()

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

لم نكن لنجد void بين اصناف الدوال ..

صحيح تذكرت نقطة الان ..

في بداية كل درس تضيفه .. ضع رابط الدرس الذي قبله او كل الدروس التي تسبقه بروابطها .. لكي يستطيع الداخل الجديد الى الموضوع ان يعرف ما قبل هذا الدرس .. لانني لم اجد الدرس الاول ..

تم تعديل هذه المشاركة بواسطة سنان محمد صالح في 30 يوليو 2011 في 13:26

يَارَبُ إِن ضَاقَت قُلُوُب الْنَّاسٍ عَنْ مّافِي .. مِنْ خَيْرٍٍ فَعَفْوكَ لَا يَضِيْقْ ..

#4
سنان محمد صالح كتب:

جميل جدا .. محاولة جيدة لكن تحتاج الى بعض التصحيحات ..

1- البرنامج الاول عد اليه وضع الفوارز المنقوطة ... فهو لا يعمل لانه يفتقر الي فارزتين ..

2-

لا تضع

return 0 ;

والدالة لم يحدد نوعها .. لغة السي بشكل عام تقبل هذه الحالة على العكس مع السي++ .. لكن لكي يكون العمل اكثر حذرا يجب تحديد نوع الدالة .. اذا اردت ترجيع صفر هذا يعني ان الدالة مهمتها فارغة مجرد العمل .. او تأدية واجب معين .. فانصحك بان تكون الدالة void ..

void main ()

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

لم نكن لنجد void بين اصناف الدوال ..

شكرا لك على التنبيه أخي سنان

سنان محمد صالح كتب:

صحيح تذكرت نقطة الان ..

في بداية كل درس تضيفه .. ضع رابط الدرس الذي قبله او كل الدروس التي تسبقه بروابطها .. لكي يستطيع الداخل الجديد الى الموضوع ان يعرف ما قبل هذا الدرس .. لانني لم اجد الدرس الاول ..

/index.php?showtopic=245836

رابط الدرس السابق وللاسف مدة التحرير انتهت وساراعي هذا الامر مستقبلا ان شاءالله

ملاحظة : الدرس السابق موضوعه فى نفس صفحة هذاالموضوع وتقريبا لحظة كتابة ردي هذا الفارق بينهما 7 مواضيع فقط

تم تعديل هذه المشاركة بواسطة MohamedIBrahim في 30 يوليو 2011 في 14:52

GoodBye

#5
سنان محمد صالح كتب:

جميل جدا .. محاولة جيدة لكن تحتاج الى بعض التصحيحات ..

1- البرنامج الاول عد اليه وضع الفوارز المنقوطة ... فهو لا يعمل لانه يفتقر الي فارزتين ..

2-

لا تضع

return 0 ;

والدالة لم يحدد نوعها .. لغة السي بشكل عام تقبل هذه الحالة على العكس مع السي++ .. لكن لكي يكون العمل اكثر حذرا يجب تحديد نوع الدالة .. اذا اردت ترجيع صفر هذا يعني ان الدالة مهمتها فارغة مجرد العمل .. او تأدية واجب معين .. فانصحك بان تكون الدالة void ..

void main ()

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

لم نكن لنجد void بين اصناف الدوال ..

صحيح تذكرت نقطة الان ..

في بداية كل درس تضيفه .. ضع رابط الدرس الذي قبله او كل الدروس التي تسبقه بروابطها .. لكي يستطيع الداخل الجديد الى الموضوع ان يعرف ما قبل هذا الدرس .. لانني لم اجد الدرس الاول ..

وضع return 0 ليس خطاء ، كذلك void main استخدامها خاطء او يجب تجنبها بحسب ال c standards ، والداله التي لانحدد نوعها يعتيبرها ال سي من النوع int ،

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…