PDA

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



armini
دوشنبه 20 شهریور 1391, 11:04 صبح
سلام دوستان
من میخاستم یه برنامه بنویسم ولی نمیتونم اونو درست توضیح بدم ،برنامه من اینجوریه که یه اسمی بهش میدی
مثلا armin بعد بدلخواه یک کارکتر مثلا((.) را انتخاب میکنی برنامه باید بتونه این کارکتر را به روشهای مختلفی لابه لای حروف اسم قرار دهد4
مثلا:
a.rmin
ar.min
arm.in
armi.n
a.r.min
a.rm.in
.
.
.
, j
, و الی آخر هنینجوری بچینه و نمایش بده،یه جورایی میشه گفت مربوط میشه به مبتحث جایگشت و ترکیب.
نمیدونم منظورمو گرفتید یا نه به هر حال اگه میتونید یا الگوریتم این برنامه و یا کدش برام بزارید ممنون میشم

mohammadriano
دوشنبه 20 شهریور 1391, 11:09 صبح
من میخاستم یه برنامه بنویسم ولی نمیتونم اونو درست توضیح بدم ،برنامه من اینجوریه که یه اسمی بهش میدی
مثلا armin بعد بدلخواه یک کارکتر مثلا((.) را انتخاب میکنی برنامه باید بتونه این کارکتر را به روشهای مختلفی لابه لای حروف اسم قرار دهد4

سلام
معذرت می خوام هزینه کردن وقت برای نوشتن همچین برنامه ای به نظر خودتون درسته؟

SlowCode
دوشنبه 20 شهریور 1391, 11:50 صبح
بفرما:
Dim StrInput, StrOutput, char As String
StrInput = "Armin"
char = "."
StrOutput = vbNullString
For i = 1 To Len(StrInput)
StrOutput = StrOutput & Left(StrInput, i) & char & Right(StrInput, Len(StrInput) - i) & vbCrLf
Next
MsgBox StrOutput

armini
دوشنبه 20 شهریور 1391, 14:31 عصر
بفرما:
Dim StrInput, StrOutput, char As String
StrInput = "Armin"
char = "."
StrOutput = vbNullString
For i = 1 To Len(StrInput)
StrOutput = StrOutput & Left(StrInput, i) & char & Right(StrInput, Len(StrInput) - i) & vbCrLf
Next
MsgBox StrOutput



خیلی ممنون محسن جان،اما من میخاستم کل حالات ممکن رو بهم بده
مثلا
a.rmini
ar.mini
arm.ini
armi.ni
armin.i
armini.
a.r.mini
a.rm.ini
a.rm.ini
a.rmin.i
a.rmini.

یعنی کلا له اندازه طول رشته . بزاره و بروشهای مختلفی اون رو بچینه

الی آخر،اگه میشه اینجوری واسم حلش کنید ممنون میشم

abidana
سه شنبه 21 شهریور 1391, 16:13 عصر
یعنی کی تموم بشه

IamOverlord
سه شنبه 21 شهریور 1391, 20:53 عصر
سلام دوست عزیز می تونی قضیه رو این طوری در نظر بگیری که
کلمه ات n حرف داره
پس n-1 فضا بین حروف وجود داره
هر فضا یا ۰ هست یا ۱ یعنی یا کاراکترو داره یا نداره
کافیه مثلا از ۰۰۰۰۰ تا ۱۱۱۱۱ به صورت باینری بشمری و ...
البته این یه چیزی بود که الان به ذهنم رسید شاید ساده تر هم بشه...

just4froum
سه شنبه 21 شهریور 1391, 23:16 عصر
با سلام :

کد زیر را امتحان کنید :

Dim Total() As String

Private Sub cmd_Click()
Dim TDot As Long, x As Long, fx As Long, xx As Long
TDot = ((2 ^ (Len(txt) - 1)) - 1)

Debug.Print "TDot = " & TDot

ReDim Total(1 To TDot) As String

For x = TDot To 1 Step -1
fx = x
Total(TDot) = PutAA
xx = (2 ^ (Len(txt) - 1))
Do While xx <> 1
xx = xx / 2
If fx >= xx Then
fx = fx - xx
Total(TDot) = "." & Total(TDot)
End If
Total(TDot) = PutAA & Total(TDot)
Loop
Debug.Print Total(TDot)
lst.AddItem Total(TDot)
Next x
End Sub

Private Function PutAA() As String
Static x As Long
If x = 0 Then x = Len(txt)
PutAA = Mid(txt, x, 1)
x = x - 1
End Function

lostact
چهارشنبه 29 شهریور 1391, 18:49 عصر
سلام
معذرت می خوام هزینه کردن وقت برای نوشتن همچین برنامه ای به نظر خودتون درسته؟

من همن با نظر ایشون موافقم.