PDA

View Full Version : سوال: طراحی یک برنامه



Razor2012
یک شنبه 11 دی 1390, 20:33 عصر
برنامه ای بنویسید که یک عدد را از ورودی بگیرد ( حداکثر 5 رقمی ) ، تمام اعدادی را که با رقم های این عدد میتوان درست کرد را چاپ کند . مثال : 4325 = 43 - 432 - 25 . ...

mr-adler
یک شنبه 11 دی 1390, 22:07 عصر
تمام اعدادی را که با رقم های این عدد میتوان درست کرد را چاپ کند . مثال : 4325 = 43 - 432 - 25 . ...
سوال اشتباهه.بازه تمامی اعدادی که میشه با ارقام یک عدد مشخص نوشت نامتناهی است.بنابرین نمیشه همشو نوشت.
سوال درست:
برنامه ای بنویسید که یک عدد را از ورودی بگیرد ( حداکثر 5 رقمی ) ، تمام اعدادی(مثلا دو رقمی) را که با رقم های این عدد میتوان درست کرد را چاپ کند . مثال : 4325 = 43 - 432 - 25 . ...

موفق باشید

Razor2012
یک شنبه 11 دی 1390, 22:23 عصر
ولی این سوال رو خود استادمون داده . حالا اونجوری چی میشه ؟

sr2m72
یک شنبه 11 دی 1390, 22:46 عصر
ولی این سوال رو خود استادمون داده . حالا اونجوری چی میشه ؟

اگر یه عدد 5 رقمی رو در نظر بگیرید با رقم های اون میشه 3125 تا عدد تولید کرد.

Snoopboy
یک شنبه 11 دی 1390, 22:57 عصر
شاید منظور بدون تکرار است. چون با تکرار خیلی میشه

Veteran
یک شنبه 11 دی 1390, 23:00 عصر
3125=5^5 با تکرار
120=1*2*3*4*5 بدون تکرار

mr-adler
دوشنبه 12 دی 1390, 00:22 صبح
اشتباه.اشتباه!!!!
حواستون کجاست؟
یه عدد یه رقمی رو در نظر بگیرید با این عدد چند عدد دیگه میشه تولید کرد؟مثلا عدد 5
نخستین عددی که میشه تولید کرد:
5
بعدی:55
بعدی:555
بعدی:5555
بعدی:55555
حالا تصور کنید که اگه عددی که انتخاب میکنیم 2 رقمی باشه چه اتفاقی میافته.تعداد اعداد تولید شده چندین برابر بی نهایت میشه.

ولی این سوال رو خود استادمون داده . حالا اونجوری چی میشه ؟ ریاضیم ضعیفه ولی از نظر من قسمتی که تو پرانتز مشخص کردم حتما باید باشه بعدش میریم سراغ با تکرار بودن یا بدون تکرار بودن:
برنامه ای بنویسید که یک عدد را از ورودی بگیرد حداکثر 5 رقمی ، تمام اعدادی((((مثلا دو رقمی))))) را که با رقم های این عدد میتوان درست کرد را چاپ کند . مثال : 4325 = 43 - 432 - 25 . ...
حتما این مورد رو به استادتون بگو ....

از اقا سبحان که یاداوری کردند ممنونم.

موفق باشید

Razor2012
دوشنبه 12 دی 1390, 11:54 صبح
ممنون که راهنمایی کردید . خوب این روشی که mr-adler گفتید رو میشه کدشو بدید . ممنوون

CsT
دوشنبه 12 دی 1390, 12:58 عصر
Public Sub Engine(char As String, length As Byte)

ReDim ary(length)
Dim depth As Byte
Dim result As String

depth = 1

While Not (flag)
k = DoEvents()
ary(depth) = ary(depth) + 1

If depth = length Then
result = Left(result, length - 1) + Mid(char, ary(depth), 1)
Else
result = result + Mid(char, ary(depth), 1)
End If

If ary(depth) <> Len(char) + 1 Then
If depth <> length Then
depth = depth + 1
Else
lblresult.Caption = result
If chcsave.Value = 1 Then
Print #1, result
End If
End If
Else
If depth = 1 Then
flag = True
Else
ary(depth) = 0
depth = depth - 1
result = Left(result, depth - 1)
End If
End If
Wend


End Sub
طرز استفاده:

Call Engine(InputString, Length)

Veteran
دوشنبه 12 دی 1390, 13:21 عصر
سیستم مشکل داره وگرنه مینوشتم واست
کاری نداره اسونه کلاس چندمی ؟ هنرستانی دیگه ؟
مثلا من زدم 12345
باید اعداد 2 رقمی بدم مثلا 12 و 13 و 14 و 15
بعدش 21و23و24و25
بعدش 31و32و34و35
41و42و43و45
51و52و53و54

اگه دقت کنی عدد اولی
رو میگریم بعد با بقیه اعداد که موندن عدد های 2 رقمی درست کردیم بعد که تموم شد میریم سراغ عدد دوم بعد حالا مثل قبلی با عدد هایی که موندن عدد 2 رقمی درست میکردیم

Veteran
دوشنبه 12 دی 1390, 14:15 عصر
خدمت شما
طبق گفته mr-adler
و
ممنون که راهنمایی کردید . خوب این روشی که mr-adler گفتید رو میشه کدشو بدید . ممنوون
Dim Myarray()
Form1.Cls
x = InputBox("")
ReDim Myarray(1 To Len(x))
If Len(x) > 5 Then Exit Sub
For A = 1 To Len(x)
i = Left(CStr(x), A)
i = Right(CStr(i), 1)
Myarray(A) = i
Next A
For i = 1 To Len(x)
i = 1
p = p + i
For B = i + 1 To Len(x)
Print Myarray(i); Myarray(B)
Next B
If P = Len(x) Then Exit Sub
j = Myarray(p + 1)
Myarray(p + 1) = Myarray(1)
Myarray(1) = j
Next i

مشکلی داشت بگین

Razor2012
دوشنبه 12 دی 1390, 16:54 عصر
میشه کاری کرد که بیشتر از 2 رقم جدا کنه ؟

_behnam_
دوشنبه 12 دی 1390, 17:23 عصر
سلام!
ماهم چنین برنامه ای رو باید با ویژوال مینوشتیم.
چیزی ای استاد دوستمون مدنظرشون هست به شکل زیر میشه
که تمام رقمهای که توی یک رقم صحیح هست رو بدست بیارید
مثلا عدد 12345 رو در نظر بگیرید!
ببینید این عدد از چند عدد تشکیل شده؟!


1
12
123
12345
2
23
234
2345
3
34
345
4
45
5از این اعداد تشکیل شده
بدست آوردنشون هم با استفاده از For های تودرتو هستش

Veteran
دوشنبه 12 دی 1390, 19:00 عصر
بله میشه
اماگفتین 2 رقمی
بیشتر 2 رقم هم میخواین ؟
========
اقا بهنام این چیزی که گفتین درست متوجه نشدم.


1
12
123
12345
2
23
234
2345
3
34
345
4
45


رابطه اینا چیه ؟

Veteran
دوشنبه 12 دی 1390, 19:19 عصر
گرفتم چی شد.
اینم چیزی که اقا بهنام فرمودند

Dim Myarray()
Form1.Cls
x = InputBox("")
ReDim Myarray(1 To Len(x))
If Len(x) > 5 Then Exit Sub
For A = 1 To Len(x)
i = Left(CStr(x), A)
i = Right(CStr(i), 1)
Myarray(A) = i
Next A
For i = 1 To Len(x)
Print Myarray(i)
For b = i + 1 To Len(x)
m = m & CStr(Myarray(b))
Print Myarray(i); m
Next b
m = ""
Next i

night_secret
دوشنبه 12 دی 1390, 19:21 عصر
شاید منظور استاد گرفتن فاکتریل بود اگه این بوده بگید

vbhamed
سه شنبه 13 دی 1390, 07:17 صبح
اشتباه.اشتباه!!!!
حواستون کجاست؟
یه عدد یه رقمی رو در نظر بگیرید با این عدد چند عدد دیگه میشه تولید کرد؟مثلا عدد 5
نخستین عددی که میشه تولید کرد:
5
بعدی:55
بعدی:555
بعدی:5555
بعدی:55555
حالا تصور کنید که اگه عددی که انتخاب میکنیم 2 رقمی باشه چه اتفاقی میافته.تعداد اعداد تولید شده چندین برابر بی نهایت میشه.


سلام
شما يكم دقت كنيد، همچين بي نهايت هم نميشه
وقتي قراره عدد 5 رقمي باشه نهايتا 100000 عدد ميشه (از 0 تا 99999)، تازه حالا اگر ارقامش محدود بشه تعداد خيلي كمتر هم ميشه

Razor2012
سه شنبه 13 دی 1390, 19:26 عصر
چجوری میشه 120 تا عدد بشه ؟

mr-adler
چهارشنبه 14 دی 1390, 13:09 عصر
سلام
شما يكم دقت كنيد، همچين بي نهايت هم نميشه
وقتي قراره عدد 5 رقمي باشه نهايتا 100000 عدد ميشه (از 0 تا 99999)، تازه حالا اگر ارقامش محدود بشه تعداد خيلي كمتر هم ميشه
سلام
واقعا نمیدونم چطور حساب کردید.من الان میتونم با یک عدد(بجز صفر)بی نهایت اعداد مختلف بنویسم حالا چه برسه به اینکه 5 رقم باشه.ببینید:
همون طور که مثال زدم با عدد 5 دیدید که چند تا مثال نوشتم و میشد همین طوری ادامه داد تا بینهایت.
به سوال دقت کنید:

برنامه ای بنویسید که یک عدد را از ورودی بگیرد ( حداکثر 5 رقمی ) ، تمام اعدادی را که با رقم های این عدد میتوان درست کرد را چاپ کند
نگفته که عددی که ما چاپ میکنیم 5 رقمی باشه.گفته عددی که از ورودی میگیریم 5 رقمی باشه.و تمام اعدادی که میتونیم با این 5 رقم تولید کنیم نمایش بده.هیچ شرطی قائل نشده که مثلا کوچکتر و بزرگتری و ....

Veteran
چهارشنبه 14 دی 1390, 15:10 عصر
چجوری میشه 120 تا عدد بشه ؟
بیشتر توضیح بدین

Razor2012
چهارشنبه 14 دی 1390, 15:16 عصر
یک عدد را بگیره ( حداکثر پنج قمی ) تمام اعدادی رو که میشه با رقم های اون درست کرد را بنویسه

Veteran
چهارشنبه 14 دی 1390, 15:35 عصر
خوبی ؟
شما که داری باز حرف خودتو میزنی !
عزیز میگی تمام اعدادی که میشه با رقم های اون درست کرد چاپ کنه
یعنی من زدم
12345
طبق حرف شما
تمام اعدادی رو که میشه با رقم های اون درست کرد را بنویسهخب 1 جزء یکی از این رقم هایی هست که ما وارد کردیم میخوام تمام رقم هایی که میشه با این درست کرد رو چاپ کنیم
بسم الله شروع کنیم
1و11و111و1111و11111و111111و1111111و11111111 و111111111و1111111111 :اشتباه::متعجب:
نه بابا تمومی نداره نمره این سوال رو نمیخوام سره کاری هست بی خیال :لبخند:
==========
یا من دارم اشتباه میکنم یا شما (استاد شما)