PDA

View Full Version : مبتدی: راهنمایی در مورد نوشتن برنامه ضرب و تقسیم اعداد در مبناهای 2 تا 16 در پاسکال



sahelgh
پنج شنبه 11 آبان 1391, 23:42 عصر
سلام
من واسه پروژه ام باید یه برنامه به زبان پاسکال تحویل بدم که ضرب و تقسیم 2 عدد در مبنای 2 تا 16 رو نمایش بده .
ممنون میشم در مورد چگونگی نوشتن برنامه راهنمایی کنید .

Ananas
جمعه 12 آبان 1391, 02:19 صبح
سلام.
حاصل رو نمایش بده یا عملیات رو؟
اگه حاصل، فکر میکنم کافیه ابتدا دو عدد وارده رو ببری به یک مبنا مثلا 10 بعد عملیات رو انجام بدی بعد حاصل رو برگردونی به همون مبنا و نمایش بدی. مثلا دو عدد در مبنای 7 از ورودی می گیری (مثلا به شکل رشته) بعد تبدیل به مقدار ده دهیشون میکنی و ضرب یا تقسیم رو انجام میدی بعد نتیجه رو دوباره به مبنای 7 تبدیل میکنی و نمایش میدی. شما کافیه تبدیل مبنا بین (1 تا 16) و 10 رو تعریف کنی.

sahelgh
چهارشنبه 17 آبان 1391, 13:34 عصر
سلام.
حاصل رو نمایش بده یا عملیات رو؟
اگه حاصل، فکر میکنم کافیه ابتدا دو عدد وارده رو ببری به یک مبنا مثلا 10 بعد عملیات رو انجام بدی بعد حاصل رو برگردونی به همون مبنا و نمایش بدی. مثلا دو عدد در مبنای 7 از ورودی می گیری (مثلا به شکل رشته) بعد تبدیل به مقدار ده دهیشون میکنی و ضرب یا تقسیم رو انجام میدی بعد نتیجه رو دوباره به مبنای 7 تبدیل میکنی و نمایش میدی. شما کافیه تبدیل مبنا بین (1 تا 16) و 10 رو تعریف کنی.
نه میخوام تو همون مبنا ضرب کنم :(

Felony
چهارشنبه 17 آبان 1391, 14:10 عصر
خوب مشکل کجاست ؟ دقیقا همونطور که روی کاغذ این کار رو میکنید باید تو کد پیادش کنید ، شروع به نوشتن کنید و اشکالاتتون رو بپرسید .

sahelgh
چهارشنبه 17 آبان 1391, 18:06 عصر
خوب مشکل کجاست ؟ دقیقا همونطور که روی کاغذ این کار رو میکنید باید تو کد پیادش کنید ، شروع به نوشتن کنید و اشکالاتتون رو بپرسید .

شروع به نوشتن کردم. ولی مشکل اصلیم اینه که نمیدونم دو تا عدد رو چه جوری در هم ضرب کنم. یعنی نمیدونم مثلا در مبنای 2 وقتی یک رقم از عدد دوم رو ضرب در عدد اول میکنم چه جوری برنامه بنویسم که وقتی هر رقم بزرگتر از 1 شد اون رقم رو از 2 کم کنه و بذاره کنار!

Ananas
چهارشنبه 17 آبان 1391, 19:31 عصر
برای ضرب لازم نیست تو هر مبنا یه جور خاص ضرب کنید فقط به شکل ساده یک عدد رو در عدد دیگه با استفاده از * ضرب میکنید و فقط برای نمایش نتیجه لازمه به مبنای خاص ببرید. مقدار عدد که تغییر نمیکنه فقط ارقام نمایش دهنده تو هر مبنا متفاوت هستن. مثلا اگه سه تا جعبه سیب داشته باشی که تعداد سیب هاشون برابر باشه باید تعداد سیب رو در تعداد جعبه ضرب کنی تا تعداد کل سیب ها بدست بیاد، حالا تو هر مبنایی این کار رو بکنی تعداد کل سیب ها که تغییر نمیکنه فقط ارقام نمایش دهنده فرق داره.

sahelgh
چهارشنبه 17 آبان 1391, 23:28 عصر
برای ضرب لازم نیست تو هر مبنا یه جور خاص ضرب کنید فقط به شکل ساده یک عدد رو در عدد دیگه با استفاده از * ضرب میکنید و فقط برای نمایش نتیجه لازمه به مبنای خاص ببرید. مقدار عدد که تغییر نمیکنه فقط ارقام نمایش دهنده تو هر مبنا متفاوت هستن. مثلا اگه سه تا جعبه سیب داشته باشی که تعداد سیب هاشون برابر باشه باید تعداد سیب رو در تعداد جعبه ضرب کنی تا تعداد کل سیب ها بدست بیاد، حالا تو هر مبنایی این کار رو بکنی تعداد کل سیب ها که تغییر نمیکنه فقط ارقام نمایش دهنده فرق داره.

شما درست میگید ولی اون برنامه ای که استادمون از ما خواسته به نظر میرسه باید تو همون مبنا ضرب کنیم! :گریه: همچنین گفته که برنامه ی آسونی نیس!!!!!

Ananas
جمعه 19 آبان 1391, 22:28 عصر
آخه سوال اینجاست که مگه ضرب کاپیوتر تو کدوم مبناست؟ مثلا وقتی شما می نویسی : 2 * 5 این در مبنای چند داره ضرب میکنه؟ من فکر می کنم عدد شما رو میگیره میبره به مبنای دو دویی یا هگزادسیمال بعد ضرب میکنه و نتیجه رو به شکل باینری ذخیره میکنه و شما با استفاده از توابعی مثل IntToStr عدد رو به مبنای 10 نمایش میدید. بالا خره باید یک جایی از این برنامتون از عملیات ضرب استفاده کنید یا نه؟ یا با جمع می خواید بنویسید؟ اون هم در مبنای دودویی هست. شما هر عملی که در مورد اعداد انجام میدی داری از عملیات در مبنای دو (صفر و یک) استفاده میکنی . شایدم منظورش این بوده که از string و کاراکتر و if و case ... of استفاده کنید!
اگه قرار باشه از عملیات محاسباتی معمولی استفاده کنید که خوب روشی که عرض کردم یه راهشه. لقمه رو دور سر نپیچونید. اگه نه، و حتما می خواید تو مبنا های خواسته شده تمام عملیات انجام بشه من استفاده از string رو انتخاب میکنم. البته همراه با تعریف record و یا کلاس (شی گرا).

Felony
شنبه 20 آبان 1391, 06:30 صبح
پست 61 این تاپیک (http://barnamenevis.org/showthread.php?209792-%D8%B3%D9%88%D8%B1%D8%B3%D9%87%D8%A7%D9%8A-%D9%86%D9%85%D9%88%D9%86%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4%D9%8A/page4) میتونه بهتون در مورد نحوه نوشتنش کمک کنه ، تو برنامه ضمیمه شده اون پست دقیقا حالتی که روی کاغذ برای محاسبات استفاده میشه رو پیاده کردم .

Ananas
شنبه 20 آبان 1391, 14:20 عصر
منو یاد قدیما (نه خیلی دور) انداختید:متفکر:. قربان میبخشید قصد عرض اندام نداریم اگه جسارت نشه یه نمونه کار هم از بنده ببینید فقط چون حیفم میاد که این ماشین حساب رو نبینید وگرنه حتی اینجا تاپیک هم براش نساختم که ریا نشه :قهقهه::قهقهه::
http://www.forum.khoramsoft.com/thread-281-post-890.html#pid890
پست شماره 15.
اگه فرصت کنم ورژن جدیدشو دارم تکمیل میکنم که توان 10 بزرگ در حد مثلا 100 رقمی داره. یعنی عدد 10000 رقمی به بزرگی 10 به توان 100. انشالله تکمیل بشه تو بخش دلفی یه تاپیک براش میسازم. فایل ارسال شده تو آدرس بالا فعلا قفل داره که فقط تا 256 رقم کار کنه ولی در واقع قابل تنظیمه و تا 10000 رقم هم کار میکنه.