السبت، 19 أكتوبر 2013

دورة اساسيات لغة السي \ موضوع متجدد




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

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



فلنبدأ المشوار وربنا يوفقني لتقديم ما يفيدكم



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


اولا ما هي لغة السي وما هي اهميتها



تعتبر لغة السي من لغات البرمجه العالمية المنتشرة علي نطاق واسع

 تم  تصميمها و تطويرها بواسطة  كن تومسون , بايان كرنيغان , دينيس ريتشي , وذلك في الفتره ما بين عامي 1969 و 1972 وكان الهدف الاساسي من تصميمها وقتها هو استعمالها في تطوير نظام التشغيل يونكس لكن بعد ان ظهرت للوجود اكتشف المبرمجين قوة هذه اللغة فانتشرت علي نطاق واسع

 ودخلت في مجالات متعدده واصبحت استعمالاتها اكثر واستخدمت في تطوير الكثير من لغات البرمجه الاخري التي نعرفها اليوم كلغة السي بلس بلس والجافا وغيره الكثير من اللغات التي اعتمد مصمموها علي لغة السي كاساس لبناء  لغاتهم 



وسميت بلغة السي لانه كان هنالك قبلها لغة تدعي لغة البي (B) ولذلك تم اختيار الحرف الذي يلي حرف البي في اللغة الانجليزيه وهو حرف السي

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

اهمية لغة السي لنا كمهندسين الكترونيات تنبع من تعاملنا مع انظمة كثيرة تحتاج الي برمجة مثل المتحكم الدقيق او ما يعرف بال(مايكروكنترولا) وهو من ابسط الانظمة واسهلها برمجتاً اما في المستوي الاعل نجد انظمة الامبدد سيستم التي يتطلب التعامل معها معرفة عميقة باحدي لغات البرمجة وكذلك في مجال الذكاء الاصطناعي الذي يعتمد بالكامل تقريبا علي لغات البرمجة ففي هذا المجال يتغمس مهندس الالكترونيات شخصية المبرمج تماماً اذاً فهي من الضروريات بالنسبة لنا

المتطلبات

اولا تحتاج الي البرنامج الذي سوف تقوم بكتابة برنامجك عليه ويقوم بتنفيذه او ما يسمي بالمترجم فالمترجم يقوم باخذ ما تكتبه من اكواد ويقوم بتحويلها الي لغة تفهمها الالة او الجهاز لكي يتم تنفيذ برنامجك اي هو الوسيط الذي يربط بينك وبين الجهاز حتي يخبره ما الذي مكتوب في برنامجك لكي يقوم بتنفيذه لان الالة لا تفهم الاكواد التي كتبتها انت هي فقط تفهم لغة ال 0 \ 1 
وهنالك العديد من المترجمات الشهيرة منها 

Visual C++  التابع لمايكروسوفت لكنه ليس مجاني وكبير الحجم
Code Block  فهو مجاني و خفيف و يصلح للمستويات المتوسطه والمبتدئين
Netbeans   مجاني و خفيف
Pelles   مجاني وسريع , برنامج خفيف وهو الذي سوف استخدمه للشرح وانفذ عليه جميع البرامج 

لتحميل ايا من هذه البرامج ليس عليك سوي الذهاب الي قوقل وكتابة اسم المترجم وسوف تجده في نتائج البحث الاوائل حمل المترجم من موقعه الاصلي

اولا لنتعرف علي برنامج او مترجم pelles   الذي سوف نقوم بكتابة البرامج عليه 

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



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





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







نهاية الدرس الاول المقدمة

--------------------------------------------------------------------------------
بداية الدرس الثاني

شرح بالفيديو لكيفية تحميل وتسطيب برنامج pelles وانشاء مشروع جديد عليه


كل التفاصيل مذكوره في الفيديو فاترككم معه واتمنا لكم مشاهدة طيبة



نهاية الدرس الثاني
--------------------------------------------------------------------------------
  بداية الدرس الثالث




المتغبرات والثوابت في لغة السي 


اولا المتغيرات والثوابت كلاهما عباره عن مواقع يتم حجزها في الذاكره (الرام RAM) لتُخزن فيها قيم محدده , يختلفان في ان الثوابت عباره عن مواقع في الذاكره عندما يتم تخزين قيم فيها فانها تكون ثابته لا يمكن تغييرها ابداً اثناء تنفيذ البرنامج ولتعديلها يجب التعديل في كود البرنامج اذاً الثوابت لا يمكن تغييرها اثنا تنفيذ البرنامج , اما المتغيرات فهي مواقع في الذاكره يمكن تغيير قيمها اثناء تنفيذ البرنامج بواسطة المستخدم او بواسطة البرنامج نفسه

مواقع الذاكره

في هذه الصوره قمنا بحجز موقعين في الذاكره احدهم اسميناه X والاخر اسميناه Y اذاً البرنامج سوف يتعامل مع هذين الموقعين ك X , Y بغض النظر عن القيم الموجوده فيهم وعندما نريد استخدام القيم الموجوده في هذين الموقعين اثناء البرنامج نستدعيهم عن طريق عناوين الموقعين X , Y . 

اذا لنحجز موقع في الذاكره لكي نخزن فيه قيم معينه هنالك صيغه ثابتة نتبعها 
 
اعلان المتغيرات

هذه الصيغه نستخدمها لحجز المتغيرات في البرامج , وفي هذا المثال قيمة المتغير وهي 7 يمكن ان تتغير اثنأ تنفيذ البرنامج بواسطة المستخدم او البرنامج نفسه
--------------------------------------------------------------------------------
اعلان الثوابت
وهذه صيغى حجز الثوابت في البرامج وهي نفس صيغة حجز المتغيرات , وفي هذا المثال قيمة الثابت 3.14 لا يمكن تغييرها اثناء تنفيذ البرنامج من قبل المستخدم او من قبل البرنامج .

حيث Type of Variable تمثل نوع المتغير الذي نريد حجزه بمعني المكان الذي نريد حجزه ما  نوع  البيانات التي نريد ان نخزنها فيه ولدينا عدة انواع من البيانات منها
int اذا كنا نريد تخزين عدد حقيقي مثل 1 , 2 , 365 , 456 اي عدد من غير فاصله عشريه .
float وهو عدد صحيح اي عدد يحتوي علي فاصله عشره مثل 2.4 , 5.76  .
char وهو متغير حرفي اي اننا اذا اردنا ان نخزن حرف او مجموعة حروف نعبر عنها بهذا المتغير مثل 'A' , 'B' .
هذه هي الانواع الرئيسية لانواع المتغيرات هنالك انواع اخري سوف نتطرق لها في اثناء البرامج .
اذاً نوع المتغير او الثابت نختاره علي حسب نوع القيم التي نريد ان نخزنها فيه .
Name of Variable هو اسم المتغير الذي نريد حجزه بمعني المكان الذي نريد حجزه لتخزين بيانات فيه ماذا نريد ان نسميه , لماذا نعطيه اسم ؟؟ حتي  نمكن البرنامج من الوصوصل لهذه القيمه متي ما احتاج اليها لانه قد يكون هنالك اكثر من موقع في الذاكره تحتوي علي نفس القيمه وللتمييز بينهم نعطي كل موقع اسم خاص به وعندما يحتاج البرنامج الي هذه القيمه لا يبحث عنها بقيمتها بل يبحث عنها عن طريق عنوان موقعها ثم ينظر الي محتوي هذا العنوان او الموقع
اذاً في البرامج لا نتعامل مع القيم مباشرة بل يجب ان نضعها في مواقع في الذاكره ونعطيها عنواناً او اسم .
اسماء المتغيرات ليست مرتبطه بصيغه محدده ويمكنك ان تختار اي اسم او حرف لتسمية المتغير لديك بشرط ان يكون ليس من الاسماء المحجوزه لاستخدام البرنامج ,  لكن يحبذ ان يدل المتغير علي ما يحتويه مثلا اذا حجزنا متغير لنخزن فيه درجات طالب يفضل ان نسميه mark حتي يتسني لمن يقراء الكود البرمجي لبرنامجك ان يفهم البرنامج بسهول .

Value of Variable وهنا نكتب قيمة المتغير , بمعني القيمه التي نريد تخزينها في هذا الموقع او العنوان من الذاكره 
ويمكن اسناد القيم الي المتغيرات بطرق عديده منها
ان نعطي المتغير قيمته مباشرتاً

اعلان المتغيرات واعطائها قيم

ويمكن ان نعلن عن اسماء المتغيرات ونعطيها قيم لاحقاً
اعلان المتغيرات من غير قيم

ويمكن ان نسند قيمة متغير الي متغير اخر 

اعلان المتغيرات واسناد قيمة متغير الي متغير اخر


وهنا نكون قد وصلنا الي نهاية هذا الدرس
ملاحظاتكم تجعلني اتحسن واقدم الافضل فلا تحرموني منها
ودمتم في سلام
نهاية الدرس الثالث
------------------------------------------------------------------------------

0 التعليقات :

إرسال تعليق