به نام خداوند مهربان

 

زبان C در سال 1972 توسط دنیس ریچی طراحی شد.این زبان تکامل یافته ی زبانBCPL از زبانB   میباشد که طراح آن کن تامپسون می باشد،نتیجه شده است.علت نامگذاری C این است که بعد از B طراحی شد. کسانی که تا حدودی با زبانهای برنامه سازی آشنایی دارند،می دانند که زبان دیگری به نام C++ وجود دارد و آن از C ناشی شده است.C++ علاوه بر ویژگیهای C ،ویژگیهای جدیدی دارد که در C موجود نیست.زبانC یک زبان میانی است.زبانهای برنامه سازی را می توان به سه دسته تقسیم کرد:زبانهای سطح بالا،زبانهای میانی،زبانهای سطح پایین.

     علت میانی بودن زبان C این است که، از طرفی همانند زبان سطح پایینی مثا اسمبلی قادر است مستقیما به حافظه دستیابی داشته باشد و با مفاهیم بیت،بایت و آدرس کارکند و از طرف دیگر،برنامه های این زبان،همچون زبانهای سطح بالایی مثل پاسکال،از قابلیت خوانایی بالایی برخوردارند.به عبارت دیگر،دستورالعملهای این زبان،به زبام محاوره ای انسان نزدیک است،که این ویژگی،مربوط به زبانهای سطح بالا است.زبان  C،یک زبان ساخت یافته است.در این زبان با استفاده از حلقه های تکراری مثل while،for، do while میتوان برنامه هایی نوشت که قابلیت خوانایی و درک آنها بالا باشد. 

زبانهای ساخت یافته:

پاسکال/ادا/C،(C++)

ماجولا-2/جاوا 

زبانهای غیر ساخت یافته:

فرترن/بیسیک/کوبول

کلمات کلیدی زبان:

auto,break,case,char,const,cnttinue,default,do,          double,else,enum,extern,float,for,goto,if,int,long,

register,return,short,signed,static,struct,switch,

 typedof,union,unsigned,void,volatile,while

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

  این زیان،زبان برنامه نویسی سیستم است.برنامه های سیستم برنامه هایی هستند که امکان بهره برداری از سخت افزار و سایر نرم افزارها ر فرام می کنند.بعضی از برنامه های سیستم عبارت اند از :سیستم عامل ،مفسر،کامپایلر،ویراستارها،واژه پردازها،مدیریت بانکهای اطلاعاتی واسمبلر.                                       ارتباط تنگاتگی بین این زبان و اسمبلی وجود دارد و به این ترتیب می توان از تمتام قابلیت های اسمبلی در این زبان استفاده کرد.                                                                                                               قابل حمل است.معنای قابل حمل این است کهبرنامه هایی که به این زبان، در یک نوع کامپیوتر(مثل آی.بی.ام)نوشته شدند،بدون انجام تغییرات با انجام تغییرات اندک،در کامپیوترهای دیگر(مثل VAX -DEC) قابل استفاده اند.

C،زبان کوچکی است.تعداد کلمات کلیدی این زبان انگشت شمار است(30 کلمه ی کلیدی).تصور نشود که هر چه تعداد کلمات کلیدی زبان بیشتر باشد،آن زبان قدرتمند است.به عنون مثال زبان بیسیک در حدود صد وپنجاه کلمه ی کلیدی دارد ولی قدرت زبان---به مراتب بیشتر از زبان بسیک است.تجه داشته باشید که بعضی از کامپایلر هایC،علاوه بر این 32 کلمه ی کلیدی ،کلمات دیگری را به زبان اضافه کده اند.

 انواع داده ها:

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

 

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

 

هشت بیت :

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 <stdio.h>

int  main()

{

        printf("programingwithc.");

        printf("blogfa.com");

}

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

programingwithc.blogfa.com