PDA

نسخه کامل مشاهده نسخه کامل : سوال کامپیوتر : الگوریتم و فلوچارت



Rhodes
21-04-2012, 22:27
سلام دوستان ...
میخواستم بدونم الگوریتم و فلوچارت دو تا مسئله زیر چی میشه ...
الگوریتم و فلوچارتی رسم نمایید :
::: که محتویات دو مقدار A و B را بدون استفاده از متغیر کمکی جا به جا نماید.
::: که عددی را از ورودی دریافت کرده و بخش پذیری آن را بر 3 و 5 کنترل نماید.

ممنون میشم جواب بدید ...
تشکر.

hamidrezaj
22-04-2012, 00:55
سلام دوست عزیز

الگوریتم سوال اول
a-b---->a
a+b---->b
b-a----->a

davy jones
22-04-2012, 02:19
سلام.

یه راهنمایی برای سوال دوم میکنم. اگه از نرم افزار متلب یا زبان برنامه نویسی C استفاده میکنین میتونین از دکمه ی \ (همونی که بر عکس علامت تقسیم هستش) استفاده کنین. عملگر / در متلب همون تقسیم عادی هستش ولی \ مفهوم باقیمانده ی یک عدد بر یه عدد دیگه رو میده. مثلا وقتی مینویسیم:


if a\3 == 0 then f1 else f2


در حقیقت داریم شرط اینکه باقیمانده ی عدد a در تقسیم بر عدد 3 برابر با صفر باشه رو بررسی میکنیم.

البته راه های دیگه ای هم هست. مثلا در بخشپذیری بر 3، کافیه که مجموع ارقام یک عدد بر 3 بخشپذیر باشه. اگه حاصل مجموع ارقام هم خودش عددی بزرگ شد، مجددا حاصل مجموع ارقام عدد جدید رو محاسبه میکنیم و میبینیم که آیا بر 3 بخشپذیره یا نه. و همینطور تا آخر که با یک تابعی که درون خودش call میشه و هر بار یک شرط رو چک میکنه به راحتی در 2 الی 3 خط قابل نوشتنه.

برای بخشپذیری بر 5 هم کافیه که رقم یکان اون عدد برابر با 5 یا صفر باشه. نحوه ی جدا کردن رقم یکان یک عدد از کل اون عدد هم دیگه بسته به ابتکار خودتون راههای متفاوتی داره.




موفق باشین.
91/2/3

Rhodes
22-04-2012, 05:32
سلام دوست عزیز

الگوریتم سوال اول
a-b---->a
a+b---->b
b-a----->a

حلله... دستت درد نکنه...
گرفتم....


سلام.

یه راهنمایی برای سوال دوم میکنم. اگه از نرم افزار متلب یا زبان برنامه نویسی C استفاده میکنین میتونین از دکمه ی \ (همونی که بر عکس علامت تقسیم هستش) استفاده کنین. عملگر / در متلب همون تقسیم عادی هستش ولی \ مفهوم باقیمانده ی یک عدد بر یه عدد دیگه رو میده. مثلا وقتی مینویسیم:

if a\3 == 0 then f1 else f2

در حقیقت داریم شرط اینکه باقیمانده ی عدد a در تقسیم بر عدد 3 برابر با صفر باشه رو بررسی میکنیم.

البته راه های دیگه ای هم هست. مثلا در بخشپذیری بر 3، کافیه که مجموع ارقام یک عدد بر 3 بخشپذیر باشه. اگه حاصل مجموع ارقام هم خودش عددی بزرگ شد، مجددا حاصل مجموع ارقام عدد جدید رو محاسبه میکنیم و میبینیم که آیا بر 3 بخشپذیره یا نه. و همینطور تا آخر که با یک تابعی که درون خودش call میشه و هر بار یک شرط رو چک میکنه به راحتی در 2 الی 3 خط قابل نوشتنه.

برای بخشپذیری بر 5 هم کافیه که رقم یکان اون عدد برابر با 5 یا صفر باشه. نحوه ی جدا کردن رقم یکان یک عدد از کل اون عدد هم دیگه بسته به ابتکار خودتون راههای متفاوتی داره.




موفق باشین.
91/2/3
سلام.راستش هنوز وارد برنامه نویسی نشدیم و فعلا توی همین الگوریتم فارسی هستیم.
-شروع
-a را بخوان.
.
.
.

الان همین روش باقی مانده رو توی فلو چارت چه طوری بکشم؟
---------------------------------------------------------------------------------
برای روش وم که مجموع ارقام رو محاسبه و بر 3 تقسیم کنیم مثلا اگه بنویسیم عدد a را به صورت A1A2A3 ... An فرض کن و A1+A2+A3+... +An را جمع کن و بر 3 تقسیم کن.کامپیوتر حالیشه یه عدد رو به صورت A1A2A3 ... An بخونه یا باید براش تعریف کنیم ؟

---------------------------------------------------------------------------------
میشه به صورت الگوریتم وار فارسی بنویسید...

ممنون.توضیحاتتون خیلی کمک کرد.

davy jones
22-04-2012, 10:01
حلله... دستت درد نکنه...
گرفتم....


سلام.راستش هنوز وارد برنامه نویسی نشدیم و فعلا توی همین الگوریتم فارسی هستیم.
-شروع
-a را بخوان.
.
.
.

الان همین روش باقی مانده رو توی فلو چارت چه طوری بکشم؟
---------------------------------------------------------------------------------
برای روش وم که مجموع ارقام رو محاسبه و بر 3 تقسیم کنیم مثلا اگه بنویسیم عدد a را به صورت A1A2A3 ... An فرض کن و A1+A2+A3+... +An را جمع کن و بر 3 تقسیم کن.کامپیوتر حالیشه یه عدد رو به صورت A1A2A3 ... An بخونه یا باید براش تعریف کنیم ؟

---------------------------------------------------------------------------------
میشه به صورت الگوریتم وار فارسی بنویسید...

ممنون.توضیحاتتون خیلی کمک کرد.

سلام.

مسلما کامپیوتر به خودی خود، ارقام یک عدد چند رقمی رو نمیتونه از هم جدا کنه و باید خودتون دستی این کار رو براش انجام بدین

برای اینکار از توابع معروف ریاضی مث تابع جزء صحیح (یا همون براکت: [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] r ) باید استفاده کنین. فرض کنین که یه عدد 3 رقمی مث a رو از ورودی به کامپیوتر دادین. رقم یکان این عدد رو میشه اینطوری جدا کرد:


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] D&space;%5Cright&space;%5Crfloor



رقم دهگان رو هم اینطوری:


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] ac%7Ba-10%5E%7B2%7D%5Ctimes&space;%5Cleft&space;%5Clfloor&space;%5Cfrac%7Ba %7D%7B10%5E%7B2%7D%7D&space;%5Cright&space;%5Crfloor-a_%7B1%7D%7D%7B10%7D


و رقم صدگان رو هم اینطوری:


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] ft&space;%5Clfloor&space;%5Cfrac%7Ba%7D%7B100%7D&space;%5Cright&space;%5Cr floor



حالا اینکه اینا رو باید تو فلوچارت فارسی چطوری بنویسین، به عهده ی خودتون! :20:

البته همونطور که گفتم این مثلا یه راهش بود. ممکنه راه های ابتکاری دیگه ای هم وجود داشته باشه.



موفق باشین.
91/2/3