المهندسين العرب

المهندسين العرب (http://www.mohandsen.net/vb/index.php)
-   قسم لغات البرمجه (http://www.mohandsen.net/vb/forumdisplay.php?f=335)
-   -   فهم قلب لغه سي :الدرس الأول: رموز وعناصر اللغة (http://www.mohandsen.net/vb/showthread.php?t=116125)

محمدعلى 1/4/2008 11:52 AM

فهم قلب لغه سي :الدرس الأول: رموز وعناصر اللغة
 
بسم الله الرحمن الرحيم
فهم قلب لغه سي :الدرس الأول: مقدمة رموز وعناصر اللغة .

يمكن أن تتسائل لماذا هذه السلسلة من الدروس في ال C لوحدها ؟ مع وجود العمل الكثير مع اللغات الحديثه C++ و C# .
هذه السلسلة من الدروس ليست لمن يريد أن يتعلم مبادء البرمجة الأساسية بل يجب أن يكون ملم بأحد اللغات العليا مثل C++ و C# و MC++ أو Visual Basic
أو Pascal .

C لوحدها هي الأبسط بين عائلة لغات C ومن المهم أن نفهمها ونفهم فلسفتها البسيطه . سي C هي الأساس والقاعده للغات الحديثة C++) , C# , (MC++ , ومعرفة مبادء وخفايا لغه سي C يجعلك تفهم بعمق هذه اللغات الممتده منها أو اللغات التي تعتمد على مكتبات ال C مثل بيسك أو فجوال بيسك .

الإتساع الكبير والتوسيع لالشيفرة البرمجية Code ممكنه في لغه سي C . والفهم لفلسفة السي C يمكنك من قرائة أو إستخدام أو تحويل الشيفرة البرمجه Code لأي لغه أخرى من نفس العائله C++ أو C# أو حتى لغات البرمجة السهله مثل فجوال بيسك .

إستخدام السي C هو الطريق الوحيد للحصول على DLLs مكاتب ربط ديناميكة أو exe برامج تنفيذية حرة لا تعتمد على مكاتب أخرى فهي تمول نفسها بنفسها من الكود البرمجي . لكن بالنظر للغات الأخرى مثل C++ و C# وحتى Visual Basic تعتبر لغات تحتاج إلى دعم خارجي عن برنامج المبرمج .. يمكن أن يشعر به أو يستدعيه كما في C++ و C# أو ممكن أن يكون مخفي في المترجم لا يظهر للمبرمج ويتم إضافته للرنامج أو يظل البرنامج متعلق بالمكبة الداعمة .

وهذا ليس موجود في السي C وهنا يمكن أن نتخيل حجم وسرعة البرنامج المبرمج في السي C بالمقارنه مع الغات الأخرى الأعلى في المستوى إذ بإمكانك أن تقوم بعمل برنامج أو مكتبة يكون حجمها 4 أو 5 كيلو بايت وعند تنفيذ نفس العمليه في اللغات الأخرى يكون الناتج ضخم بالمقارنة مع السي C إذ من الممكن أن يبلغ حجم الملف من 50 إلى 200 كيلو بايت وذلك بالنسبة للمشروع .

و يجب أن نتذكر أيضاً أن كمية ما يمكن أن نفعله في أي لغه بغض النظر عن النظام الذي يعمل عليه سوف يكون كبيراً . فمثلاً في نظام التشغيل وندوز ******s يعطينا مجموعه من واجهات البرمجه API تكون أكثر فاعلية في البرمجه مع علاقتها بلغه C أو C++ وهذا يعطيها القوة العظما في العمل و يوجد مثل ذلك في نظام التشغيل Linux .

الهدف من هذه السلسة من الدروس هو أن نعطي فكرة عن ال C من القعر و بتعمق كبير مع مقارنت ما يحدث مع اللغات السهله مثل فجوال بيسك, و كيف كان برنامجك الذي كتبته في لغه C أو C++ أو C# , فإن المبادء الأساسية للغات هي نفسها .

في هذه الدروس سوف نقوم بالتركيز على هذه المبادء الأساسية بتعمق وكيفية إستخدامها .

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

فمثلاً في الوقت الحالي لقد تم إصضار إصضارات أخرى من عائلة ال C مثل C++ بإستخدام مكتبة MFC الجاهزه أو C++ أو MC++ بإستخدام مكتبة .Net وحتى في تقنيات أخرى مثلا **** ومكتبتها العظيمة الجاهزه .. لكن الأساس الأصلي واحد وهو ال C .

والأن أبدء في الدرس الأول

الدرس الأول : رموز وعناصر اللغه ..


في هذا الدرس سوف نضع حجر الأساس في تعلم لغه C من خلال النظر في تعريفات العناصر الصغيرة للشيفرة البرمجية Code . الرموز والعناصر التي تحيل أو عطي معناً للأجزاء الوصفية في مصضرالشيفرة البرمجية التي يقوم المترجم بفهمها و إقرار صحتها ثم يقوم بتحويلها للبرنامج.

وهذا يكون من خلال تضمين عناصر في ثوابت وقاعدة اللغه مثل ال keywords , ال Identifiers , ال Constants , ال Literals , ال Predefined Constants .وهنا يقوم المترجب بتقطيع الشيفرة البرمجه إلى هذه العناصر الصغيرة ومن ثم يقوم بإقرار صحت قواعد البرمجه و بعدها يقوم بتحويل هذه العناصر إلى برنامج تنفيذي بلغة الآلة . وهذه الحقيقة موجوده في كل المترجمات سواء كانت متدنية المستوى أو مرتفعة المستوى .

في هذا الدرس سوف نقوم بتغطية هذه العناصر كامله .... إن شاء الله ....

Keywords :



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







Identifiers :



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





ولمعرفة المزيد عن الـkeywords والـ Identifiers له هذه الوصله..

فهم قلب لغه سي:الدرس الثاني : الـ Keywords والـIdentifiers .



Constants :



أي الثوابت وهي عبارة عن الثوابت التي تكون مضمنه مع نفس
اللغه مثل ال Macros وال Constant Variables .





ولكي تعرف المزيد عن الثوابت وأنواعها فلك هذه الوصلة ..

فهم قلب لغه سي:الدرس الثالث: الثوابت Constants و أنواعها


Literals :



المبادء الأساسية لتركيبة النص في ا للغه والثوابت النصية
الصغيرة.





لمعرفة المزيد عن الLiterals لك الوصلة التاليه ..

فهم قلب لغة سي:الدرس الرابع:النظام النصي البسيط في اللغه Literals


Predefined Constants :



وهي عبارة عن الثوابت والموكر التي تكون مضمنه في نفس
اللغه ويتم تنفيذها في أثناء عملة الترجمه .. وهي ليسة
كثيرة الإستخدام في لغه سي .




إذا أردت أن تعرف المزيد عن الـPredefinde Constants فلك الوصلة التالية.

فهم قلب لغة سي:الدرس الخامس:الـ Predefined Constants والـ Macros .

في كل المترجمات يوجد هنالك كثير من الـPredefined Constants أي من الثوابت أو الموكر المضمنه في المترجم من الأصل عند تصميمه , فيمكن أن تتخيلها على أنها ثابت لكنها في أصلها تشبه الإقران وهي دائماً جاهزه و تقول لك إستخدمني .لكن في مترجمات الـ C والـ C++ فإنها لا تحتوي ذلك بصفة مدمجه في محرك الترجم , وهذا ما يعطيها القوة والمرونه فالثوابت في لغه السي تكون بالأصل معرفة في ملف .h يتم عمل #include أو#import له في البرنامج ليتم الإستخدام .

أنظر إلى الجدول التالي لكي ترى بعض هذه الثوابت .


http://www.vc4arab.com/attachment.ph...1&d=1105853566

فهم قلب لغه سي:الدرس الثالث: الثوابت Constants و أنواعها

ال Constants أوالثوابت في لغه C تكون إما تحتوي على أرقام Numbers أو حروف أو رموز Characters .وهي هنا إما تكون ثوابت مضمنه في نفس اللغه أي في أساسيات اللغه و القلب المحرك فيها . بينما يمكن في اللغات السهله مثل فجوال بيسك أن يكون الثابت من أي نوع .

في الحقيقة الرمز أو الحرف chars تكون ممثلة على شكل أرقام Numbers , أي النصوص في C أصلاً لا تكون على شكل String نصوص كما في اللغات المشتقة منها أو الغات الأخرى مثل فجوال بيسك ويمكن هنا تمثيل النص من غلال مصفوفة من الرموز المتسلسلة .

وهنا يجب أن لا نخلط بين الثوابت النصية character String و بين ال Literal الثوابت النصية الصغيرة فسيتم شرح ال Literal في الخطوة الثانية من هذا الدرس .

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

ولكن هنا يقوم ال Preprocessor بعمل تبديل لقيمة الثابت قبل البدء في ترجمة البرنامج و يتم تعويض القيمة والمعاملة مع القيمة بدل من الثابت .

هنا يمكن أن نرى عدد من الثوابت في تعريف ال constants ...
فمثلاً نقوم بإستخدام ال Preprocessor التي تسمى #define و بعدها نقوم بتعريف إم للثابت و بعده نضع فراغ و بعد الفراغ نضع القيمة العديدية أو النصية.

سنقوم في الخطوة التالية بشرح الثوابتي الرقيمة Numeric Constants والثوابت النصية Character Constants .

الثوابت الرقمية Numeric Constants

هنا سنقوم بشرح الثوابت الرقمية , وهي في العاده تأخذ القيمة long أو float أو double
ويمكن أن تكون القيمة موجبة أو سالبة , و أيضاً في الثوابت من نوع float يمكن أن نضيف الأس للثابت.

هنالك بعض الحروف توضع مع أسماء الثوابت لكي توضح للمبرمج أن الثابت من نوع رقمي معين مثل الحروف التالي ..

مثلاً إذا وضع الحرف D أو d في بداية الثابت من نوع double فإن الحرف لا يأثر على قيمة الثابت فقط يعطي إشارة للمبرمج أن الثابت عبارة عن قيمة double كما في المثال التالي ..


C++ كود
#define dMyNumber -2253e-2



فهنا قمنا بتعريف ثابت من نوع double وها التعريف ليس في الحرف d بل يقوم المترجم بحساب قيمة العدد المراد تعريفة على أنه ثابت فيجد أن قيمة ال float لا تسع هذا الرقم فيقوم بتعريفة على شكل double فيجب هنا أن نتعامل مع الثابت في البرنامج في برنامجنا على أنه double .

أما مثلاُ إذا عرفنا ثابت كما في الكود التالي ...

C++ كود
#define fnum 325.22



نجد أن المترجم عرفه على أنه من نوع float لأن العدد حقيقي و يمكن للمتغير من نوع float يحتوي القيمة, ويجب أن أذكر هنا أن الحرف f عبارة عن إشارة للمبرمج وليس له علاقة بتعريف النوع .

وهنا أذكر بعض حروف التلميح لنوع الثابت .. مثل

http://www.vc4arab.com/attachment.ph...1&d=1105852156
سوف نمسك كل واحده من هذه العناصر على حدا بالتفصيل ثم ننتقل
إلى بناء الهيكل الأساسي للغه سي.
وذلك كما في الدروس القادمة إن شاء الله .

بدر56 3/4/2008 02:15 AM

رد: فهم قلب لغه سي :الدرس الأول: رموز وعناصر اللغة
 
مشكووووووور
http://www.s3udy.net/pic/thankyou002_files/14.gif
http://www.s3udy.net/pic/thankyou002_files/13.gif

eldemery 18/5/2008 02:29 PM

رد: فهم قلب لغه سي :الدرس الأول: رموز وعناصر اللغة
 
المهندسين العرب فوق القمه كل الفخر للمهندسين العرب

علاء نبيل محمد 22/5/2008 05:06 AM

رد: فهم قلب لغه سي :الدرس الأول: رموز وعناصر اللغة
 
مشكورررررررررررررررررررررررررر

عصام احمد حسن 20 18/1/2009 08:20 PM

رد: فهم قلب لغه سي :الدرس الأول: رموز وعناصر اللغة
 
مشكور... ......مشكور......................مشكور.........مشك ور
مشكور.............مشكور............ ..مشكور............... مشكور.
مشكور........................مشكور ............................مشكور
مشكور... ................................................. .....مشكور
مشكور. ................................................. ...مشكور
مشكور....................... ........................ مشكور
مشكور.......................................م شكور
مشكور................ ................مشكور
مشكور............. ..........مشكور
مشكور.......... .......مشكور
مشكور.....مشكور
مشكور

alidaoud 1/6/2009 03:21 PM

رد: فهم قلب لغه سي :الدرس الأول: رموز وعناصر اللغة
 
مشكورررررررررررررررررررررررررررررر


الساعة الآن 12:36 AM

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. TranZ By Almuhajir