c++ آموزش - kharazmi university1).doc · web viewدر فصل های گذشته ، داده...

162
وطه : ب ر م اد ت س ا ر کت د ان ت ن ما ز ران ه ت ی م وازز خ گاه% ش ن داC + + ی س دز))))) وه ز )))))))) ج ت رت/ ت ت ی ه ک ت خ د ه یم زا ا ر خ ت ک; س ی ت ت خ ب د از ف دونم زا ا رخ1390

Upload: others

Post on 27-May-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

مطالب هرستاول : 5.....................................................................................فلوچارت فصل

C + + درسی جزوه

پ ـربـــت ک ـیت ه ــخته را ـند خام س ـن ر ب ـیک بخت دون ـازد

1390

Page 2: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

فلوچارت 5................................................................................................تعریف

فلوچارت 5..................................................................................................عالئم

پایان و شروع 5.........................................................................................عالمت

ورودی 5...................................................................................................عالمت

جایگزینی و انتساب 5.................................................................................عالمت

شرطی 6..................................................................................................عالمت

چاپ 6......................................................................................................عالمت

دوم : ها فصل 10.....................................................................................آرایه

اندیس 10..................................................................................................تعریف

دار اندیس 11..............................................................................................متغیر

11..........................................................................................................ماتریس

bisection..............................................................................................14روش

سوم : زبان فصل C++.......................................................................28مبانی

زبان در ها C++........................................................................................28داده

29...........................................................................................................متغیرها

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

متغیرها به دادن 30......................................................................................مقدار

ثوابت به دادن 31........................................................................................مقدار

32.........................................................................................................عملگرها

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

یکانی 32.............................................................................................عملگرهای

دودویی 32...........................................................................................عملگرهای

عملگرها 33.................................................................................................تقدم

صفحه2

Page 3: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

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

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

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

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

متفرقه 35...........................................................................................عملگرهای

کاما 35.....................................................................................................عملگر

پرانتز 36...................................................................................................عملگر

در برنامه C++.....................................................................................37ساختار

با اطالعات cout......................................................................................39چاپ

برنامه اجرای نتایج 41..............................................................................مشاهده

با اطالعات cin.....................................................................................43خواندن

خروجی صفحه کردن clrscr.......................................................................45پاک

خروجی صفحه در نما مکان 46....................................................................انتقال

چهارم : کنترلی فصل 50......................................................................ساختار

تکرار 50...................................................................................................ساختار

تصمیم 50.................................................................................................ساختار

تکرار for.............................................................................................50ساختار

با تو در تو های for...................................................................................56حلقه

for...............................................................................................58 حلقه و کاما عملگر

تکرار while.........................................................................................61ساختار

تکرار do … while ...............................................................................64ساختار

تصمیم 67...........................................................................................ساختارهای

تصمیم if..............................................................................................67ساختار

صفحه3

Page 4: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

تصمیم else if......................................................................................71ساختار

شرطی غیر کنترل 72..................................................................................انتقال

break..................................................................................................72دستور

continue..............................................................................................75دستور

پنجم : 77........................................................................................توابع فصل

توابع 77....................................................................................................نوشتن

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

عمومی و محلی 79................................................................................متغیرهای

بازگشتی 84.................................................................................................توابع

همنام 85.....................................................................................................توابع

ریاضی 85....................................................................................................توابع

ششم : ها فصل 92..................................................................................آرایه

لیست ) ( بعدی یک های 92............................................................................آرایه

بعدی چند های 96.........................................................................................آرایه

ای دوره 101..........................................................................................تمرینات

صفحه4

Page 5: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

محاسبه و انتسابدستور

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

اول : فصل

فلوچارت

فلوچارت نموداری: تعریف یا تصویری نمادهای صورت به را الگوریتم که ساده عالئم از ای مجموعه به. شود می گفته فلوچارت ، کند می تبدیل

تصویری ) ( های مولفه فلوچارت : عالئم

شود می استفاده عالمت از فلوچارت تصویری های مولفه اتصال .برای

پایان : )1 و شروع پایان عالمت و شـروع مـفهوم به بـیضی عالمت از فـلوچارت هر انـتهای و ابتدا در شود می . اسـتفاده

شـروع نکته : یک فـقط نیز آن به مربوط فـلوچارت لـذا است پایان و شـروع یک دارای تـنها الگوریتم هـر داشت خواهد پایان یا . و

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

ورودی : )2 االضـالع عـالمت مـتوازی از ها داده و مـقادیر گرفتن به مربوط عملیات نمایش بـرای شود می استفاده نـماد .بـعنوان

شود :نکته می خارج آن از فلش یک فقط ولی کرد وارد فلش چندین نماد این به توان می .

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

صفحه5

شرو پایان ع

پایان

شرو ع

دستورات ورودی Aرابگیر

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

I ← I+1A ← 2

Page 6: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

شرط)ها(

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

خروجی نکته : یک از بیش تواند نمی ولی شود وارد آن به فلش چندین تواند می نیز نماد این مورد در باشد .داشته

به . عالمتشرطی( : 4 است شروطی یا شرط برقراری به منوط عملیات انجام ، شرطی عملیات درنمایش برای لوزی عالمت از منظور . همین شود می استفاده شرطی دستورات

به نکته : توجه با و کرده وارد فلش چندین آن به توان می قبلی های عالمت خالف بر ، عالمت این در کرد خارج فلش چندین شروط .ارزش

چاپ )5 کرد : عالمت استفاده االضالع متوازی نماد از توان می ، باشد اطالعات نمایش فقط هدف اگر .

استفاده زیر نماد از شوند چاپ کاغذ روی یا و ، شوند داده نشان نمایش صفحه روی مقادیر بخواهیم اگرکنیم .می

شود :نکته می خارج فلش یک آنها از فقط ولی کرد وارد آنها به فلش چند توان می نیز ها نماد این در .

صفحه6

دستور محاسبه و انتساب

Nمثبت

صفر

منفیA<2

نادرست

درست

صفحه در چاپنمایش

کاغذ روی چاپ

Page 7: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

و مثال : محاسبه را مجهولی یک دوم درجه معادله جوابهای که الگوریتمی کنید رسم را آن به مربوط فلوچارت و بنویسید را کند می .چاپ

صفحه7

)a≠0) ، a + bX + c = 0

شروع

Xرا چاپ کن و بنویس یک ریشه مضاعف دارد

پایان

را چاپ کن>0<0

=0

_ شروع1

2 _aرا بگیر

2 برو به a=0_ اگر 3

4 _b و cرا بگیر

5 _

9 را چاپ کن و برو به و ، و _ اگر 6

و بنویس یک ریشه پس D=0_ اگر 79 را چاپ کن و برو به Xمضاعف دارد و

پی بنویس ریشه حقیقی نداردD<0_ اگر 8

_ پایان9

aرا بگیر

a=0

b و cرا بگیر

Dبنویس معادله ریشه حقیقی ندارد

بل

خیر

Page 8: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

طبیعی مثال: عدد که بنویسید خیر؛ ر Nالگوریتمی یا است اول کند معین و گرفته فلوچارت ا سپسکنید رسم را .مربوطه

بجز نکته : که است اول عددی تعریف باشد 1طبق نداشته دیگری علیه مقسوم خودش و .

یعنی خودش بین اعداد از یکی بر عددی اگر باال تعریف نیست ( 2تا N-1) طبق اول دیگر ، باشد پذیر بخش. است اول آنگاه نشد، صفر یک هیچ در باقیمانده و شد تقسیم آنها تک تک بر اگر و

yes

no

yes

صفحه8

شروع

R=0

شروع_ 1

2 _N رابگیر

3 _

4_

پایان Nبنوـیس R=0اـگر_ 5 و نیست اولبه 9برو

صورت_ 6 این غیر در

به اگر_ 7 برو 4پس

است Nبنویس_ 8 اول

پایان_ 9

N>2 بگیر را

اول Nبنویس نیست

Page 9: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

no no

بخشی دو روش از خطی غیر معادالت حل . (bisection) برای خطی غیر تابع کنیم می استفادهF)X( از مقادیری دنبال ، داریم که Xرا گردیم از F)X(=0می مقدار این به یک Xکه گوییم می

از تابع Xریشه از صفر یا .)F)X و

روش تابع bisectionاساس عالمت که است استوار امر هم )F)Xبراین با ریشه طرف دو درکه ) ( . کنیم فرض منفی دیگر سمت در و مثبتند تابع مقادیر ریشه سمت یک در یعنی است مخالف

بازه )F)Xتابع باشد X=cتا X=aبین ریشه یک داده ) [(a , c)]دارای نشان شکل در که همانطور) است .شده

بازه bisectionروش وقتی که است اساس این عالمت [a , c]بر آنگاه ، است ریشه یک دارایانتهای )F)Xتابع دو یعنی ) در بازه ؛( ..... . )c(Fو )F)aاین یعنی هستند العالمه مختلف

F)a( * F)c( < 0

بخشی دو مسئله این حل برای اقدام بخش (bisection) اولین دو به بازه کردن تقسیم ،[a , b, ] [b , c] ؛ ، است طوریکه

)a + c( / 2 = b

عالمت به توجه ی )F)a( * F)bبا شود،زیرا نیم بازه می تعیین است ریشه شامل که * )F)aبازیF)b( < 0 بازه ترتیب این یعنی [a , b]به بعدی بازه صورت این غیر در و است ریشه [b , c]دارای

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

صفحه9

اول Nبنویس است

پایان

Page 10: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

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

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

باشد می بعد صفحه در معادله این .فلوچارت

صفحه10

c = b

b = (a + c)/2

a = b

|a – c| < e ?

start

f(a) * f(b) < 0Y

N

N

بخش دو به بازه تقیسم

قبل از حد یک از جدید بازه آیا اینکه تعیین واقع در ؟ نه یا است کوچکتر شده تعیینبازه بخش دو به کردن تقسیم پایان شرط

در ریشه بازه یعنی نشدند العالمه مختلفf(a) , f(b) اگر در تــابع مقــدار یعــنی ، است دوم بازه در و نیست آنها بین

به را دوم بازه باید پس داشته یکسانی عالمتa , b نقطه که مــواردی از کــدام . هر بگــیریم ریشه حاوی بازه عنوان

روز به را ها بـازه باید دهد می رخ بـودن صـادق شـرط در. شود آماده بخش دو مسئله مجدد تکرار برای تا کنیم

جدید میانی مقدار با تابع بودن العالمه مختلف تعیین

Page 11: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

کند مثال: چاپ را بزرگتر عدد و گرفته را عدد دو که کنید رسم را فلوچارتی .

صفحه11

Output : Root = bStop

Y

Print : دو عددمساویند

End

A > B

startA , Bرا بگیر

A = B Print : B

Print : A Y

N

N

Y

Page 12: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

عدد نکته : دو بین اینکه تشخیص برای دیگر راه که Bو Aیک است این ، است بزرگتر کدامیکاست منفی یا و مثبت دیگری از کدامیک تفاضل .ببینیم

A – B > 0 A > B

A – B < 0 A < B

عدد : مثال که کنید رسم اعداد N فلوچارتی مجموعه و گرفته .Nتا 1را کند چاپ و محاسبه را

صفحه12

StartN کنید وارد را

S 0

I 1

S S + I

I= N

Print : SEnd

I I + 1N

Page 13: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

کند مثال : چاپ را آنها کوچکترین و خوانده را عدد سه که کنید رسم فلوچارتی .

صفحه13

Y

minB < A , B < C BB < A , C < B C

minA < B , A < C AA < B , C < A C

StartA , B , C وارد راکنید

A minA < B

Print : min

B < C A < CB min

Print : minC min

Print : min

Y

N

Y YN

N

Page 14: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

. نکته : کرد > )<( بلعکس را عالمت کافیست عدد بزرگترین نمایش برای

که : مثال کنید رسم بین فلوچارتی اعداد .را Mتا 1تمام کند تجزیه اول های عامل به

) تجزیه) اصل از : قضیه نظر صرف ، یکتایی صورت به توان می را صحیح با طبیعی عدد هر. نوشت اول های عامل حاصلضرب فرم به ، عامل ترتیب

صفحه14

End

StartM کنید وارد را

I 2

باقیماندهN/I=0

Print : IN N/I

I I + 1 N

Y

2 = 2

3 = 3

4 =

5 = 5

6 = 2 * 3

7 = 7

8 =

----

----

----

N=M

Page 15: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

باید نکته : قسمت خارج برنامه پایان باشد 1برای .

عدد : مثال دو که کنید رسم مشترکشان nو mفلوچارتی علیه مقسوم بزرگترین و گرفته را. کند محاسبه را

) . م. م )ب عدد اول = دو های عامل توان مشترکضرب کمتربا

) . م. م )ک عدد اول = دو های عامل توان مشترکضرب بیشتربا

صفحه15

N=1

End

Y

N

StartA,B کنید وارد را

A > B

Y

N

Max = AMin = B

Max = BMin = A

A % Min=0B % Min=0

Min = Min - N

M=1 Y

M=M-1N

Page 16: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

تا : مثال یک از اعداد تمام علیه مقسوم که کنید رسم چارتی کند .Nفلو چاپ و رامحاسبه

صفحه16

Print : MinEnd

Y

StartN کنید وارد را

I = 0

M=N-1

N%I=0

Print : N

I = NEndY N

N

YN=1

Print : I

I = I + 1

N

Y

Page 17: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

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

صفحه17

StartA,B کنید وارد را

A > B

Max = BMin = A

Max = AMin = B

Max%A=0Max%B=0

Print : MaxEnd

Max = Max N

N

Y

Page 18: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

عدد : مثال که کنید رسم .Nفلوچارتی کند چاپ و محاسبه آنرا فاکتوریل و گرقته را

صفحه18

Y

StartN کنید وارد را

NI

fact 1

Print : fact End

I 1

fact fact * I

Y

N

Page 19: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

عدد : مثال که کنید رسم فاکتوریل Nفلوچارتی و گرقته تا را یک از اعداد و Nتمام محاسبه را. کند چاپ

صفحه19

StartN کنید وارد را

NI

fact 1

End

I 1

fact fact * II I + 1

Y

N

I I + 1

Print : fact

Page 20: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

بین مثال: اول اعداد کلیه که کنید رسم . Nتا 1فلوچارتی کند چاپ را

صفحه20

StartN کنید وارد را

I = 0, j=0

N=N-1

N%I=0

I = N N

N

j=2

I = I + 1

Y

j=j+1

Page 21: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

دوم : فصل

: : ها آرایه دوم فصلبعدی دو های آرایه ، بردار مانند بعدی یک های آرایه نظیر جدیدی مفاهیم داریم قصد فصل این در

راحت مسائل از بسیاری آن واسطه به که کنیم تعریف را دار اندیس متغییر و ، ماتریس تر مانند. شوند می حل

؛ کنیم می شروع مثال یک با کار سادگی برای

طبیعی مبنای Nعدد در را عدد این معادل که بنویسید الگوریتمی ، است .2مفروض آورد بدست

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

) هم . ) کنار در راست به چپ از اول به آخر از را ها باقیمانده تمام پایان در دهیم می ادامه برسد. نویسیم می

مثال ه ب عدد عنوان داریم؛ 12برای

شروع)1

2 )N بگیر = 12 1100 را

3(

4 )R کن چاپ را

5(

صفحه21

End

Y NN کنید چاپ را N = 1Y

N

0

1

3

6

212

2

2

2

12

6

3

0

0

0

1

1 خارج آخرینقسمت

Page 22: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

به N>0 اگر(6 برو 3پس

پایان)7

عدد ) بجای که بینیم می فوق الگوریتم اجرای )1100با عدد( الزم( . 0011، پس شود می حاصلعمل این که بنویسیم اول به آخر از را آنها سپس و کرده ذخیره جایی در را ها باقیمانده که است

. است پذیر امکان براحتی ها آرایه کمک با

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

مثال : نام بعنوان به خانه قرار Xدو ای شماره آنها از یک هر زیر آنها تشخیص برای که داریمدهیم می

) (

می استفاده متغیر نام به هایی خانه از ها داده و مقادیر کردن ذخیره برای نویسی الگوریتم در. . کنیم پردازیم می دار اندیس متغیر تعریف به ابتدا پس

: دار اندیس تمایزشان متغیر وجه و دارند اسم یک آنها همگی که است متغیر چند از ای مجموعه باشد می آنها .اندیس

مثال : دار بعنوان اندیس طول Aمتغیر بگوییم 5به هرگاه ؛ بگیرید نظر در را 2اندیس Aواحداسمشان که ها خانه از ای مجموعه سراغ به می Aیعنی انتخاب را دومی آنها بین در و رفته است

کنیم.

A

) ( نویسی الگوریتم در و شود می گفته نیز بردار ثابت طول با دار اندیس های متغیر از دسته این بهنوشت . توان می جای به

گویند . : ماتریس می ماتریس را اعداد از شکل مستطیل جدول یک

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

فرم به همواره را ماتریس همواره [A]یک آن در که دهیم می و mنمایش سطرها تعداد نشانگرn. هاست ستون تعداد نشانگر

صفحه22

A(2)

Page 23: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

یک در اندیس متغیر یک یا بعدی یک لیست یک اصل در آن ستون هر یا ماتریس سطر هر پس. است بعدی

( مثال: بعدی ) دو لیست ماتریس که بنویسید با Xالگوریتمی و 10را نظر 10سطر در ستوناز را اعداد ضرب جدول و .10تا 1گرفته کند ذخیره آن های خانه داخل در

صفحه23

_ شروع1

را بگیر_ 2

3 _

4 _

5 _

6 _

5 پس برو به اگر_7

8 _

4 پس برو به _ اگر 9

_ پایان.10

بگیرید نظر در را

I 1

start

StartN کنید وارد را

N0J=J+1

End

X[I] N%I

I I - 1YNPrint : X[I]

N=N/I

J=0

Page 24: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

بعدی ) ( مثال : دو لیست آرایه که بنویسید با Xالگوریتمی و 5را گرفته 5سطر نظر در ستونرسم را آن فلوچارت سپس ، دهد قرار صفر را عناصر سایر و یک را آن اصلی قطر روی عناصر و

کنید.

صفحه24

_ شروع1

را در نظر بگیرید_ 2

3 _

4 _

پس _ اگر 5

و گرنه

6 _

5 پس برو به _ اگر7

8 _

4 پس برو به _ اگر 9

_ پایان10

j j + 1X (I , j) I * j

I I + 1

End

j 1

j<= 10

I<=10

Y

N

N

Y

بگیرید نظر در را

I 1j 1

start

I=j Y

Page 25: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

از : مثال اعداد اعداد ضرب جدول که کنید رسم .Nتا 1فلوچاذتی کند چاپ و محاسبه را

صفحه25

j j + 1

I I+1

A(I,j)0

End

I> 5

j > 5

A(I,j)1

N

N

Y

Y

N

StartN کنید وارد را

I 1

j 1

Page 26: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

سوم : فصل

زبان ++Cمبانی

برنامه در ها العمل هستند؛ ++Cدستور زیر های ویژگی دارای

زبان (1 دستور . ;به ++Cهر شوند می ختمدستور (2 یک .255حداکثرطول است کاراکتر

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

4) ) ( شود نمی توصیه کار این البته کرد تایپ را دستور چند توان می سطر هر در

بین (5 در توانند می از /* */ توضیحات بعد یا گیرند // و می . قرار ؛مثال

/* دستور */ صفحه26

// دستور

A(I , j) I * j

j<=NPrint : A(I,j)

End

N

Yj j + 1

I I + 1

I<=NY

N

Page 27: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

این . ++ Cزبان : تذکر کلیدی کلمات تمام باشد می حساس حروف کوچکی و بزرگی به نسبتحروف با زبان این در ها برنامه تمام شود می توصیه ، شوند می نوشته کوچک حروف با زبان

. شوند نوشته کوچک

زبان در ها داده : ++ Cانوع

زبان این ؛ 6در از عبارتند که دارد وجود داده نوع

1) char : مثل کاراکتری های داده ذخیره ، a ،bبرای x. رود .... می بکار و

2 )int : مثل صحیح اعداد ذخیره .19، 5برای رود .... می بکار و

3 )float : مثل اعشاری اعداد ذخیره .17.2، 12.5برای ..... رود می بکار و

4 )double : از بزرگتر اعشاری اعداد ذخیره . floatبرای رود می بکار

5 )bool. رود : می کار به هستند نادرستی یا درستی ارزش دارای که منطقی مقادیر ذخیره برای

6 )void ( : مشخصا برنامه نخواهیم ایـن ( )(mainهـرگاه از بازگرداند عامل سـیستم به را تعدادی. کنیم مـی استفاده داده نوع

ها : متغیر

. کنند می فراهم را ها داده برای گذاری نام امکان متغیرها

حروف از ترکیبی از توان متغیرهای گذاری نام (Zتا Aیا zتا aبرای _ ( ربط خط و ارقام ، کرد . ، استفاده نباشد رقم کاراکتر اولین که طوری

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

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

صفحه27

Page 28: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

در نوع فاقد .++Cمتغیرهای نیستند شده شناخته

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

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

: متغیر .اعالن نامند می متغیر اعالن را متغیر نوع تعیین

. کنیم می عمل زیر صورت به متغیر هر نوع تعیین برای

کاما ) ( ) عالمت با را آنها باید ، خط یک در متغیر یک از بیش نوع تعیین کرد( ٫برای جدا هم ؛ازمانند؛

int x , char a , …. ;

. کرد اعالن را آنها باید متغیرها گیری بکار از قبل

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

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

1) متغیر؛( ) نوع تعیین اعالن ؛مثال هنگام

int x , y = 5 ;

char ch1 = ‘ a ‘ , ch2 = ‘ m ‘ ;

bool b1 = true , b2 = false ;

انتساب( )=(2 دستور با و متغیر نوع اعالن از ؛مثال ؛ پس صفحه28

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

Page 29: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

int x , y , m ;

float f1 , f2 ;

x = y = m = 0 ;

f1 = 15.5 ;

f2 = 12.7 ;

ورودی( 3 دستورات ؛مثال ؛ با

int x , y ;

cin >> x >> y ;

نوع : تذکر از متغیرهایی به دهی مقدار داخل ' ' )charهنگام حتما باید نظر مورد مقدار ،Single Cotation. . آورد( می حساب به متغیر یک نیز را مقدار برنامه صورت این غیر در گیرد قرار

: ثوابت به دادن مقدار

شود؛ می عمل روش دو به ثوابت اعالن برای

دستور( 1 از کنیم؛ define#استفاده می عمل زیر روش به دستور از استفاده ؛برای

. :1تذکر کند می تعیین نیز آنرا نوع ، شود می تعیین ثابت برای که مقداری ، روش این در

دستور :2تذکر انتهای . ;عالمت define#در گیرد نمی قرار

صفحه29

<#define نام ثابت مقدار ثابت >

Page 30: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

بزرگ :3تذکر حروف با را آنها نام است بهتر برنامه متغیرهای از ها داده گونه این تفکیک برای. کنیم انتخاب

مثال:

#define M 100

#define PI 3.14

دستور( 2 از ؛ constاستفاده کنیم می عمل زیر روش به دستور از استفاده برای ؛

مثال:

const int X=100 , n=50 ;

const char X=‘a’ ;تابع define#دستور تذکر: از قبل باید باشد # ) ( mainحـتما می عالمت دارای زیرا ولی باشد ،

. constدستور شود نوشته نیز برنامه اجرایی دستورات داخل در تواند می

هر نکته : در بخواهیم اگر مثال بعنوان است برخوردار باالیی امتیاز از ها برنامه در ثوابت کاربردرا ثابت ان با مرتبط دستورات کلیه نیست الزم دیگر ، کنیم عوض را ثابت مقدار برنامه اجرای بار

دستور در قبلی مقدار بجای است کافی بلکه ، دهیم . constتغییر کنیم وارد را جدید مقدار

عملگرها :

انجام . برای داد انجام آنها روی را عملیاتی بتوان باید آنها به دادن مقدار و متغییرها اعالن از پسن . زبا در ها عملگر کرد استفاده ها عملگر از باید عملیات می ++Cاین تقسیم زیر های دسته به

شوند؛

محاسباتی ( 1 دهند؛ عمگرهای می انجام عملوندها روی را محاسباتی اعمال ؛

عملگر نام نوع

صفحه30

<const نوع داده نام ثابت=مقدار< ; ثابت

Page 31: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

عملگرجمع+تفریق-ضرب*تقسیم/

تقسیم % باقیماندهعملوندش ++ به واحد عملوند اضافهیک آن در را نتیجه و کرده

. دهد می قرارعملوندش - - از واحد قرار کمیک عملوند آن در را نتیجه و کرده

. دهد می

یکانی : .عملگر کنند می عمل عملوند یک روی بر که ++X OR X ++عمگرهاییدودویی : . عملگر کنند می عمل عملوند دو روی بر که گویند می هایی عمگر X=++yبه

. نکته : )- -( )++( مثال؛ است متفاوت محاسباتی عبارت به بسته یا دوعملگر عملکرد

int x=10 , m=10 ; cout<<x++ OR cout<<++x

x;++

m;++

دستور اینجا به ++ ; xدر واحد در xیک را نتیجه و کرده . xاضافه دهد می قرار

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

. است یکسان

داریم؛ مثالدر زیر

int x , y;

x=10;

y=x;++

؛ بگیرید نظر در را زیر دستور اکنون

int x , y;

x=10;

y=++x;

.مثال : کنید دقت زیر مثال به بیشتر آشنایی برای

صفحه31

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

یک ابتدا سوم دستور اجرای با. گیرد می قرار Xدر 10 مقدار دوم دستور اجرای با X به واحد

و 11 برابر X یعنی ؛ گیرد می قرار yمتغیر در حال مقدار سپس و شود می اضافهy شد. خواهد 11برابر

y درX فعلی مقدار سوم دستور اجرای با ؛ گیرد می قرارX در 10 دوم دستور اجرای با 11 بهX تا شود می اضافه به واحد یک ابتدا چهارم دستور در سپس ، گیرد می قرار

گردد. تبدیل

قرار mدر 26 یعنی آن نتیجه و شود می جمع 15 یعنی yفعلی مقدار با Xجدید مقدارگیرد. می

می چاپ X = 10 اینجا درشود

می چاپ 11 اینجا درشود

Page 32: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

int x , y , m;

x = 10;

y = 15;

m = ++x

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

زبان ویژگی دو با آنها اجرای ترکیب ، شوند ترکیب یکدیگر با عملگر چندین عبارت یک در وقتینویسی شود؛ ++ Cبرنامه می تعیین زیر فرم به

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

a) عملگرها تقدم

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

توضیحاتعملگر نوعالویت1 ++OR- - تقدم باالترین2-) قرینه)3% / *ترین + -4 پایین

تقدم

پذیری نکته : شرکت قاعده براساس آنها اجرای ترتیب ، است یکسان آنها تقدم که عملگرهاییزبان در که باشد بلعکس یا راست به چپ از تواند می پذیری شرکت قاعده ؛ شود می تعیین زبان

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

؛ مثال: با است برابر زیر عبارت حاصل

int m , x = 6 , y = 10;

m = x + y / 2 * 3

ای ( 2 رابطه . : عملگرهای اعمالی کنند می مشخص را عملوندها بین ارتباط عملگرها اینای ... رابطه عملگرهای توسط و صفر با مقایسه ، بودن بزرگتر یا کوچکتر ، مقدار دو تساوی نظیر

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

؛

صفحه32

RUN m = ((y/2)*3)+x = 21

Xy

Page 33: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

X==y خیر؟ یا است مساوی آیا یعنی

مثال نام عملگرX > y بزرگتر >

X >= y مساوی یا بزرگتر >=X < y کوچکتر <

X <= y مساوی یا کوچکتر <=X == y متساوی ==X != y مساوی نا !=

های عبارت. کنند می عمل منطقی عبارتهای روی بر منطقی عملگرهای : منطقی عملگرهای(1 به نادرستی و درستی ارزش ++C در. هستند (false) نادرستی یا( true) درستی ارزش دو دارای منطقی

؛ شود می مشخص روش دوصفر غیر مقادیر با درستی ارزش و صفر با نادرستی ارزش(1 .falseو true ثابت توابع از استفاده با(2؛ باشد می زیر شرح به منطقی عملگرهای جدول

مثالنامعملگرX!نقض!

X > y && m < pو&&X > y || m < pیا||

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

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

؛ است زیر صورت به ترکیبی عملگرهای تقدم

معادلمثالنامعملگرX += yX = X + yجمع انتساب+=X -= yX = X – yتفریق انتساب-=X *= yX = X * yضرب انتساب*=X /= yX = X / yتقسیم انتساب/=

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

X %= yX = X % X

صفحه33

Page 34: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

: متفرقه عملگرهای( 5

نادرستی یا درستی) عبارت آن ارزش اساس بر و کرده ارزیابی را عبارتی عملگر این(( : ؟)) عملگر( 1 . دهد می قرار ی متغیر در را دیگر عبارت نتیجه ،(

گرنه و ، گیرد می قرار متغیر در ، 2 عبارت شده ارزیابی مقدار ، باشد درست ارزشی دارای 1 عبارت اگر. گرفت خواهد قرار متغیر در 3 عبارت شده ارزیابی مقدار

؛ بگیرید نظر در را زیر دستورات : مثال

int x , y ;

x = 5 ;

y = x > 5 ? x * 2 : x * 5

؛ داریم دستورات این در

1 عبارت : x > 5

2 عبارت : x * 2

3 عبارت : x * 5

x > 5 زیرا ، است نادرستی ارزش دارای x مقدار بنابراین ، نیست 5 از بزرگتر x * 5 25 = 5 * 5 با برابر که . گیرد می قرار

صورت به آن کاربرد و رود می کار به دستور یک در عمل چند انجام برای عملگر این (( :,)) کاما عملگر( 2: است زیر

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

؛ بگیرید نظر در را زیر عبارت : مثال

int x , y ;

y = ( x = 2 , x * 4 / 2 ) ;

صفحه34

< 3 : عبارت2 ؟ عبارت1متغیر = عبارت >

< ; (2 , عبارت1متغیر = )عبارت >

Page 35: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

؛ داریم دستورات این در

1 عبارت : x = 2

2عبارت : x * 4 / 2

آن حاصل و کرده شرکت x * 4 / 2 عبارت محاسبه در مقدار این و گیرد می قرار x در 2 مقدار x = 2 عبارت در. گیرد می قرار y در 4 یعنی

. برند می باال را خود داخل عملگرهای تقدم که هستند عملگرهایی ، پرانتزها :) ( عملگر( 3

؛ داریم زیر عبارت در مثال بعنوان

y = 4 * 2 / ( 3 + 1 ) + ( 6 + ( 7 – 2 ) )

داخلی در موجود عبارت ابتدا شود می ارزیابی پرانتز ترین

صورت این به عملگرها تقدم ، می ضرب 2در 4 ابتدا که است می محاسبه (1+3) سپس ، شود آن از پس شود

. گیرد می قرار y در 13 پایان در پس

: عملگرها تقدم جدول

صفحه35

عملگرهاتوضیحات) (تقدم باالترین

sizeof -- ++ !% / *

- +<< >>=! ==

&|

&&||

=% =/ =* =- =+ =,تقدم ترین پایین

Page 36: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

:++Cدر ها برنامه ساختار

شود می نوشته مسئله از بخشی حل برای تابع هر. شوند می تشکیل تابع و کالس تعدادی از ++C های برنامه. است نام دارای و

زبان این در ای برنامه دیگر،هیچ بعبارت. است )(”main“ نام به تابعی ++C درزبان برنامه هر اصلی بدنهباشد. تابع این فاقد که ندارد وجود

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

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

کند. می پیدا دسترسی آنها به چگونه برنامه و دارند

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

و هستند( (h. پسوند دارای سرآیند های فایل کلیه .دارند قرارinclude دایرکتوری در معموال

قرار سرآیند فایل کدام در برنامه در استفاده مورد تابع یا کالس هر بدانیم باید برنامه به ها فایل اتصال برای. کنیم اضافه برنامه به را سرآیند فایل وهمان دارد

چاپ نمایش صفحه در را اطالعاتی یا بخواند کلید صفحه از را اطالعاتی بخواهد که ای برنامه هر مثال برایکند. ضمیمه برنامه به را ”iostream.h“ سرآیند فایل باید کند،

شود. می استفاده ” include“# بنام دستوری ،از برنامه به سرآیند های فایل اتصال برای

صفحه36

Page 37: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

دستور این : نکته شود. می ظاهر )(main تابع در قبال معموال

. شوند نمی ختم);( به دستورات این : نکته

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

کنیم: می عمل زیر صورت به iostream.h فایل کردن اضافه برای : مثال بعنوان

#include <iostream.h>

: کنیم می توجه زیر نکات به include# مورد در

. باشد داشته وجود ای فاصله نباید (include)و )#( بین.1< عالیم و فایل نام بین.2 نباید> باشد. داشته وجود ای فاصله و> عالیم ذکر.3 ضروری< است. و

می است )(main تابع کننده اجرا که عامل سیستم که است این ++C برنامه خصوص در دیگر مهم نکتهبرای. یا رسیده پایان به موفقیت با تابع این آیا که بداند خواهد برنامه پایان در بهتراست منظور این خیر

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

سیستم به را oمقدار دستور این نویسیم می را ;”return o”دستور برنامه، دستورات آخر در دلیل همین بهاست. شده اجرا موفقیت با برنامه که شود می متوجه عامل سیستم و گرداند می بر عامل

.int نوع از باید شود، می برگردانده عامل سیستم به که مقداری مقداری خواهد می که )(main تابع لذا باشد در زیر صورت به را )(main تابع است بهتر دلیل همین به باشد، int نوع از باید خود برگرداند، را int نوع از

کارببریم: به برنامه

<int main()>

)(main تابع نوع حالت این در برنگرداند عامل سیستم به را مقداری تواند می برنامه +C + های گونه برخی در: گیریم می نظر در ”void“ را

<void main()>

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

است: مقابل شکل به +C + برنامه از ای ساده ساختار

صفحه37

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

int main()

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

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

return o;

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

Page 38: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

قرار را هردستور باشد، ازیکی بیش دستورات تعداد هرگاه تذکر: . دهیم می در

:++C برنامه ساختار به راجع نکته چند

. شود گنجانده include# دستور یک باید آنها از هرکدام برای ، سرآیند فایل چند کردن اضافه برای( 1

. کرد اعالن ، است نیاز آنها به که جایی نزدیکترین در توان می را برنامه موردنیاز متغیرهای( 2

. شد خواهد بیان تدریج به مطالب ادامه در برنامه تر کامل ساختار( 3

:cout با اطالعات چاپ

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

cout ؛ است استفاده قابل زیر صورت به

. شوند منتقل خروجی به باید که هستند مقادیری ، 2 عبارت و 1 عبارت ، دستور این در

. گیرد قرار" " کوتیشن داخل نظر مورد متن باید ها متن چاپ برای: تذکر

صفحه38

<cout<< 2<<عبارت 1عبارت << ….. ;

Page 39: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

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

. قبیل این از مواردی و خیر یا شوند چاپ یکدیگر از خاصی فاصله

. شوند می شروع \ عالمت با کنترلی کاراکترهای : تذکر

رد ،( باشیم می آن نوشتن حال در که سطری) جاری سطر شود می موجب n\ کاراکتر مثال بعنوان. گردد آغاز جدید سطر از بعدی اطالعات چاپ و شود

. کرد استفاده نیز فوق منظور برای توان می نیز endl دستور از: نکته

: کنترلی کاراکترهای جدول

کاراکتر عملکردکنترلی کاراکتر\nکند. می رد را جاری سطر\tبرد می بعد محل 8 به را خروجی کنترل

.کند. می چاپ را \ کاراکتر\\کند. می چاپ را ? عالمت\?. کند می چاپ را : عالمت\:. کند می چاپ را “ عالمت\”

)”unsinged”،( باعالمت)”singed“ همچون کلماتی از استفاده با: نکته ،( بدون می” short“ و” long”عالمتکرد. ایجاد را ها داده از جدیدی انواع توان

کاربرد هستند، باعالمت int نوع های داده چون ولی برد، بکار را کلمه4 هر توان می int نوع های داده برایsigned است. مورد بی آنها با

برد. بکار unsigned و signed با توان می را char نوع

است. استفاده قابل نیز long همراه به double نوع

: آنها قبول قابل ومقادیر ها داده انواع از بعضی جدول

صفحه39

قابل بازهداده نوعقبول

floatdouble

long double

دقت رقم 7دقت رقم 15دقت رقم 19

Page 40: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

++:C کلیدی کلمات جدول

trysignednewfloatcontinuoasmtypedefsizeofoperatorfordefaultautounionstaticprivatefrienddeletecreak

unsignedstructprotectedgotodocasevirtualswitchpublicifdoublecatch

voidtemplateregisterinlineelsecharvolatilethisreturnintenumclasswhilethrowshortlongexternconst

اند. کرده اضافه نیز را.... و ”for” ، “near“ نظیر دیگری کلیدی کلمات ++ borland C مانند کامپایلرها بعضی

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

و خروجی صفحه را صفحه این شود می ظاهر دیگری صفحه در ان خروجی برنامه اجرای از پس دارد نام برنامه صفحه نویسم می را برنامه دستورات ان در که ای صفحه

صفحه40

Page 41: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

برنامه فحه به صفحه از خروجی تولید از بعد بالفاصله سیستم که دید خواهیم برنامه اجرای از پس نوع به موضوع این البته) ببینیم را برنامه خروجی توانیم نمی که طوری به گردد می باز برنامه( دارد بستگی استفاده مورد کامپالر

از گردیم باز برنامه صفحه به خود اختیار به و داریم نگه خروجی صفحه در را کامپیوتر انکه برای دارد قرار ”conio.h“ فایل در تابع این کنیم می استفاده ” getch”تابع

این بنابراین ماند می کلیدی صفحه از کلیدی فشردن منتظر رسد می“ ”getch دستور به برنامه وقتی کنیم متوقف خروجی صفه در را برنامه خواهیم می که دهیم می قرار برنامه از جایی در را دستور

کند می چاپ نمایش صفحه در را متنی که ای برنامه :مثال

در عینا بنابراین است کنترلی الکتر کار فاقد برود خروجی به خواهیم می که متنی چون: توضیح تابع از استفاده برای و iostream.h فایل cout شی از استفاده برای شود می چاپ خروجی

getch فایل coni.h کنیم می ضمیمه برنامه را

: برنامه خروجی

کند. می چاپ نمایش صفحه در را اعشاری مقدار یک و صحیح مقدار یک که ای برنامه :مثال

صفحه41

#include <iostream.h>

#include <conio.h>

int main( )

cout<<"C++ is a good language ." ;

getch ( ) ;

return 0 ;

C++ is a good language.

#include <iostream.h>

#include <conio.h>

int main ( )

int x=10 ;

float y=15.5 ;

cout<<"x = "<<x ;

cout<<"y = "<<y ;

getch ( ) ;

return 0 ;

Page 42: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

: برنامه خروجی

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

Cout<<”x=<<x<<”/n”;

یا

Cout<<”x=<<x<<end;

خروجی

X=10

y=15.15

صفحه42

X = 10 y = 15.5

Page 43: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

کند می چاپ نمایش صفحه در را انها مربعات مجموع و صحیح مقدار دو که ای برنامه :مثال

: برنامه خروجی

: cin با اطالعات خواندن

cin رود می بکار کلید صفحه از اطالعات خواندن برای که است ای شی . cin فایل در iostream.h ؛ رود می بکار زیر صورت به و دارد قرار

داده ورود هنگام ، خروجی صفحه در) بخوانیم cin توسط را قلم چندین خواهیم می وقتی : تذکر. بزنیم را enter کلید سپس و کنیم می جدا یکدیگر از فاصله یک با حداقل را انها باید ها

صفحه43

#include <iostream.h>

#include<conio.h>

int main( )

int x=10 , y=20 ;

cout<<"X = " <<x<<" , Y = "<<y<<endl ;

cout<<"Sum of Squares is : " <<x*x+y*y ;

getch( ) ;

return 0 ;

X = 10 , y = 20

Sum of Squres is : 500

<cin>> >> >> ….. ; >>

Page 44: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

مساحت خوانده ورودی از است صحیح عددی که را دایره یک شعاع که بنویسید را ای برنامه :مثال. ببرد خروجی وبه کرده محاسبه را آن ومحیط

: برنامه خروجی

! است موجود نیز (const) دیگری روش PI ثابت کردن وارد برای : نکته

که ای داده گیرد می قرار اول سطر در خروجی صفحه در همواره cout اولین داخل عبارت : نکته از پس ولی گیرد می قرار عبارت قرار عبارت ان مقابل و سطر همان در نیز کنیم می وارد ما

صفحه44

#include <iostream.h>

#include <conio.h>

#define PI 3.14

int main( )

int r ;

float a,p ;

cout<<"Enter the Radius : " ;

cin>>r ;

a = PI * r * r ;

p = 2 * PI *r ;

cout<<"Area = "<<a<<"\n" ;

cout<<"Perimeter = "<<p ;

getch( ) ;

return 0 ;

Enter the Radius : 5

Area : 78.5

Perimeter : 31.4

Page 45: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

n\ به نیازی cout اولین بنابراین!) شوند می چپ بعد به و دوم سطر در نتایج Enter کلید فشردن.; endl<< یا ندارد

: clrscr خروجی صفحه کردن پاک

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

قرار بررسی مورد را قبا های برنامه خروجی اسانی به توان نمی طوریکه( دارد بستگی استفاده“ تابع از منظور این برای شود پاک خروجی صفحه برنامه هر اجرای از قبل است بهتر بنابراین داد

clrscr) (” فایل در تابع این شود می استفاده conio.h دارد قرار

به و کرده محاسبه را آنها میانگین و خوانده ورودی از را عدد سه که بنویسید ای برنامه : مثالببرد. خروجی

مقداری نیز حاصل ، 3 بر شدن تقسیم از پس ، باشند می صحیح نوع از ورودی عدد سه چون: نکته تقسیم داریم انتظار که حالی در ، گیرد می انجام صحیح صورت به تقسیم یعنی ، شد خواهد صحیح

چاپ خروجی در اعشاری میانگین و شود انجام اعشاری میانگین و شود انجام اعشاری صورت به. گیرد صورت نوع تبدیل باید منظور این برای شود

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

صفحه45

#include <iostream.h>

#include<conio.h>

int main( )

int x , y , m ;

float avg ;

cout<<"Enter there Numbers : " ;

cin >>x>>y>>m ;

avg = (float)(x+y+m)/3 ;

cout <<"avg="<<avg ;

getch( ) ;

return 0 ;

خروجی: برنامه

Enter there Numbers : 11 16 17

Avg = 14.66

Page 46: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

: خروجی صفحه در نما مکان انتقال

آنجا از را اطالعات یا کنیم منتقل خاصی محل به را نما مکان ، خروجی صفحه در بخواهیم اگر conio.h فایل در تابع این الگوی. کنیم می استفاده ) (gotoxy تابع از ، کنیم چاپ آنجا در یا و دریافت

; است زیر فرم به و دارد قرار

. کند می منتقل 10 ستون و 40 سطر به را نما مکان ، ;gotoxy ( 40, 10 ) دستور مثال عنوان به

آنرا محیط و مساحت ، خوانده ورودی از را مستطیلی عرض و طول که بنویسید ای برنامه : مثال سطر و 20 ستون در را خروجی و کند پاک را خروجی صفحه ، خروجی تولید از قبل ، کند محاسبه

. دهد نمایش خروجی صفحه 10

: برنامه خروجی

صفحه46

<gotoxy (int x , int y) ; >

#include <iostream.h>

#include <conio.h>

int main( )

int a , b , p , s ;

clrscr( ) ;

cout<<"Enter Lenth and Width : " ;

cin>>a>>b ;

p = ( a + b) * 2 ;

s = a * b ;

gotoxy(10 , 20) ;

cout <<"s ="<<s<<"- - p ="<<p ;

getch ( ) ;

return 0 ;

Enter lengh & Width : 20 10

S = 200 P = 60

Page 47: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

. کند وچاپ گرفته را S وکاراکتر N عدد که بنویسید برنامه : مثال

صفحه47

#include <iostream.h>

#include <conio.h>

int main( )

int n ; char s ;

cout<<"Please insert n "<<endl ;

cout<<"Please insert s " ;

cin>>n;

cin>>s ;

cout<<n ;

cout<<s ;

getch( ) ;

return 0 ;

Page 48: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

محاسبه انرا ریشه و گرفته را ax+b=0 اول مرتبه معادله ضرایب که بنویسید ای برنامه : مثال. کند وچاپ

) (get شی عضو که تابع از توان می cin شی بر ،عالوه ورودی از های کاراکتر خواندن برای : نکته ؛ رود می کار به زیر صورت به تابع این. کرد استفاده است

صفحه48

#include <iostream.h>

#include<conio.h>

int main( )

float a , b , x ;

cout<<"Please insert the cofficients : " ;

cin>>a>>b ;

x = -b/a ;

cout<<"x ="<<x ;

getch( ) ;

return 0 ;

< ch = cin.get( ) >

Page 49: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

. کند می چاپ نمایش صفحه در و خوانده ورودی از را کاراکتر یک که ای برنامه : مثال

: برنامه خروجی

صفحه49

#include <iostream.h>

#include <conio.h>

int main ( )

char ch ;

cout<<"Enter a Character : " ;

ch=cin.get( ) ;

cout<<"Your typed Character(s) : " <<ch ;

getch ( ) ;

return 0 ;

Enter a character : b

You typed character : b

Page 50: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

: چهارم فصل

کنترلی ساختار

از بعضی بخواهیم اگر. شوند می اجرا دستور آخرین به دسـتور اولین از برنامه دستورات عادی حالت در دسـتورات برخی یا و شوند اجرا خاصی شـرایط تحت دسـتورات از بعضی و شوند اجرا بار چندین دستورات

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

تکرار ساختارهای( 1

تصمیم ساختارهای( 2

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

تکرار ساختارهای( 1-2

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

:for تکرار ساختار( 1-1-2

از حـلقه تکرار دفـعات تعداد که حالتی در مـعموال و اسـت حـلقه ایجاد امکانات از یکی for تـکرار سـاختاررود. می کار به بـاشد مـشخص قـبل

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

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

باشد. کاراکتر یا و منفی ، مثبت ، اعشاری ، صحیح عددی تواند می حرکت گام

صفحه50

Page 51: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

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

. شود می خارج تکرا حلقه از برنامه کنترل

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

. گردند می معرفی زیر در که است استفاده قابل صورت دو به for دستور

: اول روش

: دوم روش

اندیس اولیه مقدار فاقد for ، دوم روش در : نکته دستور این. است حرکت گام و حلقه شرط ، حلقه

) ; ; حـلقه) نهایت بی تـکراری حلقه ایجاد برای ) قرار اسـتفاده مـورد( نـدارد پایان شرط که تکرایی

. گیرد مـی

، نهایت بی تکراری حلقه به دادن خاتمه بـرای : تذکر. فشاریم می همزمان را Ctrl + Break های کـلید

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

. باشد می استفاده قابل زیر صورت به for دستور ،

صفحه51

for ( حرکت ; ; گام حلـقه شرط حلـقه اندـیس اولـین ( مقدار

1دستور ;

n دستور ;

for ( ; ; )

1دستور ;

-----

n دستور ;

for ( ; ; حرکت گام ــه حلقـ شرط ــه حلقـ ــس اندیـ ــن اولیـ ( مقداراول : روش

; دستور

-----------------------------------------------------------------------------------------------------------------------

for ( ; ; ) دوم : روش

; دستور

Page 52: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

#include <iostream.h>

#include <conio.h>

int main()

clrscr();

int i , num ,sum=0 ;

float ave;

const int n=5;

for(i=0 ; i<n ; i++)

cout<<"Enter the number"<<(i+1)<<":";

cin>>num;

sum+=num;

//end of for

ave = (float) (sum/n) ;

cout<<"The average is:"<<ave;

getch();

return 0;

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

از را صحیح عدد 5 که بنویسید ای برنامه : مثال. نماید چاپ و محاسبه را آن میانگین و خوانده ورودی

صفحه52

هدف نامحلقه شمارنده i

اعداد مجموعه sum

میانگین ave

شود می خوانده که عددی numاعداد تعداد که 5 طول به ثابتی باشد می n

Page 53: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

: برنامه خروجی

اعداد : میانگین محاسبه

صفحه53

Enter the number 1 : 12

Enter the number 2 : 13

Enter the number 3 : 15

Enter the number 4 : 16

Enter the number 5 :13

The average is : 13.80#include<iostream.h>

#include<conio.h>

#include<math.h>

main()

int i, n;

double sum=0, mark;

cout<<"please insert the numbers of student ";

cin>>n;

cout<<"please insert the mark of students" ;

for(i=1;i<=n;i++)

cin>>mark;

sum=sum+mark;

cout<<"the average is :"<<sum/n;

getch();

return 0 ;

Page 54: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

. کند چاپ خروجی در 0.5 فاصله با را 3.5 تا 0.5 اعداد که بنویسید ای برنامه : مثال

صفحه54

#include <iostream.h>

#include <conio.h>

int main()

float i;

clrscr();

for(i=0.5;i<=3.5;i+=0.5)

cout<<i<<" ";

getch ();

return 0;

Page 55: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

: برنامه خروجی

. ببرد خروجی به را f تا a های کاراکتر که بنویسید ای برنامه : مثال

صفحه55

0.5 1 1.5 2 2.5 3 3.5

#include <iostream.h>

#include <conio.h>

int main()

clrscr( );

char ch;

for(ch='a';ch<='f';ch++)

cout<<"Ch = "<<ch<<endl;

getch( );

return 0;

Page 56: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

: برنامه خروجی

جمله انتهای و کند شمارش را آن حروف تعداد و خوانده ورودی از را ای جمله که بنویسید ای برنامه : مثال. شود ختم نقطه به

صفحه56

Ch = a

Ch = b

Ch = c

Ch = d

Ch = e

Ch = f

#include <iostream.h>

#include <conio.h>

int main()

clrscr( );

int n;

cout<<"Enter a statement winth( ) enter in end :"<<endl;

for(n=0 ; cin.get ()!='.' ;n++);

cout<<"Lenth of statement is:"<<n;

getch( );

return 0;

Page 57: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

: برنامه خروجی

ختم( سیمی) ، (( ;)) به است آمده برنامه این در که تکراریی حلقه : نکته دلیل هـمین به است شده کالن. ندارد وجود تکرار حلقه داخل دستوری هیچ

:for با تو در تو تکرار های حلقه

. گویند می تو در تو حلقه آن به ، باشد داشته قرار دیگری تکرار حلقه داخل در تکراری حلقه وقتی

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

. شود می مشخص خارجی

، (( j)) اندیس با تکرار حلقه و خارجی حلقه ، (( i )) اندیس با تکرار حلقه زیر دستورات در مثال بعنواناست. داخلی تکرار حلقه

صفحه57

Enter a statement winth( ) enter in end : I like C++ Very Much.

Lenth of statement is : 20

for ( i = 0 ; i < 5 ; i++ )

--------------------------------------------

for ( j = 0 ; j < 6 ; j++ )

----

----

Page 58: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

این در( باشد داشته پایان و آغاز) شود ختم جا یک به و شده شروع جا یک از تو در تو تکرار های حلقه اگر. ندارد آکوالد ، (( )) به نیازی خارجی حلقه حالت

: مثال بعنوان

ضرب جدول که بنویسید ای .:m*nبرنامه کند چاپ را

صفحه58

for ( i = 0 ; i < 5 ; i++)

for ( j = 0 ; j <= 6 ; j++ )

------

#include<iostream.h>

#include<conio.h>

main ()

int n,m,i,j;

cout<<"please insert n and m";

cin>>n>>m;

cout<<"*"<<"\t";

for(j=1;j<=m;j++)

cout<<j<<"\t";

for(i=1;i<=n;i++)

cout<<"\n"<<i<<"\t";

for(j=1;j<=m;j++)

cout<<i*j<<"\t";

getch();

return 0;

Page 59: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

:setwمعرف ضرب جدول برنامه کمک به

صفحه59

#include<iostream.h>

#include<iomanip>

#include<conio.h>

main ()

int n,m,i,j;

cout<<"please insert n and m";

cin>>n>>m;

cout<<"*"<<setw(4);

for(j=1;j<=m;j++)

cout<<j<<setw(4);

for(i=1;i<=n;i++)

cout<<"\n"<<i<<setw(4);

for(j=1;j<=m;j++)

cout<<i*j<<setw(4);

getch();

return 0;

Page 60: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

:for حلقه و (( ,)) کاما عملگر

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

: مثال بعنوان

for ( i = 0 , m += i ; i < 10 ; i++ , m++ )

----

m به واحد یک و i به واحد یک تکرار هر در کاما دومین و دهد می اولیه مقدار m و i متغیر دو به ، کاما اولین. کند می اضافه

صفحه60

Page 61: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

. کند چاپ و محاسبه را زیر سری از اول ای جمله 6 مجموع که بنویسید ای برنامه: مثال

: برنامه خروجی

. کند چاپ و محاسبه را n تا 1 اعداد مجموع و گرفته را n عدد که بنویسید ای برنامه : مثال

: دوم روش از حل : اول روش از حل

صفحه61

#include <iostream.h>

#include <conio.h>

#define n 6

int main ()

int m;

float s,x;

clrscr();

for(s=0,x=1.0,m=1;m<=n;m++,x*=2)

s=s+1/x;

cout<<" s = "<<s<<" when m = "<<m<<endl;

getch( );

return 0;

ای جمله n مجموعسری

n

بار هر در جمالت تعداد mهر در جمالت مجموع

بارs

کسـر مخرج مولد x

S = 1 when m = 1

S = 1.5 when m = 2

S = 1.75 when m = 3

S = 1.875 when m = 4

S = 1.1375 when m = 5

S = 98975 when m = 6#include <iostream.h>

#include <conio.h>

int main()

int n,i,sum;

sum=0;

cout<<"Enter a number:";

cin>>n;

for(i=1;i<=n;i++)

sum=sum+i;

cout<<"the resut is :"<<sum;

getch( );

return 0;

#include <iostream.h>

#include <conio.h>

int main()

int n,s;

cout<<"Enter a number:";

cin>>n;

s=n*(n+1)/2;

cout<<"S("<<n<<")="<<s;

getch( );

return 0;

Page 62: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

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

صفحه62

#include<iostream.h>

#include<conio.h>

main()

int n, i ;

double fact=1;

clrscr();

cout << "Enter a positive integer number: " ;

cin >> n;

for( i=1; i<=n; i++)

fact=fact*i;

cout <<i<<"!="<<fact<<"\n";

getch();

return 0 ;

Page 63: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

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

for ( i = 1 ; i++ )

یا

for) ; ; (

:while تکرار ساختار( 2-1-2

. رود می کار به دستورات اجرای تکرار برای که است امکاناتی از دیگر یکی whileتکرار ساختار

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

صفحه63

while (شرط )

; دستور

Page 64: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

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

دستور یک از بیش که صورتی در) است الزامی آکوالد از استفاده حالت این در که کنید می مالحظه : تذکر( . باشد داشته وجود

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

.

. شود می ایجاد نهایت بی تکراری حلقه( نشود نقض گاه هیچ) باشد درست همیشه حلقه شرط اگر

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

معکوسعدد : محاسبه

صفحه64

while ( شرط )

1دستور ;

----

nدستور ;

#include<iostream.h>

#include<conio.h>

#include<stdio.h>

main ()

int n, i=1, a;

cout<<" please insert the number";

cin>>n;

while(n>0)

a=n%10;

cout<<a;

n=n/10;

getch ();

return 0;

Page 65: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

: برنامه خروجی

. کند چاپ را آن کاراکترهای تعداد و خوانده ورودی از را ای جمله که بنویسید ای برنامه : مثال

صفحه65

#include <iostream.h>

#include <conio.h>

int main()

int number=0;

cout<<"Enter a statement: ";

while(cin.get() !=-'\n')

number++;

cout<<"lenth of statement is:"<<number;

getch();

return 0;

Enter a number : 1234

Invers = 4321

Page 66: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

همراه به و کرده محاسبه را آنها مربعات مجموع ، خوانده را عدد تعدادی که بنویسید ای برنامه : مثال. ببرد خروجی به تعدادشان

صفحه66

#include <iostream.h>

#include <conio.h>

int main()

int x,s=0,n=0;

char ans='y';

while (ans=='y')

cout<<"Enter a number;";

cin>>x;

s=s+x*x;

n++;

cout<<"Do you want to continue?(y/n):";

cin>>ans;

//end of while

cout<<"you entered"<<n<<"nembers"<<endl;

cout<<"sum of squars is:"<<s;

getch( );

return 0;

Page 67: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

: برنامه خروجی

:do …. While تکرار ساختار( 3-1-2

صفحه67

Enter a number : 3

Do you want to continue?(y/n): y

Enter a number : 4

Do you want to continue?(y/n): y

You entered 2 numbers

Sum of squars is : 25

Page 68: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

در حلقه شرط while ساختار در که تفاوت این با ، است while تکرار ساختار مانند do …. While تکرار ساختار اجرا بار یک حداقل حال هر در do …. While حلقه در موجود دستورات بنابراین. شود می تست حلقه ابتدای

. شوند می

؛ باشد می زیر های صورت به ساختار این

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

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

صفحه68

do اول : روش

1دستور ;

n دستور ;

while (شرط ) ;

---------------------------------------------------------------------------------------------------

do دوم : روش

; دستور

While ( شرط ) ;

Page 69: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

. ببرد خروجی به را آنها وارون و گرفته ورودی از را عدد تعدادی که بنویسید ای برنامه : مثال

: برنامه خروجی

صفحه69

#include <iostream.h>

#include <conio.h>

int main()

int num,digit;

while(1)

cout<<"\n enter anumber:";

cin>>num;

cout<<"invers=";

do

digit=num%10 ;

num/=10;

while(num!=0);

//end of while(1)

//return 0;

Enter a number : 1234

Invers = 4321

Enter a number :

Page 70: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

شرط در ، نهایت بی تکراری حلقه ایجاد برای شده ایجاد نهایت بی تکرار حلقه یک باال برنامه در : توضیح. دادیم قرار را( 1) عدد ، حلقه

. کند نمی تغییز نیز برنامه اجرای طول در و است درستی ارزش دارای ++C در و است صفر غیر مقداری( 1)

. دارد عهده بر را عدد کردن وارون وظیفه do …. While حلقه یعنی دیگر تکرار حلقه

. نیست ;return 0 دستور به نیازی ، یابد می خاتمه Ctrl+Break کلید با برنامه چون : نکته

؟ کنیم استفاده تکرار حلقه کدام از

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

، داشت وجود شرایطی اگر. کنیم استفاده do …. While و while های حلقه از کنیم می سعی دیگر موارد در استفاده do …. While ، شوند اجرا بار یک حداقل حلقه دستورات ، نادرست چه و باشد درست حلقه شرط چه. کنیم می استفاده while حلقه از صورت این غیر در ، کنیم می

صفحه70

Page 71: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

: تصمیم ساختارهای( 2-2

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

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

. کنیم می بررسی بخش این در را آنها که دارد وجود تصمیم ساختار چندین ++C زبان در

:if تصمیم ساختار( 1-2-2

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

. است شرطی کنترل انتقال دستور ، if ساختار دیگر نام

؛ رود می بکار زیر های صورت به دستور این

صفحه71

If (شرط ) اول : روش

; دستور

else

; دستور

------------------------------------------------------------------------------------------

if (شرط ) دوم : روش

1دستور ;

-----

nدستور ;

else

1دستور ;

-----

nدستور ;

Page 72: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

و شوند می اجرا if از بعد دستورات یا دستور ، باشد بررسی مورد شرط چنانچه ، روش دو این از یک هر در. شوند می اجرا else از پس دستورات ، باشد نادرست اگر

دستورات آن ، بیاید دستور یک از بیش else و if از پس اگر از پس اگر ولی ، گیرند قرار و بین در باید حتما. نیست الزامی آکوالد از استفاده باشیم داشته دستور یک تنها یک هر

دستورات ، باشد درست موردبررسی شرط چنانچه باشد else قسمت فاقد تواند می if دستور : مهم نکته می خارج if از برنامه اجرای کنترل دستورات این اجرای بدون صورت این غیر در ، شوند می اجراif از پس. شود

. کند چاپ و محاسبه آنرا های علیه مقسوم کلیه و گرفته را n عدد که بنویسید ای برنامه : مثال

صفحه72

#include <iostream.h>

#include <conio.h>

int main()

int n,i;

cout<<"enter the number:";

cin>>n;

for(i=1;i<=(n/2); i++)

if(n%i==0)

cout<<i<<"*";

getch( );

return 0;

Page 73: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

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

. کند محاسبه را آن

صفحه73

#include <iostream.h>

#include <conio.h>

#include <math.h>

int main( )

int a,b,c;

double del,p,q;

cout<<"enter the number;";

cin>>a>>b>>c;

del=pow(b,2)-(4*a*c);

p=sqrt(del);

q=sqrt(abs(del));

if(del>0)

cout<<"x1="<<((-b)+p)/(2*a)<<"& x2="<<((-b)-p)/(2*a);

if(del==0)

cout<<"x="<<(-b)/(2*a);

if(del<0)

cout<<"x1="<<"-"<<(b/2)<<"+"<<(q/2)<<"*i&x2="<<"-"<<(b/2)<<"-"<<(q/2)<<"*i";

getch( );

return 0;

Page 74: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

. کند چاپ را حاصل و تقسیم کوچکتر عدد بر را بزرگتر عدد و گرفته را عدد دو که بنویسید ای برنامه : مثال

صفحه74

#include <iostream.h>

#include <conio.h>

int main( )

double a,b,c;

cout<<"enter the first num :";

cin>>a;

cout<<"enter the second num:";

cin>>b;

if(a>b)

c=a/b;

cout<<"the answer is:"<<c;

if (a<b)

c=b/a ;

cout<<"The answer is:"<<c;

getch();

return 0;

Page 75: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

:else if تصمیم ساختار( 2-3-2

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

. کاهد می نیز

. برد باال را برنامه خوانایی میزان و شود گرفته به تو در تو هایif بجای تواند می else if ساختار

. کند چاپ خروجی در آنرا حرفی معادل و گرفته را دانشجویی عددی نمره که بنویسید ای برنامه : مثال

Grade یابد می خاتمه برنامه ، شود وارد صفر نمره وقت هر است، دانشجو عددی نمره .

صفحه75

#include <iostream.h>

#include <conio.h>

int main( )

int grade ;

cout<<"Enter a grade : " ;

cin>>grade ;

while ( grade)

if (grade>=17 && grade<=20 )

cout<<"In Score = "<<'A' ;

else if (grade >=15 && grade<17 )

cout<<"Score = "<<'B' ;

else if ( grade >=12 && grade<15 )

cout<<"Score = "<<'C' ;

else if ( grade <12)

cout<<"Score = "<<'D' ;

cout <<"\n Enter a grade : " ;

cin>>grade ;

return 0;

Page 76: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

: برنامه خروجی

: شرطی غیر کنترل انتقال( 3-2-2

در. دهد می انجام را هایی العمل دستور بررسی نتیجه اساس بر و کرده بررسی را شرطی if دستور دیدیمC++ دیگر نقطه به ای نقطه از را برنامه اجرای کنترل توانند می شرط تست بدون که دارند وجود دستوراتی

. کنند منتقل

:break دستور

؛ است زیر صورت به آن کاربرد نحوه ، شود می تکرار حلقه از خروج موجب دستور این

<break ;>

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

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

صفحه76

Enter a grade : 19

Score : A

Enter a grade : 14

Score : B

Enter a grade : 0

Page 77: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

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

یک. است فرد اعداد تعداد برابر –count) (nو شده خوانده اعداد کلn ، زوج اعداد تعداد count برنامه این در با تکرار حلقه باشد صفر عدد این چنانچه ، شود می خوانده بررسی مورد عدد و ایجاد نهایت بی تکرار حلقه

break یابد می خاتمه .

صفحه77

#include <iostream.h>

#include <conio.h>

int main( )

int num , count = 0 , n = 0 ;

while (1)

cout<<"Enter a Number : " ;

cin>>num ;

if (num==0)

break ;

n++ ;

if (num %2 ==0)

count++ ;

cout<<"\n Evant Numbers = "<<count<<"odd number = "<<(n-count) ;

getch ( ) ;

return 0;

است صفر غیر مقداری 1

درستی ارزش دارای ++C در است

ثابت برنامه اجرای طول دراست

(1 عدد) برنامه شرط زمانی* یا حاصل که شود می نقض

Page 78: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

: برنامه خروجی

. کند تجزیه اول های عامل به آنرا و گرفته ورودی بعنوان را عدد یک که بنویسید ای برنامه : مثال

صفحه78

Enter a number : 12

Enter a number : 15

Enter a number : 18

Enter a number : 0

Evant numbers = 2 Odd numbers = 1

#include <iostream.h>

#include <conio.h>

int main( )

int i , n ;

cout<<"Enter a Number : " ;

cin>>n ;

while (n>1)

for (i=2 ; i<=n ; i++)

if (n%i==0)

break ;

cout<<i<<" & " ;

n=n/i ;

getch ( ) ;

return 0 ;

Page 79: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

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

#include "stdafx.h"#include<iostream>#include<conio.h>using namespace std; int main () int n,i=2; cout<<"please Enter n"; cin>>n; while(n>1)

if(n%i==0) cout<<i<<"\t";

n=n/i; else

i=i+1;

getch();

صفحه79

Page 80: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

return 0;

:continue دستور

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

. یابد می خاتمه حلقه صورت

می چاپ خروجی در را آن از بعد کاراکتر و کاراکتر این ، خوانده ورودی از را کاراکتر یک که ای برنامه : مثال. یابد می خاتمه برنامه& کاراکتر ورود با کند

نادرستی ارزش) شده صفر برابر doneو& متغیر ورود با ، کنیم می استفاده done متغیر از حلقه کنترل برای شود می تست شرط و برد می while حلقه ابتدای به را برنامه اجزای کنترل continue دستور و( کند می پیدا

. یابد می خاتمه حلقه ، شده نقض شرط چون ،

#include"stdafx.h"

صفحه80

Page 81: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

#include <iostream>#include <conio.h>using namespace std;int main()int done=1 ;char ch,b ;while (done) cout<<"Enter a Character : " ;cin>>ch ;if (ch=='&')done=0 ;continue ; //end of ifcout<<"You Typed "<<ch<<"\t" ;b=ch+1;

cout<<"\n and the next char is "<<b<<"\n"; // end of whilegetch ( );return 0;

برنامه: کند: چاپ صفر عدد بجز را 100 تا 100- اعداد که بنویسید ای مثال#include"stdafx.h"#include <iostream>#include <conio.h>using namespace std;int main()

int i=-100;while(1)

if(i==0)i=i+1;continue;

elsecout<<i<<"\t";if(i==100)

break;i=i+1;

getch ( );return 0;

. و گرفته ورودی از را عدد دو که بنویسید ای برنامه : مثال م. م . ، ب م. م . کند چاپ و محاسبه را آنها ک

: . . م م ب محاسبه

صفحه81

#include<iostream.h>

#include<conio.h>

main()

int m,n,max,min,p;

cout<<"please Enter m: ";

cin>>m;

cout<<"please Enter n: ";

cin>>n;

if(m>n)

max=m;

min=n;

else

max=n;

min=m;

for(p=min;p>1;p--)

if((m%p==0)&(n%p==0))

cout<<p;

break;

getch();

return 0;

Page 82: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

: . . م م ک محاسبه

صفحه82

#include<iostream.h>

#include<conio.h>

#include<stdio.h>

main()

int m,n,max,min,p;

clrscr();

cout<<"please Enter m: ";

cin>>m;

cout<<"please Enter n: ";

cin>>n;

if(m>n)

max=m;

min=n;

else

max=n;

min=m;

for(p=max;;p++)

if((p%max==0)&(p%min==0))

cout<<p;

break;

getch();

return 0;

Page 83: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

پنجم: فصل

توابع

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

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

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

صفحه83

Page 84: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

شده نوشته قبل از دارند، زیادی وکاربرد گیرند می قرار استفاده مورد ها برنامه اغلب در که توابع از تعدادیمثل. می ارائه ++C کامپایلر همراه به و کتابخانه توابع را توابع این ، )(clrscr تابع ویا )(cos و )(SIN توابع شوند

گویند. می ای

در. قرار استفاده مورد برنامه ودر بنویسد را توابعی ضرورت برحسب تواند می نیز نویس برنامه این دهدداد. خواهیم توضیح را توابع قبیل این نوشتن روش فصل

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

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

کنیم. می تعیین را آن های وخروجی ها ورودی تابع، منظور،ساختار این

است: مقابل فرم به برنامه در تابع یک کلی ساختار

: تابع نوشتن

بعنوان. مشخص تابع اهداف باید تابع، نوشتن برای ها ورودی دارد، عهده به ای وظیفه چه تابع مثال، باشندبا... . کدامند تابع های وخروجی هر. دشوار چندان تابع نوشتن موارد این دانستن و جنبه سه دارای تابع نیست

است:

مجموعه: تعریف جنبه.1 کنند. می مشخص را تابع عملکرد که دستورات از ای تابعدستوری: فراخوانی جنبه.2 فراخوانی. می فراخوانی را تابع که است تابع می انجام آن نام با تابع کند

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

شود. می تعریف کاربر توسط که است دیگری انواع ویا است ++C در موجود انواع از یکی یا" تابع نوع"

صفحه84

نام تابع نوع (لیست پارامترها) تابع

1; دستور

2; دستور

.......

.......

n; دستور

Page 85: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

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

گیرند. می قرار پرانتز داخل

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

اعالن. اعالن کامپایلر به )(main تابع از خارج در را آن باید برنامه، در تابع کارگیری به برای : نکته را تابع کردشود. می فراخوانی چگونه تابع کند می مشخص که ، گویند می تابع الگوی

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

کنیم: می توجه زیر موارد به ++C در توابع نوشتن هنگام به : نکته

نیزاعالن )(main تابع در توان می هرچند) کنیم می اعالن )(main تابع از قبل را توابع تمام الگوی.1کرد( .

کنیم. می تعیین را تابع نوع.2کنیم. می فراخوانی نامشان با را آنها توابع اجرای برای.3هیچ. می تعریف تابع داخل در را توابع نیاز مورد متغیرهای.4 توابع متغیرهای از تواند نمی تابعی کنیم

مگر. استفاده دیگر شوند. منتقل پارامترها طریق از اینکه کندنیست. پذیر امکان دیگر تابع داخل در تابع یک تعریف.5باشند. یکسان ها وآرگومان پارامترها ونوع تعداد که کنیم می دقت تابع فراخوانی هنگام.6بلکه. پارامترها اسامی ذکر به نیازی توابع الگوی اعالن هنگام.7 می کفایت آنها نوع ذکر نیست

: مانند. کندInt f(int,int)

برنامه: در تابع بکارگیری شیوه

صفحه85

<نام تابع نوع تابع (لیست پارامترها);>

Page 86: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

نیست. برنامه در آن الگوی ذکر به نیازی شود تعریف )( main تابع از قبل استفاده مورد تابع اگرنکته:

: توابع نوشتن مورد در نکاتی

برنامه و کنیم می مشخص را انتظار مورد ونتیجه ها آرگومان تابع، جزئیات به پرداختن بدون ابتدا.1بعبارت. می را اصلی ( جزئیات اول گام در نیست دیگر،نیازی نویسیم تابع) کنیم. مشخص را تعریف

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

گویند. می اطالعات سازی پنهان را موضوعکنیم. استفاده وپارامترهایشان ها آرگومان از توانیم می توابع بین ارتباط برقراری برای.3

: وعمومی محلی متغیرهای

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

صفحه86

#include< >

int f(int a, int b); الگوی تابع

int main()

int a,b;

-----

f(a,b);آرگومان های تابع

-----

Return o;

تعریف تابع(دستور العمل اجرای تابع) //

int f(int a , int b)

a , b عملیات روی

--

Page 87: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

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

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

شوند: می تقسیم دسته سه برگردانند،به فراخوان تابع به توانند می که مقادیری تعداد نظر از توابع

(void)گردانند برنمی را مقداری هیچ که توابعی.1گردانند. برمی را مقدار یک که توابعی.2گردانند. برمی را مقدار چندین که توابعی.3

گردانند برنمی را مقداری هیچ که توابعی. 1

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

الگوی. خواهد منظور void آن نوع برنگرداند، فراخوان برنامه به را مقداری هیچ تابع void نوع از توابع شددارد. قرار > stdio.h< فایل در

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

صفحه87

Page 88: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

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

: برنامه خروجی

صفحه88

#include <iostream.h>

#include <conio.h>

#include <stdio.h>

void convert(void);

int main()

convert();

getch();

return o;

// ****

void convert(void)

int h , m , s;

int time;

cout<<”Enter the time : “ ;

cin >>h>>m>>s ;

time = (60 * h + m ) * 60 + s ;

cout<<”The Result is : “ <<time<<” Seconds” ;

Enter the time : 1 30 45

The time is : 5445 Seconds

Page 89: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

گردانند. برمی را مقدار یک که توابعی. 2

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

شود: می استفاده زیر های بصورت ” return ” دستور از تابع توسط نظر مورد مقدار برگرداندن برای

ندارد. وجود فوق روش دو بین تفاوتی

ضرب تابع جدول کمک به

#include "stdafx.h"#include<iostream>#include<conio.h>using namespace std;void f(int x, int y);int main()

int i,j;for(i=1;i<=4;i++)

for(j=1;j<=4;j++)f(i,j);

//cout<<"f "<<i<<"is"<<f(i)<<"\n";getch();return 0;void f(int x,int y)int q; q=x*y; if(y==1)

cout<<"\n";cout<<q<<"\t";

صفحه89

<return (عبارت) ; >

یا

<return (عبارت) ; >

Page 90: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

خیر؟ یا است اول ورودی عدد کند تعیین تابع کمک به که بنویسید ای برنامه : مثال

صفحه90

#include <iostream.h>

#include <conio.h>

int prime(int a) ;

int main ( )

int a ;

char ans ;

while (1)

cout<<"Enter a Number : " ;

cin>>a ;

if (prime(a))

cout<<a<<"Is prime \n\n\n " ;

else

cout<<a<<"Is not prime \n\n\n " ;

cout<<"Do you want to Continue ? ( y / n ) : " ;

cin>>ans ;

if (ans!='y')

break ;

getch ( ) ;

return 0 ;

// * * * *

int prime (int a)

if (a == 2)

return 1;

Page 91: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

: بازگشتی توابع

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

وتابع. می فراخوانی را f2 تابع )( f1 مثل تابعی غیرمستقیم روش در است را )(f1 تابع نیز )(f2 کندکند. می فراخوانی

را آن فاکتوریل بازگشتی تابع کمک به و خوانده ورودی از را n مانند عددی که بنویسید ای برنامه مثال:کند. محاسبه

شود: می تعریف زیر بصورت n ومثبت صحیح عدد فاکتوریل دانیم می

n!=1 n=0

n!= n*(n-1)! n>0

براساس. می تعریف خودش برحسب فاکتوریل روش این در فاکتوریل محاسبه برای فوق تعریف شودتابه. محاسبه را آن از قبل عدد فاکتوریل باید ابتدا هرعدد، حالت. توقف حالت کرد در توقف رسید شده تعریف 1صفر، عدد فاکتوریل حالت این در که شود می n=0 که است فاکتوریل،حالتی محاسبه

است.

صفحه91

int i ;

for (i=2 ; i<=(a/2) ; i++ )

if (a%i ==0)

return 0 ;

return 1 ;

#include <iostream.h>

#include <conio.h>

int fact (int n) ;

int main ( )

int n ;

cout <<"Enter a Number : " ;

cin>>n ;

cout<<"\n fact ("<<n<<") = " <<fact (n) ;

getch ( ) ;

return 0 ;

Page 92: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

: برنامه خروجی

گشتی باز توابع کمک به فیبوناچی سری جمالت#include "stdafx.h"#include<iostream>#include<conio.h>using namespace std;int fibo(int n);int main()

int n;cout<<"please Enter n";cin>>n;cout<<fibo(n);

getch();return 0;

صفحه92

int fact (int n)

if (n!=0)

return (n * fact (n-1)) ;

else

return 1 ;

Enter a number : 3

fact ( 3 ) = 6

Page 93: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

int fibo(int n)

if(n==1||n==0)return 1;else

return fibo(n-1)+fibo(n-2);

: همنام توابع

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

int func(int ,int);

int func(long,long);

int func(long);

تابع شده فراخوانی تابع آرگومانهای ترتیب و انواع تعداد، به توجه با ++C شود، می فراخوانی تابعی وقتیوقتی. می انتخاب را مناسب دهند، می انجام ها داده مختلف انواع روی را مختلفی کارهای توابعی کند

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

: ریاضی تابع چند

هستند. زیر فرم به آنها از برخی. اند استفاده وقابل موجود ++C در متعددی ای کتابخانه توابع

دارد. قرار >”math .h“< فایل در زیر توابع تمام الگوی

استفاده قابل زیر فرم وبه گیرد می قرار استفاده مورد صحیح اعداد قدرمطلق محاسبه برای: )(abs تابعاست:

int abs(int num)

گیرد. می قرار استفاده مورد مثبت عدد یک جذر محاسبه برای: )(sqrt تابع

double sqrt(double num)

: مانند. برسانیم کسری توان به را عبارت توانیم می ، عبارت یک ام n ریشه محاسبه برای نکته:

=

( مبنا یک تابع این: )(pow تابع را) رساند. می شده داده توان به را وآن گرفته پایه

double pow(double پایه , doubleتوان )

کند. می محاسبه را مثبت اعداد ( ln) طبیعی لگاریتم تابع این: )(log تابع

صفحه93

Page 94: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

double log(double num)

کند. می محاسبه را مثبت اعداد 10 مبنای در لگاریتم تابع این: )(log10 تابع

double log10(double num)

جزء.) می محاسبه را عدد یک مساوی کوچکتریا صحیح مقدار بزرگترین تابع این : )(floor تابع صحیح کند

کند.( می محاسبه را عدد

double floor(double num) floor(-1.02) = -2

عکس. ) می محاسبه را خود آرگومان مساوی یا بزرگتر صحیح عدد کوچکترین تابع این : )( ceil تابع کند

جزءصحیح( تابع

double ceil(double num) ceil (- 1.02) = -1

رساند. می خود آرگومان توان به را e عدد تابع این: )(exp تابع

double exp( double num)

رود. می بکار رادیان حسب بر زاویه یک sin محاسبه برای : )(sin تابع

double sin(double arg)

رود. می بکار رادیان برحسب زاویه یک cos محاسبه برای: )(cos تابع

double cos( double arg)

رود. می بکار رادیان برحسب زاویه یک tan محاسبه برای: )(tan تابع

double tan(double arg)

رود. می بکار عدد یک سینوس آرک محاسبه برای: )(asin تابع

صفحه94

Page 95: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

double asin( double num)

باشد. می ,- ] بازه در و رادیان برحسب حاصل نتیجه و [1,1]- بازه در تابع این آرگومان : نکته

گیرد. می قرار استفاده مورد عدد یک کسینوس آرک محاسبه برای: )(acos تابع

double acos ( double num)

باشد. می[π, 0] بازه در و رادیان برحسب حاصل نتیجه و [1,1]- بازه در تابع این آرگومان : نکته

رود. می بکار عدد یک تانژانت آرک محاسبه برای: )(atan تابع

double atan ( double num)

باشد. می ,- ] بازه در و رادیان برحسب حاصل نتیجه و )- ∞ ,+ ∞( بازه در تابع این آرگومان : نکته

حاصل تانژانت وآرک کرده تقسیم دومی بر را اولی و کرده دریافت را آرگومان دو تابع این: )(atan2 تابع

کند. می محاسبه را

double atan ( double x, double y)

رود. می بکار رادیان حسب بر زاویه یک هیپربولیک سینوس محاسبه برای :)(sinh تابع

double sinh(double arg)

رود. می بکار رادیان برحسب زاویه یک هیپربولیک کسینوس محاسبه برای: cosh تابع

double cosh(double arg)

صفحه95

Page 96: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

رود. می بکار رادیان برحسب زاویه یک هیپربولیک تانژانت محاسبه برای: )(tanh تابع

double tanh(double arg)

. شود می استفاده زیر دستور از نیز اعشاری اعداد قدرمطلق محاسبه برای

double fabs(double num)

.++C در را زیر ریاضی عبارت معادل مثال: بنویسید

کند. چاپ 100 تا1 اعداد ازای به را + Xعبارت حاصل تابع از استفاده با که بنویسید ای برنامه : مثال

صفحه96

Q =

Q =

#include <iostream.h>

#include <conio.h>

#include <math.h>

double f ( double x ) ;

int main ( )

int i;

for(i=1 ; i<=100 ; i++ )

cout<<"F ("<<i<<")="<<f(i)<<"\n" ;

getch ( ) ;

return 0;

// * * * *

double f(double x)

double q ;

q = pow(x,2) + x ;

return q ;

Page 97: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

: برنامه خروجی

کند. وچاپ محاسبه زیر رابطه طبق را F مقدار که بنویسید ای برنامه تابع کمک به- 1تمرین

else

( :1 تمرین حل

صفحه97

F (1) =2

F (2) = 6

F (3) = 12

……….

……….

f(X) =

#include <iostream.h>

#include <conio.h>

#include <math.h>

double f(double x) ;

int main ( )

int x ;

cout <<"Enter a number : " ;

cin>>x ;

cout<<"f( "<<x<<" )="<<f(x)<<"\n" ;

getch ( ) ;

return 0 ;

// * * * *

double f(double x)

if ((x>1) & (x<10))

double q ;

q=pow(x,2)+x+41 ;

return q ;

else c

double q ;

q = pow(x,2)+x ;

return q ;

Page 98: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

: برنامه خروجی

صفحه98

Enter a number : 7

f (7) = 97

Page 99: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

: ششم فصل

ها آرایه

صفحه99

Page 100: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

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

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

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

کنیم. می استفاده ها آرایه از مسائل قبیل این حل برای

هر. همنوع عناصر از ای مجموعه آرایه معمولی متغیرهای مانند که است نامی دارای آرایه است

شود. می نامگذاری

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

گویند. می نیز دار اندیس

( : یک های آرایه لیست) بعدی

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

آرایه. شوند: می تعریف زیر فرم به ++C در بعدی یک های یافت

مورد آرایه عناصر به دسترسی برای آرایه نام. است ++C در استفاده قابل انواع از یکی آرایه نوع

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

کند. می تعریف صحیح اعداد از 5 بطول و x بنام ای زیرآرایه دستور مثال، بعنوان

int x[5];

صفحه100

<نام آرایه نوع آرایه [ طول آرایه] >

Page 101: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

مثال مانند ای آرایه عناصر دیگر، بعبارت . شود می شروع صفر از ++C در ها آرایه اندیس : مهم نکته

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

X[2] =6 : مثال بعنوان

411637

X[0] X[1] X[2] X[3] X[4]

خروجی به را مثبت اعداد سپس منفی اعداد ابتدا خوانده ورودی از را عدد 10 تعداد که ای برنامه مثال:

همچنین. دهد. نمایش نیز را ومنفی مثبت اعداد تعداد ببرد

صفحه101

#include <iostream.h>

#include <conio.h>

int main ( )

const int n=10 ;

int a[n] , i , c1=0 , c2=0 ;

cout<<"Enter "<<n<<" numbers : " ;

for (i=0 ; i<n ; i++)

cin>>a[i] ;

cout<<"\n negetives are : " ;

for (i=0 ; i<n ; i++)

if (a[i]<0)

cout<<" "<<a[i] ;

c1++ ;

cout<<"\n positives are : " ;

for (i=0 ; i<n ; i++)

if (a[i]>0)

cout<<" "<<a[i] ;

Page 102: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

: برنامه خروجی

صفحه102

c2++ ;

cout<<"\n Number of negatives : "<<c1 ;

cout<<"\n Number of positives : "<<c2 ;

getch ( ) ;

return 0 ;

Enter 10 number : 12 -3 -6 14 -7 11 -7 5 19 9

Negatives are : -3 -6 -7 -7

Positives are : 12 14 11 5 19 9

Number of Negatives = 4

Number of Positives = 6

Page 103: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

شده استفاده تابع آرگومان عنوان به معمولی متغیرهای از ، دیدیم تاکنون که همانطور : مهم نکته

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

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

شود: تعریف زیر های صورت به تواند

مشخص طول با آرایه.1

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

شود. منتقل

شود: رجوع مقابل جدول به شده گفته مفاهیم به بردن پی برای

صفحه103

int f(int a[ ] ) ;

int main ()

int a[10] ;

……..

f (a)

……..

return 0;

// * * * *

int f(int a[10])

……..

Page 104: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

: بعدی چند های آرایه

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

مشخص را دارد قرار آنجا در عدد آن که را وستونی سطر باید ضرب جدول در عددی کردن

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

اندیس. می استفاده اندیس دو از آرایه هر عناصر به دستیابی برای بعدی دو های درآرایه را اول شود

گویند. ستون اندیس را دوم واندیس سطر اندیس

( n های آرایه) بعد دو از بیش با هایی آرایه ++Cدر قابل ازآرایه حداکثر اغلب ولی اند استفاده بعدی

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

کنیم: می عمل زیر بصورت ++C در دوبعدی های آرایه تعریف برای

صفر از اندیس این از یک وهر کند می مشخص را ها ستون تعداد" 2بعد و" سطرها تعداد" 1 بعد "شود. می شروع

کند: می تعریف 3*4 بعدی دو ،آرایه مقابل دستور مثال بعنوان

int x[3][4]; ستون ستون ستون ستون 0 1 2 3

0سطر

1سطر

2سطر

عناصر سپس اول سطر عناصر ابتدا یعنی شوند می ذخیره سطری بصورت ها آرایه ++C زبان در نکته:

ذخیره.... دوم سطر شوند. می و

صفحه104

< [2[]بعد1نوع آرایه نام آرایه ]بعد

X[1][0]

Page 105: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

دهند: می اولیه مقدار بعدی دو آرایه به روش دو به زیر دستورات

int x[2][3]=1,3,4,7,6,8

int x[2][3]= 1,3,4,7,6,8

تعداد اندازه به عناصرآرایه نشود،تعداد مشخص آرایه طول آرایه، عناصر به اولیه مقدار دردادن اگر

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

int p[ ] = 4,6,8; 3 طول به آرایه

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

شود. می صفر آرایه عناصر بقیه

سایر و 10 برابر را x[1] و 5 برابر را x[0] کرده، تعریف را عنصری 10 صحیح آرایه زیر دستور مثال بعنوان

دهد: می قرار صفر را آرایه عنصرهای مقادیر

int x[10]= 5,10;

بهتر( و دوبعدی) بعدی چند های آرایه مورد در اولیه) است بیشتر آکوالد جفت یک در را سطر هر( مقادیر

داد. قرار جدا

کند. راچاپ 10 تا1 اعداد ضرب جدول که بنویسید ای برنامه ها، آرایه از استفاده با مثال:

صفحه105

#include <iostream.h>

#include <conio.h>

int main ( )

int a[10][10] , i , j ;

for (i=1 ; i<=10 ; i++)

for (j=1 ; j<=10 ; j++)

a[i][j] = i*j ;

cout<<a[i][j]<<"\t" ;

cout<<"\n" ;

getch ( ) ;

return 0;

Page 106: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

اضافه را دستورات این کافیست دهد، نمایش نیز را قطراصلی روی های درایه بخواهیم اگر همچنین

کنیم.

( n تعداد که بنویسید ای برنامه مثال: جمله ) کند. چاپ را فیبوناچی دنباله از دلخواه

از قبل جمله دو مجموع برابر ،هرجمله بعد به سوم جمله از و 1برابر ودوم اول جمله فیبوناچی دنباله در

است. خودش

صفحه106

for (i = 1 ; i <= 10 ; i++ )

for (j = 1 ; j <= 10 ; j++ )

if (i == j)

cout<<a[i][j]<<” “ ;

#include <iostream.h>

#include <conio.h>

int main( )

int a[100] , n , i ;

cout<<"Enter a number : " ;

cin>>n ;

a[1] = 1 ;

a[2] = 1 ;

cout<<"a[1]=1"<<"\n"<<"a[2]=1"<<"\n" ;

for (i=3 ; i<=n ; i++)

a[i]=a[i-1]+a[i-2] ;

cout<<"a["<<i<<"]="<<a[i]<<"\n" ;

getch ( ) ;

return 0 ;

Page 107: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

انجام را آنها وتفریق ،جمع ضرب و گرفته را n*n مربعی ماتریس دو که بنویسید ای برنامه تمرین-

دهد. ونمایش

ماتریس : ضرب

صفحه107

#include <iostream.h>

#include <conio.h>

int main()

clrscr();

int A[20][20],B[20][20],C[20][20];

int i,j,k,m,n,p;

cout<<"please insert m, n, p, where A and B are m*n and n*p matrix, respectively";

cin>>m>>n>>p;

//reading matrix A

cout<<" Enter the elements of matrix A:"<<"\n";

for(i=1;i<=m;i++)

for(j=1;j<=n;j++)

cin>>A[i][j];

//reading matrix B

cout<<"\n\n Enter the elements of matrix B:"<<"\n";

for(i=1;i<=n;i++)

for(j=1;j<=p;j++)

cin>>B[i][j];

//calculating the product

for(i=1;i<=m;i++)

for(j=1;j<=p;j++)

Page 108: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

صفحه108

C[i][j]=0;

for(k=1;k<=n;k++)

C[i][j]=C[i][j]+A[i][k]*B[k][j];

cout<<"\n\n The answer is: \n\n";

for(i=1;i<=m;i++)

for(j=1;j<=p;j++)

cout<<C[i][j]<<" ";

cout<<endl;

getch();

return 0;

Page 109: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

ماتریس : جمع

ماتریس : تفریق

صفحه109

#include <iostream.h>

#include <conio.h>

int main()

int a[3][3],b[3][3],c[3][3];

int i,j ;

//reading matrix A

cout<<" Enter the elements of matrix A: \n\n";

for(int i=1;i<=3;++i)

for(int j=1;j<=3;++j)

cin>>a[i][j];

//reading matrix B

cout<<" Enter the elements of matrix B: \n\n";

for(int i=1;i<=3;++i)

for(int j=1;j<=3;++j)

cin>>b[i][j] ;

//calculating the answer

cout<<"\n\n";

for(int i=1; i<=3; i++)

for(int j=1; j<=3; j++)

c[i][j]=a[i][j]+b[i][j];

cout<<c[i][j]<<" ";

cout<<"\n";

getch();

return 0;

#include <iostream.h>

#include <conio.h>

int main()

int a[3][3],b[3][3],c[3][3];

int i,j ;

//reading matrix A

cout<<" Enter the elements of matrix A: \n\n";

for(int i=1;i<=3;++i)

for(int j=1;j<=3;++j)

cin>>a[i][j];

//reading matrix B

cout<<" Enter the elements of matrix B: \n\n";

for(int i=1;i<=3;++i)

for(int j=1;j<=3;++j)

cin>>b[i][j] ;

//calculating the answer

cout<<"\n\n";

for(int i=1; i<=3; i++)

for(int j=1; j<=3; j++)

c[i][j]=a[i][j]-b[i][j];

cout<<c[i][j]<<" ";

cout<<"\n";

getch();

return 0;

Page 110: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

. >” fstream .h“< فایل پرکاربرد سرآیند های فایل از دیگر یکی الگوی دستورات از دیگری نوع است

input، output،open، close، getline ... در دارد. قرار فایل این و

نظیر است، زیاد محاسبات از حاصل اطالعات که مواردی در که است این دستور این های کاربرد از یکی

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

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

می. زیاد بسیار روش این در ها داده تعداد سایر در دقیق های منحنی رسم مثال برای آنها از توان است

کرد. استفاده( takeplot مانند) افزارها نرم

: است زیر صورت به آن به وابسته دستورات و فایل این کاربرد روش

فایلی داده تا کند می ایجاد برنامه Save محل در ofstream M(“array1.cpp”) array1.cpp بنام مثال

شوند. ریخته فایل آن در برنامه های

M<< ….. array فایل در دیتاها ریختن به مربوط دستور

cout معادل

نظر در خواندن برای را دارند قرار آنجا در ifstream N(“matrix.cpp”) دیتاهای که matrix بنام فایلی

؛ بگیرید

صفحه110

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

Page 111: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

N>> …… matrix فایل از دیتا خواندن دستور

cin معادل

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

#include "stdafx.h"#include<iostream>#include<conio.h>#include <fstream>using namespace std;int main()

double n,m;double i;p("matrix.cpp") ;ifstream q("array.txt") ;p>>n;q>>m;cout<<n<<"\t"<<m;

getch();return 0;

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

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

: فیبوناچی دنباله در مثال بعنوان

صفحه111

#include <iostream.h>

#include <conio.h>

#include <fstream.h>

int main ( )

int a[100] , n , i ;

ofstream M("array1.cpp") ;

cout <<"Enter a Number less than 100 : " ;

cin>>n ;

a[1 ]=1 ;

a[2]=1 ;

M<<"a[1]=1"<<"\n"<<"a[2]=1"<<"\n" ;

for (i=3 ; i<=n ; i++)

a[i]=a[i-1]+a[i-2] ;

M<<"a["<<i<<"]="<<a[i]<<"\n" ;

getch ( ) ;

return 0 ;

Page 112: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

ای : دوره تمرینات

صفحه112

Page 113: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

معکوسماتریس :

صفحه113

#include <math.h>

#include <iomanip.h>

#include <stdlib.h>

#include <iostream.h>

#include <conio.h>

int p=1;

float det(int i1,int j1,int i4,int j4,int n,float x[10][10]);

int hams(int i1,int j1,int n,float x[10][10]);

int main()

float x[10][10],det1,y[2][2]; int n,r=1;

cout<<"Enter n for Matrix n*n: "; cin>>n;

if(n==1) cout<<"there is not matrix.";

else

cout<<"\nEnter "<<n*n<<" number.\n";

for(int i=1;i<=n;i++)

for(int j=1;j<=n;j++) cin>>x[i][j];

det1=det(1,1,n,n,n,x);

cout<<"Determinan x is : "<<det1<<endl;

cout<<"\nMatrix Reverse Is :"<<endl;

if(n==2) y[1][1]=x[2][2]; y[2][2]=x[1][1]; y[1][2]=-x[1][2]; y[2][1]=-x[2][1];

for(int i=1;i<=2;i++)

for(int j=1;j<=2;j++)

cout<<setw(8)<<setprecision(2)<<y[i][j]/det1;

Page 114: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

صفحه114

if(j==n) cout<<endl;

getch();

return 0;

/*in ghesmat determinane x ra hesab mikonad */

float det(int i1,int j1,int i4,int j4,int n,float x[10][10])

if(n==2) int i2,i3,j2,j3; i2=i1; j2=j4; i3=i4; j3=j1; return x[i1][j1]*x[i4][j4]-x[i2][j2]*x[i3][j3];

float sum=0;

for(int k=j1;k<=j4;k++)

if(k==j1) sum+=p*x[i1][k]*det(i1+1,j1+1,i4,j4,i4-i1,x);

else if(k==j4) sum+=p*x[i1][k]*det(i1+1,j1,i4,j4-1,i4-i1,x);

else sum+=p*x[i1][k]*det(i1+1,j1,i4,j4,i4-i1,x);

p*=-1;

return sum;

/* in ghesmat hamsaze x ra hesab mikonad */

int hams(int i1,int j1,int n,float x[10][10])

float z[10][10]; int k=1,l=1,s;

for(int i=1;i<=n;i++)

for(int j=1;j<=n;j++)

if(i!=i1 && j!=j1) z[k][l]=x[i][j];

if(l==n-1) ++k; l=0;

++l;

s=det(1,1,n-1,n-1,n-1,z);

getch();

return s;

Page 115: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

m چاپ تمام اعداد کامل ما قبل عدد#include "stdafx.h"#include<iostream>#include<conio.h>using namespace std;int main ()

int n,m,i,j,s=0;cout<<"please Enter m";cin>>m;for(j=1;j<=m;j++)

n=j;for(i=1;i<n;i++)

if(n%i==0)

صفحه115

Page 116: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

s=s+i;if(s==n)

cout<<n<<"\t";s=0;getch();return 0;

قبل ما اعداد تمام اول mتجزیه عوامل به

#include "stdafx.h"#include<iostream>#include<conio.h>using namespace std; int main () int m,n,j,i; cout<<"please Enter n"; cin>>m; for(j=1;j<=m;j++)

n=j; i=2; cout<<j<<"=";

while(n>1) if(n%i==0)

cout<<i;n=n/i;

if(n>1) cout<<"*"; else

i=i+1; cout<<"\n";

getch();return 0;

صفحه116

Page 117: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

وضلع باقیمانده زاویه دو و گرفته را دلخواه مثلث یک بین وزاویه ضلع دو که بنویسید ای برنامه- 2 تمرین

کند. محاسبه تابع کمک به را سوم

صفحه117

#include<iostream.h>

#include<conio.h>

#include<stdio.h>

#include<math.h>

double r(double x,double y,double z);

double i,a,b,t;

main()

clrscr();

cout<<"zele aval mosalas ra vared konid \n";

cin>>a;

cout<<"zele dovome mosalas ra vared konid \n";

cin>>b;

cout<<"zavie bein do zele ra vared konid \n";

cin>>t;

cout<<"zele sevom = "<<r(a,b,t)<<"\n";

cout<<"masahat = "<<a*b*sin(t)/2<<"\n";

cout<<"mohit = "<<(a+b+r(a,b,t))<<"\n";

cout<<"zavie dovom = "<<a/r(a,b,t)*sin(t)<<"\n" ;

cout<<"zavie sevom= "<<b/r(a,b,t)*sin(t)<<"\n" ;

getch();

return 0;

double r(double x,double y,double z)

double q; q=sqrt(pow(x,2)+pow(y,2)-2*x*y*cos(z)); return q;

Page 118: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

صفحه118

//********c:radian & A,B:degree

#include <iostream.h>

#include <conio.h>

#include <math.h>

#define PI 3.1415926535898

int main()

double a,b,c;

double A,degA,B,degB,C;

double premeter,q,area;

cout<<"ENTER THE FIRST VECTOR: ";

cin>>a;

cout<<"ENTER THE SECOND VECTOR: ";

cin>>b;

cout<<"ENTER THE FIRST ANGLE: ";

cin>>C;

c=sqrt(pow(a,2)+pow(b,2)-(2*a*b*cos(C)));

cout<<" the 3rd vecror is: "<<c<<"\n";

premeter=a+b+c;

cout<<" the premeter is: "<<premeter<<"\n";

q=premeter/2;

area=sqrt(q*(q-a)*(q-b)*(q-c));

cout<<" the area is: "<<area<<"\n";

A=asin(a*sin(C)/c);

degA=A*180/PI;

cout<<" the second angle is: "<<degA<<"\n";

Page 119: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

بین عدد کوچکترین ورودی :4محاسبه عدد

صفحه119

#include <iostream.h>

#include <conio.h>

int minimum(int a,int b,int c,int d);

int main()

int a,b,c,d,m;

cout<<"Please enter 4 ineger numbers:";

cin>>a>>b>>c>>d;

m=minimum(a,b,c,d);

cout<<"Minimum of entered numbers:"<<m;

getch();

return 0;

//********

int minimum(int a,int b,int c,int d)

int min=a;

if (b<min) min=b;

if (c<min) min=c;

if (d<min) min=d;

return min;

Page 120: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

ماتریس : بودن مثلثی پایین یا باال تعیین

صفحه120

#include <iostream>

#include <conio.h>

using namespace std;

int Matrix(int** matrix,int size)

int down=0,up=0;

for(int i=0;i<size;i++)

for(int j=0;j<size;j++)

if(j>i && matrix[i][j] != 0)

down=2;

if(i>j && matrix[i][j] != 0)

up=1;

return down+up;

int main()

int size=0;

cout<<"Enter size of matrix(number of rows and columns):";

cin>>size;

cout<<endl;

Page 121: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

صفحه121

int **matrix=new int*[size];

for(int i=0;i<size;i++)

matrix[i]=new int[size];

int row=1;

while(row<=size)

cout<<"Enter numbers for row "<<row<<":";

for(int i=0;i<size;i++)

cin>>matrix[row-1][i];

row++;

for(int i=0;i<size;i++)

for(int j=0;j<size;j++)

cout<<matrix[i][j]<<" ";

cout<<endl;

cout<<endl<<endl;

int ud=Matrix(matrix,size);

if(ud==3)

cout<<"Hich kodum"<<endl;

Page 122: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

صفحه122

else if(ud==2)

cout<<"Bala mosallasi"<<endl;

else if(ud==1)

cout<<"Paein mosallasi"<<endl;

else if(ud==0)

cout<<"Har do"<<endl;

cout<<"Press any key to quit...";

getch();

return 0;

Page 123: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

عدد ماقبل اول اعداد یکانش nچاپ رقم عدد اگر ،1. کند چاپ ستاره یک بود

#include "stdafx.h"#include<iostream>#include<conio.h>using namespace std;int main()int n,m,i,j,s=0;cout<<"please Enter m";cin>>m;for(j=1;j<=m;j++)

n=j;for(i=1;i<=n;i++)

if(n%i==0)s=s+1;

if(s==2)if(n%10==1)cout<<n<<"*"<<"\t";else

cout<<n<<"\t";s=0;getch();return 0;

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

#include"stdafx.h"#include<iostream>#include<conio.h>using namespace std;int main()

int n,A[20],i,a,k=1;cout<<"please enter n";cin>>n;cout<<"please enter A[i]";for(i=1;i<=n;i++)cin>>A[i];while(k<n)for(i=1;i<n;i++)

if(A[i]>A[i+1])a=A[i+1];

A[i+1]=A[i];A[i]=a;

صفحه123

Page 124: C++ آموزش - Kharazmi University1).doc · Web viewدر فصل های گذشته ، داده ها را در متغیرها ونوابت ذخیره و درمواقع لزوم بازیابی

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

k=k+1;for(i=1;i<=n;i++)

cout<<A[i]<<"\t";getch();return 0;

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

#include"stdafx.h"#include<iostream>#include<conio.h>using namespace std;double f(double x);int main()

double a,b,c;cout<<"please enter a, b";cin>>a>>b;c=(a+b)/2;while(fabs(f(c))>0.001)if(f(a)*f(c)<0)

b=c;else

a=c;c=(a+b)/2;cout<<c;

getch();return 0;double f(double x)

return (pow(x,3)+pow(x,2)+x-4);

صفحه124