PDA

View Full Version : سوال: پیدا کردن مضرب یک عدد نامشخص بین چند عدد مشخص ( ساده نیست)



eftary
سه شنبه 12 آذر 1392, 16:34 عصر
سلام:لبخندساده:
من تو برنامم به یک عدد رسیدم مثلا 4.2 یا 42 یا 420 یا 4200 حالا ممکن یکی از اینا باشه. (X)

1- حالا من چند تا عدد مشخص دارم 22 و 45 و 98 و 42 (Y) من باید ببینم که عدد من مضرب کدوم عدد هست با چه ضریبی

2- ممکن عدد من مثلا بشه 30 که تو هیچ کدوم از اینا نیست تو Y ، باید ببینم به کدوم نزدیکتره با چه ضریبی

rahnema1
سه شنبه 12 آذر 1392, 19:27 عصر
برای اینکه مشخص کنید یک عدد مضرب یک عدد دیگه هست باقیمانده تقسیم اون دو تا رو حساب کنید اگه مساوی صفر شد پس عدد اول مضرب دومی هستبرای اینکه مشخص کنید کدوم یک از اعداد به عدد مورد نظر شما نزدیکتره اولا عدد مورد نظر باید از اعداد دیگه بزرگتر باشه و ثانیا خارج قسمت اون عدد بر اعداد دیگه کوچکتر باشه

eftary
سه شنبه 12 آذر 1392, 19:43 عصر
کسی کمکم میکنه؟

خط زیر چرا اشتباه است؟
من میخوام اون i زیاد شود و تقسیم کنه

درست شد

rahnema1
سه شنبه 12 آذر 1392, 19:58 عصر
آرایه Mult دو تا عضو بیشتر نداره بعد شما می آیید تا اندکس 14 به اون می دهید؟

eftary
سه شنبه 12 آذر 1392, 20:16 عصر
الان من میام تقسیم میکنم برای دقت با 2 رقم اعشار ولی جوابا نزدیک همه چطور بگم ضریب کردم باشه
مثلا بعد تقسیم شد
0.13
0.10
0.08

مثلا من خودم دستس حل میکنم مثلا 0.10 خوبه ولی چی کنم؟

eftary
سه شنبه 12 آذر 1392, 20:19 عصر
چطوری بیام ممیز پیدا کنم و صفر قبل اونو حذف کنم و 2 رقم اعشار بعدشو نگه دارم مثل یک int باشه که انگار اعشاری دیگه نیست.؟

الان جوابای من این شده. چطور بفهمم کدومشون مضرب یکی از اعداد 12 13 14 15 16 هست ؟
این اعداد میتونن بصورت 120 1200 هم باشن

113452

rahnema1
سه شنبه 12 آذر 1392, 21:58 عصر
هیچ کدام از اعداد اعشاری بالا مضرب اون اعداد طبیعی نیست زیرا بنا به تعریف مضرب یعنی عددی که از ضرب یک عدد دیگر در یک عدد صحیح بدست می آید بنابراین به علت اینکه اینها از عددهای 12 و 13 و.. کوچکترند مضرب اونها نمی باشند

eftary
چهارشنبه 13 آذر 1392, 13:58 عصر
حرقتون درسته ولی باید حالا نزدیکترین به این مضارب قبول کنه

rahnema1
چهارشنبه 13 آذر 1392, 14:05 عصر
میشه دقیقا و با توضیح کامل منظورتون رو بگید؟ و برنامه ای که این اعداد را تولید می کنه بذارید و اصلا این برنامه به چه درد می خوره؟ ساده به نظر می رسه

eftary
چهارشنبه 13 آذر 1392, 16:26 عصر
برنامه ساده هست ولی خوب من تازه کارم:چشمک:
توضیح :
X,Y ورودی منن
Z خروجی
B آرایه 8 تایی که عددای 10 13 14 19 توشونه
حالا XبرY تقسیم میشه یک عددی میاد اول چک کنه مضرب این اعداد هست ؟ بود که تمام اگه نبود
باید ببینه به چه مضربی از اعداد بالا نزدیکه مثلا به 14 نزدیکه پس 14 قبوله ولی با چه ضریبی؟
همین

rahnema1
چهارشنبه 13 آذر 1392, 20:23 عصر
توضیحات شما گویا نیست یا درست تایپ نمی کنید لطفا یک مثال کامل عددی بذارید دقیقا اعداد را بذارید خلاصه و جمع و جور نگویید

samin_panahi
چهارشنبه 13 آذر 1392, 21:30 عصر
سلام:لبخندساده:
من تو برنامم به یک عدد رسیدم مثلا 4.2 یا 42 یا 420 یا 4200 حالا ممکن یکی از اینا باشه. (X)

1- حالا من چند تا عدد مشخص دارم 22 و 45 و 98 و 42 (Y) من باید ببینم که عدد من مضرب کدوم عدد هست با چه ضریبی

2- ممکن عدد من مثلا بشه 30 که تو هیچ کدوم از اینا نیست تو Y ، باید ببینم به کدوم نزدیکتره با چه ضریبی

Y ثابته؟
یعنی هر عددی که به عنوان X داری رو باید با 22 - 45 - 98 و 42 بسنجی؟

ویرایش:
با توجه به چیزی که از سوالت فهمیدم این برنامه رو نوشتم
مهم اینه که الگوریتم رو بدونی، فکر کنم الگوریتم این برنامه کارت رو راه بندازه
یه چیز تو همین مایه ها باید بنویسی

eftary
پنج شنبه 14 آذر 1392, 08:12 صبح
بله همچین چیزی:لبخندساده:

1- ولی بیاد اگر از مضرب Y نبود /Yثابت است/ ببینه X درچی ضرب کنه تا به نزدیک ترین Y برسه
2- از بین چند جواب که تو آرایه ها دارم چطور بزرگترین و کوچکترین پیدا کنم؟

eftary
پنج شنبه 14 آذر 1392, 11:10 صبح
2- رو حل کردم البته با if راه بهتری هم هست؟

samin_panahi
پنج شنبه 14 آذر 1392, 11:20 صبح
بله همچین چیزی:لبخندساده:

1- ولی بیاد اگر از مضرب Y نبود /Yثابت است/ ببینه X درچی ضرب کنه تا به نزدیک ترین Y برسه


یک همونی نیست که تو مسیج باکس پیغام می ده؟

MessageBox.Show(X.ToString() + " Be Hich Kodam Az A'dad Bakhsh Pazir Nist\nBehtarin Entekhab Adade " + MyNumbers1.ToString() + " Ba Baghimandeye " + BaghiMandeh1.ToString() + " Va KharejeGhasmate " + KharegeGhesmat1.ToString() + " Mibashad");

اگه نیست در موردش مثال عددی بزن ببینم دقیقا چی می خوای؟

ویرایش: فایل ضمیمه رو نگاه کن / یه تغییری دادم، ببین همینو می خوای؟

eftary
پنج شنبه 14 آذر 1392, 12:49 عصر
این برام مهمه میخوام

مثلا جواب من شد 1.2 و 0.135

بیاد اینا در اعداد 10یا100 ضرب کنه(باید خودش بدونه که کدوم در10 کدوم100 ضرب بشه) تا اعشارش از بین بره و بعد فقط 2 رقمش برداره
مثلا
1.2*10=12 این مشکلی نداره 2 رقمی هست
0.135*100=135 فقط 13 بمونه

--------------------------------------

samin_panahi
پنج شنبه 14 آذر 1392, 14:13 عصر
چطوری بیام ممیز پیدا کنم و صفر قبل اونو حذف کنم و 2 رقم اعشار بعدشو نگه دارم مثل یک int باشه که انگار اعشاری دیگه نیست.؟

برای دو رقم بعد از اعشار باید مقدار int حاصل ضرب عددت در 100 رو بدست بیاری


MessageBox.Show(((int)(X * 100)).ToString());

eftary
پنج شنبه 14 آذر 1392, 14:42 عصر
این برام مهمه میخوام

مثلا جواب من شد 1.2 و 0.135

بیاد اینا در اعداد 10یا100 ضرب کنه(باید خودش بدونه که کدوم در10 کدوم100 ضرب بشه) تا اعشارش از بین بره و بعد فقط 2 رقمش برداره
مثلا
1.2*10=12 این مشکلی نداره 2 رقمی هست
0.135*100=135 فقط 13 بمونه

--------------------------------------

:متفکر:
این سوال به این شکل // چطور؟

samin_panahi
پنج شنبه 14 آذر 1392, 15:29 عصر
این سوال به این شکل // چطور؟

این آخرین تغییرات برنامه هست
دو تا باتن داره
باتن test که همون کارا رو انجام می ده
یه باتن 2 Ragham گذاشتم که هر عددی وارد کنی دو رقم اولش رو می ده

eftary
پنج شنبه 14 آذر 1392, 17:07 عصر
الان من به ازای چند تا رادیو باتن عکس های مختلفی در پیکچر باکس دارم و با این دستور و تو یک پوشه به اسم Image در برنامه اصلیم دارم ولی نمیخوام کنارش باشه میخوام کاری کنم که ریسورش باشه

pictureBox1.BackgroundImage = Image.FromFile(Environment.CurrentDirectory + "\\Imge\\pic1.bmp")

من عکس داخل سورس بردم ولی نمایش نمیده ؟
دستورش فرق داره؟

samin_panahi
پنج شنبه 14 آذر 1392, 17:23 عصر
الان من به ازای چند تا رادیو باتن عکس های مختلفی در پیکچر باکس دارم و با این دستور و تو یک پوشه به اسم Image در برنامه اصلیم دارم ولی نمیخوام کنارش باشه میخوام کاری کنم که ریسورش باشه

pictureBox1.BackgroundImage = Image.FromFile(Environment.CurrentDirectory + "\\Imge\\pic1.bmp")

من عکس داخل سورس بردم ولی نمایش نمیده ؟
دستورش فرق داره؟
اون برنامه کارت رو راه انداخت؟
سوالت واضح نیست / موضوعش هم با موضوع این تاپیک فرق می کنه
تو یه تاپیک دیگه واضح تر بپرس که اگه کسی بلده کمکت کنه

+ فکر کنم منظورت اینه که عکسایی که می خوای تو pictureBox نشون بدی برن تو پوشه ی Resources برنامه
اگه منظورت اینه، نیازی به کد نویسی نداره pictureBox رو که میاری رویش یه فلش کوچیک هست
روی اون فلش کلیک کن، choose image رو بزن،قسمت Project resorce file رو فعال کن و Import رو بزن بعد عکس هرجای کامپیوتر که باشه مهم نیست، انتخابش کن و بعد هم Ok

eftary
پنج شنبه 14 آذر 1392, 18:22 عصر
بله برنامه قبلی کمکم کرد و از شما ممنونم یکم دیگه روش کار میکنم سوال داشتم میپرسم.
--
پیکچر باکس میخوام توش چندتا عکس نشون بده نه یک عکس که مثلا هر رادیوباتن که زدم یکی بیاد رو پیکچر باکس .

روی اون فلش کلیک کن، choose image رو بزن،قسمت Project resorce file رو فعال کن و Import رو بزن بعد عکس هرجای کامپیوتر که باشه مهم نیست، انتخابش کن و بعد هم Ok

اینو میدونم ولی با این کار یک عکس میاد میخوام چندتا عکس توش نشون بدم.(3تا RadioBtn) هرکدوم یک عکس نشون بده.
میخوام کنار عددا بزارم که درست بود عکس 1 نبود 2 براساس رادیوباتن

samin_panahi
پنج شنبه 14 آذر 1392, 18:59 عصر
پیکچر باکس میخوام توش چندتا عکس نشون بده نه یک عکس که مثلا هر رادیوباتن که زدم یکی بیاد رو پیکچر باکس .
اول همون طوری عکس ها رو import کن بعد تو رویداد CheckedChanged هر کدوم از رادیوباتن ها اینطوری بنویس:

if (radioButton1.Checked == true)
{
pictureBox1.Image = ESME_PROJE.Properties.Resources.ESME_AX;
}

eftary
پنج شنبه 14 آذر 1392, 22:50 عصر
با این دستور درست شد ولی عکسام Stretch نمیشن ، بزرگن. چطور تو کادرشون کنم؟/Stretch /

----
ادامه برنامم:
الان میخام عدد که از تابع _2ragham(X) بدست میاد با Y که ثابت هستند مقایسه کنم ببینم به کدوم نزدیکتره.

samin_panahi
جمعه 15 آذر 1392, 01:00 صبح
با این دستور درست شد ولی عکسام Stretch نمیشن ، بزرگن. چطور تو کادرشون کنم؟

روی همون فلش کوچیکه روی pictureBox کلیک کن Size Mode رو روی Auto Size بذار


ادامه برنامه. . .

می خوای ببینی عددی که از تابع بدست اومده با Y مقایسه کنی ببینی به Y نزدیک تره یا به کدوم عدد؟

در هر صورت کاری نداره، تفاضلشون رو باهم مقاسه کن

eftary
جمعه 15 آذر 1392, 15:32 عصر
برنامه این شکل نوشتم ولی همش 0 میده

با foreach میشه نه؟


همون /Y//{int[] Mult = { 22, 45, 90

public int nazdik(int x2)
{
int y2 = 0;
int[] m1 = new int[4];

for (int L = 0; L < 4; L++)

{



if (Mult[L] <= x2)
{
m1[L] = x2 - Mult[c1];

if (m1[L] <= y2)
{
y2 = m1[c1];
return y2;

}

}



}


return y2;
}

samin_panahi
جمعه 15 آذر 1392, 15:51 عصر
یه y داری
یه عدد که خروجی تابع 2ragham هست
دیگه کدوم عدده؟

eftary
جمعه 15 آذر 1392, 17:25 عصر
همین دیگه.
Y من که فرض 22, 45, 90 باشه.
خروجی تابع 2ragham عدد بعدی.

حالا میخوام خروجی تابعم رو از تک تک Y ها کم کنم و ببینم کدوم خروجی کمتر است؟ مثلا
خروجی تابع 2ragham شده 30 بیاد از تمام Y کم کنه ( خروجی فقط مثبت باشه)
30-22
30-45
30-90
عدد منفی که کار نداره و فقط در اینجا شد 22 با باقیمانده 8 پس به 22 نزدیک تر است .

eftary
جمعه 15 آذر 1392, 22:46 عصر
نوشتم.
سوال داشتم میپرسم .
ممنون که تا اینجا کمکم کردین:تشویق:

eftary
جمعه 15 آذر 1392, 23:57 عصر
دیگه شرمنده ولی شانس آوردمشاخ در نیاوردم.
چرا خروجی بهم اعشاری نمیده همش بعد اعشار بر میداره؟

اول فرم اینا تعریف کردم

int za = 10;
int zb = 12;


پایین تر اینو

double df = zb / za;//()
listBox1.Items.Add("-_-Final " + df.ToString());


حالا za=10 , zb =12
خروجی بجای 1.2 میشه 1

samin_panahi
شنبه 16 آذر 1392, 01:32 صبح
حاصل تقسیم دو تا عدد int رو int می ده، یکی، یا هر دوشون رو double تعریف کن

double za = 10;
double zb = 12;
double df = zb / za;
listBox1.Items.Add("-_-Final " + df.ToString());

eftary
شنبه 23 آذر 1392, 14:49 عصر
سلام مجدد.
الان میخوام برای برنامه یک فرمول بنویسم ولی یک مشکل دارم.
فرمولم به صورت زیر هست ولی چطور اون X معرفی کنم که بدست بیاره.اگه اشتباه نکنم مثل یک مجهول دیگه؟

113950

مقدار Y,a,b دارم . مقدار X میخوام

samin_panahi
شنبه 23 آذر 1392, 16:22 عصر
x=(y*b)/(a*b-y)

eftary
شنبه 23 آذر 1392, 16:51 عصر
میشه کاری کرد که یک متغیر مثلا بشه مجهول و دیگه فرمول ساده نکرد.
مثلا 2 مجهول یا بیشتر ؟
یا باید اونارو هم تبدیل کرد؟

samin_panahi
شنبه 23 آذر 1392, 19:55 عصر
ساده نکردم
معلوم ها رو دادم یه طرف، مجهول یه طرف
فکر کنم اینی که می گید انجام شدنی باشه

eftary
یک شنبه 24 آذر 1392, 00:26 صبح
اومد بروژه را پابلیش کنم ارور داد
Error 1 Cannot publish because a project failed to build. 1 1

چرا؟
روش دبل کلیکم میکنم اتفاقی نمیافته!