صفحه 1:
6
بسم الله الرّحمن الرّحيم 2
برنامه نويسى ) - جلسه ۱۱
دانشگاه قم
نیم سال اول ۸۴-۸۵
وام
صفحه 2:
مثال از توابع بازگشتی
- برج های هانوی
مزايا و معايب نوشتن برنامه به صورت با زگشتی:
— مزايا: ساده شدن برنامه نويسى و خوانا قر شدن برنامه
- معايب: مصرف حافظه و سرعت اجراى كمتر
محل قرار كرفتن توايع
- هر تابع قبل از احضار مى بايست يا تعريف شده باشد ويا اعلان
مزاياى استفاده از توايع:
- قابل فهم كردن و امكان برنامه نويسى سريعتر و ساده قر
فوشتن برنامه های خوانا:
- استفاده از توابع؛ اسامی مناسب برای متغیرها و توابع» دندانه ای کردن برنامه؛ نوشتن
صفحه 3:
۶ آرایه ها
- ضرورت وجود آرایه ها
- تعریف آرایه
- مثال هایی از کاربرد آرایه ها
- آرایه ها به عنوان ورودی و برگشتی تابع
- ابت (cosstact)
صفحه 4:
ضرورت وجود آرایه ها
* مثال: برنامه اى بنويسيد كه 3 عدد را بكيرد و ميانكين و واريائس آنها را محاسبه كند.
pos HAD ily 9 ool 15 يكار از ووابط زير به دست مى يندة nt
2 (۴
كت
2
اگر تنها هدف به دست آوردن میانگین بود به راحتی می توانستیم آن را انجام دهیم:
صفحه 5:
* در اینجا برای به دست آوردن واریانس نیاز به همه »ها داریم. اما در کد نوشته
شده قبل تنها آخرین عدد را داریم و بقیه مقادیر از بين رفته اند.
در نتيجه ناجاريم كد خود را به صورتى مثل اين بنويسيم:
جک که ما
Avot ave,var;
ser (“YP YELP PVP”, 8xD 8x1, 8xP ,8xD ,8xP );
we=(xDtxl+xO+x9 +xP /S;
- ©« )سوم +( © ,عرد 6 )روم +( وره-1) :)نوم +( © ورد (1))ريوم) سبو
:6/(( © عه :)نوب( © جره
صفحه 6:
* به این ترتیب کد نامناسبی خواهیم داشت. این موضوع به ازای داده
های زیادتر (مثلا ۱۰۰۰ عدد) بیشتر نمود پیدا می کند.
* در اين جلسه نشان می دهیم با تعریف آرایه ها می توان چنین برنامه
هایی را خیلی ساده و خلاصه پیاده کرد.
* به طور كلى آرايه ها در مواردی به کار برده می شوند که با مجموعه
ای از داده های هم نوع سروکار داشته باشیم.
صفحه 7:
eget 9 :با دستور int x fio glo sftp مکانی در حافظه به نام «
امه تخصیص داده می شد.
* در زبان 6 x[S از » پنج مکا در حافظه به
al 2a Sa ca تام ee 0 00
igi go odo fF] 9 xf] .
* اصطلاحا مى كوبيم آرایه ای به نام« از نوع »و با ۵ عنصر تعریف
کرده ایم.
* به » ۵۲۰۱ ۳ و ۴ اصطلاحا اندیس آرایه گفته می شود.
* به همین ترتیب می توان آرایه هایی ازانواع دیگر مثل ۲۷,۰۰
اد و ....داشت.
صفحه 8:
صفحه 9:
سوک لاو
Onid cain )
{
it 1;
rt xf];
Por (FD ji< +41)
somn(“%P” xfi]);
Por (FOi<;+4)
۵
}
حلقه اول مقادير را دريافت مى كند و در آرایه «قرار می دهد و حلقه دوم اين مقادير
را جاپ می کند.
صفحه 10:
منال ۳ ) محاسبه میانگین و واریانس ۵ عدد
on
Poa xfS];
ae; , سر میا
۳۹
Por (O;<8;+4)
Ow=0;
Cor (FO1O;+4)
:©/(6 سم [زام) سدع و0
(سه 90۳ الل نينا
Orn ("Dhe verre =%E er)
1
صفحه 11:
صفحه 12:
مثال ۵) برنامه ای بنویسید که ۱۰ عدد از کاربر بگیرد آنها را به صورت صعودی مرتب
کرده و چاپ
برنامه از دو بخش تشکیل شده است:
دریافت اعداد
مرتب کردن آنها
١ دريافت اعداد را می توان با تعریف یک آرایه و نوشتن قطعه برنامه ای به صورت
زیر انجام داد:
tet ]00[:
ii;
Por (iF O:i<dD;++i)
souk (“%P” 8ox{i]);
صفحه 13:
۲. به مسئله مرتب سازی اصطلاحا -:«< گفته می شود. برای
مرتب سازی روش های متعددی وجود دارد. مانند :
و۰
در این مثال از :77 -ا« که یکی از ساده ترین آنهاست
استفاده می شود.
صفحه 14:
اجه عارامان()برای مر تب سازی صعودی
لپ ر سس
* ابتدا دو عنصر اول و دوم آرایه با هم مقایسه می شوند.اگر عنصر اول از دوم بزرگتر بود
جای دو عنصر عوض می شود. سپس عناصر دوم و سوم مقایسه می شوند و مشابه قبل
ی مکان در صورت لزوم انجام می گیرد. همین کارها برای عناصر ۳ و ۴» ۴ و 4۵
....انجام می شود تا به انتهای آرایه برسیم.
* زمانى كه به اننهاى آرايه برسيم ماكزيمم مقادير در آخرين مكان آرايه قرار كرفته است و
به عبارت ديكر
زمانى كه يك باراز ابتدا قا انتهاى آرايه بيمايش شود عنصر آخر مى شود.
* در مرحله بعد ابن يبمايش و اعمال كفته شده روى عناصر اول تا يكى مانده به آخر انجام
مى شود و در نتيجه :
با دو بار پیمایش ۲ عنصر مرتب می شوند.
* در مرحله بعد يبمايش از ابتدا تا عنصر دوتا مانده به آخر آرایه انجام می شود و در نتیجه:
با سه بار پیمایش سه عنصر مرتب می شود.
© به این ترتیب اگر آرایه » ۰ عنصری باشد با 0- پیمایش ؛ کل آرایه مرتب می شود.
صفحه 15:
٩ فرض کنید دو متغیر 205« و <06-, داشته باشیم و
بخواهیم مقدار آنها را با هم تعویض کنیم.
© با تعریف متغیری به نام م< و نوشتن قطعه کد زیر می
فوان این کار را انجام داد:
عمسا امسا
1۳7۳5
wy;
۱/۵
صفحه 16:
Por (FOi1-+4)
رهطم ج
: هسب
Offa];
Of ex;
* سوبي rere
نکته: حلقه سب دوم تعداد پیمایش ها (0ج تا) را کنترل می کند.
صفحه 17:
مقدار دهی به آرایه ها
۶ سه روش برای مقدار دهی به آرایه ها وجود دارد:
۱ ۰ اد
۶ با دستورات ورودی مثل 7یا ۳ AO}
۹601
© مقدار دهی مستقیم: ao}:
:0-6
؟ مقداردهی هنگام تعریف: (صفحه بعد)
صفحه 18:
مقداردهی هنگام تعریف
* مى قوان آرايه ها را (تنها) هنكام تعریف به صورت زیر
مقداردهى كرد:
:(60-,9[<)0,9]< ۰۱
در اینجا ۲ در 0[»5 در [1]- و ۵- در [9]- قرار می گیرد.
مثال های دیگر:
(©4.6, :0.00 - زمزم ممم
chor oh{P I=,
صفحه 19:
فه عداد مقادبر نوشته شده داخل [ ) از اندازه
* اگر در مقداردهی هنگام ت
مشخص شده برای آرایه ببشتر باشد خطا اعلام می شود.
(,,0,,۵)-[9] م
* اكر تعداد مقادير كمتر باشدء بقيه صفر در نظر گرفته می شوند:
(6,©)-[0] م
در اينجا 0)-[©] مى شود.
مثال دیگر:
rt x[UOO]={O}
همه مقادیر صفر می شوند. (اين روشی برای صفر کردن همه عناصر آرایه است).
* ار بنویسیم: (0,0)-[ ]« «:اندازه آرایه ۲ در نظر گرفته مى شود.
صفحه 20:
آرایه ها به عنوان ورودی و بر گشتی توابح
* آرايه ها مانندسایر متفیرها می توانند ورودی با برگشتی
تابع باشند.
صفحه 21:
آرايه به عنوان ورودى تابع
مثال ۶: تابعی بنویسید که یک آرایه را بگیرد و ماکزیمم آن را بركردافد:
ورودی: آرایه برگشتی: یک عدد
([۱0] مس ما
rot;
Pat wax=x[0];
Por (=0;i<00;++i)
د < لمم
سس
مسا
{
صفحه 22:
برنامه کامل مثال ۶
صفحه 23:
* در بسیاری مواقع نیاز به کار با مقادیر ثابت در برنامه» پیش
می آید و اين مقادیر ممکن است چند بار در برنامه تکرار
شوند. مانند عدد ۱۰ در مثال قبل
* اگر در مثال قبل بخواهیم ماکزیمم فرضا ۲۰ عدد را حساب
کنیم باید تمام اعداد ۱۰ را به ۲۰ تبديل كنيم. اين امر دو
مشكل دارد: وقت كير بودن و فراموش كردن تعويض همه
مقادير.
* دستور 02-7 در زبان © اين مشكل را مرتفع مى سازد.
صفحه 24:
مثال ۷: همان مثال قبل با تغیبرات جزئی: (با رنگ قرمز)
"دستور سا ماد یک دمتورراهنمای پیش پردازنده ی
كامبايلر در هر جاى برنامه كه با 011/۵ مواجه شود به جای آن عدد ۱۰ 9 ۳
قرار می دهد. Fe woof
۰ لصطلاحا بسک لب(هجبسس) خواندهمیشسود. مرت نصا
*اسم ثابت» دلخواه است. معمولا ثابت ها را با نام های با حروف بزرگ و
تعریف ce تم سیر
"مقدار ثابت در برفامه غيرقابل تغيير است. مثلا اكر دستورى )
ord woe) :
گر مثلا خواستیم با ۲۰ عدد کار کنیم تنها کافی است عدد ۱۰ را در ی 6
لاح به ۲۰ تبدیل کنیم. :هات سد
che AY 39 cee gtd Jet هاست. (ترتیب نوشتن eH AON ۳
عبات ها و ع(اط هم نسیستو میسوانند قبلبا بستد هم مس ای تلا pent
قرار گیرند) )
صفحه 25:
تابع به عنوان برگشتی BG
* خارج از مباحث درس می باشد و نیاز به آشنایی با مفیومی
به نام اشاره گرها دارد.