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. آموزش کامل




توانایی حل مسائل و الگوریتم و فلوچارت

:: تکنولوژی آموزشی :: - توانایی حل مسائل و الگوریتم و فلوچارت - وبلاگ سعید لطیفی - :: تکنولوژی




برچسب :