من اول لغات البرمجه لغة ( combined programming languag)
CPL، التي صممت في عام الـ 1960م
وانبثقت منها لغة( BCPL (Basic combined programming
ثم تم تطوير BCPLوسميت لغة Bفقط
ومن الجدير بالذكر ان جميع هذه اللغات تعتبر كلغة تجميع
لغات للاله:Machine languages
بعد ذلك قام ريتشي فاخذ من الـ Bاحسن تعليماتها
وغير في كثير من قيودها واضاف اليها تعليمات اخرى جديده
وجعل منها لغة برمجه SOFTWARE LANGUAGE كما هي لغة للاله وسماها لغة C
وهو حرف ابجدي متقدم عن الحرف B
فولد بذلك لغة سي عام الـ 1972في مختبرات AT&T
تعتبر لغة سي الان من اشهر اللغات واكثرها انتشارا
في الدول المتقدمه وبداء المبرمجون من كافه الاختصاصات
يكتبون برامجهم بها وذلك لسببين رئيسيين هما :
الاول :مرونه لغة سي فهي تصلح لكافه لتطبيقات
وتعطي المبرمج حرية التصرف على مستوى البرمجيات والاجهزه
الثاني : كثير من نظم التشغيل تكتب بلغة سي
مميزات لغة C : - تتميز لغة C بمجموعة من المزايا مثل :-
- لغة عامه : أى تصلح لعمل برامج قواعد البيانات والرسومات والحسابات ونظم التشغيل .
- لغة تركيبية Structured Language : البرنامج المكتوب بلغة C عبارة عن دالة رئيسية تنادى مجموعة من الدوال الأخرى . وكل داله مجموعه من الأوامر .
- تتعامل على مستوى ( البت ) Bit manipulation : - حيث تستطيع أن تقرأ وتكتب وتغير وتقوم بعمليات على مستوى الـ Bit . حيث أن Bit هى اصغر وحدة لقياس المعلومات داخل الكمبيوتر وهى جزء من ثمانية أجزاء تعادل فى مجموعها حرف واحد byte .
- لغة متنقلة Portable : أى يمكن للبرنامج المكتوب بلغة C أن يعمل مع أكثر من جهاز مثل IBM وApple .
- لغة سريعة : - لأن أدوات اللغة تتعامل مع الآلة مما يختصر وقت التنفيذ .
- لغة قياسية : معظم مترجمات اللغة تتوافق مع اللغة القياسية ANSI C
The Basic Structure of c Program
قواعد بناء البرنامج
- البرنامج التالى يمثل أبسط تركيب لبرنامج مكتوب بلغة C
# include < stdio .h >
main ( )
{
printf ( " hello egypt " ) ;
}
ملاحظات هامة
- يبدأ البرنامج بالعبارة < ……h > # include وبين العلامتين اسم ملف التوجيه الخاص بالدوال المستخدمة فى البرنامج – يمكن كتابة أكثر من include .
- يتكون البرنامج من دالة رئيسية main ( ) وتبدأ بالقوس { وتنتهي بالقوس } .
- جميع كلمات ودوال اللغة تكتب بالحروف الصغيرة .
- تنتهي كل عبارة بفاصله منقوطة ( )
- يجوز كتابة أى ملاحظات أو تعليقات خاصة بالبرنامج بوصفها بين العلامين /* */ لأى عدد من السطور
جسم الدالة يوضع ما بين الأقواس { }
أنواع البيانات Data Type
* البيانات التى تتعامل معها إما أرقام أو حروف أو كلمات :-
- والأرقام يمكن أن تكون صحيحه ( أى ليس بها علامة عشرية ) integer أو حقيقية ( أى بها علامة عشرية) float .
- والحروف يمكن أن تكون حرف واحد أو أكثر من حرف
* الجدول التالى يوضح هذه الأنواع وكذلك عدد البايت byte التى يشغلها :-
نوع المتغير طوله بالبايت المدى المسموح
حرف ( char ) 1 حرف أو رمز واحد
صحيح قصير ( int ) 2 -32768 إلى 32768
صحيح طويل ( long ) 4 -2014704830648إلى 2014704830648
حقيقى ( float ) 4 e- 38 إلى e + 38
حقيقى مضاعف ( double ) 8 e -308 إلى e+308
وفيما يلى المقصود بكل هذه الأنواع : -
- متغير من نوع حرف : أى متغير يصلح لتخزين حرف فقط .
- متغير من نوع صحيح : أى متغير يصلح لتخزين رقم صحيح ( ليس به علامة عشرية ) .
- متغير من نوع صحيح ولكن طويل( (Long : أى يستطيع أى يخزن رقم صحيح ضعف المتغير الصحيح العادى ويستعمل هذا النوع إذا كانت الأرقام التى تتعامل معها أكبر من المساحة المخصصة وإلا سنحصل على نتائج خاطئة بالرغم من إن البرنامج سليم
- متغير حقيقى : أى متغير يصلح لتخزين رقم حقيقى يقبل الكسور العشرية مثل 33.5
- متغير حقيقى مضاعف : أى يستطيع أن يخزن رقم حقيقى ضعف المتغير الحقيقى العادى .
* تسميته المتغير : - يخضع اسم المتغير لشروط معينه :-
- يجب أن يبدأ المتغير بحرف ثم يكمل المتغير بعد ذلك حروف أو أرقام .
- يفرق المترجم بين الحروف الصغيرة والكبيرة فالمتغير HP يختلف عن المتغير hp فإذا استعملا فى البرنامج يعتبرهما البرنامج متغيرين
- يجب ألا يكون المتغير بإسم كلمه من الكلمات المحجوزة .
* الأعلان عن المتغيرات : -
- فى لغة الـ C لابد الإعلان عن المتغيرات Variables فى بداية البرنامج إما إذا كنت تستخدم مترجم لغة C ++ يتم الإعلان عن المتغيرات فى إى مكان بالبرنامج
Into a
Float
* المؤثرات operators
المؤثرات هى الرموز التى تربط بين المتغيرات والثوابت لإنشاء علامة أو معادلة تختلف أنواع المؤثرات باختلاف وظيفة كل مؤثر .
1- المؤثرات الحسابية arithmetic operators
+ علامات الجمع addition
- علامات الطرح Subtraction
* علامات الضرب multiplication
/ علامات القسمة division
وتستخدم مع المتغيرات والثوابت الرقمية
2- مؤثرات المقارنة Relational operators :- وتستخدم لمقارنة قيمتين :
المؤثر الرمز مثال النتيجة
أكبر من greater than < 10>8 1
أصفر من less than > 10<8 0
يساوى equal to == 8==10 0
لا يساوى not equal to ! = 8=!10 1
أقل من أو يساوى less than or equal to => 10 < = 8 0
أكبر من أو يساوى greater than or equal to =< 10 > = 8 0
3- المؤثرات المنطقية Logical operator
المؤثر الرمز مثال النتيجة
و AND && 10 > 8 && 9 > 7 1
أو OR || 1 0 < 8 || 7 < 8 1
لا NOT ! ! (10 = = 8 ) 1
4- مؤثرات التخصيص Assignment Operators
وهى مؤثرات تخزين قيمة فى متغير فمثلا إذا كانت قيمة 6 = 9
التخصيص التقليدى الطريقة الحديثة النتيجة المؤثر
A = a +5 A + = 5 11 + = addition assignment operators
A = a – 5 A - = 5 1 Subtraition assignment operators
A = a + 5 A * = 5 30 multiplication assignment operators
A = a / 3 A / = 3 2 Division assignment operators
5- مؤثرات الزيادة والنقصان increment & Decrement
A = a + 1 A ++ 7 مؤثر زيادة واحد
A = a – 1 A -- 5 مؤثر نقصان واحد
6- مؤثر باقى خارج القسمة %
يستخدم لمعرفة باقى القسمه ( لتحديد هل الأرقام الموجودة فى المتغير زوجية أو فردية فمثلا إذا كانت قيمة a = 5 وكتب C = a % 2 يكون باقى الرقم 1 = 5 / 2
دوال الإدخال والإخراج
* دالة الطباعة على الشاشة printf() *
ملاحظات هامه : كل دالة مرتبطة بملف توجيه معين حيث يستدعى هذا الملف فى أول البرنامج بالعبارة # include فمثلا الدالة printf () معرفة بالملف stdio.h وتكتب العبارة # include < stdio.h > فى أول البرنامج حتى يتعرف المترجم على الدالة وهكذا مع باقى الدوال
- تستخدم دالة الطباعة printf ( ) لطباعة البيانات بجميع أنواعها
( String , char , float , int ) على الشاشة فقط .
- ونأخذ دالة الطباعة عدة صور وكذلك معاملات وأكواد تحدد شكل المخرجات
مثال 1
printf ( " welcome with compuscience " )
هنا يتم طباعة ما بين علامتى التنصيص " "
مثال 2
printf ( " \n welcome \n with \n compuscience " ) ;
فى هذا المثال : الكود 100 معناه new line أى سطر جديد وعندما يجد المترجم 100 يترجمها إلى سطر جديد ويكون الناتج
welcome
with
compusciene
وفيما يلى الاكواد المستخدمة مع الدالة printf( )
الكود الاستخدام المثال
\n الانتقال السطر الجديدnew line printf ( " \n “ )
\t نقل المؤشر بعد 8 مسافات ( Tap ) print f ( " \t “ )
\b إرجاع المؤشر مسافة خلفيةBackspace print f ( " \b " )
\xdd طباعة الحرف المناظر للكود المكتوب بالنظام السادس عشر hexadecimal printf ( “ x41 " ) والنتيجة : a
\ddd طباعة الحرف المناظر للكود المكتوب بالنظام الثمانى octol ( each d represents a digit ) printf ( " \101” ) النتيجة : a
\” طباعة علامة التنصيص double quate printf ( " \"" )
\a إخراج صوت الصافرة ( يبب ) printf ( " \a “ )
* أوجد ناتج تنفيذ البرنامج التالى :
/ * program name 1 * /
# include < stdio.h >
main ( )
{
printf ( " \n this text display in new line “ )
printf ( " \n word1 \t lab1 \t tab2 “ )
printf ( " \n bell \a bell \ b “ )
printf ( " \n this line display quotations \ “ “ )
printf ( " \n “ )
}
* طباعة قيم المتغيرات على الشاشة : لطباعة القيم الموجودة بالمتغيرات تستخدم أكواد معينة لتحدد نوع البيانات المراد طباعتها بالدالة print f ()
مثال
printf ( " % d “ , a )
printf ( " % f “ , b )
- فى هذا المثال عندما يقابل مترجم اللغة العلامة % ينظر إلى الحرف التالى لهذه العلامة . ويعتبر هذا الحرف توصيف لقيمة موجودة بعد العلامة وكل حرف يحدد تنوع معين من البيانات .
والجدول التالى يوضح أكواد طباعة أنواع البيانات :
الكود الاستخدام مثال
%d توصيف لمتغير أو ثابت رقمى صحيح
( Signed decimal integer ) int printf ( " % d “ , - 10)
%f توصيف لمتغير أو ثابت رقمى حقيقى
( floating point ) float printf ( “ % p “ , 507 )
%c توصيف لمتغير أو ثابت ( حرف واحد )
char Single character printf ( “ % c “ , “ a “)
%s توصيف لعبارة حرفية حرف أو أكثر
String printf ( “ % s “ , “ is “ )
%u توصيف لمتغير أو ثابت رقمى صحيح بدون إشارة (
(unsigned decimal integer ) printf ( “ % u “ , “ 10 )
%x توصيف لمتغير أو ثابت بالنظام السادس عشر hex printf ( “ % x “ , af )
%o توصيف لمتغير أو ثابت بالنظام الثمانى Qctal printf ( “ % o “ , 67 )
* أوجد ناتج تنفيذ البرنامج التالى
/ * program name 2 * /
# include < stdio.h >
main ( )
{
int a , b , c
float f
long t
char ch = ‘y ‘
char name [10] = " aly "
a = 5
b = 10
c = a + b
printf (“ \n c = % d “ , c )
printf ( “\n f = % f “ , f )
printf (“ \n name = % s “ , name )
printf ( “ \n ch = % c “ , ch)
printf ( “\n t = % ld “ , t )
}
* ملاحظات على الحل *
• يشمل البرنامج السطر رقم 1 للتعليق أو الملاحظة
• فى السطر 2 يشمل على الجملة # include < stdio.h > وتستخدم لتحميل ملف التوجيه stdio.h الذى يحتوى على تعريف الدالة printf ( )
• السطر رقم 3 تبدأ الدالة الرئيسية main ( ) ثم السطر 4 تبدأ الدالة الرئيسية بالقوس {
• فى السطر رقم 7 , 6 , 5 إعلان عن المتغيرات
• فى السطر رقم 8 الإعلان عن المتغير ch من نوع حرف ( char ) وإعطائه القيمة y
• فى السطر رقم 9 الإعلان عن المتغير name لتخزين عبارة حرفية وإعطائه القيمة الابتدائية كلمة Aly
• فى السطر رقم 10 ، 11 ، 12 لإعطاء قيم للمتغيرات A , B وقيمة C
• ثم طباعة المتغيرات ثم تنتهى الدالة الرئيسية بالقوس { وبالتالى ينتهى البرنامج
ملاحظات : الصورة % 3F : يعنى طباعة ثلاث أرقام بعد العلامة العشرية فمثلا الرقم 534.6735 يظهر بالصورة
منتديات--المحترف
!√‰ღॐணॐೋॐண҉ : : : : : : ҉ ॐணॐೋॐணღ‰√
كتاب للغه السى
مرجع كبير يشرح لغة السي C بشكل كامل ومفصل (كتاب ينصح به لكل متعلمي لغة السي)
تحمييل
كتاب جميل يشرح لغة السى من البداية الى النهاية فى 15 فصل الادخال والاخراج والتعامل مع الملفات والتعامل مع الذاكرة والتعامل الشاشة (حفظ جزء من الشاشة واسترجاعه ) والكتابة بالالوان وتغيير خلفية الشاشة والرسم فى بيئة الكونسول والكثير....
تحمييل
بنسبه للامثله والتطبيقى العملى فى السى
دى كتب
1- تعليم البرمجة بلغة C بالأمثلة العملية الشاملة
تحمييل
2- اكثر من 35 برنامج في السي
تحمييل
بنسبه لل ERRORS فى السى
ده كتاب رسائل الأخطاء الشائعه في لغة السي(للمبتدئين)
تحمييل
ده موقع بيقدم كورس السى فيديو
موقع طورنفسك :كورس فيديو عربي لتعليم لغة السي
No comments:
Post a Comment