Contacts
صفحه اصلی پورتال | صفحه اصلی تالار | ثبت نام | اعضاء | گروه ها | جستجو | پرسش و پاسخ | فروشگاه الکترونیکی | خرید پستی بازی های کامپیوتری





صفحه اول انجمنها -> برنامه نویسی با زبان های C++ و Delphi و VB -> مسابقه کدنویسی
 

ارسال يك موضوع جديد   پاسخ به يك موضوع ديدن موضوع قبلي :: ديدن موضوع بعدي
برو به صفحه قبلي  1, 2, 3, 4, 5  بعدي

نويسنده
پيغام
m_basij
پیر بازی سازی
پیر بازی سازی


تاريخ عضويت: 5 شنبه 19 شهريور 1388
تعداد ارسالها: 523
محل سكونت: داخل کد


شنبه 27 خرداد 1391 - 02:59
پاسخ بصورت نقل قول
قبوله با بازگشتی بنویسمش؟ پس مینوسم الان با بازگشتی میگذارم.

_________________
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل ديدن وب سايت كاربر نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
m_basij
پیر بازی سازی
پیر بازی سازی


تاريخ عضويت: 5 شنبه 19 شهريور 1388
تعداد ارسالها: 523
محل سكونت: داخل کد


شنبه 27 خرداد 1391 - 03:09
پاسخ بصورت نقل قول
پرهام جان متاسفانه یادم نمیاد. اشنایی بدی یادم میاد حتما

فقط یک چیزی اقا شهروز این رو میشه به خیلی روشها نوشت ولی به نظرم بدترین حالتش بازگشتیه چرا؟ چون پشته ها زیاد میشن و ممکنه استک پر بشه. البته این اتفاق نمی افته ولی اگه زیاد باشن حروف و مثلا کلمه 32 حرفی باشه ممکنه این مشکل پیش بیاد. به هر حال با بازگشتی می نویسمش الان.

_________________
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل ديدن وب سايت كاربر نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
m_basij
پیر بازی سازی
پیر بازی سازی


تاريخ عضويت: 5 شنبه 19 شهريور 1388
تعداد ارسالها: 523
محل سكونت: داخل کد


شنبه 27 خرداد 1391 - 05:13
پاسخ بصورت نقل قول
دیگه 20 دقیقه ای شد. ببخشین دیگه. روشهای بهتری به نظرم بود حالا اقا شهروز نمی دونم می خی خواستن بازگشتی بنویسن منم اینطوری نوشتم. به دل خودمم نیست این ولی خوب به هر حال بدک نیست. این کد نسبت به کد قبلی که نوشتم 1 ثانیه و خورده ای سریعتر عمل میکنه.
كد:
#include <iostream>
using namespace std;

#include <string>
#include <time.h>
int iii = 0;
void echoworld(int position, int numberworld , std::string world = "")
{
   ++position;
   static std::string x[6];
   x[0] = "a";
   x[1] = "b";
   x[2] = "c";
   x[3] = "d";
   x[4] = "e";
   x[5] = "f";
   if(position < 6)
   {
      for(int i = 0; i<=5 ; i++)
      {
         echoworld(position,0,world + x[i]);
      }
   }
   else
   {
      cout << world << x[numberworld] << "  ";
      iii++;
      if(numberworld <5)
      {
         echoworld(position,++numberworld,world);
      }
   }
}

void main()
{
   int timestart = clock();
   echoworld(0,0);
   int timeend = clock();
   cout << endl << " number world = " << iii;
   cout << endl << " time run program = " << timeend-timestart;
   system("pause");
}

_________________
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل ديدن وب سايت كاربر نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
Parham
متخصص ساخت بازی
متخصص ساخت بازی


تاريخ عضويت: 4 شنبه 28 دي 1390
تعداد ارسالها: 408
محل سكونت: somewhere behind a lot of troubles...


شنبه 27 خرداد 1391 - 08:36
پاسخ بصورت نقل قول
سلام,
حرف از بازگشتی نزنید که دیگه خیلی زوره...اونم تو این برنامه.
من کد قبلی رو نوشتم 10 دقیقه تو هنگ بودم...بازگشتی بنویسم دیگه کلا تعطیل میشه سیستمم.
دیشب ساعت 1 شب این فکر به ذهنم رسید...هنوز آزمایشش نکردم...حجم برنامه کم شده اما احساس می کنم زمان زیادی میگیره...(بسته به شانس شماست که system.random چی تولید کنه... Rolling Eyes
كد:

public partial class Form1 : Form
    {
        //In The Name Of God.
        //Programing And Designed By:   Parham Baghizadeh
        //Parham.Programer@mihanmail.ir

        public Form1()
        {
            InitializeComponent();
        }
       
        public int i = 0, index = 0;//declare indexes.
        public string[] alph = new string[6];//declare an array to save alphabets.
        public string MStr = null, Mprev = null;//declare string vars to make and save word in random.
        public Random ChkRnd = new Random();//declare a random variable.
        public int buf = 0;//declare a variable to save the random num.

        public void initarray()//a void method to initalize the alph array.
        {
            alph[0] = "a";
            alph[1] = "b";
            alph[2] = "c";
            alph[3] = "d";
            alph[4] = "e";
            alph[5] = "f";
        }
        public void ComputeRnd()
        {
            ListWRD.Items.Clear();
            while (index < 46656)
            {
                Mprev = MStr;
                MStr=null;
                for (i = 0; i <= 5; i++)
                {
                    buf =ChkRnd.Next(5);
                    MStr += alph[buf];
                }
                if (Mprev == MStr) continue;
                index++;
                ListWRD.Items.Add(MStr);
            }
        }
        private void Exit_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            initarray();//declare method to initalize the alphabets' array.
        }

        private void ComputeRND_Click(object sender, EventArgs e)
        {
            ComputeRnd();//make and show the words.

        }
    }

نظرتون چیه؟
کامنت تشریح نذاشتم...فکر نکنم نیاز باشه. Cool

_________________
برای رسیدن به موفقیت آسانسوری وجود ندارد،باید پله پله بالا رفت؛


اين نامه توسط Parham در شنبه 27 خرداد 1391 - 08:57 ويرايش شده است.
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
Parham
متخصص ساخت بازی
متخصص ساخت بازی


تاريخ عضويت: 4 شنبه 28 دي 1390
تعداد ارسالها: 408
محل سكونت: somewhere behind a lot of troubles...


شنبه 27 خرداد 1391 - 08:50
پاسخ بصورت نقل قول
m_basij,
سلام.
برای اینکه یادت بیاد برو اینجا
ایشالله در آینده دوستان خوبی واسه هم باشیم و بتونیم به هم کمک کنیم.
آقا من این برنامه رو نوشتم و تست کردم...
(به خدا شانسم خوب چیزیه... Wink )کامپیوتر هنگ کرد به طرز فجیع...ولی فکر می کنم الگوریتمش درسته...
یه ایرادی هم از خودم بگیرم...فکر کنم اگه شرط حلقه while به جای 46656 یه عدد کوچکتر مثلا 10 بود برنامه عمل می کرد... Rolling Eyes
شما میتونید با دانلود سورس برنامه این کار رو انجام بدین...
با تشکر... Rolling Eyes Wink

_________________
برای رسیدن به موفقیت آسانسوری وجود ندارد،باید پله پله بالا رفت؛
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
Parham
متخصص ساخت بازی
متخصص ساخت بازی


تاريخ عضويت: 4 شنبه 28 دي 1390
تعداد ارسالها: 408
محل سكونت: somewhere behind a lot of troubles...


شنبه 27 خرداد 1391 - 09:04
پاسخ بصورت نقل قول
سلام.
با اصلاحاتی که در برنامه کردم به این نتیجه رسیدم.(رو سیستم خودم)
1.برنامه کاملا درست عمل می کنه و هیچ دو کلمه ای تکراری نیستند...
2.برنامه رو سیستم من حد اکثر به جای index=46656,index=5000 رو قبول میکنه و در نهایت 3 ثانیه هنگ رو داره...بالاتر رو آزمایش نکردم چون می ترسیدم کلا سیستمم بپره. Rolling Eyes
ولی در کل فکر کنم نسبت به برنامه قبلی بهتر بود... Laughing
حالا کدوم برنامه بهتره؟ PDT_002
لینک دانلود سورس برنامه

_________________
برای رسیدن به موفقیت آسانسوری وجود ندارد،باید پله پله بالا رفت؛
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
m_basij
پیر بازی سازی
پیر بازی سازی


تاريخ عضويت: 5 شنبه 19 شهريور 1388
تعداد ارسالها: 523
محل سكونت: داخل کد


شنبه 27 خرداد 1391 - 12:00
پاسخ بصورت نقل قول
پرهام خدا چارتو بکنه. لینک اون پستو دادی منم رفتم نشستم همه پست ها رو خوندم نزدیک بود پست ام بگذارم بیارمش بالا Laughing پستو.
بگذریم. انشاالله.

_________________
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل ديدن وب سايت كاربر نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
Parham
متخصص ساخت بازی
متخصص ساخت بازی


تاريخ عضويت: 4 شنبه 28 دي 1390
تعداد ارسالها: 408
محل سكونت: somewhere behind a lot of troubles...


شنبه 27 خرداد 1391 - 13:15
پاسخ بصورت نقل قول
ما اینیم دیگه... PDT_002
نظرت راجع به کدم چیه؟(دومیش...)

_________________
برای رسیدن به موفقیت آسانسوری وجود ندارد،باید پله پله بالا رفت؛
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
شهروز
مدیر انجمن
مدیر انجمن


تاريخ عضويت: جمعه 16 مرداد 1383
تعداد ارسالها: 3279
محل سكونت: Germany


شنبه 27 خرداد 1391 - 13:27
پاسخ بصورت نقل قول
Parham, با استفاده از رندوم ؟ نه متاسفانه خیلی روش بدی رو انتخاب کردی.

m_basij, حالا بهتر شد. استک پر نمیشه. گرچه تابع بازگشتی بهترین راه نیست. گفتم بازگشتی که یکم بچه ها از اون دو دو تا چهار تا نوشتن بیان بیرون.

من خودم با استفاده از تایمر نوشتم. فرقش اینه که سیستم یهو بهش فشار نمیاد و بنابراین هنگی هم در کار نیست. فقط باید بهش زمان بدید تا بغات رو تولید کنه. مثل همه ی password generator ها.

هنوز هم الگوریتم های قوی تر هست. ببینم کسی میذاره یا نه. (گیر ندین به 6 حرفی. یه چیزی بنویسین که بهینه باشه)

ضمناً این نکته رو نگفتم ولی ظاهراً کسی نرفت طرفش. شما نیازی ندارید که یه آرایه از حروف داشته باشید. یک string از حروف همون کار رو می کنه چون string خودش آرایه ای از char هست.

_________________




استدیوی نرم افزاری بلوبالک
www.Bluebulk.info
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ديدن وب سايت كاربر
 

نويسنده
پيغام
Parham
متخصص ساخت بازی
متخصص ساخت بازی


تاريخ عضويت: 4 شنبه 28 دي 1390
تعداد ارسالها: 408
محل سكونت: somewhere behind a lot of troubles...


شنبه 27 خرداد 1391 - 13:35
پاسخ بصورت نقل قول
شهروز,
گفته بودی که راهنمایی آنلاین و آفلاین ممنوع...ولی الان خودت راهنمایی کردی... Laughing
پس بهم روش اینایتالیز آرایه رو بده.
ضمنا فکر نمی کنم روش بدی باشه...ممکنه یکم ابتدایی به نظر بیاد...اما به قول تو اگه از تایمر استفاده کنیم هنگی در کار نیست...
(فقط یکم طول می کشه Wink )
من رو روش بازگشتی هم کار می کنم ببینم چی میشه. Mr. Green

_________________
برای رسیدن به موفقیت آسانسوری وجود ندارد،باید پله پله بالا رفت؛
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل نام كاربري در پيغامگير Yahoo
 

نمايش نامه هاي ارسال شده قبلي:   
ارسال يك موضوع جديد   پاسخ به يك موضوع    صفحه 3 از 5 تمام ساعات و تاريخها بر حسب 3.5+ ساعت گرينويچ مي باشد
برو به صفحه قبلي  1, 2, 3, 4, 5  بعدي


 
پرش به:  


شما نمي توانيد در اين انجمن نامه ارسال كنيد.
شما نمي توانيد به موضوعات اين انجمن پاسخ دهيد
شما نمي توانيد نامه هاي ارسالي خود را در اين انجمن ويرايش كنيد
شما نمي توانيد نامه هاي ارسالي خود را در اين انجمن حذف كنيد
شما نمي توانيد در نظر سنجي هاي اين انجمن شركت كنيد


unity3d

بازگردانی به فارسی : علی کسایی @ توسعه مجازی کادوس 2004-2011
Powered by phpBB © 2001, 2011 phpBB Group
| Home | عضويت | ليست اعضا | گروه هاي كاربران | جستجو | راهنماي اين انجمن | Log In |