PDA

View Full Version : سوال: یه سوال پیچیده



KhanDaii
سه شنبه 31 شهریور 1388, 14:17 عصر
سلام خدمت دوستان برنامه نویس
یه سوال پیچیده:
من می خوام تو برنامم یه کاری کنم که کاربر عددی به عنوان تعداد صفحات یک کتاب و عددی دیگه به عنوان تعداد صفحه ای
که کاربر در یک ساعت می تونه بخونه رو وارد کنه و برنامه مقدار زمان مورد نیاز برای خواندن این کتاب رو به دست بیاره.
مثلا: اگه یه کتاب 75 صفحه باشه و کاربر تو هر ساعت بتونه 13 صفحه از این کتاب رو بخونه، به زمانی معادل 6ساعت و 16 دقیقه نیاز داره.
من برای این کار تعداد صفحات کتاب رو بر تعداد صفحه ای که در یک ساعت میشه خوند تقسیم کردم تا مقدار زمان بدست بیاد.
ولی مشکل اساسی اینه که وقتی همچین برنامه ای نوشته بشه می بینید که حاصل تقسیم این دو عدد یه چیز دیگه می شه.
وقتی 75 بر 13 تقسیم بشه جوابش برابره با 5 ساعت و 76 دقیقه. ولی من می خوام بنویسه 6 ساعت و 16 دقیقه.
مقدار بدست اومده در هر دو راه یکیه ولی طرز نوشتنش فرق می کنه.
لطفا اگه جوابش رو می دونید راهنمایی کنید.اگر چه نمی دونم تونستم منظورمو برسونم یا نه؟:قلب:

fazelm
سه شنبه 31 شهریور 1388, 14:22 عصر
سلام خدمت دوستان برنامه نویس
یه سوال پیچیده:
من می خوام تو برنامم یه کاری کنم که کاربر عددی به عنوان تعداد صفحات یک کتاب و عددی دیگه به عنوان تعداد صفحه ای
که کاربر در یک ساعت می تونه بخونه رو وارد کنه و برنامه مقدار زمان مورد نیاز برای خواندن این کتاب رو به دست بیاره.
مثلا: اگه یه کتاب 75 صفحه باشه و کاربر تو هر ساعت بتونه 13 صفحه از این کتاب رو بخونه، به زمانی معادل 6ساعت و 16 دقیقه نیاز داره.
من برای این کار تعداد صفحات کتاب رو بر تعداد صفحه ای که در یک ساعت میشه خوند تقسیم کردم تا مقدار زمان بدست بیاد.
ولی مشکل اساسی اینه که وقتی همچین برنامه ای نوشته بشه می بینید که حاصل تقسیم این دو عدد یه چیز دیگه می شه.
وقتی 75 بر 13 تقسیم بشه جوابش برابره با 5 ساعت و 76 دقیقه. ولی من می خوام بنویسه 6 ساعت و 16 دقیقه.
مقدار بدست اومده در هر دو راه یکیه ولی طرز نوشتنش فرق می کنه.
لطفا اگه جوابش رو می دونید راهنمایی کنید.اگر چه نمی دونم تونستم منظورمو برسونم یا نه؟:قلب:

ساعت رو به دقیقه تبدیل کن و بعد تقسیم کن مثلا سه ساعت و بیست دقیقه میشه 200 دقیقه بعد تقسیم کن و دوباره تقسیم بر 60 کن که تبدیل به ساعت بشه

متوجه منظورم شدی ؟؟؟؟؟؟؟؟؟

KhanDaii
سه شنبه 31 شهریور 1388, 15:00 عصر
این راه رو رفتم ولی نشد
اگه شما 200 رو بر 60 تقسیم کنی می بینی که جواب مساوی میشه با 3 ساعت و 33 دقیقه.:متفکر:
متوجه مشکل شدی؟
دلیل این مشکل اینه که در ساعت هر 60 واحد یک واحد به عدد صحیح اضافه می کنه و لی در اعداد هر 100 واحد به واحد عدد صحیح اضافه می کنه.
مثلا ساعت 4:56 دقیقه 4 دقیقه می خواد تا ساعت 5 بشه
ولی تو کامپیوتر و اعداد ریاضی باید 44 دقیقه بگذره تا ساعت 5 بشه.
متوجه شدی؟
نمی دونم برای این مشکل راهی تو ویژوال بیسیک هست یا نه

Navid Asadi
سه شنبه 31 شهریور 1388, 15:19 عصر
خوب تو برنامه ات بنویس هر بار که این تقسیم رو انجام داد و دقیقه اش بیشتر از 60 بود ، ضریبی از 60 رو ازش کم کنه و ضریب رو به ساعت و باقی رو به دقیقه اضافه کنه...

KhanDaii
سه شنبه 31 شهریور 1388, 15:47 عصر
با تشکر. فکر کنم بهترین راه همینه :تشویق:.ولی تو نوشتنش می تونی کمکم کنی؟

f.nabavi
سه شنبه 31 شهریور 1388, 16:28 عصر
لطفا با دقت بیشتری ضرب و تقسیم کنید
اگر یکی تو ساعت 13 صفحه بخونه تو 6 ساعت 78 صفحه خونده... حالا 16 دقیقه بعدش رو حساب نمیکنیم.

اگر 5 ساعت و 76 درصد از یک ساعت داشته باشیم که معنای تقسیم 75/13 هستش میشه 5*13، 65 صفحه در 5 ساعت و 76 درصد از یک ساعت هم حدود 45 دقیقه میشه که خواننده 76 درصد از 13 صفحه رو میخونه که میشه 9.88 که همون 10 صفحه میشه و با 65 صفحه ای که تو 5 ساعت خونده جمع میشه نتیجه میشه 75 صفحه.

Navid Asadi
سه شنبه 31 شهریور 1388, 16:51 عصر
بله حرف شما کاملا درسته
من خیلی سرسری نگاه کردم و اولین چیزی که به ذهنم رسید رو نوشتم...
راستش رو بخوای راه حل این معادله یک مهندسی معکوسه!

anooshiran
سه شنبه 31 شهریور 1388, 17:54 عصر
سلام خدمت دوستان برنامه نویس
یه سوال پیچیده:
من می خوام تو برنامم یه کاری کنم که کاربر عددی به عنوان تعداد صفحات یک کتاب و عددی دیگه به عنوان تعداد صفحه ای
که کاربر در یک ساعت می تونه بخونه رو وارد کنه و برنامه مقدار زمان مورد نیاز برای خواندن این کتاب رو به دست بیاره.
مثلا: اگه یه کتاب 75 صفحه باشه و کاربر تو هر ساعت بتونه 13 صفحه از این کتاب رو بخونه، به زمانی معادل 6ساعت و 16 دقیقه نیاز داره.
من برای این کار تعداد صفحات کتاب رو بر تعداد صفحه ای که در یک ساعت میشه خوند تقسیم کردم تا مقدار زمان بدست بیاد.
ولی مشکل اساسی اینه که وقتی همچین برنامه ای نوشته بشه می بینید که حاصل تقسیم این دو عدد یه چیز دیگه می شه.
وقتی 75 بر 13 تقسیم بشه جوابش برابره با 5 ساعت و 76 دقیقه. ولی من می خوام بنویسه 6 ساعت و 16 دقیقه.
مقدار بدست اومده در هر دو راه یکیه ولی طرز نوشتنش فرق می کنه.
لطفا اگه جوابش رو می دونید راهنمایی کنید.اگر چه نمی دونم تونستم منظورمو برسونم یا نه؟:قلب:


سلام دوست عزيز

شما با رسيدن به يك جواب غلط صورت مسئله راپيچيده كرده اي.
اولا وقتي 75 بر 13 تقسيم مي شود نتيجه 5.76 است كه اين به معني 5 ساعت و 76 دقيقه نيست بلكه به معني 5 ساعت و 76. يك ساعت است . يهني 5 ساعت و 46 دقيقه

با دو راه متفاوت شما مي توانيد به نتيجه برسيد

الف




Dim bookPages AsInteger = 75
Dim readPagesPerHour As Int16 = 13
Dim readPagesPerMinute AsSingle = 60 / readPagesPerHour
readPagesPerMinute *= bookPages
Dim ReadBookHours As Int16 = readPagesPerMinute \ 60
Dim ReadBookMinutes As Int16 = readPagesPerMinute Mod 60



ب



Dim bookPages As Integer = 75
Dim readPagesPerHour As Int16 = 13
Dim readPagesHoursAndMinutes As Single = bookPages / readPagesPerHour
Dim remain As Single = readPagesHoursAndMinutes - (bookPages \ readPagesPerHour)
Dim ReadBookHours As Int16 = Int(readPagesHoursAndMinutes)
Dim ReadBookMinutes As Int16 = remain * 60