خرید بک لینک

مفاهیم اولیه زبان C

در این فصل به مقدمات اولیه برنامه نویسی به زبان C می پردازیم و اصول اولیه آن را بررسی می نماییم

آنچه در ادامه مطلب می خوانید

شناسه ها در C

انواع داده


مفاهیم اولیه زبان C

در این فصل به مقدمات اولیه برنامه نویسی به زبان C می پردازیم و اصول اولیه آن را بررسی می نماییم

شناسه ها در C

شناسه (identifier) نامی است که به یک قسمت از برنامه مانند متغیر، تابع، ثابت و یا ... داده می شود. در زبان C برای انتخاب شناسه ها فقط می توان از علائم زیر استفاده کرد: - حروف انگلیسی کوچک و بزرگ (A…Z a…z)
- ارقام (0…9)
- علامت خط پایین یا _


البته یک شناسه تمی تواند با یک رقم شروع شود. مثلا شناسه های sum ، average ، name2 و یا student_average مجاز هستند، اما شناسه های 2name و یا student average مجاز نیستند. البته در برنامه نویسی امروزی پیشنهاد می شود بجای شناسه هایی همانند student_average از studentAverage استفاده گردد. یعنی بجای اینکه در شناسه ها از _ برای جداکننده استفاده کنیم، اولین حرف هر قسمت را بصورت بزرگ بنویسیم.

نکته مهم دیگری که باید به آن اشاره کرد آنستکه زبان C برخلاف بسیاری از زبانهای دیگر به کوچک و بزرگی حروف حساس است (case sensitive). در نتیجه شناسه های زیر با یکدیگر متفاوتند :

Sum ≠ sum ≠ SUM

این مسئله معمولا درهنگام برنامه نویسی باعث ایجاد بعضی خطاها می شود.
آخرین نکته اینستکه در هنگام انتخاب شناسه نمی توانید از کلمات کلیدی که برای منظورهای خاص در زبان C رزرو شده اند استفاده کنید. زبان C دارای 32 کلمه کلیدی است که عبارتند از :

auto,break,case,char,const,cntinue,default,do,double,else,enum,exte,float, for,goto,if,int,long,register,retu,short,signed, sizedof,static,struct,switch,

typedof,union,unsigned,void,volatile,while

.توجه داشته باشید که بعضی از کامپایلر هایC،علاوه بر این 32 کلمه ی کلیدی ، کلمات دیگری را به زبان اضافه کرده اند به طور مثال در codevision کلمات کلیدی به قرار زیر است.

,Break,bit ,case ,char,const ,continue ,default, do ,double, eeprom ,else, enum, exte, flash,float,for,funcused,goto,if,inline,int,interrupt,long ,register ,retu ,short ,signed ,sizeof ,sfrb

,sfrw ,static, struct, switch, typedef union ,unsigned void, volatile ,while,

انواع داده

هدف از برنامه نویسی، ورود داده ها به کامپیوتر(میکروکنترلر نیز نوعی کامپیوتر می باشد)، پردازش داده ها و استخراج نتایج است . پس داده ها نقش مهمی را در برنامه نویسی ایفا می کنند.

انواع داده ها و مقادیر قابل قبول آنها

هشت بیت :

char, -127 to 127

unsignec char, 0 to 255

signed char, -127 to 127

شانزده بیت :

short int, -32767 to 32767

unsigned short int, 0 to 65535

signed short int , -32767 to 32767

بین شانزده تا سی و دو بیت :

int , -32767 to 32767

unsigned int, 0 to 65535

singned int , -32767 to 32767

سی و دو بیت :

long int, -2147483647 to 2147483647

signed long int , -2147483647 to 2147483647

unsigned int, 0 to 4294967295

float, 7raghame deghat

شصت و چهار بیت :

double , 15raghame deghat

هشتاد بیت :

longf double , 19 raghame deghat

متغیر ها

متغیر نامی برای کلمات حافظه است که داده ها در آنها قرار می گیرند و ممکن است در طول اجرای برنامه تغییر کنند. برای مراجعه به متغبر از نامشان استفاده می کنیم. بنابرابن متغیرها امکان نامگذاری برای کلمات حافظه را فراهم می کنند. متغیر ها باید دارای نوع باشند، یعنی متغیر های بدون نوع در C شناخته نمی شوند.

تعیین نوع متغیر را تعریف متغیر گویند.

برای تعیین نوع متغیر اینگونه عمل می کنیم :

; نام متغیر نوع داده

تعریف متغیر ها :

int x.y ;

float m.n;

char ch1.ch2;

double d1;

long int p1;

اسامی مجاز برای متغیر ها :

count

test23

sum

S_1

اسامی غیر مجاز برای متغیر ها :

1test

high!there

grade.1

.pcx

برای مقدار دادن به متغیر ها :

۱.هنگام تعریف نوع متغیر

int x,y =5 ;

۲. پس از تعریف نوع متغیر و با دستور انتساب(=)

int x,y,z ;

float f1,f2 ;

x=12 ;

y=z=2 ;

f1=f2=12.34 ;

۳.با دستورات ورودی

int x,z ;

scanf ("%d%d,&x,&z) ;

عملگرها

نمادهایی هستند که اعمال خاصی را انجام میدهند.

عملگرهای محاسباتی

این نوع عملگر ها، محاسباتی را روی عملوندها انجام می دهند.

- تفریق و منهای یکانی

+ جمع

* ضرب

/ تقسیم

% باقیمانده ی تقسیم

-- کاهش

++ افزایش

تقدم عملگرهای محاسباتی

(از بالاترین تقدم به پایین ترین تقدم)

-- ++

- (منهای یکانی)

% / *

- +

عملگرهای رابطه ای

این نوع عملگرها ، ارتباط بین عملوندها را مشخص می کنند.

< بزرگتر

> کوچکتر

=< بزرگتر یا مساوی

=> کوچکتر یا مساوی

= = متساوی

=! نا مساوی

عملگرهای منطقی

این نوع عملگرها بر روی عبارات منطقی عمل می کنند. عبارات منطقی دارای دو ارزش درستی و نادرستی اند.(ارزش نادرستی با مقدار صفر و ارزش درستی با مقادیر غیر صفر مشخص می شوند.)

! نقیض(not)

&& و((and

|| یا(or)

تقدم عملگرهای منطقی و رابطه ای

!

= > > = < <

=! = =

&&

||

(تقدم این عملگرها پایین تر از سایر عملگرها ست)

عملگرهای ترکیبی

از ترکیب عملگرهای محاسباتی و علامت = مجموعه دیگری از عملگر ها ایجاد می شود که عمل محاسباتی و انتساب را انجام دهند.

= + انتساب جمع

= - انتساب تفریق

= * انتساب ضرب

= / انتساب تقسیم

= % انتساب باقیمانده ی تقسیم

همانطور که گفته شد این زبان ، یک زبان ساخت یافته است و هر برنامه در این زبان ، شامل یک یا چند تابع است.یکی از این توابع main() است. این تابع به عنوان تابع اصلی بوده و بقیه ی تئوابع جزء توابع فرعی هستند.

اجرای یک برنامه باید با تابع اصلی شروع شود یعنی همان main() . ابتدا باید تابع اصلی و سپس تابع فرعی را بنویسیم. بعد از main() متغیر های مورد استفاده ی این تابع تعریف می شود.

سپس تابع اصلی با یک } شروع و به { ختم می شود. تعریف توابع فرعی پس از توابع اصلی صورت می گیرد.

نباید فراموش کرد که توابع مورد استفاده ی برنامه نویس در کجا قرار دارند و برنامه چگونه به آنها دسترسی پیدا می کند.این توابع و سایر اطلاعاتی که کامپایلر برای ترجمه ی برنامه به آنها وجود دارد، در تعدادی از فایل ها به نام فایل های سرآیند (header)قرار دارند.

پسوند فایل های سرآیند .h است.و معمولا بر روی فهرستی از دیسک به نام INCLUDE قرار دارند. برنامه نویس باید بداند که هر تابع مورد استفاده در برنامه در کدام فایل سرآیند قرار دارد و همان فایل را به برنامه اضافه کند.

برای اتصال فیل های سرآیند از دستوری به نام #include استفاده می شود. این دستور قبل از main() قرار می گیرد.

<فایل سرآیند>#include

int main()

{

اعلان متغیرها

دستورات اجرایی

}

Printf()

این تابع در فایل stdio.h قرار دارد و برای چاپ اطلاعات در صفحه ی نمایش به کار می رود.

نحوه کاربرد تابع printf :

به دوصورت به کار می رود :

(" <عبارت 1> ")printf

(<عبارت 2>،"<عبارت1>")printf

<عبارت2> اطلاعاتی است که باید به خروجی منتقل شود و <عبارت1> می تواند شامل موارد ذیل باشد:

1.اطلاعاتی که باید عینا در خروجی چاپ شود.

2.کاراکترهای تعیین کننده ی فرمت خروجی.(این نوع کاراکترها نوع اطلاعاتی را که در <عبارت2>ذکر شده اند و باید به خروجی بروند مشخص می کنند. این کاراکتر ها با % شروع می شوند.)

3.کاراکترهای کنترلی.(این نوع کاراکتر ها شکل خروجی اطلاعات را مشخص میکنند و با \ شروع می شوند)

کاراکترهای فرمت (عمومی ترین آنها)

%c یک کاراکتر یه خروجی می رود.

d% اعداد صحیح دهدهی مثبت و منفی به خروجی می رود.

%f اعداد صحیح دهدهی مثبت و منفی به خروجی می رود.

%% علامت%

البته ناگفته نماند که حدود17 کاراکتر فرمت را زبان c می شناسد که در اینجا به همین چهار کاراکتر اکتفا می کنیم.

کاراکترهای کنترلی

\f موجب انتقال کنترل به صفحه ی جدید می شود.

\n موجب انتقال کنترل به خط جدید می شود.

\" چاپ کوتیشن( " )

back slash \\

و چند نوع دیگر که در صورت لزوم به توضیح آنها نیز می پردازیم.

مثال:

برنامه ای که دو رشته را به خروجی می برد:

#include

int main()

{

printf("our blog is:\n ");

printf("www.iseee.ir");

}

و جمله ای که در خروجی چاپ می گردد:

Our blog is:

www.iseee.ir

scanf()

برای ورود اطلاعات از کی بورد از تابع scanf() استفاده می کنیم. که این تابع یک تابع همه منظوره در ورود دادها است. الگوی این تابع در فایلstdio.h می باشد که با یک جستجوی ساده در محیط برنامه می توانیم به این موضوع پی ببریم. این تابع همه ی داده ها را از ورودی خوانده و به راحتی در حافظه ذخیره می نماید.

scanf() الگوی استفاده از

(<عبارت دوم> , "<عبارت اول>")scanf()

<عبارت دوم>شامل آدرس متغیرهایی است که باید از ورودی خوانده شوند و <عبارت اول> نحوه ی خوانده شدن ورودی را مشخص می کند.

<عبارت اول>شامل سه نوع کاراکتر است:

1.کاراکترهای فرمت. این کاراکترها تعیین می کنند که چه نوع اطلاعاتی باید از ورودی خوانده شود.(این کاراکتر ها نیز با % شروع می شوند.)

2.کاراکترهای فضای خالی(space) فضای خالی باعث می شود تا این تابع از این فضای خالی در ابتدای اطلاعات ورودی صرف نظر کند.tab,new line,form feed نیز به عنوان فضای خالی محسوب می شوند.

3.کاراکترهایی قبل از فضای خالی و فرمت. وجود چنین کاراکتری موجود می شود تا چنانچه همان کاراکتر در رشته ی ورودی وجود داشته باشد,آن را خوانده از آن صرف نظر کند.

(وقتی دستورscanf() اجرا می شود, منتظر می ماند تا داده ها را از صفحه کلید دریافت نمیاد. هنگام وارد کردن داده, هر یک از اقلام داده را با یک فاصله یا کاما(,)از هم جدا می کنیم و پس از ورود داده ها, کلیدEnter را فشار می دهیم.)

getch() و getche() خواندن کاراکتر باتوابع

این توابع کاراکتری را از ورودی خوانده و در متغیر مورد نظر قرار می دهد. این توابع در فایلconio.h قرار دارند.

الگوی استفاده از این توابع به صورت ذیل است:

;()getch/getche = متغیر

وقتی برنامه به این دستورات می رسد, منتظر می ماند تا کلیدی فشار داده شود. در آن صورت کاراکتر معادل این کلید, در متغیر قرار می گیرد.

و یا به صورتی دیگر:

getch();

getche();

در اینصورت برنامه منتظر می ماند تا کلیدی از صفحه کلید فشار داده شود. پس از فشردن کلید, اجرای بقیه دستورات برنامه ادامه می یابد.

تفاوتهای این دو تابع:

تابعgetch() عکس العملی در صفحه ی نمایش ندارد. یعنی وقتی کلیدی فشار داده می شود, کاراکتر معادل آن در صفحه ی نمایش ظاهر نمی شود. در حالی که تابع getche() پس از خواندن کاراکتر آن را در صفخه ی نمایش نشان می دهد. در ضمن در این توابع برعکس تابع scanf() هیچ نیازی به فشردن کلید Enter نیست.

برچسب: نویسنده: rfmw تاريخ: دوشنبه 30 شهريور 1388 ساعت: 18:0

صفحه بندی