Algorithm Flochart
Algorithm Flochart
همPه اين مسPائل نياز بPه روشPي بPراي حPل كPردن دارنPد
مثال راه رفتن بايد بPا تPرتيب خاصPي و مراحPل معيني
انجPام شPود .تPا مسPئله راه رفتن بPراي بشPر حPل شPود.
اصPطالحًا روش انجPام كPار يا حPل مسPئله را الگPوريتم آن
مسئله مينامند.
تعریف الگوریتم
هر دسPتورالعملی کPه مراحPل انجPام کPاری را بPا زبPانی دقیPق و بPا
جزئیPات کPافی بیPان نمایPد بطوریکPه تPرتیب مراحPل و شPرط خاتمPه
عملیات در آن کامال“ مشخص شده باشد را الگوریتم گویند.
(ادامه) تعریف الگوریتم
زبان دقیق ،آن است که الگوریتم دقیقا“ به همان صورتیکه مورد
نظر نویسنده است اجرا گردد.
جزئیات کافی ،آن است که در طول اجرای الگوریتم عملیات
ناشناخته پیش نیامده و باعث انحراف از مسیر و هدف اصلی
نگردد.
ترتیب مراحل ،آن است که مراحل اجرای الگوریتم قدم به قدم و با
رعایت تقدم و تأ خر مشخص شده باشد.
شرط خاتمه ،پایان پذیر بودن الگوریتم می باشد و بهرحال الگوریتم
باید در زمانی دلخواه و تحت شرایط یا شرایط داده شده خاتمه
مراحل تهیه الگوریتم
برای تهیPPه یPPک الگPPوریتم خPPوب و کارآمPPد بایPPد مراحPPل
خاصی اجرا شوند:
A,B
Z ←A*B
Z
پایان
مثال 2
فلوچارتی رسم کنید که شعاع یک دایره را خوانده ،مساحت
شروع و محیط آنرا نمایش دهد.
R
A←3.14*R²
P←2*R*3.14
A,P
پایان
مثال 3
فلوچارتی رسم نمائيد كه دو عدد از ورودي دريافت كرده سپس
محتويات دو عدد را با هم جابجانمايد.
a b
12
راه اول :استفاده از متغیر15کمکی
براي حل اين مسئله دو عدد خوانده شده از ورودی ،در متغیرهای
b , aقرار ميگيرند .سپس با استفاده از يك متغير كمكي محتويات
اين دو عدد را جابجا ميكنيمtemp .
Begin )(ادامه 3 مثال
a,b ترسیم فلوچارت
temp a
a b
b temp
a,b
End
Begin (ادامه) مثال 3
a,b ترسیم فلوچارت (روش دوم )
a a+b
b a–b
a a-b
a,b
End
تمرین
NO
عمل يا عملیات بعدي
مثال 5
فلوچارتي رسم نمائيد كه عددي را از ورودي دريافت كرده ،فرد
Start يا زوج بودن آن را تشخيص دهد.
A
Yes Even
Z=0
No
Odd
End
مثال 6
فلوچارتي رسم كنيد كه دو عدد از ورودي دريافت كرده
Startنمايد.
بزرگترين عدد را پيدا كرده در خروجي چاپ
A,B
Max ←A
Yes
B > Max Max ←A
No
Max
End
Start
مثال 7
خوانده و بصورت زیر تصمیمA,Bعدد ,را
فلوچارتی رسم کنید که سه C
گیری نماید:
جمع دو عدد دیگر
C=0حاصل -اگر عدد سوم صفر بود Y
D←A+B
-اگر عدد سوم منفی بود تفاضل Nدو عدد دیگر
Y
D←A-Bرا نمایش
ضرب دو عدد دیگر
-در غیر حالتهای فوق حاصل C<0
N دهد.
D←A*B
D
End
مثال 8
فلوچارتي رسم كنيد كه ریشه های یک معادله درجه 2را محاسبه
AX²+BX+C=0 کند.
D=B²-4AC •
• اگر ، D<0معادله ریشه ندارد
• اگر ، D=0حاصل عبارت – B/2Aرا در X1و X2قرار
بده
)( B D ) /(2 A
را در X1قرار بده • حاصل عبارت
)( B D ) /(2 A
را در X2قرار بده • حاصل عبارت
• مقادیر X1و X2را نمایش بده
Start ) ( ادامه 8 مثال
A,B,C
2
D B 4AC
Y
X1 , X2
End
ساختارهای کنترلی حلقه
در حPل بسPياري از مسPائل نیPاز اسPت یکسPری از دسPتورات بصPورت مکPرر
تکPرار شPوند تPا یPک پروسPه خPاص انجPام پPذیرد یPا بPرای نوشPتن بعضPی از برنامPه
ها احتیاج است تعداد زیادی متغیر تعریف شود.
No
i <= n اتمام كار حلقه
Yes
i=i+1
مثال 9
فلوچارتی رسم کنید که اعداد 1تا 10را در خروجی نمایش دهد.
Start
i=1
No
i <= 10 End
Yes
i
i=i+1
مثال 10
فلوچارتی رسم کنید که اعداد زوج 1تا 10را در خروجی
نمایش دهد.
Start
i=2
No
i <= 10 End
Yes
i
i=i+2
مثال 11
فلوچارتی رسم کنید که اعداد زوج 1تا 10را در خروجی
نمایش دهد.
Start
i=2
No
i <= 10 End
Yes
i
i=i+2
مثال 12
فلوچارتی رسم کنید که 5عدد از ورودی دریافت کرده،
Startکند.
مجموع و میانگین آنها را در خروجی چاپ
i=1
Sum = 0
No
i <= 5 Sum
Yes
n Sum/5
Y
j >=10 i ← i+1
حلقه خارجی
N
p←i*j
حلقه داخلی
p
j ← j+1
مثال 14
فلوچارتي رسم نمائيد كه Nرا از ورودي دريافت كرده،
مجموع
S 1 Nمحاسبه نمايد3 :
2 سري زير را
!2 !3 .... !N
i انديس حلقه اول
ورودیN
sum مجموع
start
)(ادامه 14 مثال
i=1
Sum = 1
No sum
* i<=N
yes
Fact = 1
j=2 End
No
j<=i sum = sum + i/ Fact
yes
Fact = Fact * j
i = i+1
j = j+1
*