
نظرة عامة في لغة سي
لغة سي C سوف تكون محور حديثنا اليوم و هو عن واحدة من أقوى لغات البرمجة الموجودة على الساحة منذ نشأتها إلى الآن, و هي واحدة من لغات البرمجة العالية المستوي high level و هي مثل لغة باسكال من حيث سهولة الإستخدام من ناحية و من ناحية أخرى هي من اللغات المتدنية المستوى من حيث قدرتها على مخاطبة مكونات الجهاز و من اسباب شعبيه لغة الـ C هو إنتشار نظام التشغيل UNIX و هو أهم نظام تشغيل للحاسبات المتطورة حيث أن هذا النظام كتب بلغة C.
كانت أول بداية لظهور لغة سي في مختبرات شركة AT&T في عام 1972 و كانت هي البداية كمشروع تولى الإشراف عليه دينيس ريتشي ( Dennis Ritchie ) و هو يعتبر مخترع لغة سي بإستخدام نظام التشغيل Unix و لغة سي هي في الأصل لغة قديمة يطلق عليها إسم BCPL و BCPL تم تطويرها بواسطة مارتن ريتشارد ( Martin Richards ) 1967 و التي بدورها كانت لغة B و التي أخترعت بواسطة كين تومسون و لقد أدت لغة B إلى تطوير لغة سي في السبعينات حيث قام دينيس ريتشي أخذ من لغة B أحسن تعليماتها و غير في كثير من قيودها و أضاف إليها تعليمات عديدة و جعل منها لغة برمجة و سماها لغة C.
إستخدامات لغة سي C
للغة سي C إستخدامات عديدة و من هذه الإستخدامات هي :
- برمجة و تطوير أنظمة التشغيل.
- برمجة نظم قواعد البيانات.
- تطوير التطبيقات الواجهة الرسومية و الألعاب و الكثير من الإستخدامات.
مميزات لغة سي
- يتم إستخدام عدد قليل جداً من الكلمات المحجوزة.
- إستخدام أنواع ثابتة للبيانات مع إمكانية تحويل نوع البيانات ضمنياً Type Casting.
- لغة سي تدعم تنفيذ العديد من العمليات الحسابية و المنطقية و العمليات الخاصة بالتحكم في البيانات على مستوى البت bitwise Operations.
- إمكانية كتابة الأكواد البرمجية في أكثر من ملف و ترجمة كل ملف بشكل منفصل و إتاحة دمج الملفات المترجمة Linking.
- لغة السي لغة غنية بالدوال و توفّر للمبرمج عدداً كبيراً من دوال الإدخال و الإخراج و الدوال الرياضية و الحسابية.
عيوب لغة سي
- تعتمد لغة سي على أسلوب المترجم ( الذي يقوم بترجمة البرنامج بأكمله دفعة واحدة ) و من ثم يقوم بعرض قائمة الأخطاء بعكس لغة بيسك التي تعتمد على أسلوب المفسّر مما يسهل على المستخدم تصحيح الأخطاء بكل سهولة.
- يوجد في لغة سي أخطاء لا يستطيع المترجم أن يكتشفها.
الشكل العام لبرنامج في لغة سي
#include<stdio.h> main() { //اوامر البرنامج }
كلمة Include# تعني اشمل أي تضمين المكتبة التي تسمي stdio داخل المشروع و تستعمل لدوال الإدخال و الإخراج و إمتداد هذه المكتبة .h (( يوجد ايضاً إمتداد .c)).
كلمة main تعني رئيسية و الأقواس هي اقواس الدالة أي الدالة الرئيسية main() للبرنامج و تبدأ بقوس و تنتهي بقوس {}.
دالة printf() للطباعة
دالة printf() هي الدالة الأساسية لطباعة الجمل النصية في لغة سي و هو إختصار للمصطلح print formatted، حيث تتيح دالة printf() التحكم في طريقة طباعة الجمل النصية أو ما يعرف بتنسيق الجمل النصيه و إمكانية طباعة قيم المتغيرات بداخل النص المراد طباعته.
مثال 1
#include<stdio.h> main() { printf("hello world"); }
كلمة Include# تعني تضمين المكتبة التي تسمي stdio داخل المشروع و تستعمل لدوال الإدخال و الإخراج و إمتداد هذه المكتبة .h (( يوجد ايضاً إمتداد .c)). كلمة main تعني رئيسية و الأقواس هي اقواس الدالة أي الدالة الرئيسية main() للبرنامج و تبدأ بقوس و تنتهي بقوس {}. و دالة printf خاص بأمر الطباعة بمعنى إطبع لي النص المكتوب بين قوسين و يلزم تضمين الفاصلة المنقوطة ; بالنهاية.
عند تشغيل البرنامج و الضغط على زر Run سوف يطبع
output hello world
مثال 2
#include<stdio.h> main() { printf("hello world\n"); }
هذا المثال نفس المثال السابق لكن كتبنا له \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 و الخروج من البرنامج.
عند تشغيل الكود ستكون النتيجة
outout Saja Muhammad