صفحه 1:
الگ
لگوریتم و فلو
چارت
صفحه 2:
مراحل حل یک بر نامه:
۱- درک دقیق صورت مسئله
- یافتن مفروضات مسئله.
مسئله چه می خواهد . در جستجوی چه باشیم و ارتباط منطقی بین
مجهول و معلوم را بيابیم.
۲- طرح مناسبترین راه حل
۳- تحلیل راه حل
۴- نوشتن الگوریتم
۵- رسم فلوچارت
۶- نوشتن برنامه روی کاغذ
۷- وارد کردن برنامه به کامپیوتر
۸- اجرای برنامه به وسیلة کامپیوتر
صفحه 3:
در زندگی روزمره. انسان با مسائل مختلفی روبروست و برای هر کدام
از اين مسائل (حل مشکلات) راه حلی و روشی را بر میگزیند. مسائلی از قبیل
ol, رفتن. غذا خوردن. خوابیدن و غیره که بشر تقریبا هر روز آنها را پیش روی
خود دارد.
همه این مسائل نیاز به روشی برای حل کردن دارند مثلا راه رفتن
باید با ترتیب خاصی و مراحل معینی انجام شود. تا مسئله راه رفتن
برای بشر حل شود. اصطلاحاً روش انجام کار با حل مسئله را الگوریتم
آن مسئله مینامند
صفحه 4:
الگوریتم و فلوچارت
هر دستوربلعملی که مراحل انجام کاری را با زبانی دقیق
و با جزئیات کاقی بيان نمايد بطوريكه ترتيب مراحل و
Ben aude byt آن SR En eg ere eae OCs
] الگوریتم گویند.
صفحه 5:
:ی
|
مراحل الگوریتم
برای حل یک مسئله باید الگوریتم آن مسئله را مشخص کنیم (يا بیابیم). که
اصطلاحاً طراحی الگوریتم برای آن مسئله نامیده میشود. در طراحی
الگوریتم معمولا سه مرحله زیر را از هم جدا میکنند:
* خواندن دادهها
*انجام محاسبات
* خروجیها
صفحه 6:
0 شروع
,2-١ را بخوان.
١ مجموع 2 , «1را محاسبه و در 511333 قرار بده.
۳- 81110 را در خروجی چاپ کن
۴-پایان
صفحه 7:
۰ شروع
۱-مقدار ۵ را بخوان
"اكر 2<0 است برو به مرحلة 0.
۳ چاپ کن Negative
5- برو به مرحلة ۷
۵- حاصل 8/100 را بدست آورده و در 5 قرار بده.
1- 58 را در خروجی جاب كن.
۷- پایان.
صفحه 8:
شروع
١ سه عدد از ورودى بخوان
۲- مجموع سه عدد را محاسبه و در 511112 قرار بده.
۳- 51110 را بر سه تقسیم کردهدر 8176 قرار بده.
4- 913332 , ©2580 را در خروجى جاب oS
ما
صفحه 9:
معمولا درک یک الگوریتم با شکل راحتر از نوشتن آن بصورت متن
میباشد.
لذا الگوریتم را با فلوچارت( 1101801131 )نمایش میدهند.
فلوچارت از شکلهای زیر تشکیل میشود. (یبان تصویری الگوریتم)
صفحه 10:
برای نشان دادن شروع و خاتمه عملیلت
محاسبات و عملیات واگذاری
ورود اطلاعات
خروج بر روی صفحه نمایش
خروج اطلاعات بر روی کاغذ
سئوال؛ تصمیم گیری و شرط
های دلخواه
صفحه 11:
» ۳
مثال0: قلوچارتی رسم کنید که دو عدد را خوانده » حاصلضرب آنها محاسبه و نمایش داده شود
صفحه 12:
* فلوچارت مجموع و میانگین
سه عدد
9
Read(a,b,c)
Sum < atb+c
Ave < sum/3
3 Write(sum,ave) 2
End)
هته
صفحه 13:
.مثال: فلوجارتى رسم كنيد كه شعاع یک دایره را خوانده مساحت و محیط آنرا نمایش دهد
صفحه 14:
: تی رسم
محتویات دو عدد را با هم جابجا نماید.
اه اول : استفاده از متفیر کمکی
رای حل این مسئله ۵ , 19 را دو متغیر که در آنها دو عدد خوانده شده.
فرار میگیرند در نظر میگیریم. سپس با استفاده از یک متفیر کمکی
محتويات اين دو عدد را جابجا مى كنيم :
صفحه 15:
emp
12
emp
temp
12
emp
صفحه 16:
صفحه 17:
روش دوم: استفاده ازعملیات ریاضی
39۱15
صفحه 18:
EEE EE EEE << <<"
4 تمرین |
١ فلوجارتى رسم نمائيد كه طول و عرض مستطيل را از ورودى دريافت
کرده محیط و مساحت آنرا محاسبه و چاپ کند.
۱- فلوچارتی رسم نمائید که عددی (درجه حرارت برحسب سانتیگراد)
را از ورودى دریافت کرده سپس آنرا به درجه فارنهایت تبدیل کند.
صفحه 19:
92
4 دستورالعملهای شرطی |
در حل بسیاری از مسائل يا تقریباً تمام مسائل نیاز به استفاده از شروط
جزء نیازهای اساسی محسوب میشود. همانطور که ما خودمان در
زندگی روزمره با ابن شرطها سرکار داریم. بطور مثال اگر هوا ابری
باشد ممکن است چنین سخن بگوییم:
۰
اگر هوا بارانی باشد سپس چتری برمیدارم.
در غیر اینصورت چتر برنمیدارم.
صفحه 20:
عمل يا اعمال S
NO
عمل يا اعمال بعدى
صفحه 21:
مثال : فلوچارتی رسم نمائید که عددی را از ورودی دریافت کرده فرد یا
زوج بودن أن را تشخيص دهد.
C Begin) ~
a Read(a) Ly
a mod 2
Write(‘odd’) ۳ لك
a
صفحه 22:
را پیدا کرده در خروجي چاپ نماید.
صفحه 23:
فلوچارتی رسم کنید که سه عدد را خوانده و بصورت زیر تصمیم
گیری نماید:
- اگر عدد سوم صفر بود حاصل جمع دو عدد دیگر
- اگر عدد سوم منفی بود تفاضل دو عدد دیگر
- در غیر حالتهای فوق حاصل ضرب دو عدد دیگر را نمایش دهد
صفحه 24:
صفحه 25:
مثال:فلوچارتی رسم کنید که سه ضلع یک مثلث را خوانده» تعيين كنيد آيا مثلث قائم الزاويه لست يا |
7371
خیر؟
* براى قائم الزاويه بودن مثلث اندازه اضلاع آن بايد در يكى از عبارات اكند.
بصع با 62202۲0۶ یا 2
58
©
صفحه 26:
مثال:ريشه های یک معادله درجه دوم
(+000 ۴
0-02-00 ۲
* اگر ۰۲0>0 معادله ريشه ندارد
* اگر ۰0020 حاصل عبارت -)9/0) را در 0و ۱0 قرار بده
* حاصل عبارت رمم//+و برا در )ا قرار بده
" حاصل عبارت Be VD)/2A -) رادر © قرار بده
* مقادیر 20 و ©72 را نمايش بده
صفحه 27:
صفحه 28:
* حلقهها(1000)
در حل بسیاری از مسائل با عملیاتی روبرو میشویم . که
نیاز به تکرار دارند و عمل تکرار آنها به تعداد مشخص با
نامشخصی انجام میگیرد.
صفحه 29:
* حلقه های با تکرار مشخص
* حلقه های با تکرار نا مشخص
صفحه 30:
در اين نوع حلقهها تعداد تکرار مشخص میباشد این حلقه ها
از اجزاء زیر تشکیل میشود:
(- اندیس حلقه
۲- مقدار اولیه برای اندیس حلقه
۳- مقدار افزاینده برای اندیس حلقه (معمولا یک واحد
در هر مرحله)
۴- مقدار نهایی بتعداد تکرار حلقه)
۵- شرطی ly کنترل تعداد تکرار حلقه
صفحه 31:
صفحه 32:
صفحه 33:
9
© 8
© هي 600و
4
> © © © © © ه-
pany | te
صفحه 34:
مثال : فلوچارت برنامه ای را رسم کنید که ۱۰ عدد را گرفته و تعیین کند کدام
زوج و کدام فرد است.
صفحه 35:
مثال : فلوچارت برنامه ای را رسم کنید که عدد طبیعی 1< ۱ را خوانده و مقسوم علیه
های آن را نمایش دهد
صفحه 36:
مثال : فلوچارتی رسم کنید که « عدد از ورودی دریافت کرده.
بزرگترین مقدار از بین " عدد را پیدا کرده در خروجی چاپ نماید.
انديس حلقه i
بزرگترین مقدار
Max
صفحه 37:
صفحه 38:
مثال : فلوچارتی رسم نمائید که 6 , 13 . دو عدد صحیح مثبت را از
ورودی دریافت کرده سپس :به توان " را محاسبه کند.
صفحه 39:
yes
|
pow <— pow*x
سس ۱9
صفحه 40:
ِ ۳
1 رار سخص
( به حلقه ۲۷2116 مشهورند.)
در این حلقهها باتوجه به ورودی. تعداد تکرار مشخص
مى شود. و دقيقا نمی توان تعداد تکرار حلقه را بدون ورودی
معین کرد. این حلقه ها فقط شامل شرطی هستند که تا
زمانیکه برقرار باشد حلقه اجرا میشود.
صفحه 41:
No
محموعه دستورالعملها
و جاگزینها
صفحه 42:
مثال: فلوجارتى رسم كنيد كه عددى را از ورودى دريافت كرده
سپس تعداد ارقام آن را شمرده در خروجی جاپ نماید.
* عدد خوانده شده N
* تعداد ارقام count
صفحه 43:
Begin
count g 0
yes
|
حلقه N <—Ndiv10 نكم
J
count __ count+1
صفحه 44:
در سری فیبوناچی هر عدد برابر است با
.مجموع دو عدد قبلی خود
9,0,۰ ,4,9,9
صفحه 45:
همع
تس 60>
صفحه 46:
در این روش جذر دقیق عدد لا عبارت است از شمارش کلیه اعداد
ee cere i. Bik et mts
تقریبی گفته می شود.
Sia
صفحه 47:
همجموع
شمارنده
)توليد اعداد فرد
صفحه 48:
al Se های درو
الگوریتمهایی که تا حال بکار بردیم. فقط شامل یک حلقه بودند.
در صورتی که در بسیاری از مسائل ممکن است نیاز به استفاده از
چندحلقه در داخل هم باشیم. در اين نوع حلقهها باید دقت بیشتری به
خرج دهیم. تا مشکلی پیش نیاید. اگر از حلقههای نوع اول بصورت
تودر تو استفاده کنیم در اینصورت برای هر حلقه شرط نهابی و اندیس
اولیه جداگانه باید تعربف کنیم .
صفحه 49:
در حلقههاي تودرتو به ازاي یکبار تکرار حلقه اولیه. حلقه
داخلي به اندازه مقدار نهايي خود تکرار ميشود. در کل اگر
حلقه اوليه 11 بار تكرار شود وحلقه داخلي 13 بار. در
اينصورت كل حلقه :
nxm
بار تكرار خواهد شد.
صفحه 50:
صفحه 51:
۴ فلوچارت برنامه ای را رسم نمایید که جدول ضرب ۱ تا ۱۰ را با
استفاده از حلقه های تو در تو ایجاد نماید.
صفحه 52:
صفحه 53:
الگوریتم برنامه ای را بنویسید که دو عدد 2 و را خوانده. عبارت زير را
محاسبه و نمایش دهد
* () تعداد جملاتسری
* علامت ! فاکتوریل عدد را نشان می دهد
صفحه 54:
0
OH
۱۳ “00”
وامبو تمد
0۵0۲20۹020
هبو
e<= YOO"
۵-۵ ۵0ج
6+0-6دل
e<= “0”
)حم ++ / ©
ودود ود
<P “Yeo”
۵020 , 0
۳002۹20
©-0+لدل
e< Yeo"
هه موه
6+0-6دل
ونيد حنتا
GOT=6*9=90
WOH
”00“ <@
ورت وماحم
0-0 ۳۵0۲2
06+ ادل
۳ عهو
20 0*9
=OHI=0
۶ »۰ .
0۳0۳۳۳029
e<= ۲
ead X10 =04X
1-0-6
تست
۵0۲20 , 0
صفحه 55:
سری زير را محاسبه نماید:
a
S= 1+3+2 +..44
* اندیس حلقه اول 1
' ورودی N
* محاسبه فاکتوریل fact
* اندیس حلقه داخلی ل
* مجموع Sum
صفحه 56:
cn سپ
صفحه 57:
صفحه 58:
فرض كنيد بخواهیم اطلاعات ۱۰۰ کارمند را از ورودی بخوانیم و
سپس آنها را مرتب کنیم. در اینصورت باید ورودیها در جایی از
حافظه ذخیره کنیم. در زبانهای برنامهنویسی معمولا از آرایه برای
ذخیره اطلاعات در حافظه استفاده میکنند. در آرایهها ما با توحه به
تعداد وروديها. طول آن را مشخص میکنیم. سپس دادهها را خوانده در
آن قرار میدهیم
صفحه 59:
>" << آ«" ا" آاآ." "سا "اآ۰۳طء+"آ۳
** تعریف آرایه |
خانههای پشت سر هم از حافظه. که همنوع بوده و توسط یک اسم معرفی
میشوند. ارایه نام دارد.
نحوه دسترسی به هر یک از اعضاء آرایه. از طریق اندیس آرایه امکانپذیر
است . برای تعریف آرایه ابتدا طول آرایه که در حقیقت تعداد خانههای آن
را مشخص میکند. معین میکنیم. سپس نوع خانهها باید معین شوند.
در فلوچارتها آرایهها را بصورت زير نمایش میدهیم:
Name[ 1 .. Length [
طول آرایه . اسم آرايه
صفحه 60:
au.
ali..100]
Read(ali])
10
صفحه 61:
بصورت :
Nam [ index 1
انديس آرايه اسم آرایه
مثال: فلوجارتي رسم كنيد كه يك آرايه حداكثر 100 عنصري را از ورودي
دريافت كرده. سيس آن را خروجي نمايش دهد.
صفحه 62:
صفحه 63:
a[1..20]
1> 1
ali] <— Nmod2 if i No
۰" 1 رما ۱
yes
N <— Ndiv2 write(ali])