1
‫فلوچارت‬ ‫و‬ ‫الگوريتم‬
algorithm
and
flowchart
-
‫اهداف‬
‫كلي‬
‫درس‬ ‫این‬

‫ارائه‬
‫الگوریتم‬
‫برای‬
‫حل‬
‫مساله‬

‫مفاهیم‬
‫زبان‬
‫های‬
‫برنامه‬
‫نویسی‬

‫اصول‬
‫و‬
‫مفاهیم‬
‫اولیه‬
‫برنامه‬
‫نویسی‬
‫ساخت‬
‫یافته‬
❑
‫ثابتها‬
❑
‫متغیرها‬
❑
‫منطقی‬ ‫و‬ ‫محاسباتی‬ ‫عبارات‬
❑
‫ها‬‫دستورالعمل‬ ‫انواع‬
❑
‫شرطی‬ ‫عملیات‬
❑
‫ها‬‫حلقه‬ ‫انواع‬
❑
‫ها‬‫ماتريس‬ ‫و‬ ‫بردارها‬
❑
‫ها‬‫داده‬ ‫انواع‬
❑
‫توابع‬
❑
‫گرها‬ ‫اشاره‬
❑
‫رکوردها‬
❑
‫ها‬‫فايل‬
❑
‫برنامه‬ ‫طراحی‬ ‫پیشرفته‬ ‫اصول‬ ‫با‬ ‫آشنايی‬
-
‫مطالب‬ ‫فهرست‬
4
‫مساله‬ ‫حل‬ ‫و‬ ‫ها‬ ‫الگوريتم‬ ‫طراحی‬ ‫اصول‬ ❑
‫فلوچارت‬ ‫و‬ ‫کد‬ ‫شبه‬ ❑
-
‫سازی‬ ‫برنامه‬ ‫و‬ ‫مسئله‬ ‫حل‬

‫چون‬
‫کامپیوتر‬
‫قادر‬
‫به‬
‫تفکر‬
،‫نیست‬
‫برای‬
‫انجام‬
‫کارهای‬
‫مفید‬
‫نیاز‬
‫به‬
‫برنامه‬
‫ريزی‬
‫دارد‬
.

‫برنامه‬
‫نويسی‬
‫کامپیوتر‬
‫چیزی‬
‫بیشتر‬
‫از‬
‫نوشتن‬
‫لیس‬
‫تی‬
‫از‬
‫دستور‬
‫العملها‬
‫نی‬
‫ست‬
.

‫يکی‬
‫از‬
‫اجزاء‬
‫اصلی‬
‫برنامه‬
‫نويسی‬
‫حل‬
‫مسئله‬
‫است‬
‫که‬
‫ب‬
‫ه‬
‫طراحی‬
‫و‬
‫تفکر‬
‫زيادی‬
‫احتیاج‬
‫دارد‬
.
-
‫الگوریتم‬ ‫تعریف‬

‫هر‬
‫دستورالعملی‬
‫که‬
‫مراحل‬
‫انجام‬
‫کاری‬
‫را‬
‫با‬
‫زبانی‬
‫دقیق‬
‫و‬
‫با‬
‫جزئیات‬
‫کافی‬
‫بیان‬
‫نماید‬
‫بطوریکه‬
‫ت‬
‫رتیب‬
‫مراحل‬
‫و‬
‫شرط‬
‫خاتمه‬
‫عملیات‬
‫در‬
‫آن‬
ً
‫ا‬‫ل‬‫کام‬
‫مشخص‬
‫شد‬
‫ه‬
‫باشد‬
‫را‬
‫الگوریتم‬
‫گویند‬
.

‫باشد‬ ‫دقیق‬
.

‫باشد‬ ‫داشته‬ ‫را‬ ‫مسئله‬ ‫حل‬ ‫كامل‬ ‫جزئیات‬
.

‫پایان‬
‫باشد‬ ‫پذیر‬
.
-
‫الگوریتم‬ ‫تعریف‬

‫منظور‬
‫از‬
‫زبان‬
‫دقیق‬
:
‫آن‬
‫است‬
‫که‬
‫الگوریتم‬
ً
‫ا‬‫ا‬‫دقیق‬
‫به‬
‫همان‬
‫صورتیک‬
‫ه‬
‫مورد‬
‫نظر‬
‫نویسنده‬
‫است‬
‫اجرا‬
‫گردد‬
.

‫منظور‬
‫از‬
‫جزئیات‬
‫کافی‬
،
‫آن‬
‫است‬
‫که‬
‫در‬
‫طول‬
‫اجرای‬
‫الگوریتم‬
‫عملیات‬
‫ناشناخته‬
‫پیش‬
‫نیامده‬
‫و‬
‫باعث‬
‫انحراف‬
‫از‬
‫مسیر‬
‫و‬
‫هدف‬
‫اصلی‬
‫نگردد‬
.

‫منظور‬
‫از‬
‫ترتیب‬
‫مراحل‬
،
‫آن‬
‫است‬
‫که‬
‫مراحل‬
‫اجرای‬
‫الگوریتم‬
‫قدم‬
‫به‬
‫قد‬
‫م‬
‫و‬
‫با‬
‫رعایت‬
‫تقدم‬
‫و‬
‫تأخر‬
‫مشخص‬
‫شده‬
‫باشد‬
.

‫منظور‬
‫از‬
‫شرط‬
‫خاتمه‬
،
‫پایان‬
‫پذیر‬
‫بودن‬
‫الگوریتم‬
‫ًباشد‬
‫ی‬‫م‬
‫و‬
‫به‬
‫هرحا‬
‫ل‬
‫الگوریتم‬
‫باید‬
‫در‬
‫زمانی‬
‫دلخواه‬
‫و‬
‫تحت‬
‫شرط‬
‫یا‬
‫شرایط‬
‫داده‬
‫شده‬
‫خاتمه‬
‫پذ‬
‫یرد‬
.
-
‫الگوریتم‬ ‫مراحل‬

ً‫برايًحلًیكًمسئلهًبایدًالگوریتمًآنًمسئئلهًراًمشئخص‬
ً‫نئیم‬
(
ً‫یئا‬
‫ئئابیم‬‫ئ‬‫بی‬
)
‫ئئ‬‫ئ‬‫ئئئلهًنامی‬‫ئ‬‫ئئرايًآنًمس‬‫ئ‬‫ئئوریتمًب‬‫ئ‬‫ئئمًالگ‬‫ئ‬‫ًطراح‬‫ا‬‫ا‬‫ئئطلح‬‫ئ‬‫ئئهًاص‬‫ئ‬
ً‫ده‬
‫مم‬
‫شود‬
.
‫ًسهًمرحلهًزیرًراًازًهئمًجئد‬‫ا‬‫ال‬‫درًطراحمًالگوریتمًمعمو‬
ً‫ا‬
‫مم‬
‫نند‬
:

‫داده‬ ‫خواندن‬
‫ها‬

‫محاسبات‬ ‫انجام‬

‫خروجي‬
‫ها‬
-
‫الگوریتم‬ ‫تهیه‬ ‫مراحل‬
1
-
‫تعریف‬
‫دقیق‬
‫مسئله‬
:
‫باید‬
‫مسئله‬
‫را‬
‫تجزیه‬
‫و‬
‫تحلیل‬
‫کرده‬
‫ت‬
‫ا‬
‫کوچکترین‬
‫ابهامی‬
‫در‬
‫فهم‬
‫آن‬
‫وجود‬
‫نداشته‬
‫باشد‬
.
2
-
‫تعیین‬
‫عوامل‬
‫اصلی‬
‫مورد‬
‫نیاز‬
3
-
‫تعیین‬
‫ورودی‬
‫و‬
‫خروجی‬
‫مسئله‬
:
(
‫ًها‬
‫ه‬‫داد‬
‫و‬
‫اطلعات‬
)
4
-
‫بررسی‬
‫راه‬
‫ًهای‬
‫ل‬‫ح‬
‫مختلف‬
‫مسئله‬
5
-
‫انتخاب‬
‫یک‬
‫راه‬
‫حل‬
‫مناسب‬
6
-
‫اشکال‬
‫زدایی‬

‫مجمهو‬ ‫كهردهم‬ ‫دریافهت‬ ‫ورودد‬ ‫از‬ ‫دهدد‬ ‫دو‬ ‫كهه‬ ‫بنویسید‬ ‫الگوریتمي‬
‫نماید‬ ‫چاپ‬ ‫و‬ ‫محاسبه‬ ‫را‬ ‫ددد‬ ‫دو‬
.
‫ها‬‫خروجی‬
‫محاسبات‬ ‫انجام‬
‫وروديها‬
‫عدد‬ ‫دو‬ ‫جمع‬ ‫عدد‬ ‫دو‬ ‫مجموع‬
a , b
.1
‫شروع‬
.2
b
‫و‬
a
‫بخوان‬ ‫را‬
.
.3
‫مجموع‬
b
‫و‬
a
‫در‬ ‫و‬ ‫محاسبه‬ ‫را‬
sum
‫بده‬ ‫قرار‬
.
.4
sum
‫کن‬ ‫چاپ‬ ‫خروجی‬ ‫در‬ ‫را‬
.
.5
‫پايان‬
‫خروجي‬
‫ها‬
‫محاسبات‬ ‫انجام‬
‫ورودیها‬
‫مجمو‬ ‫محاسبه‬ ‫مجمو‬ ‫چاپ‬
a
‫میانگین‬ ‫محاسبه‬ ‫میانگین‬ ‫چاپ‬
b
c
.1
‫شرو‬
.2
‫بخوان‬ ‫ورودد‬ ‫از‬ ‫ددد‬ ‫سه‬
.
.3
‫در‬ ‫و‬ ‫محاسبه‬ ‫را‬ ‫ددد‬ ‫سه‬ ‫مجمو‬
sum
‫بده‬ ‫قرار‬
.
.4
sum
‫كردهم‬ ‫تقسیم‬ ‫سه‬ ‫بر‬ ‫را‬
‫در‬
avg
‫بده‬ ‫قرار‬
.
.5
avg , sum
‫كن‬ ‫چاپ‬ ‫خروجي‬ ‫در‬ ‫را‬
.
.6
‫پایان‬
.

‫الگوریتمي‬
‫بنویسید‬
‫كه‬
‫سه‬
‫ددد‬
‫از‬
‫ورودد‬
‫دریافت‬
‫كردهم‬
‫مجمو‬
‫و‬
‫میانگین‬
‫سه‬
‫ددد‬
‫را‬
‫محاسبه‬
‫و‬
‫چاپ‬
‫كند‬
.
‫متغیرها‬
(Variables)
‫ًیکًنامًمم‬،‫متغیر‬
ً‫ًتواندًمقدارشًدرًطولًالگوریتم‬
‫ی‬‫باشدًکهًم‬
‫تغیی‬
‫ر‬
‫کند‬
.
‫متغیرها‬ ‫نامگذاری‬ ‫قوانین‬

‫حروف‬
A-Z
‫یا‬
a-z
(
‫در‬
‫زبان‬
C++
،
‫حروف‬
‫کوچک‬
‫و‬
‫بزرگ‬
‫با‬
‫هم‬
‫تفاوت‬
‫دارند‬
.
)

‫ارقام‬
0-9

‫کاراکتر‬
_

‫حتما‬
‫بایستی‬
‫با‬
‫یک‬
‫حرف‬
‫شروع‬
‫شود‬
.
Ab lhs3 a-b sum a_z temp34

‫بهتر‬
‫است‬
‫برای‬
‫متغیرها‬
‫از‬
‫اسامی‬
‫با‬
‫مسمی‬
‫استفاده‬
‫ش‬
‫ود‬
.
❖ char
❖ int
❖ float
❖ double
❖ void
❖ bool
‫مثال‬
‫نام‬
‫دملگر‬
‫ردیف‬
x + y
‫جمع‬
+
1
x – y , -x
‫تفریقًوًمنهايًیکانم‬
-
3
x * y
‫ضرب‬
*
3
x / y
‫تقسیم‬
/
4
a % b
‫باقیماندهًتقسیمًصح‬
‫یح‬
%
5
--x
ً‫یا‬
x--
‫کاهشًیکًواحد‬
--
6
++
x
ً‫یا‬
x
++
‫افزایشًیکًواحد‬
++
7
-
‫دملگرها‬
‫د‬
‫محاسباتي‬
ً‫ًرودًاینًنمادهاًراًعملگر‬
‫ی‬‫ًنمادهاییًبکارًم‬،‫درًانجامًمحاسباتًریاضی‬
(
Operator
)
ً‫می‬
‫نامیم‬
.
‫دملگرها‬ ‫اجرای‬ ‫اولویت‬
(
‫تاخر‬ ‫و‬ ‫تقدم‬
:)
‫عباراتًمحاسباتیًترکیبیًاز‬
‫متغیرهاًوًعملگرهاستًلذا‬
.....
‫مثال‬
‫نام‬
‫دملگر‬
x > y
‫بزرگتر‬
<
x >=y
‫مساود‬ ‫بزرگتر‬
=
<
x < y
‫کوچکتر‬
>
x <= y
‫مساود‬ ‫کوچکتر‬
=
>
x == y
‫بودن‬ ‫مساود‬
==
x != y
‫نامساود‬
!=
▪
-
‫دملگرها‬
‫د‬
‫ای‬ ‫رابطه‬
-
‫دملگرها‬
‫د‬
‫منطقي‬
‫مثال‬
‫نام‬
‫دملگر‬
a>y && y<x
‫و‬
(
And
)
&&
x>y || y<x
‫یا‬
(
OR
)
||
! x
‫نقیض‬
(
Not
)
!
‫عملگرهاي‬
‫یبم‬ ‫تر‬
:
•
‫از‬
‫ترکیب‬
‫عملگرهای‬
‫محاسباتی‬
‫و‬
‫عملگر‬
)=(
‫بوجود‬
‫آيند‬‫می‬
.
‫عملگرهای‬
‫ترکیبی‬
‫اعمال‬
‫محاسباتی‬
‫انجام‬ ‫را‬ ‫انتساب‬ ‫و‬
‫دهند‬‫می‬
.
‫مثال‬
‫عالمت‬
‫عملگر‬ ‫نام‬
a += 1
+=
‫جمع‬ ‫انتساب‬
a -= 1
-=
‫تفريق‬ ‫انتساب‬
a *= 2
*=
‫ضرب‬ ‫انتساب‬
a /= 2
/=
‫تقسیم‬ ‫انتساب‬
a%= 2
%=
‫تق‬ ‫مانده‬ ‫باقی‬ ‫انتساب‬
‫سیم‬
‫عملگرهای‬
‫بیتی‬
:
‫عملگرهای‬
‫متفرقه‬
&
‫و‬
*
‫و‬
‫؟‬
‫و‬
،
‫و‬
sizeof
‫و‬
) (
‫عالمت‬
‫عملگر‬ ‫نام‬
&
‫و‬
(and)
|
‫يا‬
(OR)
^
‫انحصاری‬ ‫يای‬
(XOR)
~
‫نقیض‬
(NOT)
>>
‫راست‬ ‫به‬ ‫شیفت‬
<<
‫چپ‬ ‫به‬ ‫شیفت‬
‫کلي‬ ‫حالت‬ ‫در‬ ‫دملگرها‬ ‫تقدم‬
()
! ~ ++ -- sizeof
* / %
+ -
<< >>
< <= > >=
== !=
&
^
|
&&
||
?
= += -= *= /= %=
,
-
‫فلوچارت‬
(
Flowchart
()
‫جریان‬ ‫نمودار‬
)

‫استفاده‬
‫از‬
‫جملت‬
‫برای‬
‫ًهایی‬
‫م‬‫الگوریت‬
‫که‬
‫ساده‬
‫هستند‬
‫و‬
‫تعداد‬
‫ًهایشان‬
‫ل‬‫دستورالعم‬
‫کم‬
،‫است‬
‫مناسب‬
‫و‬
‫کارآمد‬
‫است‬
.

ً
‫ا‬‫ال‬‫معمو‬
‫درك‬
‫یك‬
‫الگوریتم‬
‫و‬
‫دنبال‬
‫کردن‬
‫ًه‬
‫ل‬‫دستورالعم‬
‫ای‬
‫آن‬
‫با‬
‫شكلم‬
‫تر‬‫راحت‬
‫از‬
‫نوشتن‬
‫آن‬
‫بصورت‬
‫متن‬
‫ًباشد‬
‫م‬‫م‬
.
‫لذ‬
‫ا‬
‫الگوریتم‬
‫را‬
‫با‬
‫فلوچارت‬
‫نمایش‬
‫ًدهند‬
‫م‬‫م‬
.

ً‫بیان‬
‫تصویری‬
‫الگوریتم‬
-
‫فلوچارت‬ ‫های‬ ‫مولفه‬

‫فلوچارت‬
‫برنامه‬
‫تنها‬
‫مراحل‬
‫انجام‬
‫عملیات‬
‫و‬
‫منطق‬
‫یک‬
‫برنامه‬
‫کامپیوتری‬
‫را‬
‫نشان‬
‫ًدهد‬
‫ی‬‫م‬
.

‫مراحل‬
‫انجام‬
‫کار‬
‫با‬
‫اشکال‬
‫هندسی‬
‫نشان‬
‫داده‬
‫ًشوند‬
‫ی‬‫م‬
.
‫بعبارت‬
‫دی‬
‫گر‬
‫هر‬
‫فلوچارت‬
‫شامل‬
‫نمادهای‬
،‫خاص‬
،‫عبارات‬
‫جملت‬
‫و‬
‫ًهای‬
‫ل‬‫فرمو‬
‫ریاضی‬
‫ًباشد‬
‫ی‬‫م‬
.

ً‫نمادهایًتصویریًفلوچارتًحدودا‬
25
‫مولفهًاست‬
.

‫مراحل‬
‫انجام‬
‫کار‬
‫توسط‬
‫خطوط‬
(
‫فلش‬
)
‫به‬
‫هم‬
‫وصل‬
‫ًگردند‬
‫ی‬‫م‬
.
‫بعبارت‬
‫دیگر‬
‫جهت‬
‫نشان‬
‫دادن‬
‫مسیر‬
‫از‬
‫یک‬
‫مرحله‬
‫به‬
‫مرحله‬
‫دیگ‬
‫ر‬
‫از‬
‫خطوط‬
‫ًدار‬
‫ش‬‫فل‬
‫استفاده‬
‫ًگردد‬
‫ی‬‫م‬
.
Begin End
•
‫دالمت‬
‫هاد‬
‫شرو‬
‫و‬
‫پایان‬
:
‫آغاز‬
‫و‬
‫پایان‬
‫هر‬
‫الگوریتم‬
‫و‬
‫فلوچارت‬
‫بایستی‬
‫دقیقا‬
‫مشخص‬
‫گردد‬
.
‫برای‬
‫این‬
‫منظور‬
‫از‬
‫یك‬
‫بیضم‬
‫اس‬
‫تفاده‬
‫مم‬
‫نند‬
.
•
‫هر‬
‫فلوچارت‬
‫فقط‬
‫یک‬
‫نقطه‬
‫آغاز‬
‫دارد‬
‫ولی‬
‫ًتواند‬
‫ی‬‫م‬
‫چند‬
‫نقطه‬
‫پا‬
‫یان‬
‫داشته‬
‫باشد‬
.
-
‫فلوچارت‬ ‫نمادهای‬
‫خواندن‬
cin
‫کردن‬ ‫چاپ‬
cout
▪
‫دالمتهاد‬
‫ورودد‬
‫و‬
‫خروجي‬
:
‫هرگاه‬
‫در‬
‫هر‬
‫مرحله‬
‫نیاز‬
‫به‬
‫دریافت‬
‫اطلعات‬
‫از‬
‫ورودی‬
‫و‬
‫یا‬
‫ثبت‬
‫اطلعات‬
‫در‬
‫خروجی‬
‫باشد‬
‫از‬
‫متوازي‬
‫االضلع‬
‫استفاده‬
‫مم‬
‫شود‬
.
▪
‫به‬
‫این‬
‫نوع‬
‫عملیات‬
‫در‬
‫دنیای‬
‫کامپیوتر‬
‫عملیات‬
I/O
‫ًگویند‬
‫ی‬‫م‬
.
▪
‫در‬
‫فلوچارت‬
‫نوع‬
‫عملیات‬
‫ورودی‬
‫یا‬
‫خروجی‬
‫در‬
‫نماد‬
‫مربوطه‬
‫نوشته‬
‫ًگردد‬
‫ی‬‫م‬
.
-
‫فلوچارت‬ ‫نمادهای‬
▪
‫های‬‫عالمت‬
‫محاسباتی‬
‫و‬
‫جايگزينی‬
:
‫برای‬
‫نمايش‬
‫دستورات‬
‫جايگ‬
‫زينی‬
‫و‬
‫محاسباتی‬
‫از‬
‫مستطیل‬
‫استفاده‬
‫کنند‬‫می‬
.
▪
‫به‬
‫اين‬
‫نماد‬
‫اصطالحا‬
‫نماد‬
‫پردازش‬
‫گويند‬‫می‬
.
‫يا‬ ‫جايگزينی‬
‫محاسبات‬
▪
‫انتساب‬ ‫دالمت‬
(
Assignment
) ( )
▪
‫شرط‬ ‫دالمت‬
:
‫مي‬ ‫استفاده‬ ‫لوزد‬ ‫از‬ ‫شرط‬ ‫نمایش‬ ‫براد‬
‫شود‬
.
▪
‫دالمت‬
‫اتصال‬
:
‫براد‬
‫اتصال‬
‫شكل‬
‫هاد‬
‫مختلف‬
‫بهم‬
‫از‬
‫فلش‬
‫هاد‬
‫جهت‬
‫دار‬
‫استفاده‬
‫مي‬
‫كنند‬
.
(
)
-
‫فلوچارت‬ ‫نمادهای‬
start
stop
c←a+b
d← i
A,B
A,B,”100”
?
‫ورودی‬
‫خروجی‬
‫خروجی‬
‫مثال‬ ‫شرح‬ ‫شکل‬
ً‫برایًنشانًدادنًشروعًوًخاتمه‬
‫عملیات‬
‫محاسباتًوًمقداردهی‬
‫ورودًاطلعات‬
‫خروجًبرًرویًصفحهًنمایش‬
‫خروجًاطلعاتًبرًرویًکاغذ‬
‫ًتصمیمًگیریًوًشر‬،‫سئوال‬
ً‫ط‬
‫هایًدلخواه‬

‫فلوچارتیًرسمًکنیدًکهًدوًعددًراًخواندهًوًحاصلضربًآنهاًرا‬
‫نمایشًدهد‬
.
‫شروع‬
A,B
Z←A*B
Z
‫پايان‬

‫فلوچارتیًرسمًکنیدًدرجهًحرارتًراًبرحسبًسانتیگرادًبخ‬
ً‫واندًو‬
‫آنراًبهًفارنهایتًتبدیلًکند‬
.
‫شروع‬
c
f←9/5*c+32
f
‫پايان‬

‫فلوچارتی‬
‫رسم‬
‫کنید‬
‫که‬
‫شعاع‬
‫یک‬
‫دایره‬
‫را‬
،‫خوانده‬
‫مساحت‬
‫و‬
‫م‬
‫حیط‬
‫آنرا‬
‫نمایش‬
‫دهد‬
.
‫شروع‬
‫پايان‬
R
A←3.14*R*R
P←2*R*3.14
A,P
Begin
Input R
PI 3/14
D (R*180) / PI
Output D
End

‫فلوچارتی‬
‫رسم‬
‫کنید‬
‫که‬
‫اندازه‬
‫ی‬
‫ک‬
‫زاویه‬
‫را‬
‫از‬
‫رادیان‬
‫به‬
‫درجه‬
‫تبدیل‬
‫نماید‬
.
Begin
(a,b,c)
sum a+b+c
Ave sum/3
(sum,ave)
End

‫فلوچارتی‬
‫رسم‬
‫کنید‬
‫که‬
‫مجموع‬
‫و‬
‫میانگین‬
‫سه‬
‫عدد‬
‫را‬
‫در‬
‫خروجی‬
‫چاپ‬
‫کند‬
.

‫فلوچارت‬
‫برنامه‬
‫ای‬
‫را‬
‫رسم‬
‫کنی‬
‫د‬
‫که‬
‫دو‬
‫عدد‬
‫را‬
‫خوانده‬
‫سپس‬
‫مقادیر‬
‫آن‬
‫دو‬
‫را‬
‫با‬
‫هم‬
‫جابجا‬
‫نماید‬
.
‫شروع‬
A,B
A,B
T←A
A←B
B←T
A,B
‫پایان‬
▪
‫کمکی‬ ‫متغیر‬ ‫از‬ ‫استفاده‬
12 15
t
a b
12 15
12
a b
t
15 15
12
a b
t
15 12
12
a b
t

‫فلوچارت‬
‫برنامه‬
‫ای‬
‫را‬
‫رسم‬
‫کنی‬
‫د‬
‫که‬
‫دو‬
‫عدد‬
‫را‬
‫خوانده‬
‫سپس‬
‫مقادیر‬
‫آن‬
‫دو‬
‫را‬
‫بدون‬
‫استفاده‬
‫از‬
‫متغیر‬
‫کمک‬
‫ی‬
‫تعویض‬
‫کند‬
.
‫شروع‬
A,B
A,B
A←A+B
B←A-B
A←A-B
A,B
‫پایان‬
‫فلوچارتًبرنامهًایًکهًاختلفًمساحتًدایرهًوًمربعًمحصورًکنندهًآنًراًبدستًآورد‬
.
34
‫شروع‬
Input R
D ← 2 * R
S ← D * D
DIF
‫پایان‬
PI ← 3/14
A← PI * R* R
DIF← S - A
R
-
‫شرطي‬ ‫هاد‬‫دستورالعمل‬
‫در‬
‫حل‬
‫بسیاري‬
‫از‬
‫مسائل‬
‫یا‬
ً
‫ا‬‫ا‬‫تقریب‬
‫تمام‬
‫مسائل‬
‫نیاز‬
‫به‬
‫استف‬
‫اده‬
‫از‬
،‫شروط‬
‫جزء‬
‫نیازهاي‬
‫اساسم‬
‫محسوب‬
‫مم‬
‫شود‬
.
▪
‫برمي‬ ‫چترد‬ ‫سپس‬ ‫باشد‬ ‫باراني‬ ‫هوا‬ ‫اگر‬
‫دارم‬
.
‫برنمي‬ ‫چتر‬ ‫اینصورت‬ ‫غیر‬ ‫در‬
‫دارم‬
.
‫دهند‬‫مي‬ ‫نمایش‬ ‫زیر‬ ‫بصورت‬ ‫را‬ ‫شرط‬ ‫كلي‬ ‫حالت‬ ‫در‬
:
If ‫شروط‬ ‫یا‬ ‫شرط‬ then
‫ادمال‬ ‫یا‬ ‫دمل‬
Yes
‫بعدد‬ ‫ادمال‬ ‫یا‬ ‫دمل‬
No

‫فلوچارتم‬
‫رسم‬
‫نمائید‬
‫ه‬
‫عددي‬
‫را‬
‫از‬
‫ورودي‬
‫دریافت‬
،‫رده‬
‫فرد‬
‫یا‬
‫زوج‬
‫بودن‬
‫آن‬
‫را‬
‫تشخیص‬
‫دهد‬
.
Begin
Read(a)
R a %2
Write(‘odd’)
End
if R==0 then
No
yes
Write(‘even’)
max b
Begin
Read(a,b)
max a
Write(max)
End
if b>max then
No

‫ردهًبزرگتری‬ ً‫هًدوًعددًازًوروديًدریافت‬ ً‫نید‬ ً‫فلوچارتمًرسم‬
‫نًعدد‬
‫ردهًدرًخروجمًچاپًنماید‬ ً‫راًپیدا‬
.
Yes

‫فلوچارتی‬
‫رسم‬
‫کنید‬
‫که‬
‫سه‬
‫عدد‬
‫را‬
‫خوانده‬
‫و‬
‫بصورت‬
‫زیر‬
‫تصمیم‬
‫گیری‬
‫نماید‬
:
-
‫اگرًعددًسومًصفرًبودًحاصلًجمعًدوًعددًدیگر‬
-
‫اگرًعددًسومًمنفیًبودًتفاضلًدوًعددًدیگر‬
-
‫اگر‬
‫عدد‬
‫سوم‬
‫مثبت‬
‫بود‬
‫حاصل‬
‫ضرب‬
‫دو‬
‫عدد‬
‫دیگر‬
‫را‬
‫نمایش‬
‫دهد‬
.
‫شروع‬
A,B,C
C==0
C<0
D←A+B
Y
N
D←A-B
Y
D←A*B
D
‫پایان‬
N

‫فلوچارتی‬
‫رسم‬
‫کنید‬
‫که‬
‫سه‬
‫ضلع‬
‫ی‬
‫ک‬
‫مثلث‬
‫را‬
،‫خوانده‬
‫تعیین‬
‫کند‬
‫که‬
‫آیا‬
‫مثل‬
‫ث‬
‫قائم‬
‫الزاویه‬
‫است‬
‫یا‬
‫خیر؟‬
‫شروع‬
A,B,C
A²==B²+C²
Y
N
B²==A²+C²
Y
N
C²==B²+A²
Y
N
“NO” “YES”
‫پايان‬
‫شروع‬
A,B,C
D<0 Y
N
D==0
Y
N
X1← -B/(2*A)
X2← X1
)
*
2
/(
)
(
2
)
*
2
/(
)
(
1
A
D
B
X
A
D
B
X
−
−

+
−

C
A
B
B
D *
*
4
* −

“No root”
X1,X2
‫پايان‬

‫فلوچارتی‬
‫رسم‬
‫کنید‬
‫که‬
‫سه‬
‫عدد‬
‫را‬
‫به‬
‫عنوان‬
‫ضرایب‬
‫معادله‬
‫درجه‬
‫دوم‬
‫دریافت‬
‫کند‬
‫و‬
‫ریشه‬
‫های‬
‫معادله‬
‫را‬
‫در‬
‫خروجی‬
‫تعیین‬
‫کند‬
.
min b
Begin
Read(a,b,c)
min a
Write(min)
End
if b<min then
No
yes
if c<min then
yes
min c
No

‫فلوچارتم‬
‫رسم‬
‫نمائید‬
‫ه‬
‫سه‬
‫عدد‬
‫از‬
‫ورودي‬
‫دریافت‬
،‫رده‬
‫ترین‬ ‫وچ‬
‫عدد‬
‫را‬
‫یافته‬
‫در‬
‫خروجم‬
‫چاپ‬
‫نماید‬
.
44

‫برنامهًایًبنویسیدًکهًسهًعددًراًدریافتًکندًوًآنهاًراًمرتبًکند‬
.
N,M,P
N>M
M>P
N,P,M
N,M,P
N>P
M,N,P
N>P
M>P
M,P,N
P,N,M P,M,N
-
‫ها‬‫حلقه‬
‫در‬
‫حل‬
‫بسیاري‬
‫از‬
‫مسائل‬
‫با‬
‫عملیاتم‬
‫روبرو‬
‫ًشویم‬
‫م‬‫م‬
‫ه‬
‫نیاز‬
‫به‬
‫رار‬ ‫ت‬
‫دارند‬
.
‫فرض‬
‫نید‬
‫بخواهیم‬
‫میانگین‬
100
‫عدد‬
‫را‬
‫محاسبه‬
،‫نیم‬
‫در‬
‫اینصورت‬
‫منطقم‬
‫بنظر‬
‫ًرسد‬
‫م‬‫نم‬
‫ه‬
100
‫متغیر‬
‫مختلف‬
‫را‬
‫از‬
‫ورودي‬
‫دریافت‬
‫نیم‬
‫سپس‬
‫آنها‬
‫را‬
‫جمع‬
‫نیم‬
.
▪


-
‫حلقوی‬ ‫های‬ ‫الگوریتم‬

‫تعریف‬
‫اول‬
:
‫مراحلی‬
‫از‬
‫الگوریتم‬
‫که‬
‫چندین‬
‫بار‬
‫اجرای‬
‫آنها‬
‫تک‬
‫رار‬
‫ًگردد‬
‫ی‬‫م‬
‫تشکیل‬
‫یک‬
‫حلقه‬
(LOOP)
‫را‬
‫ًدهند‬
‫ی‬‫م‬
.

‫برای‬
‫ساختن‬
‫یک‬
‫حلقه‬
‫از‬
‫یک‬
‫متغیر‬
‫کمکی‬
‫استفاده‬
،‫ًگردد‬
‫ی‬‫م‬
‫این‬
‫م‬
‫تغیر‬
‫را‬
‫قبل‬
‫از‬
‫شروع‬
‫حلقه‬
‫با‬
‫یک‬
‫مقدار‬
‫اولیه‬
‫آماده‬
‫ًسازیم‬
‫ی‬‫م‬
‫و‬
‫سپس‬
‫معموال‬
“
‫د‬
‫ر‬
‫انتهای‬
‫حلقه‬
‫و‬
‫قبل‬
‫از‬
‫بازگشت‬
‫به‬
‫ابتدای‬
‫حلقه‬
‫مقداری‬
‫را‬
‫به‬
‫آن‬
‫اضاف‬
‫ه‬
‫کرده‬
‫و‬
‫تحت‬
‫یک‬
‫شرائط‬
‫خاص‬
‫به‬
‫مراحل‬
‫قبل‬
‫پرش‬
‫ًنماییم‬
‫ی‬‫م‬
.

‫تعریف‬
‫دوم‬
:
‫مقداری‬
‫که‬
‫قبل‬
‫از‬
‫شروع‬
‫حلقه‬
‫به‬
‫متغیر‬
‫حلقه‬
‫داده‬
‫ًشود‬
‫ی‬‫م‬
‫را‬
‫مقدار‬
‫اولیه‬
‫یا‬
‫شرط‬
‫اولیه‬
‫گویند‬
.

‫تعریف‬
‫سوم‬
:
‫مقداری‬
‫که‬
‫پس‬
‫از‬
‫یکبار‬
‫اجرای‬
‫مراحل‬
‫حلقه‬
‫به‬
‫مت‬
‫غیر‬
‫حلقه‬
‫اضافه‬
‫ًشود‬
‫ی‬‫م‬
‫را‬
‫گام‬
‫حلقه‬
‫ًنامند‬
‫ی‬‫م‬
.
▪
-
‫مشخص‬ ‫تکرار‬ ‫با‬ ‫های‬ ‫حلقه‬
‫حلقه‬ ‫نو‬ ‫این‬ ‫در‬
‫مي‬ ‫مشخص‬ ‫تكرار‬ ‫تعداد‬ ‫ها‬
‫زی‬ ‫اجزاء‬ ‫از‬ ‫حلقه‬ ‫این‬ ‫باشد‬
‫ر‬
‫مي‬ ‫تشكیل‬
‫شود‬
:
1
‫حلقه‬ ‫اندیس‬ ‫ـ‬
2
‫حلقه‬ ‫اندیس‬ ‫براد‬ ‫اولیه‬ ‫مقدار‬ ‫ـ‬
3
-
‫حلقه‬ ‫اندیس‬ ‫براد‬ ‫افزاینده‬ ‫مقدار‬
(
‫مرح‬ ‫هر‬ ‫در‬ ‫واحد‬ ‫یك‬ ً‫ال‬‫معمو‬
‫له‬
)
4
‫نهایي‬ ‫مقدار‬ ‫ـ‬
(
‫حلقه‬ ‫تكرار‬ ‫تعداد‬
)
5
‫حلقه‬ ‫تكرار‬ ‫تعداد‬ ‫كنترل‬ ‫براد‬ ‫شرطي‬ ‫ـ‬
i 1
i<=n
yes
No
‫حلقه‬ ‫دستورات‬ ‫مجموعه‬
i i+1
‫حلقه‬ ‫کار‬ ‫اتمام‬

‫ًدهند‬
‫م‬‫ًباًفلوچارتًبصورتًزیرًنمایشًم‬‫ا‬‫ا‬‫ًهاًراًغالب‬
‫ه‬‫اینًحلق‬
:

‫فلوچارتی‬
‫رسم‬
‫کنید‬
‫که‬
‫یک‬
‫عدد‬
‫بزرگت‬
‫ر‬
‫از‬
‫صفر‬
‫را‬
‫خوانده‬
‫سپس‬
‫به‬
‫تعداد‬
‫آن‬
،‫عدد‬
‫اعداد‬
‫دیگری‬
‫را‬
‫خوانده‬
‫مجموع‬
‫و‬
‫میانگین‬
‫آنها‬
‫را‬
‫نمایش‬
‫دهد‬
.
•
N
‫عددًخواندهًشده‬
•
C
ً‫شمارنده‬
•
S
‫مجموع‬
•
A
‫اعداد‬
‫شروع‬
N
C ← 0
S ← 0
C<N N
S
S /
,
‫پايان‬
N
Y
A
1
+
C
C
S/N
A
S
C
N
3 0 0 10
1 10 15
2 25 5
3 30
A
S
S +

10
if I<=n then
yes
Begin
n
I 1
sum 0
No
sum
End

ً‫ه‬ ً‫فلوچارتمًرسمًنمائید‬
‫عد‬
‫د‬
n
ً،‫ئئئئئئئئئرده‬‫ئ‬ ً‫ئئئئئئئئئت‬‫ئ‬‫راًازًوروديًدریاف‬
ً‫ئئئئئا‬‫ئ‬‫ئئئئئكًت‬‫ئ‬‫ئئئئئدادًازًی‬‫ئ‬‫ئئئئئوعًاع‬‫ئ‬‫مجم‬
n
ً‫را‬
‫ند‬ ً‫محاسبه‬
.
sum sum+I
I I+1
Begin
I 1
max a
if i<n then
yes
No
max
End
i i+1
a
n,a
if a > max max a
No
yes

ً‫ئئئه‬ ً‫نیئئئد‬ ً‫فلوچئئئارتمًرسئئئم‬
n
ً،‫ئئئرده‬ ً‫عئئئددًازًوروديًدریافئئئت‬
ً‫بزرگتئئرینًمقئئدارًازًبئئین‬
n
ً‫عئئدد‬
ً‫ئئاپ‬‫ئ‬‫ئئمًچ‬‫ئ‬‫ئئردهًدرًخروج‬‫ئ‬ ً‫ئئدا‬‫ئ‬‫راًپی‬
‫نماید‬
.
Begin
i 1
pow 1
if i<=n then
yes
No
pow
End
pow pow*x
n,x
i i+1

‫ئه‬ ً‫فلوچارتمًرسمًنمائیئد‬
n , x
ً‫ًدو‬،
‫عددًصحیحًمثبتًراًازًوروديًدریافئ‬
ً‫ت‬
ً‫ردهًسپس‬
x
ً‫بهًتوان‬
n
‫ند‬ ً‫راًمحاسبه‬
.

‫الگوریتم‬
‫برنامه‬
‫ای‬
‫را‬
‫بنوی‬
‫سید‬
‫که‬
‫ده‬
‫عدد‬
‫را‬
‫گرفته‬
‫و‬
‫تعیین‬
‫ک‬
‫ند‬
‫کدام‬
‫زوج‬
‫و‬
‫کدام‬
‫فرد‬
‫است‬
.
‫شروع‬
C ← 0
P
R ← P % 2
R==0
y
n
P, “odd”
C ← C+1
C< 10
n
y
‫پايان‬
P, “even”
❑
‫ًهایم‬
‫ه‬‫حلق‬
‫ه‬
‫تعداد‬
‫رار‬ ‫ت‬
‫آنها‬
‫مشخص‬
‫نیست‬
.
(
‫غیرشمارشی‬
)
❑
‫در‬
‫این‬
‫ًها‬
‫ه‬‫حلق‬
‫با‬
‫توجه‬
‫به‬
‫ورودد‬
‫و‬
‫شرط‬
،
‫تعداد‬
‫رار‬ ‫ت‬
‫مشخص‬
‫ًشود‬
‫م‬‫م‬
.
❑
‫دقیقاًنمم‬
ً‫توان‬
‫رد‬ ً‫رارًحلقهًراًبدونًوروديًمعین‬ ‫تعدادًت‬
.
❑
‫هًبرقرارًباش‬ ‫هًتاًزمانی‬ ً‫اینًحلقهًهاًفقطًشاملًشرطمًهستند‬
ً‫دًحلقئه‬
‫اجراًمم‬
‫شود‬
.
▪
-
‫نامشخص‬ ‫تکرار‬ ‫با‬ ‫های‬ ‫حلقه‬
.‫مشهورند‬ while ‫حلقه‬ ‫به‬ ❑

AlgorithmFlowchartjavacupmibile1programmingazaduni.pdf