how to program with c in persian

114
چگونه باC برنامهسیم؟ بنوین می باش شرق گی فنی مهندسیانشکده این اثر مطعلق به دوق کلیه حق د. ی توسط زبان برنامه نویسا مبانیی ب آشنایC م خدا به نا

Upload: moein-jazemi

Post on 08-Jan-2017

53 views

Category:

Education


0 download

TRANSCRIPT

Page 1: How to program with c in persian

برنامه Cچگونه با بنویسیم؟

.د کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می باش

Cآشنایی با مبانی برنامه نویسی توسط زبان

به نام خدا

Page 2: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

Cنوشتن برنامه های ساده ی کامپیوتر در زبان اهداف

outputو inputچگونگی استفاده از دستور های

چگونگی استفاده از داده های بنیادی

مفهوم حافظه ی کامپیوتر

چگونگی استفاده از عملگر های حسابی

چگونگی نوشتن دستور های تصمیم سازی

Page 3: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

مقدمه: 2.1

نمایش دادن یک متن: cیک برنامه ی ساده به زبان : 2.2

جمع کردن دو عدد صحیح:cدیگر برنامه های ساده ی زبان : 2.3

مفهوم حافظه: 2.4

cحسابگرها در زبان : 2.5

عملگر های نسبت دهی و برابری: دستور های تصمیم گیری : 2.6

Page 4: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

.کند را آسان و برای طراحی برنامه منظم و قابل فهم می( structure)ساختار Cزبان برنامه نویسی

را Cکنیم تا ویژگی های مهم زبان شویم و چندین مثال ارائه میآشنا میCدر این فصل با زبان .توضیح دهیم

.کنیم را بیان میCمقدمه ی ساختار های برنامه نویسی زبان 4و 3در فصل

Page 5: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-نشان دادن یک متن -2-2برنامه ی .با نوشتن یک برنامه ی ساده شروع می کنیم

( 2-1مثال .)مسئله ی اول نشان دادن یک متن است

Page 6: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

1 /* Fig . 2/1: fig02_01 .c2 A first program in C */3 #include <stdio .h>45 /* function main begins program execution */6 int main( void )7 {8 printf( “welcome to C!\n” );910 return 0; /* indicate that program ended successfully */11 } /* end function main */

Welcome to !

Cاولین برنامه در زبان 2-1مثال

Page 7: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-نشان دادن یک متن -2-2برنامه ی 2و 1خط های

/* Fig . 2/1: fig02_01 .c

A first program in c */

.ایند پایان می/* شروع شده و با*/ همانطور که این دو خط نشان می دهند ، کامنت ها با

.کامنت ها را برای خوانایی بهتر برنامه اضافه می کنیم

.ند هنگام اجرای برنامه ، کامنت ها توسط کامپیوتر خوانده نمی شوند و تاثیری در اجرای برنامه ندار

Page 8: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-نشان دادن یک متن -2-2برنامه ی خوانده نمی شوند ، در زبان های دیگر ماشینی هم باعث ایجاد کد Cعالوه بر این که کامنت ها در زبان

.نمی شوند

.کامنت ها به دیگران کمک می کنند تا بتوانند برنامه ی شما را خوانده و درک کنند

Page 9: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 1اشتباهات متداول برنامه نویسی

در پایان کامنت/* کردن فراموش

Page 10: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 2اشتباهات متداول برنامه نویسی

*/و پایان دادن به آنها با /* کامنت ها شروع

Page 11: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-نشان دادن یک متن -2-2برنامه ی می ( کامنت تک خطی )single-line comment //شامل++Cمانند C99برنامه

شود ، تا انتهای همان خط ،کامنت در نظر شروع می//شود به شکلی که هر چیزی که با .گرفته می شود

.قرار بگیرند ( قبل یا بعد از کد ها )کامنت ها میتوانند اول یا آخر خط

تداول را به دلیل کوتاه بودن و کم کردن اشتباهات م// برخی برنامه نویس ها استفاده از .دهند ترجیح می/*………*/، به استفاده ا ز

#include <stdio .h>

.است C((C preprocessorیک دستور برای پردازنده ی خود برنامه ی

3خط

Page 12: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-نشان دادن یک متن -2-2برنامه ی ع شرو#برنامه ، پیش پردازنده خط هایی را که با ( کامپایل شدن ) قبل از آماده سازی

.میشوند را پردازش می کند

به پیش پردازنده نشان میدهد که محتوای برنامه شامل3خط

standard input/output header (<stdio .h>)

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

(compiling) تابع از کتابخانهstandard input/output مانند .استفاده می شوندprintf

int main ( viod )

.است Cقسمتی از هر برنامه در زبان

، پایه برنامه است که به آن تابعmainنشان میدهد که mainپرانتز های بعد از

.می گویند

6خط

Page 13: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-نشان دادن یک متن -2-2برنامه ی .باشد mainشامل یک یا چند تابع می باشند که یکی ازآنها باید cبرنامه های زبان

.شروع می شود mainبا اجرای تابع Cهر برنامه ای در زبان

( (integerتابع یک عدد صحیح mainنشان می دهد که mainدر قسمت چپ intواژه ی کلیدی .می باشد

نشان می دهیم که چه طور تابع مورد نظر خود را بسازید ، شرح می دهیم که معنای 5وقتی در فصل (return a value) بازگشت به یک مقدار برای یک تابع چیست.

Page 14: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-نشان دادن یک متن -2-2برنامه ی . می باشد mainدر قسمت چپ intبرنامه ی شما شامل در حال حاضر

.توابع میتوانند اطالعات را دریافت کنند

.هیچ اطالعاتی دریافت نمی کند mainداخل پرانتز به این معنی است که تابع voidکمله ی

Page 15: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 1نکات مفید برای برنامه نویسی

هر تابعاز کامنت برای شرح دادن هدف استفاده

Page 16: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-نشان دادن یک متن -2-2برنامه ی .می باشد{شروع بدنه ی هر تابع با : 7خط

.قرار دارد}همچنین پایان هر تابع : 11خط

.به آکوالد ها و قسمت های بین آنها یک بلوک گفته می شود

printf( “welcome to c!\n” );

printf یک دستور کامپیوتری است که عبارت(string) را در صفحه ی نمایش نشان

.می دهد .می تواند یک رشته کاراکتری ، یک پیام یا یک حرف باشد" . . ."عبارت داخل

8خط

Page 17: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-نشان دادن یک متن -2-2برنامه ی یک ( ;)semicolonهمراه پرانتز ها و ( رشته ی کنترل فرمت)، آرگومان printfتمام خط شامل

.دستور نام دارد

همچنین به عنوان پایان دهنده ی دستور نیز semicolon. ) به پایان برسد (;)هر دستور باید با (شناخته میشود

.روی صفحه ظاهر می شود !Welcome to cاجرا شود پیام printfزمانی که دستور

ظاهر می printfدر دستور ”____“() double quotesکاراکترها معموال دقیقا همانطور که بین.شوند،نمایش می یابند

.روی صفحه نمایش نشان داده نشده است n\توجه کنید که کاراکتر ِ

Backslash(\ ) یک کاراکتر گریز است و نشان می دهد کهprintf قرار است کاری خارج از عرف انجام.دهد

Page 18: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-نشان دادن یک متن -2-2برنامه ی

با در یک رشته ، کامپایلر کاراکتر بعدی را نیز می خواند و ان را در ترکیبbackslashهنگام مواجهه با backslash یک رشته ی گریز را تشکیل می دهد.

.یعنی شروع از خط جدید n\رشته ی گریز

ظاهر می شود ، باعث می شود که نشانه گر در printfدر رشته ی خروجی توسط newlineهنگامی که .ابتدای خط بعد ظاهر شود

doubleکاراکترها معموال دقیقا همانطور که بین quotes()“____” در دستورprintf ،ظاهر می شوند.نمایش می یابند

:اورده شده اند 2-2مثال برخی از کاراکترهای گریز رایج در فهرست

Page 19: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

عالئمشرح

.برخی کاراکتر های گریز را نشان می دهد 2-2مثال

Page 20: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-نشان دادن یک متن -2-2برنامه ی می کامپایلر ان را به عنوان کاراکتر گریز شناسایی)در رشته دارای معنی خاص است backslashچون

.کنیم در رشته استفاده میbackslashبرای ایجاد یک )//(backslash، از دو ( کند

doubleهمچنین استفاده از quote("___" ) زیرا . باعث بروز مشکل می شودdouble quote.باعث می شود که مرز یک رشته با نقل قول های آن تشخیص داده نشود ( "___“)

نشان می دهیم ،به خروجی تبدیل می شودprintfدر یک رشته که توسط \"با استفاده از رشته گریز.باید عالمت نقل قول را در خود رشته نمایش دهد printfکه

Page 21: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-نشان دادن یک متن -2-2برنامه ی return 0; /* indicate that program ended successfully */

return0 در انتهای هر تابعی به می اید.

همانطور که در اینجا ،استفاده شودmainدر پایان تابع returnهنگامی که دستور .ارزش صفر نشان می دهد که برنامه با موفقیت پایان یافت ،نشان داده شد

.به پایان رسیده است mainنشان می دهد که تابع ( 12خط )( } ) اکوالد راست

10خط

Page 22: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 2نکات مفید برای برنامه نویسی

تابع را همه ی کامنتی بدهید که است ، ( {)خطی که شامل به

.(mainهمچنین تابع )تمام کند

Page 23: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-نشان دادن یک متن -2-2برنامه ی .باعث انجام کار توسط کامپیوتر می شود printfهمانطور که گفتیم

کارهای متفاوتی را انجام می دهد و تصمیم گیری هایی را انجام هنگامی که هر برنامه ای اجرا می شود ،.می دهد

.در باره ی نمونه ی این کار ها و تصمیم گیری ها بیشتر بحث خواهیم کرد 3در بخش

Page 24: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 3اشتباهات متداول برنامه نویسی

.printf، بجای عنوان نام تابع خروجی به printنوشتن

Page 25: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-نشان دادن یک متن -2-2برنامه ی .نیستند Cبخشی از زبان برنامه نویسی scanfو printfتوابع کتابخانه ای استاندارد مانند

.دریابد scanfو printfبه عنوان مثال ، کامپایلر نمی تواند خطای نگارشی را در

ه را کامپایل می کند ، فضایی را در برنامه مورد نظر برای فرمان بprintfهنگامی که کامپایلر یک دستور .تابع کتابخانه ایجاد می کند

.ولی پیوند دهنده ها می دانند . کامپایلر نمی داند که توابع کتابخانه ای کجا هستند

ان های هنگامی که پیوند دهنده ها اجرا می شوند ، مکان توابع کاتبخانه ای را شناسایی می کنند و فرم.مناسب را در برنامه ی مورد نظر درج می کنند

Page 26: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-نشان دادن یک متن -2-2برنامه ی .حاال برنامه ی مورد نظر کامل شده است و آماده ی اجراست

.نامیده میشود " excutable"به همین دلیل ، برنامه ی پیوند داده شده یک

چون . د اگر نام تابع اشتباه نگارشی داشته باشد، پیوند دهنده است که این خطا را شناسایی می کن.با نام هیچ تابعی در کتابخانه وجود ندارد Cامکان تطبیق نامی در برنامه ی

Page 27: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 3نکات مفید برای برنامه نویسی

یک ،که این بدنه را تعریف می کنند ها، ی تابع را از آکوالد بدنه

( .شود فاصله پیشنهاد می سه ) دهید فاصله سطح

ه راحت تر فاصله بر دستورالعمل تابع برنامه تاکید می کند و باین

.کند شدن برنامه کمک می خوانده

Page 28: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 4نکات مفید برای برنامه نویسی

آن و بطور یکنواخت کنید فاصله ی مورد نظر خود را قرارداد میزان

ممکن است برای ایجاد فاصله نیز tabکلید .کنید اعمال را

ها ممکن است باهم فرق tabجایگاه توقف اما .استفاده شود

استفاده از سه فاصله در هر سطر را پیشنهاد ما .داشته باشند

.می کنیم

Page 29: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-نشان دادن یک متن -2-2برنامه ی را به شیوه های مختلفی نمایش دهد! Welcome to Cمیتواند printfتابع

.ارایه می کند 2-1همان خروجی را می دهد که برنامه ی مثال 2-3برای مثال ، برنامه ی مثال

قبلی تمام شده از سر printfنمایش ِ خود را از جایی که printfدلیل چنین رخدادی این است که ، هر .می گیرد

( 9خط )printfو به دنبالش یک فاصله را نمایش میدهد و دومین welcome( 8خط )printfاولین .سریعا در همان خط پشت سر فاصله نمایش داده می شود

Page 30: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

1 /* Fig . 2 .3: fig02_3 .c2 Printing on one line with two printf statements */3 #include <stdio .h>45 /* function main begins program execution */6 int main( viod )7 {8 printf( “Welcome “ );9 printf( “to C!\n” );1011 return 0; /* indicate that program ended successfully */12 } /* end function main */

Welcome to C!

.را نشان می دهد printfنمایش یک خط توسط دستور 2-3مثال

Page 31: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-نشان دادن یک متن -2-2برنامه ی . نمایش دهد newlineمیتواند چندین خط را با استفاده از اضافه کردن کاراکتر printfیک

(2-4مثال مانند)

.خروجی از ابتدای خط بعد ادامه می یابد ( دستور خط جدید)newlineهر زمان هنگام مواجهه با

Page 32: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

1 /* Fig . 2 .3: fig02_3 .c2 Printing on one line with two printf statements */3 #include <stdio .h>45 /* function main begins program execution */6 int main( viod )7 {8 printf( “Welcome\nto\nC!\n “ );910 return 0; /* indicate that program ended successfully */11 } /* end function main */

Welcometo C!

.دهد مینشانراprintfنمایش یک خط توسط دستور 2-3مثال

Page 33: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-جمع دو عدد-2-3برنامه ی استفاده می کند تا دو متغیر scanfاز کتابخانه ی استاندارد متغیر ها ( 2-3مثال ) برنامه ی بعدی

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

ه کردتیره، ما برای تاکید بر دو عدد وارد شده توسط کاربر انها را 2-8در دیالوگ ورودی یا خروجی مثال [].ایم

Page 34: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با 1 /* Fig . 2 .5: fig02_5 .c2 Addition program */3 #include <stdio .h>45 /* function main begins program execution */6 int main( viod )7 {8 int integer1; /* first number to be input by user */9 int integer2; /* second number to be input by user */10 int sum; /* variable in which sum will be stored */1112 printf( “Enter first integer\n” ); */ prompt */13 scanf( “%d” , &integer1 ); /* read an integer */1415 printf( “Enter second integer\n” ); */ prompt */16 scanf( “%d” , &integer2 ); /* read an integer */1718 sum = integer1 + integer2; /* assign total to sum */1920 printf( “Sum is %d\n “ , sum ); /*print sum */2122 return 0; /* indicate that program ended successfully */23 } /* end function main */

Page 35: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

(2از 2بخش ) برنامه ی جمع 2-5مثال

Page 36: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-جمع دو عدد-2-3برنامه ی int integer1; /* first number to be input by user */

int integer2; /* second number to be input by user */

int sum; /* variable in which sum will be stored */

.در باال می توانید نقش کامنت ها را مشاهده کنید

integer2نام های , integer1 وsum نام های متغییر ها هستند ،.

متغییر یک مکان در مموری هست ، جایی که یک مقدار میتواند ذخیره شود تا توسط .برنامه مورد استفاده قرار گیرد

integer2این تعاریف مشخص میکنن که متغییر های , integer1 وsum از نوعint.هستند ، به این معنی که این متغییر ها مقدار صحیح را نگه میدارند( اعداد صحیح)

. و اعداد دیگر مانند این ها 31914، 0، 11-: به عنوان مثال کل اعداد اعم از

8-10خط

Page 37: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-جمع دو عدد-2-3برنامه ی قبل . از انجا شروع میشود ، تعریف شوند mainکه بدنه ی {تمامی متغییر ها باید بعد از اکوالد چپ

.از اینکه بتوان در برنامه از انها استفاده کرد

:قابل تعاریف قبلی میتوانند با هم ترکیب شوند و یک تعریف واحد را تشکیل دهند ، مانند مثال م

int ineger1, integer2, sum;

10-8در خط های اما این کار باعث سخت شدن توصیف متغییرها در کامنت ها میشود ، مانند کاری که.انجام دادیم

.هر شناساگر معتبر را شامل میشود Cنام یک متغییر در زبان

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

Page 38: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-جمع دو عدد-2-3برنامه ی Cکاراکتر اول ان نیاز است تا توسط کامپایلر 31یک شناساگر به هر طولی میتواند باشد ، اما تنها

.Cشناخته شود مطابق استاندارد زبان

A1با a1متفاوت هستند ، پس Cحروف بزرگ و کوچک در زبان ___ حساس به حروف است Cزبان .دو شناساگر متفاوت هستند

Page 39: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 4اشتباهات متداول برنامه نویسی

د گیراستقاده از حروف بزرگ در جایی که باید حرف کوچک مورد استفاده قرار

( mainبجای Mainمثال ، برای )

Page 40: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 1نکته برای جلوگیری از وقوع خطا

ری از ها برای جلوگیشناساگر در ابتدای ( _)پرهیز در استفاده از خط تیره

خانه ی شدن با شناساگرهای از پیش تعیین شده ی کامپایلر و کتابقاطی

.استاندارد شناساگرها

Page 41: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 1نکته

ان این باعث اطمین. کنید کاراکتری یا کمتر استفاده 31از شناساگرهای در

سی و از خطاهای نامحسوس برنامه نویدرست نوشتن شناساگر می شود

.جلوگیر می کند

Page 42: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 5نکات مفید برای برنامه نویسی

یامه برای متغییر ها کمک میکند تا یک برنمعنی نام با انتخاب

متر در باشیم که یکی از ویژگی های آن توضیحات کداشته مستند

. برنامه است

Page 43: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 6نکات مفید برای برنامه نویسی

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

که با حرف بزرگ شروع میشوند و به شناساگرهایی که از خروفتمام بزرگ استفاده میکنند میدهیم

Page 44: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 7نکات مفید برای برنامه نویسی

مک ، کاز نام هایی که از چند کلمه تشکیل شده اند برای متغییر ها استفاده هم به چسباندن کلمات جدا ازاز . باشیم میکند تا برنامه ی خواناتری داشته

.totalcomissionsمانند یکدیگر پرهیز کنید ، ، یا total_commissionsمانند کلمات را با خط تیره از هم جدا کنید ترجیحا

ا با اگر میخواهید کلمات را به هم چسبیده بنویسید ، حرف اول کلمه ی دوم ر.totalCommissionsمانند حرف بزرگ بنویسید ،

Page 45: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-جمع دو عدد-2-3برنامه ی .تعاریف باید بعد از براکت چپ تابع و قبل از هر عبارت دستوری قرار گیرند

.خطای نوشتاری زمانی اتفاق میافتد که کامپایلر نتواند یک عبارت را تشخیص دهد

صحیح کامپایلر معموال پیغام خطایی را نمایش میدهد تا شما مکان عبارت نادرست را پیدا کرده و آن را ت.خطاهای نوشتاری نقض هایی در زبان هستند . کنید

.ند خطاهای نوشتاری همچنین به عنوان خطای کامپایلر و خطای به هنگام کامپایل نیز شناخته میشو

Page 46: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 5اشتباهات متداول برنامه نویسی

در بین عبارت های اجرایی باعث خطای متغیرها دادن تعاریف قرار

.نوشتاری میشود

Page 47: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 8نکات مفید برای برنامه نویسی

تعاریف و عبارت های اجرایی را در تابع ، برای تاکید بر این که

در کجا پایان میابد و عبارت های اجرایی در کجا شروع تعاریف

.کنید ، به وسیله ی یک خط خالی از هم جدا میشوند

Page 48: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-جمع دو عدد-2-3برنامه ی 12خط

Printf( “Enter first integer\n” ); /* prompt */

.را روی صفحه چاپ میکند و نشانه گر را در سر خط بعدی قرار می دهد Enter first integerعبارت

.گفته میشود ، زیرا به کاربر انجام کاری را فرمان می دهد promptبه این پیغام

عبارت بعدی

scanf( “%d”, &integer1 ); /*read an integer */

.برای دریافت یک مقدار از کاربر استفاده میشود scanfاز

.مقدار را از ورودی استاندارد ، که معموال کیبورد است دریافت میکند scanfتابع

Page 49: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-صحیح عدد 2جمع -2-3برنامه .می باشد % integer1و " %d"شامل دو عبارت scanfدستور

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

.باشد صحیح تعیین می کند که نوع داده باید از نوع عدد %dمبدل معین

.است ( Decimal)به معنای عدد صحیح اعشاری dحرف

به عنوان یک کاراکتر ( که بعد ها خواهیم دید printfو scanf (توسط)%(در این جا عالمت درصد .را معرفی می کند مبدل معین خاص شناخته می شود که یک

( می گویند عملگر آدرس Cکه به آن در ) شروع می شود (&)با یک اَمپرساند scanfدومین عبارت .و بعد آن نام متغیر می آید

Page 50: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-صحیح عدد 2جمع -2-3برنامه در حافظه ذخیرهInteger1را از آدرسی که متغیر scanfامپرساند وقتی با نام متغیر ادغام شود

.شده است مطلع می سازد

.را در آن ذخیره می کند integer1در نتیجه کامپیوتر مقدار

ر که از این معموالً برای برنامه نویسان مبتدی یا برنامه نویسان زبان های دیگ(&)استفاده از امپرساند .عبارت استفاده نمی کنند ، سردرگم کننده است

.باید امپرساند بیاید scanfفقط به خاطر داشته باشید که فعالً قبل از شناساندن هر متغیری به

Page 51: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 9نویسی برنامه برای مفید نکات

.بگذارید فاصله ( , ) کاما خواناتر شدن متن بعد از هر برای

Page 52: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-صحیح عدد 2جمع -2-3برنامه ی .وارد کند integer1را اجرا می کند منتظر کاربر می ماند تا مقداری برای متغیر scanfوقتی کامپیوتر

را برای دادن عدد به کامپیوتر Enterکاربر با تایپ کردن یک مقدار صحیح پاسخ می دهد بعد دکمه .فشار می دهد

.قائل می شود integer1بعد کامپیوتر این مقدار را برای متغیر

.بیاید همین مقدار را خواهد داشت integer1بعد از این در برنامه هر جا سخن از

.به تعامل بین کاربر و کامپیوتر بنیان می دهد scanfو printfتوابع

به چون این تعامل یک دیالوگ یا گفت و گو را به یاد می آورد معموالً به آن محاسبه تعاملی یا محاس.محاوره ای می گویند

Page 53: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-صحیح عدد 2جمع -2-3برنامه ی

/* 15printf( "Enter second integer \n“ ); /* promptخط

ما را روی صفحه نمایش می دهد، بعد مکان ن' عدد صحیح دوم را وارد کنید'پیام .را سر خط بعدی قرار می دهد

.نیز از کاربر درخواست عمل دارد printfاین

:این عبارت

scanf( "%d" , &integer2 ); /* read an integer */

.از کاربر یک مقدار برای متغیّر دوم می گیرد

Page 54: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-صحیح عدد 2جمع -2-3برنامه ی

18عبارت انتساب در خط

sum = integer1 + integer2 ; /* assign total to sum */

یا همان جمع ، sumرا محاسبه می کند و حاصل را به متغیّر integer2و integer1جمع دو متغیر ) = ( .انتساب می دهد با استفاده از عملگر انتسابی

+ integer1مقدار sumجمع یا "عبارت عبارت به این شکل خوانده می شود، integer2 “ را می گیرد ..بیشتر محاسبات در انتساب ها انجام می شوند

شناخته می شوند زیرا هر کدام دو عملوند دارند ( binary) ، عملگر های دو دویی +و عملگر =عملگر .

.هستند integer2و integer1، +دو عملوندِ عملگر

.هستند integer1 + integer2یا جمع و مقدار عددی حاصل عبارت sum، =دو عملوند عملگر

Page 55: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 10نویسی برنامه برای مفید نکات

ه را این کار برنام. بگذارید دو طرف یک عملگر دودویی فاصله در .عملگر واضح تر ظاهر شود خواناتر می کند و باعث می شود

Page 56: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 6اشتباهات متداول برنامه نویسی

= ( )در یک عبارت انتسابی باید در سمت راست عملگر محاسبه

. قرار گیرد

ه جواب محاسبه را در سمت چپ یک عملگر انتسابی قرار داداگر

.مواجه می شود ( error)مشکل با در کامپایل کردن شود

Page 57: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-صحیح عدد 2جمع -2-3برنامه ی ساده ی

/* 20Printf( "sum is %d\n“ , sum ); /* print sumخط

را به صورت مقدار واقعی آن در خروجی sumبه منظور اینکه بخواهید متغیر .استفاده کنید printfنمایش دهید باید از دستور

.sumو "sum is %d\n".است ( عبارت)آرگومان 2دارای printfدستور

.اولین آرگومان رشته کنترل نوع داده یا فرمت داده می باشد

اده این آرگومان شامل کارکتر های الفبایی می باشد که در خروجی نیز نمایش دنشان می دهد که d%به طور مثال . میشوند همچنین شامل مبدل معین است

.یک عدد صحیح در خروجی نمایش داده می شود

.دومین آرگومان معین می کند کدام مقدار یا عبارت باید چاپ شود

.یکسان باشد scanfو printfمبدل معین باید در :توجه

Page 58: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-صحیح عدد 2جمع -2-3برنامه ی ساده ی به .برای ساده سازی عملیات کد نویسی می توان دو دستور را در یک خط نوشت

int1می توان ازsumطور مثال به جای استفاده از متغیر + int2 استفاده کرد .:به مثال زیر توجه کنید

Printf( "sum is %d\n" , int1 + int2 );

Return 0; /* indicate that program ended successfully */

ا به سیستم عامل بر می گردد به این معناست که برنامه ب0وقتی که مقدار .اجرا شده است موفقیت

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

نشان دهنده ی آن است که عملیات تابع اصلی ( } ) آکوالد راست 24در خط (main ) به پایان رسیده است.

22خط

Page 59: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 7اشتباهات متداول برنامه نویسی

در طرفین رشته کنترل ( " )کردن استفاده از یک یا دو فراموش

.scanfیا printfدر یک فرمت

Page 60: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 8اشتباهات متداول برنامه نویسی

در یک مبدل معین در درون رشته% استفاده از فراموش کردن

.کنترل فرمت

Page 61: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 9اشتباهات متداول برنامه نویسی

فرمت انداختن یا بیرون گذاشتن عباراتی از رشته کنترلفاصله

.n\همچون

Page 62: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 10اشتباهات متداول برنامه نویسی

دام کردن اضافه کردن اصطالحاتی که مشخص می کند کفراموش

که شامل مبدل های printfباید نشان داده شوند در مقادیر

- d%) معین %e - %f … ) است.

Page 63: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 11اشتباهات متداول برنامه نویسی

رل به کار نگرفتن یک مبدل معین مورد نیاز در یک رشته کنت

.دهیم وقتی که می خواهیم مقدار یک پارامتر را نشان فرمت

Page 64: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 12اشتباهات متداول برنامه نویسی

ن بیبین رشته کنترل فرمت در حالی که باید ( ,) گذاشتن ویرگول

.یرد قرار گکه می خواهد پرینت شود و رشته کنترل فرمت پارامتری

Page 65: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 13اشتباهات متداول برنامه نویسی

ا استفاده از شکل اشتباه تبدیل صریح در زمان خواندن داده ب

scanf .دستور

Page 66: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 14اشتباهات متداول برنامه نویسی

scanf، در دستور & فراموش کردن تقدم ارزش متغیر بر عبارت

.د باشتقدم داشته & جمله ، وقتی که متغیر باید بر عبارت در

Page 67: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 15اشتباهات متداول برنامه نویسی

، هنگامی & بر عبارت printfتقدم متغیر موجود در عبارت دستور

.باشد تقدم داشته & بر متغیر نباید که

Page 68: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-مفهوم حافظه -2-3درسنامه ی ، در واقع باید با محل قرارگیریشان در حافظه ی sumو integer1 , integer2: اسامی متغیر ها مانند

.سیستم ، همخوانی داشته باشند

.است (value)و یک مقدار(type)، یک نوع(name)هر متغیر دارای یک نام

( :13خط )در عبارت 2-5در مثال " جمع"در برنامه ی

Scanf( “%d” , &integer1) ; /* read an integer */.شناخته میشود ، اجرا میشود integer1مقداری که توسط کاربر در محل حافظه نوشته شده و با نام

.در نظر گرفته است integer1را به عنوان مقدار برای 45کاربر ، عدد

نشان داده 2-6مثال جاگذاری خواهد کرد ،به شکلی که در integer1را در محل 45کامپیوتر ، عدد .شده است

Page 69: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

45Integer 1

.میدهد ، اسم و مقدار متغیر را نمایش حافظه 2-6مثال

Page 70: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-مفهوم حافظه -2-4درسنامه در حافظه قرار بگیرد، آن مقدار ، بر روی مقدار قبلی در ( جدید) هر جایی که مقداری

به این ترتیب که ، مقدار جدید را به حافظه میدهد که به ;حافظه جایگزین میشود .گفته میشود ( جایگزینی) ”destructive“این عمل

:خودمان برگردیم ، در عبارت " جمع"دوباره به برنامه scanf( “%d” , &integer2) ; /* read an integer */

.را که کاربر فرض کرده را اجرا میکند 72عدد

.قرار میگیرد ، و در حافظه ظاهر میشود integer2این مقدار ، در محل

2-7مثال مانند

.این محل ها ، لزومی ندارند که نزدیک حافظه باشند

16خط

Page 71: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-مفهوم حافظه -2-4درسنامه بدست آورده ، مجموع آنها integer2و integer1اولین بار که برنامه مقدار را برای

.قرار میدهد sumرا محاسبه و در متغیر

:عبارتSum = integer1 + integer2 ; /* assign total to sum */

ذخیره شده باشد ، جایگزین sumعمل جمع انجام میشود و بجای هر مقداری که در .می شود

18خط

Page 72: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-مفهوم حافظه -2-3درسنامه محاسبه شده و در محل integer2و integer1این اتفاق وقتی رخ میدهد که مجموع مقادیر دو متغیر

sum این مقدار ، جایگزین مقدار قبلی (. قرار بگیردsumمی شود)

. محاسبه شد ، حافظه ظاهر میشود sumپس از اینکه

2-8مثالمانند

، دقیقا مثل مقادیری که قبال از آنها در محاسبه استفاده شده بود ، integer2و integer1مقدار .ظاهر میشود

Page 73: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

45

72

integer 1

integer 2

.میشود در حافظه هر دو مقدار را وارد سپس 2-7مثال

Page 74: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

45

72

integer 1

integer 2

.انجام میشود سپس در حافظه محاسبه 2-7مثال

117sum

Page 75: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-مفهوم حافظه -2-4درسنامه .از آنها استفاده می شود ، اما جایگزین نمی شوند ، در زمانی که کامپیوتر محاسبه را انجام میدهد

.گفته میشود ( بدون جایگزینی)”nondestructive“بدین ترتیب ، به این پردازش

Page 76: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-Cمحاسبات در -2-5برنامه ی .نوشته شده 2-9، به طور خالصه در مثال Cعملگر های محاسباتی در

ستفاده عالئمی که در قسمت های مختلف استفاده میشود،به شکل نشانه های نیست که در ریاضیات ا.میشود

به عنوان عملگر برای ”percent sing“)%( بر عمل ضرب اشاره دارد و عالمت " asterisk" )* (عالمت :محاسبه باقی مانده شناخته می شود ، به صورتی که در زیر معرفی می شوند

را در هم ضرب کنیم ، میتوانیم به سادگی دو مقدار را در bو aدر ریاضیات ، اگر بخواهیم دو مقدار .را به عنوان دستور ضرب داشته باشیم abکنار هم بنویسیم و تک عبارت

bو aبدون در نظر گرفتن )به عنوان یک عبارت تکی ab، اگر بخواهیم این عمل را انجام دهیم ، cدر .خوانده می شود ( به صورت دو مقدار جدا

برای آن توضیح داده )*(نیاز داره که به طور واضح و روشن ، و با استفاده از عالمت cبا این وجود ، a*b:مثل . شود

Page 77: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

.محاسباتی را نشان می دهد های عملگر 2-9مثال

C عملیات جبری عملگر جبری دستورC

Page 78: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-Cمحاسبات در -2-5برنامه ی .هستند ( binary)عملگر های محاسباتی ،همگی عملگرهای دوتایی

.است 7و 3و عملوند های )+(شامل یک عملگر دوتایی 3+7به عنوان مثال ، عبارت

.تقسیم عدد صحیح ، یک عدد صحیح را نتیجه میدهد

.3برابر است با 17/5و عبارت 1برابر است با 7/4برای مثال ، عبارت

Cدد عملگر باقی مانده را به صورت عدد ورودی به وجود آورده به شکلی که باقی مانده ی تقسیم ع.صحیح را نشان میدهد

.عملگر باقی مانده ، یک عملگر صحیح است که میتواند برای اعداد صحیح استفاده شود

.را نتیجه می دهد yبر xباقی مانده ی تقسیم x%yعبارت

.را نتیجه میدهد 2، 17%5و 3، 7%4بدین ترتیب ،

Page 79: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 16اشتباهات متداول برنامه نویسی

عی ،تعریف برای تقسیم بر صفر در سیستم های کامپیوتری ، به طورطبیتالش خطاعنوان مثال ، ،به نشده است و معموال یه خطای مخرب را نتیجه میدهد

“job” به است که باعث میشود برنامه بدون داشتن عملیات موفق ،خطایی.یابد سرعت پایان

، به برنامه اجازه ی اجرای کامل را میدهند و اغلب یک خطاهای غیرمخرب .میسازند نتیجه ی نادرست را

Page 80: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-Cمحاسبات در -2-5درسنامه ، برای سهولت در ورود به برنامه ها در کامپیوتر ، باید به صورت یک خطی cعبارت های محاسباتی در

(straight line ) نوشته شوند.

نوشته شوند ، به طورتی که a/bباید به صورت " bتقسیم بر a"بدین ترتیب ، عبارت هایی مانند .تمام عملگرها و عملوند ها در یک خط وجود داشته باشند

(the algebraic notation )نماد جبری

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

Page 81: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-Cمحاسبات در -2-5برنامه ی .به همانگونه ای است که ما در جبر و یاضی استفاده میکنیم Cدر زبان پرانتزهانحوه استفاده از

به صورت زیر از پرانتز استفاده می cو bدر مجموع مقادیر aبه عنوان مثال برای ضرب کردن مقدار a * ( b + c ): کنیم

Page 82: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

- Cمحاسبات در -2-5برنامه ی

این امکان را میسر میکند که محاسبه عملگرها در عبارات ریاضی را Cاستفاده از پرانتزها در زبان .اولویت بندی کنیم

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

( c + ( a + b ) ).میتوانید از چند پرانتز درون هم نیز استفاده کنید

.عملگرهایی که در درونیترین پرانتز آمده اند ، در اولویت هستند : توجه

Page 83: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

- Cمحاسبات در -2-5برنامه ی

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

.ضرب و تقسیم دارای اولویت یکسان هستند . می شود

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

.عملیات توان، ضرب و تقسیم هستند

Page 84: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-Cمحاسبات در -2-5برنامه ی

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

.به اولویت عملگر ها از چپ به راست بررسی می شود و با توجه به آن به ترتیب صورت می گیرد

.گاهی اتفاق می افتد که عملیات از راست به چپ رخ دهد

. خالصه ای از قوانین مربوط به الویت عملگرها را نشان می دهد 2-10مثال

Page 85: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

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

. تقدم عملگرهای محاسباتی را نشان می دهد 2-10مثال

Page 86: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-Cمحاسبات در -2-5برنامه ی

.ترتیب اجرا عملگرها را نشان میدهد 2-11مئال

Page 87: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

1مرحله y = 2 * 5 * 5 + 3 * 5 + 7;

2 * 5 is 10

2مرحله y = 10 * 5 + 3 * 5 + 7;

10 * 5 is 50

3مرحله y = 50 + 3 * 5 + 7;

3 * 5 is 15

4مرحله y = 50 + 15 + 7

50 + 15 is 655مرحله

y = 65 + 765 + 7 is 72

6مرحله y = 72

Page 88: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

- Cمحاسبات در -2-5برنامه ی

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

.نام دارندredundant parenthesesاینگونه پرانتزها

Page 89: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 11نکات مفید برای برنامه نویسی

ریاضیدر عبارات redundant parenthesesاز استفاده

.ودشو عبارت واضح تر سانتر آشود که فهم آن باعث میپیچیده

Page 90: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-برابری عملگرهای رابطه ای و : گیریتصمیم -2-6برنامه ی

( ا مانند محاسبات، گرفتن یا فرستادن داده ه) شامل اجرای عملیات مختلف Cدستور های اجرایی زبان .می شوند ( که در ادامه مثال های بیشتری از آن خواهید دید) و تصمیم گیری

برابر با ممکن است در برنامه ای تصمیم داشته باشیم که به عنوان مثال اگر نمره ی شخصی در امتحان. را چاپ کند ”. Congratulations! You passed“یا بیشتر از ان شد عبارت 60

if)در این قسمت نوع ساده ای از عبارات شرطی statement ) در زبانC را معرفی میکنیم که به.، تصمیم گیری کندبرنامه این اجازه را می دهد که بر اساس درست یا غلط بودن عبارت

Page 91: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-Cمحاسبات در -2-6برنامه ی

.عبارت اصلی یا نتیجه اجرا میشود( شرط درست باشد) باشد برقرار اگر شرط

.عبارت اصلی یا نتیجه اجرا نمی شود ( شرط غلط باشد)نباشد اگر شرط برقرار

رطی ، برنامه شروع به اجرای دستور ش(بعداز اتمام عبارت شرط)حتی اگر عبارت اصلی اجرا شود یا نه ، .بعدی می کند

(توجه کنید 2-12مثال به . ) عبارات شرطی را می توان با عملگرهای رابطه ای و برابری نشان داد

Page 92: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-Cمحاسبات در -2-6برنامه ی

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

لط ، یک شرط میتواند به صورت دستوری نوشته شود که در صورت درست بودن، صفر و غCدر زبان .بودن با عددی به جز صفر بیان شود

Page 93: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

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

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

Cبه زبان

مثالی در Cزبان Cزباننی در عم

.عملگرهای رابطه ای و برابری را نشان می دهد 2-12مثال

Page 94: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 17اشتباهات متداول برنامه نویسی

ری نوشتافاصله بیافتد، خطای > =و < =، =!، ==اگر بین عالیم

(syntax error ) می دهد رخ.

Page 95: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 18اشتباهات متداول برنامه نویسی

نوشتاری خطای شوند ، جا به جا نوشته > =و < =، =!عالیم اگر

(syntax error ) می دهد رخ.

Page 96: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 19اشتباهات متداول برنامه نویسی

با عملگر نسبت دهی ( ==) داشته باشید که عملگر تساوی توجه

!اشباه نگیرید = ( )

Page 97: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-Cمحاسبات در -2-6برنامه ی

گر خوانده شود و عمل)==( "جفت مساوی "برای جلوگیری از سردرگمی ، عملگر مساوی باید به صورت .در نظرگرفته می شود " نشان دهنده ی مقدار"یا " گیرنده"انتسابی باید به صورت

ی همان طور که بزودی خواهیم دید ، سردرگمی عملگرها لزوما باعث خطایی هنگام کامپایل که به اسان.قابل تشخیص باشد ، نمی شود بلکه ممکن است باعث خطا هنگام اجرا شود

Page 98: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 20اشتباهات متداول برنامه نویسی

بالفاصله در سمت راست " ;" یک نقطه ویرگول قراردادن

. ifیک دستور شرطی در شرطپرانتز ها بعد از

Page 99: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-Cمحاسبات در -2-6برنامه ی

.می کندوارد شده استفاده کاربربرای مقایسه ی دو عدد که توسط ifاز شش دستور شرطی2-13مثال

.همراه با آن شرط اجرا می شود printf، دستور برقرار باشد ifاز دستورهای شرطی در هر یک اگر شرط

Page 100: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با 1 /* Fig . 2 .13: fig02_13 .c2 Using if statemants, relational3 Oprators, and equality oprators */4 #include <stdio .h> 56 /* function main begins program execution */7 int main( void )8 {9 int num1; /* first number to be read from user */10 int num2; /* second nmber to be read from user */1112 printf( " Enter two integers, and I will tell you\n " );13 printf( " the relationships they satisfy: " );1415 scanf( "%d%d" , &num1, &num2 ); /* read two integers */1617 if ( num1 == num2 ) {18 printf( "%d is equal to %d\n" , num1, num2 );19 } /* end if */2021 if ( num1 !=nm2 ) {22 printf( "%d is not equal to %d\n" , num1, num2 );23 } /* end if */

(3از 1بخش . )برابری را نشان می دهد ، عملگرهای رابطه ای و عملگرهای ifشرطی دستور استفاده از2-13مثال

Page 101: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با 2425 if ( num1 < num2 ) {26 printf( "%d is less than %d\n" , num1 , num2 )27 } /* end if */2829 if ( num1 > num2 ) {30 printf( "%d is greater than %d\n", num1, num2 ) ;31 } /* end if */3233 If ( num1<=num2 ) {34 printf( "%d is less than or equal to %d\n" , num1, num2 );35 } /*end if*/3637 If ( num1>= num2) {38 printf( "%d is greater than %d\n " , num1, num2);39 } /* end if */4041 return 0; /* indicate that program ended sccessully */42 } /* end function main*/

(3از 2بخش .)برابری را نشان می دهد ، عملگرهای رابطه ای و عملگرهای ifاز دستور شرطی استفاده 2-13مثال

Page 102: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

22

(3از 3بخش . )برابری را نشان می دهد ، عملگرهای رابطه ای و عملگرهای ifاستفاده از دستور شرطی 2-13مثال

Page 103: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-Cمحاسبات در -2-6برنامه ی

.می کند برای وارد کردن دو عدد استفاده ( 15درخط )scanfبرنامه از

.هر مبدل معین ، یک مقدار متناظر دارد که در ان مقداری قرار است ذخیره شود

مقداری راتبدیل d%ذخیره شود، و دومین num1یک مقدار را تبدیل می کند تا در متغیر d%اولین .ذخیره شود num2می کند که در متغیر

. باعث باالرفتن خوانایی برنامه می شود ifقرار دادن خط های خالی در باال و پایین هر دستور

Page 104: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 12نکات مفید برای برنامه نویسی

.بنویسید بصورت واضح ifها را در داخل دستور شرطی دستور

Page 105: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 13نکات مفید برای برنامه نویسی

بهدر یک برنامه ifهر دستور شرطی خالی قبل و بعد ازیک سطر

.دهید خواناتر شدن قرار منظور

Page 106: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 14نکات مفید برای برنامه نویسی

ردر هر سطدستور بهتر است بیشتر از یک اما است ، ممکن اگرچه

.باشد برنامه وجود نداشته

Page 107: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 21اشتباهات متداول برنامه نویسی

و( d) % بین مبدل معین ( زمانی که نیاز نیست)کاما قراردادن

. scanfدستوردر رشته ی " " ( )

Page 108: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-Cمحاسبات در -2-6برنامه ی

( .توجه کنید17به عنوان مثال به سطر)را شروع می کند ، if، تنه ی دستور شرطی ({) یک اکوالد

( .توجه کنید19به عنوان مثال به سطر )پایان میدهد ، if، به تنه ی دستور شرطی (}) یک اکوالد

.قرار گیرد ifاز دستور می تواند در تنه ی یک دستور شرطی هر تعداد

.شده است سطر شکافته در سه 2.13مثال ( 3-1در خطوط )به عنوان مثال کامنت

به طور خودکار رد می شوند spaceو tab ،newline،کاراکترهای فاصله مانند Cدر برنامه های زبان .

.به همین خاطر دستورها و کامنت ها می توانند درچندین سطر شکافته شوند

.شوند شکافته که شناساگرها نیست اگرچه درست

Page 109: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 15نکات مفید برای برنامه نویسی اگر یک. شود دستور طوالنی ممکن است بیش از چند خط جدا یک

نقاطی را که جداکننده احساسشود ، باید درطول خطوط جدا دستور

ما ئ مانند پس از یک کاما در یک لیست کا) انتخاب کنید می کنید

، اگر یک دستور درطول دو سطر یا بیشتر شکافته می( جدا ازهم

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

Page 110: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-Cمحاسبات در -2-6برنامه ی

.اولویت عملگرهای معرفی شده دراین درس را بصورت فهرست شده نشان می دهد 2.14مثال

.می بابد الویت عملگرها از باال به پایین کاهش

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

.، ازسمت چپ به راست نوشته می شود (=) عملگر نسبت دهی ، بجز همه ی این عملگرها

.از سمت راست به چپ نوشته می شود ( =) عملگر نسبت دهی

Page 111: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

2. 16نکات مفید برای برنامه نویسی .ید کنعملگرها رجوع اولویت نوشتن عبارات شامل چتد عملگر به جدول هنگام

.اند شوید که عملگرها در عبارت به ترتیب قرار داده شده مطمئن

انتز از پرنیستید ، ها در یک عبارت پیچیده مطمئن در مورد ترتیب اولویت اگر اده ها یا تجزیه کردن عبارت به چندین عبارت ساده استفعبارت برای گروهی از

. کنید

که )=( مانند عملگر نسبت دهی Cشوید که تعدادی از عملگرهای زبان مطمئن .د ایباید از سمت راست به چپ بجای چپ به راست نوشته شود را رعایت کرده

Page 112: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

عملگرها شرکت پذیری

.شده را نشان می دهد و شرکت پذیری عملگرهای تاکنون بحث الویت 2-14مثال

Page 113: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

-Cمحاسبات در -2-6برنامه ی

کلمات ( ifو int ،returnبخصوص ) ،و در این درس استفاده کردیم Cبعضی از کلماتی که ما در زبان.هستند Cکلیدی یا کلمات ازقبل تعیین شده ی زبان

. می باشد Cشامل کلمات کلیدی زبان 2.15مثال

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

Page 114: How to program with c in persian

.باشد کلیه حقوق این اثر مطعلق به دانشکده فنی مهندسی شرق گیالن می

Cبرنامه نویسی با

کلمات کلیدی

.را نشان می دهد Cزبانکلیدی کلمات 2-15مثال