آموزش آلگوریتم نویسی

navidba

Well-Known Member
تعريف الگوريتم
به مجموعه اي از دستورالعمل ها كه با زبان دقيق و قابل فهم به همراه جزييات لازم و كافي به گونه ای اجرا(انجام) شود كه در نهايت هدف خاصي دنبال شود

در يك الگوريتم موارد زير بايد مد نظر قرار گيرد
1-هر الگوريتم بايد داراي شروع و پايان باشد.
2-استفاده از زبان ساده ، دقيق و قابل فهم در الگوريتم
3-استفاده از جزييات كافي
4-ترتيب اجرا(انجام) دستور العمل ها
5-استفاده از حداقل دستورالعمل ها
6-آگاهي از حداقل امكانات مجري الگوريتم
7-تعميم پذيري
8- هر الگورتيم بايد داري فعل باشد و مرجع آن نيز كاملا مشخص باشد.(فاعل افعال بايد كاملا معلوم باشد).

تذكر : منظور از زبان دقيق در يك الگوريتم يعني اينكه هر كاربر در انجام دستورالعمل ها يك برداشت يكسان داشته باشد.
تذكر 2 : حداقل توانايي هاي مجري الگوريتم هاي زير شناخت اعداد ، توانايي انجام چهار عمل اصلي در رياضي و مقايسه اعداد از نظر بزرگتر و كوچكتري است .

مثال 0 : الگوريتم تلفن زدن
1-شروع
2-برداشتن گوشي
3-انداختن سكه 50 ريالي
4-گرفتن شماره
5-مكالمه
6-گذاشتن گوشي
7-پايان

مثال 1 : الگوريتمي بنويسيد كه اعداد كوچكتر از 5 را چاپ نمايد.
1-شروع
2-چاپ كن اعداد 1و2و3و4
3-پايان

مثال 2 : الگوريتمي بنويسيد كه اعداد بين 10 و 20 را چاپ نمايد.
1-شروع
2-چاپ كن اعداد 11و12و13و14و15و16و17و18و19
3-پايان

مثال 3 :
الگوريتمي بنويسيد كه يك عدد را از ورودي بگيرد و سپس آنرا چاپ نمايد.
روش اول :
1-شروع
2-دريافت كن عدد مورد نظر را
3-چاپ كن عدد فوق را
4-پايان

مثال 4 :
الگوريتمي بنويسيد كه دو عدد را از ورودي دريافت نموده ،حاصل جمع آنها را به عنوان نتيجه چاپ نمايد.
1-شروع
2-دو عدد را از ورودي دريافت نموده ، در متغيرهاي A,B قرار بده
3-‍C= A + B
4-چاپ كن C را
5-پايان

مثال 5 :
الگوريتمي بنويسيد كه شعاع يك دايره را از ورودي بگيرد و محيط دايره مورد نظر را چاپ نمايد.
1- شروع
2-شعاع دايره را دريافت نموده ، در ظرفي بنام R‌ ذخيره كن
3-R را دو برابر كن و در عدد 3.14 ضرب كن (فرمول محاسبه محيط دايره)
4-نتيجه حاصل از عمل مرحله 3 را در ظرفي بنام M‌ قرار بده.
5-محتويات M را چاپ كن
6-پايان

مثال 6:
الگوريتمي بنويسيد كه طول و عرض يك مستطيل را از ورودي بگيرد و محيط و مساحت آنرا چاپ نمايد.
1-شروع
2-عددي را به عنوان طول مستطيل دريافت كن و در ظرف T‌ قرار بده
3-عددي را به عنوان عرض مستطيل دريافت كن و در ظرف A‌ قرار بده
4-محتويات ظرف T‌ را در ظرف A ضرب كن نتيجه را در ظرف Mo قرار بده.
5-محتويات ظرف Mo را چاپ كن
6-محتويات ظرف T را با محتويات ظرف A‌ جمع كن و نتيجه را در ظرف S‌ قرار بده
7-محتويات ظرف S را دو برابر كن و در ظرف Ma قرار بده
8-محتويات ظرف Ma را چاپ كن
9-پايان

مثال 7 :
الگوريتمي بنويسيد كه عددي را از ورودي بگيرد و اگر عدد دريافت شده مثبت بود پيغام "Mosbat" در غير اينصورت پيغام "Manfi"‌ را چاپ نمايد.
1-شروع
2-عددي را از ورودي بگير و در ظرف N قرار بده
3-اگر N > 0 ‌ بود آنگاه چاپ كن پيغام "Mosbat" در غير اينصورت چاپ كن پيغام "Manfi" را
4-پايان

مثال 8:
الگوريتمي بنويسيد كه عددي را از ورودي دريافت نمايد اگر عدد دريافت شده زوج بود پيغام "Zoj" در غير اينصورت پيغام "ّFard" را چاپ نمايد.
1-شروع
2-عددي را از ورودي دريافت نموده ، در ظرفي بنام N قرار بده
3-اگر باقي مانده تقسيم عدد بر 2 صفر بود چاپ كن "Zoj" در غير اينصورت چاپ كن "Fard"
4-پايان

نكته : همانطور كه در الگوريتم هاي بالا ديده مي شود هر الگوريتم از 3 قسمت اساسي تشكيل شده است كه بسته به نوع الگوريتم ممكن است يك يا دو قسمت از اين سه قسمت را نداشته باشد اين سه قسمت عبارتند از
الف)ورودي هاي الگوريتم
ب)عمليات قابل انجام در الگوريتم(عمليات مورد نظر)
ج)خروجي هاي الگوريتم

مثلا مثال 1 ورودي ندارد عملياتي هم ندارد و فقط الگوريتم كافي است كه اعداد مورد نظر را چاپ نمايد.يعني فقط خروجي دارد.
در مثال 3 الگوريتم فقط داراي ورودي و خروجي است و سيستم عمليات خاصي كه كاربر آن را معين كرده باشد انجام نمي دهد.
در مثال 4 الگوريتم هر سه قسمت را دارا مي باشد يعني هم ورودي ، هم خروجي و هم عمليات خاص مورد نظر كاربر (يعني جمع دو عدد را انجام مي دهد)
با توجه به موارد فوق گاهي اوقات ممكن است در يك الگوريتم يكي از سه قسمت فوق خود داراي چند مرحله باشد اما به هر حال قالب كلي همان سه قسمت فوق است اينك به ذكر الگوريتم هايي مي پردازيم كه يك قسمت ممكن است چند مرحله داشته باشد.

با تشکر
نوید
 

navidba

Well-Known Member
مثال 9 :
الگوريتمي بنويسيد كه اعداد 1 تا 10 را بر روي صفحه نمايش چاپ كند.
1-شروع
2- I=1 (در اينگونه الگوريتم ها به ظرف I شمارنده يا Counter مي گويند)
3-چاپ كن I را
4-I = I + 1
5-اگر محتواي ظرف I كوچكتر يا مساوي 10 بود آنگاه برو به مرحله 3
6-پايان

در مرحله 2 از مثال فوق I مساوي يك قرار داده شده است بايد به اين نكته توجه داشته باشيم كه اين يك مساوي رياضي به معناي معادل بودن نيست بلكه به معناي اين است كه مقدار يك را در ظرفي بنام I قرار بده .
ضمنا از اين به بعد به جاي كلمه ظرف در كامپيوتر متغير به كار مي بريم كه خود يك مفهوم است و عبارتست از :

تعريف متغير :
هر متغير يك خانه از حافظه اصلي(Ram) مي باشد كه در هر لحظه مي تواند مقادير مختلفي را به خود اختصاص دهد
تذكر : زماني كه عدد يا داده جديدي وارد يك متغير گردد مقدار قبلي آن از بين مي رود.
تذكر :زماني كه مقدار يك متغير را بخوانيم يا محتواي آن را چاپ نماييم مقدار متغير تغيير نخواهد نمود.
مثال براي درك بهتر متغير :
فرض كنيم دو متغير با نامهاي A,B‌ با مقادير 2و 4 داريم حال حاصل عبارت هاي زير را ملاحظه نماييد.

در هر عبارت نتيجه چه خواهد بود


(الفA = A +1  A= 3
(بB = B + 3  B = 7
(جB = A +1  A= 3 , B =4
(دA = B +3 A = 7 , B=4
(يC = A + B A= 7, B = 4 , C= 11


مثال 10 :
الگوريتمي بنويسيد كه اعداد 10 تا 1 را بر روي صفحه نمايش چاپ كند.
1-شروع
2- 0I=1
3-چاپ كن I را
4-يكي از I كم كن و نتيجه را دوباره در ظرف I‌ قرار بده (يعني I=I-1)
5-اگر محتويات ظرف I بزرگتر يا مساوي 1 بود آنگاه برو به مرحله 3
6-پايان
مثال 10:
مثال11:‌ الگوريتمي بنويسيد كه كليه مضارب 2 كه كوچكتر از 100 هستند را چاپ كند.

مثال 12 : الگوريتمي بنويسيد كه كليه مقسوم عليه هاي عدد 30 را چاپ كند(مقسوم عليه عددي است كه عدد مورد نظر بر آن بخش پذير است مثلا 5 مقسوم عليه 30 مي باشد)


مثال 12 : الگوريتمي بنويسيد كه كليه مقسوم عليه هاي هر عدد را چاپ كند.


مثال 13 : الگوريتمي بنويسيد كه يك عدد را دريافت كند و اول يا مركب بودن آنرا معين نمايد .(عدد اول عددي است كه غير از خودش و يك مقسوم عليه ديگري نداشته باشد.




مثال 14: الگوريتمي بنويسيد كه كليه مقسوم عليه هاي اول هر عدد را چاپ كند(مقسوم عليه عددي است كه عدد مورد نظر بر آن بخش پذير است مثلا 5 مقسوم عليه 30 مي باشد)


مثال 15: الگوريتمي بنويسيد كه بزرگترين مقسوم عليه مشترك دو عدد دلخواه را چاپ كند.(مثلا 6 بزرگترين مقسوم عليه مشترك دو عدد 18و 12 مي باشد)

مثال 16 : الگوريتمي بنويسيد كه محتويات دو متغير دلخواه را با هم عوض كند.

مثال 17 : الگوريتمي بنويسيد كه كوچكترين مضرب مشترك (كوچكترين مخرج مشترك) را محاسبه و چاپ كند(مثلا كوچكترين مضرب مشترك دو عدد 18و 12 عدد 36 مي باشد)

مثال 18: الگوريتمي بنويسيد كه سه مقدار از ورودی خوانده آنها را به طور نزولی در خروجی چاپ کند.

مثال 19- الگوريتمي بنويسيد كه عددی را خوانده قدر مطلق آن را چاپ کند.

مثال 20: الگورتیمی بنوسید که معادله درجه دوم AX2+BX+c=0 را حل کند .

مثال 21: الگوريتمي بنويسيد كه تعداد N عدد را از ورودی خوانده تعداد اعداد منفی – صفر و مثبت را مشخص کند.

مثال 22: الگوريتمي بنويسيد كه تعدادی عددرا از ورودی خوانده بزرگترین عدد را پیدا و چاپ کند.

مثال 23: الگوريتمي بنويسيد كه فاکتوریل هر عدد دلخواه را محاسبه و چاپ کند.
 

navidba

Well-Known Member
تعريف فلوچارت(نمودار گردشي)
در يك فلوچارت به جاي هر يك از دستورالعمل هاي يك الگوريتم يك نماد (يا شكل) قرار مي دهيم به يك فلوچارت الگوريتم تصويري نيز مي گويند.




نمادها و اشكال مورد استفاده در يك فلوچارت
1-نماد شروع


2-نماد پايان

3-نماد دريافت يك داده

1-3: نماد دريافت يك داده از طريق صفحه كليد

4-نماد چاپ يك داده

1-4: نماد چاپ يك داده بر روي چاپگر


2-4 :نماد چاپ يك داده بر روي صفحه نمايش

5-نماد اجراي دستورالعمل يا عبارات محاسباتي

6-نماد دستورات شرطي








7-نماد حلقه (رابط)

8-خطوط ارتباطي




مثال 1 :
فلوچارتي رسم كنيد كه يك عدد را از ورودي بگيرد و سپس آنرا چاپ نمايد.




















مثال 2 :
فلوچارتي رسم كنيد كه دو عدد را از ورودي دريافت نموده ،حاصل جمع آنها را به عنوان نتيجه چاپ نمايد.























مثال 3 :
فلوچارتي رسم كنيد كه شعاع يك دايره را از ورودي بگيرد و محيط دايره مورد نظر را چاپ نمايد.



























مثال 4 :
فلوچارتي رسم كنيد كه طول و عرض يك مستطيل را از ورودي بگيرد و محيط و مساحت آنرا چاپ نمايد.




















مثال 5 :
فلوچارتي رسم كنيد كه عددي را از ورودي بگيرد و اگر عدد دريافت شده مثبت بود پيغام "Mosbat" در غير اينصورت پيغام "Manfi"‌ را چاپ نمايد.




























مثال 6 :
فلوچارتي رسم كنيد كه عددي را از ورودي دريافت نمايد اگر عدد دريافت شده زوج بود پيغام "Zoj" در غير اينصورت پيغام "ّFard" را چاپ نمايد.

















تذكر : N Mod 2 = 0 يعني اگر باقيمانده تقسيم N بر 2 برابر صفر بود آنگاه ....




مثال 7 :
فلوچارتي رسم كنيد كه اعداد 1 تا 10 را بر روي صفحه نمايش چاپ كند.
 

navidba

Well-Known Member
مثال 1 :
برنامه اي بنويسيد كه يك عدد را از ورودي بگيرد و سپس آنرا چاپ نمايد.
Input "Please Enter a number :" ,N
Print N
End
مثال 2 :
برنامه بنويسيد كه دو عدد را از ورودي دريافت نموده ،حاصل جمع آنها را به عنوان نتيجه چاپ نمايد.
Cls
Input "Enter a number :",a,b
C = a + b
Print a; "+";b; "=";C
End




مثال 3 :
برنامه اي بنويسيد كه شعاع يك دايره را از ورودي بگيرد و محيط دايره مورد نظر را چاپ نمايد.
CLS
INPUT "enter radius :", R
Mo = 2 * 3.14 * R
PRINT "Mohit = "; Mo
END

مثال 4 :
برنامه اي بنويسيد كه طول و عرض يك مستطيل را از ورودي بگيرد و محيط و مساحت آنرا چاپ نمايد.
CLS
INPUT "Vared kon tol & Arz :", T, A
Mo = (T + A) * 2
Ma = T * A
PRINT "Mohit="; Mo
PRINT "Masahat="; Ma
END

مثال 5 :
برنامه اي بنويسيد كه عددي را از ورودي بگيرد و اگر عدد دريافت شده مثبت بود پيغام "Mosbat" در غير اينصورت پيغام "Manfi"‌ را چاپ نمايد.
CLS
INPUT "Vared kon Yek adad :", N
IF N > 0 THEN
PRINT "Mosbat"
ELSE
PRINT "Manfi"
END IF
END



مثال 6 :
برنامه اي بنويسيد كه عددي را از ورودي دريافت نمايد اگر عدد دريافت شده زوج بود پيغام "Zoj" در غير اينصورت پيغام "fard" را چاپ نمايد.


CLS
INPUT "vared kon Yek adad :", N
IF N MOD 2 = 0 THEN
PRINT "zoj"
ELSE
PRINT "fard"
END IF
END

مثال 7 :
برنامه بنويسيد كه اعداد 1 تا 10 را بر روي صفحه نمايش چاپ كند.

CLS
FOR I = 1 TO 10
PRINT I;
NEXT I
End

مثال 8 :
برنامه اي بنويسيد كه 3 عدد را از ورودي بگيرد و مشخص كند كه هر عدد زوج است يا فرد ؟(ضمنا برنامه فوق را با حلقه For بنويسيد).
CLS
For I=1 To 3
INPUT "vared kon Yek adad :", N
IF N MOD 2 = 0 THEN
PRINT "zoj"
ELSE
PRINT "fard"
END IF
Next I
END
 

navidba

Well-Known Member
مثال 9 :
برنامه اي بنويسيد كه 3 عدد را از ورودي بگيرد و مشخص كند كه حاصل جمع آنها زوج است يا فرد ؟
روش اول (بدون استفاده از حلقه)
Cls
Input "Please enter 3 number :",A,B,C
D = A + B + C
If D Mod 2 = 0 Then
Print "Zoj"
Else
Print "Fard"
End if
End
روش دوم( با استفاده از حلقه )

Cls
For I = 1 To 3
Input "Vared kon yek adad",A
C = C + A
Next I
If C Mod 2 = 0 Then
Print "Zoj"
Else
Print "Fard"
End if
End
مثال 10 :
برنامه اي بنويسيد كه مضارب 10 تا 100 و نيز مجموع آنها را محاسبه نموده و با پيغام هاي مناسب چاپ نمايد.
روش اول :
Cls
For I = 1 to 10
Print I *10
Hj = Hj + I *10
Next I
Print "Hasel Jam =";Hj
End
روش دوم :
Cls
For I =10 to 100 Step 10
Print I
Hj = Hj + I
Next I
Print "Hasel Jam =";Hj
End

حلقه شرطي While
حلقه While يك حلقه شرطي بوده و تا زماني كه شرط مقابل While درست باشد دستورات داخل حلقه اجرا خواهد شد فرم كلي اين حلقه به صورت زير مي باشد.
While شرط
دستورات داخل حلقه
Wend
مثال 11 :
برنامه بنويسيد كه اعداد 1 تا 10 را بر روي صفحه نمايش چاپ كند(با استفاده از حلقه While)
I = 1
While I < 10
Print I
I = I +1
Wend
End

مثال 12 :
برنامه بنويسيد كه اعداد 10 تا 1 را بر روي صفحه نمايش چاپ كند(با استفاده از حلقه While)
I = 10
While I >= 1
Print I
I = I -1
Wend
End
 
  • Like
Reactions: m_z

navidba

Well-Known Member
مثال 13 :
برنامه اي بنويسيد كه مضارب اعداد 10 تا 100 را با استفاده از حلقه While چاپ نمايد.
Cls
I = 10
While I <= 100
Print I
I = I + 10
Wend
End
مثال 14 :
برنامه اي بنويسيد كه سه عدد را از ورودي بگيرد و تشخيص دهد اعداد دريافت شده فرد است يا زوج (با استفاده از حلقه While)
‍‍Cls
I = 1
While I <= 3
Input "Enter a number ",N
If N Mod 2 = 1
Print "Fard"
Else
Print "Zoj"
End if
I = I +1
Wend
End
مثال 15 :
برنامه اي بنويسيد كه 5 عدد را از ورودي بگيرد و حاصل جمع و ميانگين آنها را چاپ نمايد.
Cls
I = 1
While I < =5
Input "vared kon Yek adad:" ,n
Hj = Hj + n
I = i+1
Wend
Print "hasel jam = ";Hj
Mi = Hj / 5
Print "Miangin =";Mi

End
 
  • Like
Reactions: m_z

navidba

Well-Known Member
ببخشید یادم رفت...
منبع : مقالات پژوهس سرای دانش آموزی اراک
 

talesh

Active Member
الگوريتمي بنويسيد كه كليه مضارب 2 كه كوچكتر از 100 هستند را چاپ كند.

میشه اینو یکی جواب بده چطور به زبان برنامه نویسی ویژوال میشه نوشتش
تشکر
 

جدیدترین ارسال ها

بالا