بانام ویاد خداوند بخشنده مهربان این وب جهت رفاه حال دوستان رشته کامپیوتر در دانشکده سماء بندر عباس میباشد
عملگر sizeof:
اين عملگر مي تواند طول يك متغير يا نوع داده را بر حسب بايت تعيين كند.
;متغيرsizeof
;(نوع داده)sizeof
عملگر &:
با استفاده از & مي توان به آدرس متغير ها دسترسي پيدا كرد.
مثال:
m=&x
آدرس x در m قرار دارد.
نكته:
C نسبت به حروف حساس است (case sensitive)يعني بين حروف كوچك و بزگ آن تفاوت وجود دارد.به عنوان مثال كلمات كليدي (key words) درC بايد به صورت كوچك نوشته شود مثلآ
for يك كلمه كليدي است ولي FOR كلمه كليدي نيست.
ساختار برنامه درC :
هر برنامه داراي يك تابع اصلي به نام ()main است.
اين تابع وساير اطلاعات در فايلي به نام فايل سرآيند (header file ) قرار مي گيرد.
پسوند اين فايل ها h. است وبر روي فهرستي از ديسك به نام include قرار مي گيرد.
اين دستور از دستورات پيش پردازنده است وكار اتصال فايل هاي سر آيند را به برنامه انجام مي دهد.
الگو:
<فايل سرآيند>include#
< FONT>
توجه كنيد بعد از اين دستور; قرار نمي گيرد چون يك دستور پيش پردازنده است.
بين #وinclude نبايد فاصله اي وجود داشته باشد .
بين نام فايل وعلائم <>نبايد فاصله اي وجود داشته باشد .
ذكر علائم<> ضروري است.
printf:
براي چاپ خروجي به كار مي رود.
الگو:
;(عبارت2,عبارت1)printf
در عبارت 1 ميتوان عين خروجي را چاپ كرد يا كاراكتر هاي فرمت يا كنترلي
در عبارت 2 عين خروجي را ميتوان چاپ كرد.
كاراكتر هاي فرمت:
%d براي چاپ اعداد صحيح
%c براي چاپ كاراتر
%f براي چاپ اعداد اعشاري
مثال:
;(printf("%f",t
كاراكتر هاي كنترلي:
n/ براي رفتن به سطر جديد.(new line)
****
scanf:
براي ورود داده ها به كارمی رود.
الگو:
;(عبارت2,عبارت1) scanf
در عبارت 1 كاراكتر هاي كنترلي وفرمت ودر عبارت2 آدرس ورودي داده مي شود.
مثال:
;(scanf("%d",&n
به عنوان مثال برنامه ی محيط ومساحت مستطيل را مي نويسم.
برنامه اي بنويسيد كه طول وعرض مستطيل را گرفته ومحيط ومساحت آن را حساب كند.
<>
(void main(void
}
;int x,y,s,p
;(scanf("%d%d",&x,&y
;p=(x+y)*2
;s=x*y
;(printf("%d%d",p,s
{
برنامه ميانگين 3 عدد صحيح :
<>
(void main(void
}
;int a,b,c
;float t
;(scanf("%d%d%d",&a,&b,&c
;t=(float)(a+b+c)/3
;(printf("%f",t
{
ميانگين 3 عدد صحيح ممكن است اعشاري باشد به همين علت ميانگين را از نوعfloatتعيين مي كنيم.
float را داخل پرانتز نوشتيم چون تغيير نوع (intبهfloat)صورت گرفته است.
كه به اين عمل (type casting) مي گويند.
مي توان برنامه را به اين صورت هم نوشت.
<>
(void main(void
}
;int a,b,c
;float t
;(scanf("%d%d%d",&a,&b,&c
;t=a+b+c/3
;(printf("%f",t
{
دستور العملهاي برنامه c داراي ويژگي هاي زير است:
هر دستور زبانc به ; ختم مي شود.
هر دستور زبان c مي تواند در يك يا چند سطر ادامه داشته باشد.
در هر سطر مي توان چند دستور تايپ كرد.
با كلماتي مانند signed(باعلامت), unsigned(بدون علامت), long , short مي توان انواع جديدي ايجاد كرد.
مثال:
long double
short int
در واقع نقش صفت دارند وقبل از نوع داده مي آيند.
چون نوع int با علامت است با signed نمي آيد.
مثال:
;long int p2
تعيين نوع متغير را اعلان متغير گوييم.
اعلان ثوابت:
ثوابت مقاديري هستند كه در برنامه تغيير نمي كند.
براي اعلان ثوابت دو روش وجود دارد:
1) define#
2) const
الگو:
مقدار ثابت نام ثابت define#
;مقدار=نام ثابت نوع داده const
مثال:
;const int n=100
define N 100 #
دستور define# علامت ;نميگيرد.زيرا از دستورات پيش پردازنده (preprocessor)است.نه دستور زبان c.
پيش پردازنده چيست؟
يك برنامه سيستم است كه قبل از ترجمه ي برنامه توسط كامپايلر تغييراتي در آن ايجاد مي كندودر صورت مشاهده دستوراتي كه با #شروع مي شود اجرا مي شود.
نكته:بهتر است در ثابت define# نام ثابت را بزرگ بنويسيم.(براي تفكيك آن از متغير ها)
نكته:اگر پس از اعلان ثوابت سعي كنيد مقدار آن را عوض كنيد كامپايلر خطايي را به شما اعلام مي كند.
عملگر ها(operator)
عملگر ها نمادهايي هستند كه اعمال خاصي انجام مي دهند.
عملگر ها به چهاردسته محاسباتي_منطقي_رابطه اي_بيتي تقسيم ميشوند.
عملگرهاي محاسباتي:
+,-,*,/,....
مقاديري كه عملگر ها روي آنها عمل مي كنند عملوند(operand) گويند.
مثال:
m+3
m,3عملوندو +عملگر است.
عملگر ها ي محاسباتي به ترتيب اولويت:
-- ,++
مثال: ۴- -(unary)
*/ %(باقيمانده تقسيم)
مثال: 5-6 + -(binary)
مثالهايي از عملگر هاي محاسباتي:
;int x=10,y=10
;x++
;++y
متغيرهاي x,y با مقدار اوليه 10تعريف مي شود.دستور x++ يك واحد به x اضافه مي كند.دستور ++y هم يك واحد به y اضافه مي كند.
اگرعملگرهاي ++ و-- در عبارتهاي محاسباتی قبل از عملوند قرار گيرند,ابتدا اين عملگر ها عمل كرده. ولي اگربعد ازعملوند قرارگيرند مقدار فعلي عملوند مورد استفاده قرار مي گيرد بعد يك واحداضافه يا كم مي شود.
مثال:
;int x,y
;x=10
;++y=x
مقدار 10 درxقرار مي گيرد.
وبعد مقدار x در y قرار مي گيرد وبعد به x يك واحد اضافه مي شود.پس مقدار x برابر 11 ومقدار y برابر 10 مي شود.
عملگر هاي رابطه اي:
<بزرگتر
>كوچكتر
=<بزرگترمساوي
=>كوچكترمساوي
==مساوي
=! نامساوي
عملگرهاي منطقي :
عملگر هاي منطقي بر روي عبارات منطقي عمل مي كنند.عبارات منطقي داراي دو ارزش درستي (1) و نادرستي (0) هستند.
! (نقيض) X!
&& (و) Z>Y&& Z>X
|| (يا) X>Y||X>Z
نتيجه ي عملگر ! وقتي درست است كه عمولند آن داراي ارزش نادرستي باشد.
نتيجه ي عملگر && وقتي درست است كه هر دو عملوند ارزش درستي داشته باشد.
نتيجه ي عملگر || وقتي نا درست است كه نتيجه ي هر دو عملوند نا درست باشد.
در بقيه موارد ارزش درستي دارد.
عملگرهاي بيتي :
& و
| يا
^ ياي انحصاري
~ نقيض
<< شيفت به راست(right shift)
>> شيفت به چپ (left shift)
نتيجه ي عملگر & وقتي درست است كه هر دو عملوند ارزش درستي داشته باشد.
نتيجه ي عملگر | وقتي نا درست است كه هر دو عملوند نا درست باشد.
نتيجه ي عملگر ^ وقتي درست است كه يكي از عملوند ها ارزش درستي وديگري ارزش نادرستي داشته باشد.
در بقيه موارد ارزش درستي دارد.
اگر X,Y دو بيت از داده ها باشند وXبرابر 1 باشد0=x~ است.
اگر Xبرابر با1 وY برابر با 0 باشد.1=y|x مي شود وX&Y برابر 0 ميشود.
^وقتي درست است كه يكي از داده ها درست (1) وديگري غلط (0)باشد.
هر شيفت به راست معادل تقسيم بر 2 وهر شيفت به چپ معادل ضرب در 2 است.
الگو:
x=x>>1
مثلآاين عبارت عدد 192 را تقسيم بر ۲مي كند.
عملگر ؟
:الگو
;عبارت3:عبارت 2 ? عبارت1=متغير
اگر عبارت 1 داراي ارزش درستي باشد مقدار عبارت 2 در متغير قرار مي گيرد.وگرنه عبارت 3 در متغير قرار مي گيرد.
مثال:
;int n,m=5
;n=m>5?m*2:m*5
m>5 داراي ارزش نادرستي است . زيراmاز 5 بزرگتر نيست. بنابراين مقدار m*5 كه برابر
با 5*5=25 در متغير yقرار مي گيرد.
انواع سطوح زبان برنامه نويسي :
زبان هاي سطح بالا(high level lang):
java,delphi
زبان هاي سطح ميانی(mid level lang):
c++,c
زبان هاي سطح پايين(low level lang):
زبان ماشين , زبان اسمبلی
زبان هاي سطح بالا زبان هايي هستند كه به زبان انسان نزديك است.
زبان هاي سطح پايين يعني زبان ماشين (0,1)و زبان هاي سطح مياني چيزي بين اين 2 زبان است.
چند اصطلاح(terminology):
bug=عيبي كه در برنامه پيش مي آيد
debug=رفع عيب
error
1)syntax error=غلط املائي
2)semmantic error=غلط معنايي
waing=هشدار
link=ارتباط دادن_ پيوند دادن_اضافه كردن اطلاعات مورد نياز به برنامه مقصد
trace=رد يابي _رفع عيب
exe=اجرا
فرق بين error,waing در چيست؟
error اجازه نمي دهد برنامه ادامه پيدا كند وليwaingفقط هشدار مي دهد واجازه مي دهد برنامه اجرا شود.
انواع متر جم ها:
كامپايلر(compiler)=زمان اجرا از ترجمه جدا است يعني پس از نوشتن برنامه ايراد هاي برنامه خط به خط گفته مي شود.
مفسر(interpreter)=زمان ترجمه از اجرا جدا نيست يعني با نوشتن هر دستور برنامه ترجمه مي شود و اگر ايرادي در برنامه باشد از اجراي آن جلوگيري ميكند
مراحل نوشتن برنامه ي c
برنامه c داراي يك سري كلمات كليدي است
نوع داده شامل:int,float, char , double,void مي باشد.
int=براي ذخيره كردن اعداد صحيح به كار مي رود مثل1,1002و...وداراي 2بايت حافظه است
char=براي ذخيره كردن كاراكتر به كار مي رود مانند a,g,m,...وداراي يك بايت حافظه است.
float=براي ذخيره كردن اعداد اعشاري به كار مي رود وداراي4 بايت حافظه است.
double=براي ذخيره كردن اعداد اعشاري بزرگ مورد استفاده قرار مي گيرد.
:الگو
;نام متغير نوع داده
مثال:
;int a
;char ch
;float s1
;double s2
نکته:مي توان به متغير ها در موقع تعريف مقدار داد به اين كار (variable initialization )وريبل اينشلايزيشن گفته مي شود.
مثال:
;int a=2
;'char ch='a
نکته: كاركتر ها بايد داخل ' ' (کوتيشن يکانی)قرار گيرند.
مي توان بعد از تعريف به متغير مقدار داد
مثال:
;int a
;a=2
نکته : در برنامه نويسي بعد از هر دستوري از (;)سمي كالن استفاده مي شود
ويژگي متغير ها:
1)متغير ها يا _ هستند يا حروف aتاz يا AتاZ
2)هيچ حرف آنها نبايد علائم ويژه باشد مثل!؟&$#@
3)حرف اول آنها نبايد رقم باشدولي بعد مي توان از رقم استفاده كرد.
مخفف كردن:
a=a+c مساوي است با a+=c
a=a+1 مساوي است با a+=1 مساوي است با ++a (آ پلاس پلاس)
m=m*n مساوي است با m*=n
i=i-1 مساوي است با i-=1 مساوي است با --i (آي ماينس ماينس)