ماهي لغة سي C
من قديم التاريخ أول لغة ذات مستوى عالي كانت هي لغة سي بلس وكانت صممت من التسعينات في برمجة الحاسوب بأكمله وانواع اخرى من نوع الماكرونترولير المهمة في الماضي. هي لغة الأم الرئيسية والتي من خلالها قد انتجت العديد من لغات البرمجة بواسطة أوامر لغة سي.
وهي لغة برمجة حاسوب متعددة الأغراض أمرية تدعم البرمجة المهيكلة والنطاق المعجمي المتغير والاستدعاء الذاتي، بينما يمنع نظام النوع الساكن العديد من العمليات غير المرغوبة. ومن خلال تصميم لغة السي فقد وفرت تركيبات تعيين دقيقة لتعليمات الآلة النموذجية.
وبالتالي فقد صممت للاستخدام الدائم في التطبيقات المبرمجة مسبقا بلغة التجميع، كأنظمة التشغيل، وكذلك العديد من البرامج التطبيقية لأجهزة الحاسوب من الحواسيب العملاقة وحتى الأنظمة المدمجة.
لغة السي C ستكون محور حديثنا اليوم, وهو عن واحدة من أقوي لغات البرمجة الموجودة على الساحة منذ نشأتها إلى الآن, هي واحدة من لغات البرمجة العالية المستوي high level.
و هي مثل لغة باسكال من حيث سهولة الإستخدام من ناحية ومن ناحية أخرى هي لغات المتدنية المستوى من حيث قدرتها على مخاطبة مكونات الجهاز.
من اسباب شعبيه لغة الـ C هو إنتشار نظام التشغيل UNIX و هو أهم نظام تشغيل للحاسبات المتطورة حيث أن هذا النظام كتب بلغة C.
كانت أول بداية لظهور لغة سي في مختبرات شركة AT&T في عام 1972 و كانت هي البداية كمشروع تولى الإشراف عليه دينيس ريتشي ( Dennis Ritchie ) و هو يعتبر. مخترع لغة سي بإستخدام نظام التشغيل Unix.
و لغة سي هي في الأصل لغة قديمة يطلق عليها إسم BCPL و BCPL تم تطويرها بواسطة مارتن ريتشارد ( Martin Richards ) 1967 و التي بدورها كانت لغة B و التي أخترعت بواسطة كين تومسون. و لقد أدت لغة B إلى تطوير لغة سي في السبعينات حيث قام دينيس ريتشي أخذ من لغة B أحسن تعليماتها و غير في كثير من قيودها و أضاف إليها تعليمات عديدة و جعل منها لغة برمجة و سماها لغة C.
مميزات لغة سي
لغة قوية ًجدا وفعالة ومن أكثر لغات البرمجة
- سرعة خلال وقت التنفيذ: ُتوفر اللغات الأحدث مثل جافا وبايثون ميزات أكثر من لغة البرمجة سي، ولكن ينخفض معدل أدائها بشكل ّفعال بسبب المعالجة الإضافية لهذه اللغات. كما توفر الوصول إلى المعالجة المباشرة مع أجهزة الكمبيوتر ولكن اللغات ذات المستوى الأعلى لاسمح بذلك، وهذا هو أحد أهم الأسباب التي تجعل لغة سي الخيار الأول لبدء تعلم لغات البرمجة لأن اللغات المكتوبة بشكل ثابت أسرع من اللغات المكتوبة . ديناميكيا، فهي سريعة التنفيذ باختصار لأن أدوات اللغة تتعامل مع الآلة ّمما يختصر وقت التنفي.
- قابيلة النقل أو لغة محمولة: يمكن تشغيل البرامج المكتوبة بلغة سي وتجميعها على ّ أي نظام دون ّ أي تغييرات صغيرة أي ُيمكن للبرنامج المكتوب بهذه اللغة أن يعمل مع أكثر من جهاز مثل اب.
- لغة تستخدم للأغراض العامة: حيث تدخل في العديد من التطبيقات وبرامجة النظام وبرامج تحرير الصور.
- لغة تركيبية: من أكثر الأشياء التي تميز لغة سي احتوائها على دالة رئيسية تنادي مجموعة من الدوال الأخرى، ّمما يسهل عملية بناء البرنامج.
- نوع ثابت: لغة برمجة سي هي لغة مكتوبة بشكل ثابت. بمعنى أن نوع المتغير محدد في وقت التجميع وليس في وقت التشغيل، يعني أنّه في كل مرة يكتب فيها المبرمج ً برنامجا عليه أن يذكر نوع المتغيرات المستخدمة.
- مكتبات ذات وظائف غنية: تساعد المكتبات والوظائف القوية في لغة سي حتى المبرمج المبتدئ على الترميز بكل سهولة.
- لغة قياسية: معظم مترجمات اللغة تتوافق مع اللغة القياسية.
- حجم برامجها صغير مقارنة باللغات الأخرى.
- تتعامل على مستوى البت: أي أنّك تستطيع أن تقرأ وتكتب وتقوم بعمليات على مستوى الـبت . حيث أن البت هي أصغر وحدة ناقلة لمعلومة داخل الكمبيوتر.
- لغة إجرائية: يتم تنفيذ التعليمات خطوة بخطوة.
عيوب لغة سي C
- لغة سي تحتوي على سلبيات ضئيلة مقارنة بالمميزات الكثيرة بها.
- هناك أخطاء لا ُيمكن لمبرمج لغة سي إكتشافها.
- اعتمادها على أسلوب المترجم الخاص والذي يقوم بترجمة البرنامج كامل دفعة واحدة، وبعدها يقوم بعرض قائمة من الأخطاء.
إستخدامات لغة سي C
للغة سي C إستخدامات عديدة و من هذه الإستخدامات هي :
- برمجة و تطوير أنظمة التشغيل.
- برمجة نظم قواعد البيانات.
- تطوير التطبيقات الواجهة الرسومية و الألعاب و الكثير من الإستخدامات.
البرنامج المستخدم في هذا الكورس هو برنامج C Free للويندوز كما يمكنكم إستخدام برنامج Decoder للأندرويد لكتابة و تشغيل الأكواد.
الشكل العام لبرنامج في لغة سي
#include<stdio.h> main() { //اوامر البرنامج }
- كلمة Include# تعني اشمل أي تضمين المكتبة التي تسمي stdio داخل المشروع و تستعمل لدوال الإدخال و الإخراج و إمتداد هذه المكتبة .h (( يوجد ايضاً إمتداد .c)).
- كلمة main تعني رئيسية و الأقواس هي اقواس الدالة أي الدالة الرئيسية main() للبرنامج و تبدأ بقوس و تنتهي بقوس {}.
تثبيت برنامج C–Free
برنامج C-Free هو بيئة تطوير متكاملة (IDE) تستخدم لتطوير وبرمجة لغة C و C++. يوفر C-Free بيئة سهلة الاستخدام ومرنة للمطورين لكتابة وتصحيح وتنفيذ برامج C و C++.
لتثبيت البرنامج بعدة خطوات سهلة يرجى اتباع الاتي
في البداية نضغط على ملف التثبيت الذي تم تحميله بنقرتين بزر الماوس و سوف تفتح لدينا النافذة الموضحة في الصورة و نضغط على التالي
نقوم بتحديد خيار الموافقة على الشروط و السياسات ونضغط التالي
نقوم بتحديد مسار تثبيت البرنامج و عادتا ما يتم استخدام المسار افتراضيا في قرص سي ثم نضغط على التالي
نقوم بتسمية مجدل البداية نحن سوف نتركه كما هو فقط نضغط التالي
نقوم بتحديد خيار انشاء ايقونه للبرنامج على سطح المكتب و نضغط التالي
بعد القيام بالخطوات السابقة نقوم بالضغط على زر تثبيت
يقوم حاليا بتثبيت البرنامج على الجهاز نقوم بانتظاره عدة ثواني ليتم التثبيت
عند اكتمال التثبيت نضغط على زر انهاء
واجهة برنامج C–Free
سوف نعرض عليكم الواجهة الرئيسية للبرنامج و في الدرس القادم سنتحدث عن تحميل و تثبيت البرنامج الذي سنعمل عليه في الدورة.
صورة لواجهة البرنامج قبل إنشاء مشروع جديد
صورة لواجهة البرنامج عند إنشاء مشروع جديد
دالة printf() للطباعة
دالة printf() هي الدالة الأساسية لطباعة الجمل النصية في لغة سي و هو إختصار للمصطلح print formatted، حيث تتيح دالة printf() التحكم في طريقة طباعة الجمل النصية أو ما يعرف بتنسيق الجمل النصيه و إمكانية طباعة قيم المتغيرات بداخل النص المراد طباعته.
كتابة أول كود في لغة سي C
مثال 1
#include<stdio.h>
main()
{
printf("hello world");
}
كلمة Include# تعني اشمل أي تضمين المكتبة التي تسمي stdio داخل المشروع و تستعمل لدوال الإدخال و الإخراج و إمتداد هذه المكتبة .h (( يوجد ايضاً إمتداد .c)).
كلمة main تعني رئيسية و الأقواس هي اقواس الدالة أي الدالة الرئيسية main() للبرنامج و تبدأ بقوس و تنتهي بقوس {}.
و دالة printf خاص بأمر الطباعة بمعنى إطبع لي النص المكتوب بين قوسين و يلزم تضمين الفاصلة المنقوطة ; بالنهاية.
عند تشغيل البرنامج و الضغط على زر Run سوف يطبع
hello world
قام بطباعة النص الذي بداخل القوس وهو hello word.
مثال 2
#include<stdio.h>
main()
{
printf("hello world\n");
}
مثال 3
قم بطباعة كلمة CS على الشاشة بإستخدام لغة السي ثم قم بنزول سطر للأسفل.
#include<stdio.h>
main()
{
printf("CS\n");
}
مثال 4
قم بطباعة كلمة Saja و كلمة Muhammad مستخدماً بينهم فاصل أربع فراغات بواسطة \t و نفذ النتيجة على الشاشة.
#include<stdio.h>
main()
{
printf("Saja\tMuhammad\n");
}
طلبنا من البرنامج بأن يطبع إسم Saja ثم يترك 4 فراغات بإستخدام /t ثم طباعة إسم Muhammad بعده و ثم النزول سطراً جديداً بإستخدام \n و الخروج من البرنامج.
عند تشغيل الكود
التمرين الأول
قم بطباعة جملة Nusur Tech على الشاشة وإستخدام التعليقات في الكود بإستخدام لغة سي.
/*بداية البرنامج*/
#include<stdio.h>
int main()
{
//طباعة الكلمة المطلوبة
printf("Nusur Tech\n");
}
عند تشغيل هذا البرنامج سوف يطبع على الشاشة كلمة Nusur Tech و يتجاهل التعليقات الذي كتبناها.
التمرين الثاني
قم بطباعة عمر شخص إسمه Muhammad مستخدماً دالة printf في لغة السي C.
#include<stdio.h>
int main()
{
int age = 28;
printf("Muhammad age = %d", age);
return 0;
}