Programming c++ 1 New
Programming c++ 1 New
جعفری:استاد
اول:سمستر
Read(a,b,c)
Sum a+b+c
Ave sum/3
Write(sum,ave)
End
© All rights reserved to Kateb University 12/19/2020 20
مثال :فلوچارتی رسم نمائيد كه دو عدد از ورودی دريافت كرده سپس محتويات دو عدد را با هم جابجا نمايد.
را دو متغير كه در آنها دو عدد خوانده شده ،قرار میگيرند در نظر میگيريم .سپس با استفاده b , aبرای حل اين مسئله
از يك متغير كمكی محتويات اين دو عدد را جابجا میكنيم :
12
temp
a b a b
15 15 15 12
12 12
temp temp
Read(a,b)
temp a
a b
b temp
Write(a,b)
End
© All rights reserved to Kateb University 12/19/2020 23
تمرين ❖
1ـ فلوچارتی رسم نمائيد كه طول و عرض مستطيل را از ورودی دريافت
كرده محيط و مساحت آنرا محاسبه و چاپ كند.
3ـ فلوچارتی رسـم كنيـد كـه سـه عـدد Third , second, firstرا از
ورودی دريافت كرده ،محتويـات آنهـا را جابجـا نمـوده ،حاصـل را در
خروجی چاپ كند.
5ـ فلوچارتی رسم نمائيد كه عددی (درجه حرارت برحسب سانتيگراد) را از ورودی دريافت كرده سپس آنرا
به درجه فارنهايت تبديل كند.
اگر هوا بارانی باشد سپس چتری برمیدارم .در غير اينصورت چتر برنمیدارم.
Begin
Read(a)
R a mod 2
yes
if R=0 then Write(‘even’)
No
Write(‘odd’)
Begin
)Read(a,b
max a
No
)Write(max
End
No
No
Write(min)
31
© All rights reserved to Kateb University End 12/19/2020
:نمونه اجرای فلوچارت باال بصورت زير میباشد
a b c Min خروج
1 12 11 17 11
2 12
3 11
4 11
5 11
()شرط
−𝑏 + 𝚫
𝑥1 =
2𝑎
−𝑏 − 𝚫
𝑥2 =
2𝑎
yes −𝑏− 𝚫
Write()جوابندارد 𝑥2
2𝑎
No
پايان-۵
Write(x1,x2)
End
© All rights reserved to Kateb University 12/19/2020 36
اجرای مثال قبل:
-۱شروع
2
)1 x − 5x + 6 = 0 a -۲و bو cرابخوان
𝑐𝑎𝑏 2 − 4 𝚫 -۳
)2 3x 2 + 2x + 5 =0 ) آنگاهبنويسجوابندارد -۴اگر (
𝚫 −𝑏+
x1 درغيراينصورت:
𝑎2
𝚫 −𝑏−
𝑥2
𝑎2
-۵پايان
شماره اجرا a b 𝚫 c x1 x2 خروجی
)1 1 -5 6 (−5)2 −4 1 6 − −5 + 1 − −5 − 1 3,2
= 25 − 24 = 1 )2(1 )2(1
6 4
= =3 = =2
2 2
)2 3 2 5 (2)2 −4 3 5 =4-60 جوابندارد
=-56
© All rights reserved to Kateb University 12/19/2020 37
مثال :الگوریتمی بنویسید که اندازه های سه قطعه خط را دریافت کرده؛ تعیین نماید که آیا این سه قطعه خط می توانند یک مثلت تشکیل دهند؟
یا خیر.
-۱شروع
c , b , a -۲رابخوان
-۳اگر( )a+b≤cآنگاهبنويسخير
درغيراينصورتاگر( )a+c ≤bآنگاهبنويسخير
درغيراينصورتاگر( )b+c ≤aآنگاهبنويسخير
درغيراينصورتبنويسبله
-۴پايان
Read(a,b,c)
yes
a+b≤ c Write()خير
No
yes
a+c ≤ b Write()خير
No
yes
a+b≤ c Write()خير
No
Write()بله
1 i
No
i<=n اتمام كار حلقه
yes
i+1 i
Read(n)
0 sum
1 i
i<=n No
Write(sum)
yes
حلقه
End
sum+I sum
i+1 i
© All rights reserved to Kateb University 12/19/2020 48
نمونهاجرايفلوچارتباالبصورتزيراست:
-۱شروع
شماره اجرای n sum i خروجی
n -۲رابخوان
)1 5 0 1 15 0 sum -۳
1 2 1 i -۴
3 3 i+sum sum -۵
6 4 i+1 i -۶
10 5 -۷اگر( )i≤nآنگاهبروبه۵
15 sum -۸راچاپکن
-۹پايان
Read(n)
I 2
max a
No
if i<=n then write(max)
yes
End
حلقه Read(a)
yes
if a > max max a
No
© All rights reserved to Kateb University i i+1 12/19/2020 59
© All rights reserved to Kateb University 12/19/2020 60
© All rights reserved to Kateb University 12/19/2020 61
© All rights reserved to Kateb University 12/19/2020 62
© All rights reserved to Kateb University 12/19/2020 63
© All rights reserved to Kateb University 12/19/2020 64
© All rights reserved to Kateb University 12/19/2020 65
© All rights reserved to Kateb University 12/19/2020 66
© All rights reserved to Kateb University 12/19/2020 67
مثال :فلوچارتی رسم نمائيد كه ،n , xدو عدد صحيح مثبت را از ورودی دريافت كـرده سـپس xبـه تـوان nرا
محاسبه كند.
Read(n,x)
i 1
pow 1
if i<=n then No
write(pow)
yes
End
حلقه pow pow*x
i i+1
© All rights reserved to Kateb University 12/19/2020 70
© All rights reserved to Kateb University 12/19/2020 71
• حلقههايي كه تعداد تكرار آنها مشخص نيست (در C++به حلقه whileمشهورند).
در اين حلقهها با توجه به ورودی ،تعداد تكرار مشخص میشود .و دقيقاً نمیتوان تعداد تكـرار حلقـه را بـدون ورودی
معين كرد .اين حلقه ها فقط شامل شرطی هستند كه تا زمانيكه برقرار باشد حلقه اجرا میشود.
No
شرط يا شروط If
yes
محموعه دستورالعملها
و جاگزينها
count 0
Read(N)
No
if N>0 then
write(count)
yes
End
N N div 10
حلقه
count count+1
© All rights reserved to Kateb University 12/19/2020 76
مثال :فلوچارتی رسم نمائيد كه عددی از ورودی دريافت كرده ،سری فيبوناچی قبل از آنرا توليد نمايد.
F1 0
f2 1
Read(N)
f3 f1+f2
yes
write(f3)
حلقه
f1 f2
f2 f3
f3 f1+f2
© All rights reserved to Kateb University 12/19/2020 78
❖ تمرين
-1فلوچارتی رسم نمائيد كه عددی از ورودی دريافت كرده ،كامل بودن
آنرا بررسی نمايد( .عدد كامل ،عددی است كه مجموع مقسومعليههای
آن با خودش برابر باشد).
الگوريتمهايی كه تا حال بكار برديم ،فقط شامل يك حلقه بودند .در صورتی كه در بسياری از مسائل ممكن است
نياز به استفاده از چند حلقه در داخل هم باشيم .در اين نوع حلقهها بايد دقت بيشتری به خرج دهيم ،تا مشكلی
پيش نيايد .اگر از حلقههای نوع اول بصورت تودرتو استفاده كنيم در اينصورت برای هر حلقه شرط نهايی و
انديس اوليه جداگانه بايد تعريف كنيم .
مقدار نهايی خود تكرار میشود .در كل اگر حلقه اوليه nبار تكرار شود و
.
.
A .
yes
j 1
حلقه yes
مجموعه دستورات و جايگزيني ها i i+1
A
j j+1
© All rights reserved to Kateb University 12/19/2020 82
مثال :فلوچارتی رسم نمائيد كه Nرا از ورودی دريافت كرده ،مجموع سری زير را محاسبه نمايد:
Read(N)
A
if i<=N No Write(sum)
yes End
fact 1
j 2
sum sum+i/fact
if j<=i No
yes
i i+1
fact fact*j
j j+1 A
© All rights reserved to Kateb University 12/19/2020 84
❖ تمريناتآخرفصل
-1فلوچارتی رسم نمائيد كه Nعدد از ورودی دريافت كرده تعداد اعداد اول و كامل را شمرده در خروجی چاپ
نمايد.
-2فلوچارتی رسم نمائيد كه N , Xرا از ورودی خوانده مقدار سری زير را محاسبه كند:
4ـ فلوچارتی رسم كنيد كه تاريخ تولد شخصی را از ورودی خوانده ،سن شخص را با تـاريخ روز ،محاسـبه نمـوده در
خروجی چاپ كند.
-5فلوچارتی رسم نمائيد كه (m>n) N ,Mرا از ورودی دريافت كرده سری فيبونـاچی بـين N ,Mرا توليـد كـرده ،در
خروجی چاپ كند.