مقدمة عامة على لغة C * مميزات لغة 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 )
حرف أو رمز واحد
صحيح قصير ( int )
-32768 إلى 32768
صحيح طويل ( long )
-2014704830648إلى 2014704830648
حقيقى ( float )
e- 38 إلى e
+ 38
حقيقى مضاعف ( double )
e -308 إلى e+308
وفيما
يلى المقصود بكل هذه الأنواع : -
-
متغير من نوع حرف : أى متغير
يصلح لتخزين حرف فقط .
-
متغير من نوع صحيح : أى متغير
يصلح لتخزين رقم صحيح ( ليس به علامة عشرية ) .
-
متغير من نوع صحيح ولكن
طويل( (Long : أى
يستطيع أى يخزن رقم صحيح ضعف المتغير الصحيح العادى ويستعمل هذا النوع إذا كانت الأرقام التى
تتعامل معها أكبر من المساحة المخصصة وإلا سنحصل على نتائج خاطئة بالرغم من إن
البرنامج سليم
-
متغير حقيقى : أى متغير
يصلح لتخزين رقم حقيقى يقبل الكسور العشرية مثل
33.5
-
متغير حقيقى مضاعف : أى
يستطيع أن يخزن رقم حقيقى ضعف المتغير الحقيقى العادى .
*
تسميته
المتغير: - يخضع اسم المتغير لشروط معينه :-
-
يجب أن يبدأ المتغير بحرف ثم يكمل
المتغير بعد ذلك حروف أو أرقام .
-
يفرق المترجم بين الحروف الصغيرة
والكبيرة فالمتغير HP يختلف عن المتغير hp
فإذا استعملا فى البرنامج يعتبرهما البرنامج متغيرين
-
يجب ألا يكون المتغير بإسم كلمه من
الكلمات المحجوزة .
*
الأعلان عن المتغيرات : --
فى لغة الـ C
لابد الإعلان عن المتغيرات Variables فى
بداية البرنامج إما إذا كنت تستخدم مترجم لغة C ++ يتم
الإعلان عن المتغيرات فى إى مكان بالبرنامج
int 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 opertors
A = a + 5
A * = 5
30
Multipication assibnment 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 )