درس برنامه سازي کامپيوتر

Post on 01-Jan-2016

64 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

درس برنامه ‌ سازي کامپيوتر. مقدمات برنامه ‌ نويسي جزئيات زبان برنامه ‌ سازي C++. الگوريتم Algorithm. روش حل مسئله مثال :. Flowchart. Flowchart. فرآيند برنامه ‌ نويسي. تعريف مسأله تدوين راه حل (الگوريتم-فلوچارت) توسط برنامه ‌ نويس از منابع ديگر پياده ‌ سازي بکمک زبان مورد نظر - PowerPoint PPT Presentation

TRANSCRIPT

سازي کامپيوتر درس برنامه

نويسي مقدمات برنامه++Cسازي جزئيات زبان برنامه

Algorithmالگوريتم

روش حل مسئله•مثال : •

Flowchart

Flowchart

نويسي فرآيند برنامه

تعريف مسأله•تدوين راه حل )الگوريتم-فلوچارت( •

نويس توسط برنامه•از منابع ديگر•

سازي بکمک زبان مورد نظر پياده•C ابتدا بر روي کاغذ• احتماٌالدر فايل-کامپايل-لينک•اجرا-اعمال وروديهاي مناسب- بررسي صحت پاسخها•در صورت لزوم اصالح الگوريتم/برنامه و تکرار تا •

C صحيح : کردنdebugدستيابي به پاسخ کامال

Cقواعد زبان

Cمتن برنامة زبان •شامل•

A-Z و a-zحروف )الفباي انگليسي( •9-0ارقام •عالئم•

• [ ] < , > . + - ) ( * & ^ % $ # @ ! ` ~ \ | ? ; : _ ” ‘ = /{ }

•Blank هاtab و spaceشامل •

case حساس به نوع کاراکتراست : Cزبان •sensitive

Cقواعد زبان

•Identifierهاشوند( کاراکتر اول در نظر گرفته مي32طول دلخواه )•شامل يک يا چند•

حرف )بزرگ يا کوچک(•رقم••Underline_ :

نبايد با رقم شروع شود•C از • هاي با identifierمعموٌال

شود تمامي حروف بزرگ در فايلهاي کتابخانه استفاده مي•شروع با _ در توابع و متغيرهاي سيستم )عامل( استفاده •

شود مي

Cقواعد زبان

•Keywords( identifierتعريف شده هاي پيشC)

structintdoubleautoswitchlongelsebreaktypedefregisterenumcaseunionreturnexterncharunsignedshortfloatconstvoidsignedforcontinuevolatilesizeofgotodefaultwhilestaticifdo

Cقواعد زبان

•Keywords( identifierتعريف شده هاي پيشC)++asm auto bool break case catch char class

const const_cast continue default delete do double dynamic_cast

else enum explicit export extern false float for

friend goto if inline int long mutable namespace

new operator private protected public register reinterpret_cast return

short signed sizeof static static_cast struct switch template

this throw true try typedef typeid typename union unsigned using virtual void volatile wchar_t while _cdecl

cdecl _cs _ds _es _far _loadds _near _savereg

_seg _ss

Cقواعد زبان

متغيرها•براي کار با اطالعات بايد بتوان•

آنها را در جايي نگهداي نمود•در زمان مورد نظر از مقادير آنها استفاده نمود•در صورت لزوم مقادير آنها را طبق نياز تغيير داد•

براي استفاده از متغير، نخست بايد نوع Cدر •متغير را مشخص نمود

متغيرها

ها محل نگهداري داده•شود متغير با نام و نوعش مشخص مي•

• char a;• int b=1, c=2;• float d, e=4.5;• char f[]=“a new program”;• int g[5]={1,4,35,109,6};

char

يک بايتي•کند را اتخاذ مي127- تا 128با عالمت : مقادير بين •

27-1- تا 27•

unsigned احتياج دارد : modifierعالمت به نوع بي•28-1صفر تا •

کاربرد:•کار با مقادير کوچک•افزار )بيتها و بايتها( کارهاي مرتبط با سخت•کار با متون•

int

بايتي4 يا 2• بيتي 32 بايتي و در نوع 2 بيتي 16عاملهاي در سيستم•

چهار بايتي چهار 231-1- تا 231 براي دو بايتي و 215-1- تا 215•

بايتي

احتياج دارد : modifierعالمت به نوع بي•unsigned

232-1 يا صفر تا 216-1صفر تا •

کاربرد:•کارهاي معمول با اعداد صحيح، ردة مقادير متوسط•

short

بايتي(2 بيتي )16 در حالت intهمان متغير نوع ••short intمعادل آن است

long

بايتي(4 بيتي )32 در حالت intهمان متغير نوع ••long intمعادل آن است

enum

در حالتي که متغير مورد نياز حالتهايي را اتخاذ •C مقدار يا عددي نيستند مي نمايد که واقعا

مثال : تعريف نوع متغير•�ل را مشخص کند• متغيري که نوع گ

• enum gols {rose, daisy, orchid, tulip};

متغيري که نوع خودرو را مشخص کند•• enum cars {benz, nissan, bmw, lexus, mazda, samand};

متغيري که نوع پاسخ به سؤال را مشخص کند•• enum javab {yes, no, dont_know};

C از نوع • خواهد بودintاين متغير واقعا

enum

مثال : تعريف نمونة متغير•�ل را مشخص کند• متغيري که نوع گ

• enum gols gol;

متغيري که نوع خودرو را مشخص کند•• enum cars car, mashin;

متغيري که نوع پاسخ به سؤال را مشخص کند•• enum javab pasokh;

کاربرد :•• gol=daisy; if (pasokh==no); car=mashin;

float

متغير با امکان نمايش مقادير کوچکتر از واحد• بايتي4•محدودة نمايش اعداد•

C از • و معادل آن در 3/4× 10+38 تا 3/4× 10-38تقريبامحدودة اعداد منفي و صفر

بيتي( و نماي يک بايتي24 بايتي )3مانتيس •10 رقم با معني مبناي 7معادل •

double

متغير با امکان نمايش مقادير کوچکتر از واحد• بايتي8•محدودة نمايش اعداد•

C از • و معادل آن 1/7× 10+308 تا 1/7× 10-308تقريبادر محدودة اعداد منفي و صفر

بيتي( و نماي دو بايتي48 بايتي )6مانتيس •10معادل پانزده رقم با معني مبناي •

long double

متغير با امکان نمايش مقادير کوچکتر از واحد• بايتي10•محدودة نمايش اعداد•

C از • و معادل آن 1/7× 10+308 تا 1/7× 10-308تقريبادر محدودة اعداد منفي و صفر

بيتي( و نماي دو بايتي64 بايتي )8مانتيس •10 رقم بامعني مبناي 19معادل •

pointer

گرها به آدرسهاي جهت ذخيرة مقادير اشاره•حافظه

شکل خاص دارد و با متغيرهاي ديگر مشابهتي •ندارد

( بيت64 )يا 32فضاي مورد استفاده : •

تعريف مقادير ثابت

گاهي ٌالزم است مقادير ثابتي را در برنامه تعريف کنيم•يعني به هيچ ترتيب نشود مقدار آن تغيير کند•

روشها :• : modifierبکمک •

محل تعريف : در فضاي اصلي برنامه•C متغيري ايجاد مي• گردد شود = فضاي حافظه استفاده مي در اين روش واقعا

• const float pi = 3.14159;

: preprocessorبکمک •محل تعريف : در ابتدا : قبل از فضاي اصلي برنامه : فضاي مشخص نمودن •

preprocessعمليات شود = قبل از کامپايل شدن برنامه مقدار در اين روش متغيري ايجاد نمي•

گردد ) ; ٌالزم ندارد( تعريف شده به متن اصلي اعمال مي• #define pi 3.14159

عملگرها

• + - * / % -- ++• Pre(post)in(de)crement

• a=5; b=3;• c=a--+b+a---a++;• d=--a---b+--a-++a;

تقدم عملگرها•• (++,--) (sign +,-) (*,/,%) (+,-)

در صورت ابهام شکل داراي اولويت باٌالتر انتخاب •شود مي

تبديل انواع متغيرها

در عملياتي که طرفين عمليات همجنس نيستند، •تر به نوع باٌالتر تبديل شده، نخست طرف نوع پايين

شود سپس عمل اجرا ميترتيب انواع : •

• long double• double• float• long• int• short• Char

قطع شدن عدد

هنگام انتقال محتويات متغير با ابعاد بزرگتر به •متغير با ابعاد کوچکتر )با فرض انتقال سالم(

به وضعيتهاي مختلفي که در محدودة اعداد مثبت و •دهد توجه کنيد منفي رخ مي

بخش صحيح•( rounding)گرد کردن ••ceiling •floor

مثال

• int n=3, m=4;• float f=7, g; // float f=7.0, g;• g=f+n/m;• g=f+float(n)/m;• g=f+3.0/m;• g=m+f/n

عملگرهاي بيتي

•&>> ، << ، ~ ، ^ ، | ، • char b=3, a=50, c; // a=0000,0011 b=0011,0010• c=a&b;• c=a|b;• c=a^b;• c=a&~b;• c=a<<1;• c=b>>2;

عملگرهاي نسبي )ارزيابي(

== ، >= ، <= ، > ، < ، != شامل عمليات پاية •قابل ترکيب بکمک عملگرهاي ( ، ) ، && ، || ، ~ •

• char a=2, b=3;• printf(“\n %d > %d is %d” , a, b, (a>b));• c=(a<=(b-1));

توجه شود که هر عبارت مورد ارزيابي، در هر مرحلة ارزيابي، •شود. صحيح يا غلط ارزيابي مي

ارزش عبارت غلط معادل صفر و ارزش عبارت صحيح معادل •يک خواهد بود

اگر عددي بدون عملگر در موقعيت ارزيابي قرار گيرد در •صورتي که مقدار آن )محتويات آن( صفر )عدد صفر( باشد شود معادل غلط و در غير اين صورت معادل صحيح ارزيابي مي

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

شوند )چند عمل برخي عملگرها با هم ترکيب مي•شود( با يک عملگر ترکيبي نشان داده مي

• a+=1; // equal to a=a+1;عملگرهاي ترکيبي مشابه•

• -= , *= , /= , %= , >>= , <<= , &= , |= , ^=

عملگرها – ساير حالتها

•&x آدرس متغير x•*p محتويات آدرس p

حالتهاي خاص

• x = a>b ? 3 : 4 ;• y = ( x=2, x*4/y );• x= sizeof y;• m=sizeof(float);

تقدم عمليات )جزئيات(

• () [] -> .• ++ -- ~ ! & * - sizeof ( گر و عالمت اشاره )• * / %• + -• >> <<• > <= >= >• == !=• & ^ |• && ||• ? :• = %= += -= *= /= <<= >>= &= ^= |=• ,

مثال

• y = 4 * 2 / (3+1)+(6+(7-2+8));

نمونة برنامه

•Convert

top related