PDA

View Full Version : کد ساخت پسورد لیست دو رقم تکرار



remower
دوشنبه 25 خرداد 1394, 00:10 صبح
سلام
کسی میتونه کد ساخت پسورد لیست هشت رقمی تو لیست باکس رو بهم بده
که از این هشت رقمی هر دو رقمش تکرار باشه یعنی خروجیش این جور باشه
11332244
00774411
99773300
11223344
و...
11-22-33-44
کلا هشت رقمه ک دو رقمش مث هم هس
دورقم اولی دومی , سومی و چهارمی مث هم باشه.
اگه امکانش هست بصورت رندوم نباشه یعنی همه اعداد هشت رقمی که اینجور تکرار دو رقم داره رو بهم بده .

rahnema1
دوشنبه 25 خرداد 1394, 19:10 عصر
سلام
این هم تولید پسورد

using System;

namespace tarkib
{
class Program
{
static void GeneratePermutations(String dic, String perms, int len)
{
if (perms.Length == 2 * len )
{
Console.WriteLine(perms);
return;
}

for (int i = 0; i < dic.Length; i++)
{
GeneratePermutations(dic.Remove(i, 1), String.Concat(perms, dic[i], dic[i]), len);
}
}
public static void Main(string[] args)
{
GeneratePermutations ("0123456789", String.Empty, 4);
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
}
}

remower
سه شنبه 26 خرداد 1394, 13:19 عصر
مرسی از کد . ولی این کد کنسوله .کسی میتونه این کدی که دوستمون rahnema1 داده رو کد لیست باکسشو بده؟

rahnema1
سه شنبه 26 خرداد 1394, 17:04 عصر
خب این که خیلی ساده هست
شما تابع GeneratePermutations را در برنامه بذارید. حالا کلمه static را هم می تونید بردارید
بعد کاری که انجام می دهید اینه که شما یک دکمه button درست کنید
وقتی روی اون کلیک می کنید عبارت زیر اجرا بشه:
GeneratePermutations ("0123456789", String.Empty, 4);
اما یک نکته فراموش نشه در داخل تابع GeneratePermutations به جای Console.WriteLine کدی که آیتمی به لیست باکس اضافه می کنه قرار بدید
حالا ببینم چیکار می کنی

remower
سه شنبه 26 خرداد 1394, 19:08 عصر
هرکاری میکنم GeneratePermutationsخطا میده.
میشه کدشو بدی?

rahnema1
سه شنبه 26 خرداد 1394, 19:25 عصر
خب کد را اینجا کپی و پیست کن ببینیم چیکار کردی اگه می خواهی یاد بگیری

remower
سه شنبه 26 خرداد 1394, 19:40 عصر
Private void generatpermutations()
{


if (perms.Length == 2 * len )
{
Console.WriteLine(perms);
return;
}

for (int i = 0; i < dic.Length; i++)
{
GeneratePermutations(dic.Remove(i, 1), String.Concat(perms, dic[i], dic[i]), len);
}
listBox.item.add(perms);

remower
سه شنبه 26 خرداد 1394, 19:41 عصر
با گوشی هستم سخته نوشتنش . برنامه ویژوالم تو سرور همون وی پی اس نصبه که با گوشی برنامه نویسیش میکنم

rahnema1
سه شنبه 26 خرداد 1394, 19:52 عصر
لازم نیست شما بنویسید کافیه کپی و پیست کنید
قبلا گفتم به جای Console.WriteLine عبارت listbox1.items.add را بذارید
اگه کل برنامه را کپی و پیست می کردی بهتر می تونستم توضیح بدم
حالا اگه عجله نداری و اگه می خواهی یاد بگیری بهتره یه کامپیوتر گیر بیاری

remower
سه شنبه 26 خرداد 1394, 19:56 عصر
نمیدونم چرا کپی پیست نمیشه از وی پی اس به گوشی
میشه کدشو بنویسی برام ?
راستی اگه بخام ده رقمیش کنم باید بهش چه کدی بزنم?

rahnema1
سه شنبه 26 خرداد 1394, 20:08 عصر
برای ده رقمی به جای 4 عدد 5 بذار
باور کن خیلی ساده هست در حد جابجایی دو تا خط . آیتم هم که بلدی به لیست باکس اضافه کنی اگه خودت بنویسی لذتش بیشتره.

remower
سه شنبه 26 خرداد 1394, 20:32 عصر
الان با کامپیوترم


privatevoidGeneratePermutations() {
if (perms.Length == 2 * len )
{
listBox1.Items.Add(perms);
return;
}

for (int i = 0; i < dic.Length; i++)
{
GeneratePermutations(dic.Remove(i, 1), String.Concat(perms, dic[i], dic[i]), len);
}
}
//این کد زیرو تو بوتون میزاریم
GeneratePermutations ("0123456789", String.Empty, 4);

}


الان دزسته؟؟؟

rahnema1
سه شنبه 26 خرداد 1394, 20:34 عصر
آفرین درسته :تشویق:

remower
سه شنبه 26 خرداد 1394, 20:41 عصر
الان زیر perm
len
dic
خط قزمز کشیده شده
یوزینگ میخواد؟

rahnema1
سه شنبه 26 خرداد 1394, 20:42 عصر
حالا یه نکته بگم اگه داخل button این را بذارید سرعت ورود اعداد به لیست باکس زیاد تر می شه

listBox1.Items.Clear();
listBox1.BeginUpdate();
GeneratePermutations ("0123456789", String.Empty, 4);
listBox1.EndUpdate();

remower
سه شنبه 26 خرداد 1394, 20:43 عصر
GeneratePermutations("0123456789", String.Empty, 4);
زیر این کد هم خط قرمز کشیدع شده

remower
سه شنبه 26 خرداد 1394, 20:44 عصر
listBox1.BeginUpdate();
این کارش چیه ؟

rahnema1
سه شنبه 26 خرداد 1394, 20:46 عصر
الان زیر perm
len
dic
خط قزمز کشیده شده
یوزینگ میخواد؟

using که برای برنامه لازمه

using System;
using System.Windows.Forms;

اما این که خط کشیده نمیدونم علتش چیه
لطفا کل برنامه را ابتدا داخل نوت پد کپی کنید سپس بذارید توی سایت

rahnema1
سه شنبه 26 خرداد 1394, 20:49 عصر
listBox1.BeginUpdate();
این کارش چیه ؟
در حالت معمولی هر آیتم که به لیست باکس اضافه می شه کنترل لیست باکس شکلش روی فرم ترسیم می شه که این کار هزینه داره به خاطر همین از BeginUpdate و EndUpdate استفاده می کنیم که در بین این دو فقط عملیات اضافه شدن به لیست باکس انجام بشه و عملیات ترسیم مجدد لیست باکس مرتبا انجام نشه تا سرعت بیشتر بشه

remower
سه شنبه 26 خرداد 1394, 20:53 عصر
using System;using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;


namespace WindowsFormsApplication4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}


private void button1_Click(object sender, EventArgs e)
{




listBox1.Items.Clear();


listBox1.BeginUpdate();


GeneratePermutations("0123456789", String.Empty, 4);


listBox1.EndUpdate();



}
private void GeneratePermutations()
{
if (perms.Length == 2 * len)
{
listBox1.Items.Add(perms);
return;
}


for (int i = 0; i < dic.Length; i++)
{
GeneratePermutations(dic.Remove(i, 1), String.Concat(perms, dic[i], dic[i]), len);
}
}

rahnema1
سه شنبه 26 خرداد 1394, 21:03 عصر
دو تا آکولاد کم گذاشتید
من آماده کردم
http://www.sharefile.ir/uploads/1434496585.zip

remower
سه شنبه 26 خرداد 1394, 21:15 عصر
درست شد اشتباه من از این بود:
private void GeneratePermutations(String dic, String perms, int len)
تو پرانتز چیزی ننوشته بودم
مرسی از کمکات

rahnema1
سه شنبه 26 خرداد 1394, 21:38 عصر
حالا همین قدر که با کنترلها مثل لیست باکس و غیره کار می کنید خوبه سعی کنید کم کم با نوشتن برنامه هم آشنا بشید. یه کتاب مناسب سطح خودتون پیدا کنید و شروع کنید
حتی پیشنهاد می کنم با scratch کار کنید که یک زبان visual هست به طوری که بدون اینکه یک خط کد بنویسد برنامه ها را به صورت پازل به هم می چسبونید. حتی باهاش بازی هم می شه ساخت کاملا می تونه شما را با اصول برنامه نویسی آشنا کنه
https://scratch.mit.edu