Algorithm
Algorithm
الگوريتم : به مجموعه اي از دستورالعمل ها يي كه با ترتيب معين و مشخص اجراشده و موجب حل مسآله اي گردند را الگوريتم گويند . ويا
الگوريتم به مجموعه دستورالعملهايي گفته مي شود كه مراحل حل يك مسئله و يا مرحل مختلف انجام كاري را با يك زبان واضح ، روشن و بدون ابهام وپيچيدگي با جزئيات كافي بيان كرده و در آن شروع و پايان عمليات و همچنين ، ترتيب اجراي دستورالعمل ها كاملا مشخص شده باشد . مثال ( الگوريتم محاسبه مجموع 2 عدد 10 و 20 )
1. شروع
2. 10------> A
3. 20------> B
4. A + B ------< C
5. محتويات C را چاپ كن
6. پايان
اجزاي اصلي الگوريتم :
نقطه شروع
دستورالعمل ها ( جملات اجرائي )
جملات معمولي و محاوره اي
گزاره ها و روابط رياضي
اشكال هندسي استاندارد
نقطه پايان
متغيير : خانه اي از حافظه كه داده هاي ورودي ، محاسباتي و خروجي را درخود نگه مي دارد .
انواع جملات :
شرطي : گاهي اوقات نياز به تصميم گيرهاي خاصي است . ( اگر )
محاسباتي : محاسبات رياضي و ...
ثابت ها
عملگرها
توضيحي : جهت افزايش آگاهي اجراي الگوريتم .
ورودي و خروجي : داه هاي ورودي و يا نتيجه محاسبات ( خروجي ) .
حلقه هاي تكرار ( Loop ) :
اجزاء حلقه هاي تكرار :
شمارنده حلقه : جهت كنترل تعداد دفعات تكرار .
بدنه حلقه : جملات و دستورالعمل هايي كه با توجه به صورت مسئله انجام شود .
گام افزايش : پس از اجراي هرمرحله يكي به شمارنده اضافه ميكند .
شرط پاياني : جهت توقف پس از انجام مراحل تكرار .
مثال : الگوريتم چاپ عددهاي متوالي تا 20
1. شروع
2. 1------> I
3. I را چاپ كن
4. I + 1 ------I <
5. اگر I<= 20 آنگاه برگرد به خط 3
6. پايان
الگوريتمي بنويسيد كه شعاع دايره را خوانده سپس محيط و مساحت دايره را محاسبه و چاپ كند . ( ?= 14/3 )
1. شروع
2. R را دريافت كن
3. R*R*3.14 ------< S
4. 2*R*3.14 ------< P
5. S و P را چاپ كن
6. پايان
مسئله هاي زير را حل كنيد :
1- مقسوم عليه هاي عدد ورودي N رامحاسبه وچاپ كند .
2- مجموع مقسوم عليه هاي عدد ورودي N رامحاسبه وچاپ كند .
3- تعداد مقسوم عليه هاي عدد ورودي N رامحاسبه وچاپ كند .
4- عدد هاي اول ك.چكتر از 100 را چاپ كند .
5- عددي را از ورودي گرفته در صورتي كه عدد ورودي اول باشد آنرا چاپ كند .
6- عددي را از ورودي گرفته در صورتي كه عدد ورودي تام باشد آنرا چاپ كند . ( عددي كه مجموع مقسوم عليه هاي بجز خودش با خودش برابر باشد تام گويند مثل عدد 3+2+1=6 )
7- حقوق كارمندي W ريال است . هرماه 5/8 درصد حقوق او بابت بازنشستگي و 5 درصد آن بابت ماليات كسر مي شود . الگوريتمي بنويسيد كه پس ار كسورت دريافتي ماهانه اين كارمند را چاپ كند.
8- الگوريتمي بنويسيد كه ميانگين هندسي دو عدد مثبت ورودي را چاپ كند . ( ميانگين هندسي دو عدد مثبت جذر حاصلضرب آنهاست )
9- الگوريتم ميانگين هندسي سه عدد را بنويسيد .
10- الگوريتمي بنويسيد كه Max 10 عدد را همراه با شماره رديف عدد را چاپ كند .( Max چندمين عدد است )
11- الگوريتمي بنويسيد كه معدل كل 13 درس دانش آموزي را محاسبه و چاپ كند. ( هر درس داراي سه نمرات ثلث اول و دوم باضريب يك ثلث سوم با ضريب دو )
12- عددهاي تام كوچكتر از 5000 را چاپ كند .
13- عددهاي اول بين 100 تا 350 را چاپ كند .
14- فرض كنيد در N امين روز سال هستيم ، الگوريتمي بنويسيد كه تاريخ روز را معين كند . ( مثلا ، اگر در روز 64 سال باشيم ، تاريخ دوم خردادماه است يا 2/3 ، هدف تعيين شمارة روز و ماه مربوطه است )
15- روز اول سال ، چهارشبه است . الگوريتمي بنويسيد كه معين كند روز N ام سال چه روزي از هفته است . ( مثلا روز چهاردهم سه شنبه و روز صدوچهل و سوم جمعه است ).
16- عدد دو رقمي N مفروض است . الگوريتمي بنويسيد كه مجموع ارقام عدد N را بدست آورد .
17- الگوريتمي بنويسيد كه عدد دورقمي N را گرفته سپس مقلوب آنرا چاپ كند .( عدد 27؛ مقلوب 72)
18- عدد طبيعي N مفروض است معين كنيد N چند رقم دارد.
19- الگوريتم فاكتوريل عدد ورودي N . ( N! )
20- الگوريتمي بنويسيد كه ميانگين 8 عدد داده شده 4/8 ، 9 ، 4 ، 1 ، 9/3 ، 6/7 ، 4/3 ،2 را حساب كرده معين كند چندتا از اين اعداد از ميانگين بشتر است .
21- الگوريتمي بنويسيد كه اعداد دو رقمي را كه ارقام آن فرد باشد را چاپ كند .
22- الگوريتمي بنويسيد كه تعيين كند يك سكه 100 ريالي را به چند طريق مي توان با سكه هاي 20 ، 10 و 5 ريالي خرد كرد . ( لازم است كه از تمام سكه ها استفاده شود ).
|+| نوشته شده در پنجشنبه يازدهم اسفند 1384ساعت 22:31 توسط داود بيگدلي | آرشيو نظرات
برنامه نويسي به زبان QBASIC
Qbasic
BASIC مخفف كلمات ( Beginner'S All – Purpose Symbolic Instruction Code به معني كد حاوي دستورات نمادين همه منظوره مخصوص نوآموزان ) ميباشد . اين زبان دركالج Dartmouth بين سالهاي 1963 و 1964 توسط پروقسور John Kemeny و Thomas Kurts به عنوان يك زبان آموزشي ايجادگشت .علت اصلي ايجاد اين زبان را مي توان در پيچيدگي هاي زبان هاي متداول از قبيل Fortran و Assembly وغيره جستجو كرد .
QBASIC مفسر بيسيكي است كه به همراه سيستم عامل MS-DOS نگارش 5 و بالاتر ارائه گرديد. شركت مايكروسافت توليد كننده QBASIC ، با تكميل اين محصول ، نگارش هاي ديگري از بيسيك را روانه بازار كرده است كه نمونه ديگري از آنها Quick Basic مي باشد .
Quick Basic : نرم افزاري است ك هفايل هاي بيسيك را به فايل هاي قابل اجرا در محيط سيستم عامل تبديل مي كند .
دستورات QBASIC :
CLS : اين دستور زماني بكار مي رود كه نياز باشد صفحه نمايش پاك گردد . معمولا در ابتداي هر برنامه نوشته مي شود .
LET : براي انجام كارهاي جايگزيني و محاسباتي
MOD : باقيمانده تقسيم بصورت 10 mod 2 جواب صفر است
\ ( Back Slash ) علامت کسر وارونه : تقسيم جزء صحيح بصورت 10 \ 3 که جواب 3 مي شود
INPUT : براي ورودي ( متغيير عددي مانند x , a , b ,n , m ,Max , Min , Sum, و ... . متغيير نشانه اي( جلوي متغيير عددي علامت $ اضافه مي شود مانند a$ , b$ , Name$ , City$ )
GOTO n:برو به خط n در اول خطي که قرار است دستور از آنجا اجرا شود عدد دلخواه n را مينويسيم
PRINT : دستور خروجي براي به نمايش در آوردن نتيجه برنامه ( همانند متغيير عددي با اين تفاوت كه در جلوي متغيير علامت $ باشد ).
برنامه مساحت مستطيل
Cls
Input a , b
Let S= a * b
Print S
End
برنامه تبديل Ngr (وزن يک جسم ) به Kg و Gr
Cls
Input Ngr
Let Kg = Ngr \ 1000
Let Gr = Ngr Mod 1000
Print Kg , Gr
End
برنامه مجموع ارقام عدد طبيعي دو رقمي N
Cls
Input N
Let D2 = N \ 10
Let D1 = N Mod 10
Let SD = D1 + D2
Print SD
End
برنامه چاپ نام ورودي
Cls
Input Name$
Print Name$
End
IF در بيسيک چند نوع دستور شرطي از نوع IF داريم :
شرط : يک عبارت منطقي است که ارزش آن يا درست يا نادرست باشد . اگر شرط برقرار باشد ( يعني ارزش عبارت منطقي بعد از IF درست باشد ) ؛ دستور(ات) بعد از Then اجرا مي شود والا دستور بعد از خط Then … Then … اجرا مي شود .
عبارات منطقي : در دستور شرطي بعد از کلمه IF يک عبارت منطقي است .که داراي دو ارزش درست يا نادرست است . عبارات منطقي دو گونه است 1- رابط هاي منطقي ( AND - OR - NOT ) 2- عملگرهاي رابطه اي ( = , < , > , <= , >= , < > )
IF … Then … ( در يک خط ): صورت کلي آن دستور(ات ) Then شرط IF
برنامه Max بين دو عدد
Cls
Input a , b
Let Max = a
If b > Max Then Let max = b
Print Max
End
IF بلوکي ( بيش از يک خط ) : صورت کلي آن Then شرط IF
دستور (1)
دستور (2)
... .... ...
دستور (...)
END IF
برنامه چاپ زوج ( EVEN ) يا فرد ( ODD ) ؛ عدد ورودي N
Cls
Input N
If N / 2 = Int ( N / 2 ) Then
Print N ; “ Is EVEN “
End
End IF
Print N ; “ Is ODD “
End
IF … Then … ELSE ( يک خط و بيش از يک خط ) در صورتي که شرط برقرار باشد دستور(ات) بعد از Then اجرا مي شود . والا دستور(ات) بعد از Else اجرا خواهد شد . اگر نتوان دستور فوق را دريک خط نوشت ؛ بايد از IF بلوکي استفاده کرد.
دستور(ات) Else دستور(ات) Then شرط IF
Then شرط IF
دستور (1)
دستور (2)
... .... ...
دستور (...)
ELSE
دستور (1)
دستور (2)
... .... ...
دستور (...)
END IF
در يک موسسه ؛ ماليات حقوق کارمندان را به قرار زير محاسبه مي شود .
الف : تا 50000 ريال معاف از ماليات
ب : از 50001 تا 70000 ريال چهار درصد مازاد 50000
ج : از 70001 به بالا ده درصد
Cls
Input W
If W < = 50000 Then
Print “ Tax = 0 Rial ‘
End
End If
If W = 70000 Then
Let Tax = 4 * ( W – 50000 ) / 100
Else
Let Tax = 800 + 10 * ( W - 70000 )
End If
Print “ Tax = “ ; Tax ; “ Rials “
End
فرايندهاي تکراري ( حلقه تکرار )
اجراي تعدادي دستور به دفعات معين ؛ يا تا برقراري شرايطي جهت رسيدن به جواب مسئله است . دستوراتي که به دفعات تکرار مي شود ؛ يک حلقه تکرار راتشکيل مي دهند .
FOR - NEXT : در صورتي استفاده مي شود که دفعات تکرار معين و يا بتوان فرايند تکرار را با متغييري کنترل کرد .
چاپ اعدا متوالي تا 20
Cls
For I=1 To 20
Print I ;
Next I
End
STEP : در حلقه For - Next قدمهاي تکرار يکي ؛ يکي رو به جلو تعريف شده در بقيه حالت ها چه مثبت چه منفي بايد در مقابل For - To Step معلوم گردد .
چاپ نزولي از 20 تا 1
Cls
For I = 20 to 1 Step - 1
Print I
Next I
End
با توجه به دانسته هاي بالا براي مسئله هاي داده شده در بخش الگوريتم برنامه بنويسيد . در صورتيکه نرم افزار QBASIC را در کامپيوترتان نداريد در بخش نظزات وبلاگ آدرس E-Mail خودتان ار بنويسيد تا برايتان نرم افزار را ارسال کنم . هرچند اين نرم افزار براي محيط DOS تعريف شده اما بدون هيچگونه مشکلي در محيط ويندوز XP کار مي کند . جهت اطلاع مي گويم براي مشاهده تمام صفحه محيط QBASIC از کليد ترکيبي Alt + Enter استفاده کنيد . براي برگشت هم از همان کليد ترکيبي استفاده کنيد .
چند نمونه برنامه
برنامه چاپ زوج يا فرد بودن عدد ورودي
Cls
Input N
Let r = N Mod 2
If r = 0 Then Print N ; " is Even " Else Print N ; " is Odd "
End
برنامه تبديل ثانيه به ساعت ؛ دقيقه و ثانيه
Cls
Input S
Let H = S \ 3600
Let S = S Mod 3600
Let M = S \ 60
Let Se = S Mod 60
Print H , M , Se
End
چاپ مقسوم عليه هاي عدد 12
Cls
Let I = 1
8 Let r = 12 Mod I
If r = 0 Then Print I
Let I = I + 1
If I < = 12 Then Goto 8
End
چاپ مقسوم عليه هاي عدد 12 بکمک دستور For – Next
Cls
For I = 1 To 12
R = 12 Mod I
If r = 0 Then Print I
Next I
End
چاپ تعداد مقسوم عليه هاي عدد 12
Cls
Let K = 0
For I = 1 To 12
R = 12 Mod I
If r = 0 Then Let K = K = 1
Next I
Print K
End
چاپ مجموع مقسوم عليه هاي عدد 12
Cls
Let S = 0
For I = 1 To 12
R = 12 Mod I
R = 0 Then Let S = S + I
Next I
Print S
End
چاپ مقسوم عليه هاي عدد ورودي
Cls
Input N
For I = 1 To N
R = N Mod I
If r = 0 Then Print I
Next I
End
چاپ عدد ورودي به شرط اول بودن عدد ( به کمک تعداد مقسوم عليه )
Cls
Let K = 0
Input N
For I = 1 To N
R = N Mod I
If r = 0 Then Let K = K + 1
Next I
If K = 2 Then Print N ; " is Aval "
End
چاپ عدد ورودي به شرط اول بودن عدد ( به کمک مجموع مقسوم عليه )
Cls
Let S =0
Input N
For I = 1 To N
R = N Mod I
If r = 0 Then Let S = S + I
Next I
If S = N + 1 Then Print N ; " is Aval "
End
چاپ عدد ورودي به شرط تام بودن عدد
Cls
Let S = 0
Input N
For I = 1 To N/2
R = N Mod I
If r = 0 Then S = S + I
Next I
If S = N Then Print N ; " is TAM "
End
چاپ عددهاي زوج بين دو عدد ورودي به شرط اينکه عدد اول از دوم کوچکتر باشد( معلوم نيست عدد اول زوج باشد )
Cls
Input m , n
Let r = m Mod 2
If r > 0 Then Let m = m + 1
7 Print m
Let m = m + 2
If m < = N Then Goto 7
End
Cls
Input N
Let r = N Mod 7
For I = 0 To 5
If r = I Then Print I ; " Shanbe" : End
Next I
Print " Joomae "
End
چاپ تعداد ارقام عدد ورودي
Cls
Let K = 0
Input N
3 Let M = N \ 10
If M > 0 Then Let K = K + 1
Let N = M
If N > 0 Then Goto 3
Print K
End
چاپ مجموع ارقام عدد ورودي
Cls
Let S = 0
Input N
3 Let R = N Mod 10
Let M = N \ 10
If M > 0 Then Let S = S + r
Let N = M
If N > 0 Then Goto 3
Print S
End
توليد عددهاي فرد دو رقمي
Cls
For I = 1 To 9 Step 2
For K = 1 To 9 Step 2
Sum = I * 10 + K
Prin Sum
Next k
Next I
End
تعداد دفعات ممکن خرد کردن اسکناس 2000 ريالي بکمک سکه هاي 50 ؛ 100 و 250 ريالي به شرط اينکه از هر سکه حداقل يکي باشد .
Cls
K = 0
For P = 1 To 33
For S = 1 To 17
For D = 1 To 7
Let sum = P * 50 + S * 100 + d * 250
If Sum = 2000 Then k = k + 1
Next D
Next S
Next P
Print K
End
دريافت نرم افزار QBASIC
http://www.4shared.com/file/942998/fb41f2db/Qprog.html
مطالب مشابه :
الگوریتم - شبه کد 2
و در خط ۷ هم حلقه کامل می شود. برای بررسی بهتر الگوریتم یک عدد فرضی را در نظر می گیریم و تمام
جواب سوالات تمرینات شماره یک سری دوم
عدد طبیعی n را تام یا کامل گویند هرگاه زیر بدست آورید.الگوریتم را تا سه جمله
آموزش الگوریتم و فلوچارت
در خط ۲ الگوریتم ۲ عدد دلخواه a و b را می گیرد و در آن ها قرار می و در خط ۷ هم حلقه کامل می شود.
سوالات الگوریتم فلوچارت
سوالات الگوریتم که آنقدر عدد از ورودی بگیرد را گرفته تعیین کند که آیا کامل
آموزش الگوریتم و برنامه نویسی
رفتن به محل کار.مثلا روش مصرف دارو تا از بین رفتن کامل عدد بزرگترین الگوریتم های که
الگوریتم
عدد بعدی را به هر حال، چون چارلز بابیج هرگز موتور تحلیلی خود را کامل نکرد، این الگوریتم بر
Algorithm
چاپ عدد ورودي به شرط اول بودن عدد ( به کمک مجموع مقسوم عليه ) Cls. Let S =0. Input N. آموزش کامل
توانایی حل مسائل و الگوریتم و فلوچارت
:: تکنولوژی آموزشی :: - توانایی حل مسائل و الگوریتم و فلوچارت - وبلاگ سعید لطیفی - :: تکنولوژی
برچسب :
الگوریتم عدد کامل