SlideShare a Scribd company logo
1 of 52
Download to read offline
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 ‫حلقه‬ ‫به‬ ❑

More Related Content

Similar to AlgorithmFlowchartjavacupmibile1programmingazaduni.pdf

FLEX تخصصی : ایجاد تحلیلگر لغوی در ویندوز با استفاده از
FLEX تخصصی : ایجاد تحلیلگر لغوی در ویندوز با استفاده از FLEX تخصصی : ایجاد تحلیلگر لغوی در ویندوز با استفاده از
FLEX تخصصی : ایجاد تحلیلگر لغوی در ویندوز با استفاده از Hamid Saberi
 
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیرازIntroduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیرازMobin Ranjbar
 
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهرانFarafekr Technology
 
Introduction to matlab
Introduction to matlabIntroduction to matlab
Introduction to matlabAbbas Shomali
 
Software Fault Avoidance in Implementation
Software Fault Avoidance in ImplementationSoftware Fault Avoidance in Implementation
Software Fault Avoidance in ImplementationMorteza Zakeri
 
موتورهای جستجوی تجارت الکترونیک و تنظیمات الاستیک سرچ برای زبان فارسی
موتورهای جستجوی تجارت الکترونیک و تنظیمات الاستیک سرچ برای زبان فارسیموتورهای جستجوی تجارت الکترونیک و تنظیمات الاستیک سرچ برای زبان فارسی
موتورهای جستجوی تجارت الکترونیک و تنظیمات الاستیک سرچ برای زبان فارسیMahmood Neshati (PhD)
 
امتحان دی ماه وب مقدماتی
امتحان دی ماه وب مقدماتیامتحان دی ماه وب مقدماتی
امتحان دی ماه وب مقدماتیsomayeh daneshparvar
 
حقوق ودستمزد در اكسل
حقوق ودستمزد در اكسلحقوق ودستمزد در اكسل
حقوق ودستمزد در اكسلmostafa zarei
 

Similar to AlgorithmFlowchartjavacupmibile1programmingazaduni.pdf (10)

مدل MapReduce
مدل MapReduceمدل MapReduce
مدل MapReduce
 
FLEX تخصصی : ایجاد تحلیلگر لغوی در ویندوز با استفاده از
FLEX تخصصی : ایجاد تحلیلگر لغوی در ویندوز با استفاده از FLEX تخصصی : ایجاد تحلیلگر لغوی در ویندوز با استفاده از
FLEX تخصصی : ایجاد تحلیلگر لغوی در ویندوز با استفاده از
 
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیرازIntroduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
 
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران
 
Introduction to matlab
Introduction to matlabIntroduction to matlab
Introduction to matlab
 
Sql tuning
Sql tuningSql tuning
Sql tuning
 
Software Fault Avoidance in Implementation
Software Fault Avoidance in ImplementationSoftware Fault Avoidance in Implementation
Software Fault Avoidance in Implementation
 
موتورهای جستجوی تجارت الکترونیک و تنظیمات الاستیک سرچ برای زبان فارسی
موتورهای جستجوی تجارت الکترونیک و تنظیمات الاستیک سرچ برای زبان فارسیموتورهای جستجوی تجارت الکترونیک و تنظیمات الاستیک سرچ برای زبان فارسی
موتورهای جستجوی تجارت الکترونیک و تنظیمات الاستیک سرچ برای زبان فارسی
 
امتحان دی ماه وب مقدماتی
امتحان دی ماه وب مقدماتیامتحان دی ماه وب مقدماتی
امتحان دی ماه وب مقدماتی
 
حقوق ودستمزد در اكسل
حقوق ودستمزد در اكسلحقوق ودستمزد در اكسل
حقوق ودستمزد در اكسل
 

AlgorithmFlowchartjavacupmibile1programmingazaduni.pdf