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





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

ارسال يك موضوع جديد   پاسخ به يك موضوع ديدن موضوع قبلي :: ديدن موضوع بعدي

نحوه ی مقایسه ی 2 آرایه با شرایط خ
نويسنده
پيغام
mehdico
مدیر انجمن
مدیر انجمن


تاريخ عضويت: 2 شنبه 19 بهمن 1383
تعداد ارسالها: 1524
محل سكونت: اهواز


3 شنبه 9 مرداد 1386 - 12:17
پاسخ بصورت نقل قول
--------------------=

پیشاپیش از همه تشکر میکنم.

من می خوام دو تا آرایه ی رشته ای رو با هم مقایسه کنم.

فرض کنید ما دو تا آرایه داریم که هر دو تا اسامی چند نفر هستن.
در واقع یکی از این آرایه ها ، نسخه ی قدیمی تر اون یکی هست.

حالا من میخوام با مقایسه بفهمم که چه اسامی از لیست حذف یا به اون اضافه شدن.

توجه کنید که لیستها مرتب نیستن و نظیر به نظیر نیستن و تعداد عناصر آرایه در هر لیست متفاوت است.

حدالامکان می خوام عناوین جدید داخل یه آرایه ی جدید ثبت بشن.


زبان مورد نظر VB .net هست ولی الگوریتمش رو هم بنویسید کافیه.

کسانی که کمک کنن......... بعداً میگم چی.

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

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


تاريخ عضويت: 1 شنبه 17 ارديبهشت 1385
تعداد ارسالها: 187


3 شنبه 9 مرداد 1386 - 13:59
پاسخ بصورت نقل قول
رفيق من كمي c بلدم . اما vb تا حالا چشمم بهش نخورده . اگر ميخواي بشنم تو c برات بنويسم

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

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


تاريخ عضويت: 2 شنبه 19 بهمن 1383
تعداد ارسالها: 1524
محل سكونت: اهواز


3 شنبه 9 مرداد 1386 - 14:21
پاسخ بصورت نقل قول
----------------------=

متشکرم.

ولی من مشکلم توی برنامه نویسی نیست.

مشکل من توی الگوریتمشه.

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

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


تاريخ عضويت: شنبه 15 ارديبهشت 1386
تعداد ارسالها: 349
محل سكونت: Hell


3 شنبه 9 مرداد 1386 - 15:09
پاسخ بصورت نقل قول
3 سال مي شه كه VB کار نکردم
شما هم خوب توضیح ندادی ، ولی یه چیزایی نوشتم ، اگه اشتباه کردم ، بیشتر توضیح بده ، خلاصه یه کارش می کنیم !

كد:

Dim oldNames(t1) as String
Dim newNames(t2) as String

Dim state as Integer

public function getNameState( NAME as String )

Dim is_in_new as boolean
Dim is_in_old as boolean

is_in_old = false
is_in_new = false

for i = 0 to t1
   if  oldNames(i) = NAME  then
      is_in_old = true
      exit for ' in dastoor ro yadam nist, vali inja bayad az halghe FOR kharej she !!
   endif
end for

for j = 0 to t2
   if  newNames(j) = NAME  then
      is_in_new = true
      exit for ' in dastoor ro yadam nist, vali inja bayad az halghe FOR kharej she !!
   endif
end for

if is_in_new And is_in_old then
   state = 1      ' in name bedoone taghire dar har do list ast;
else if is_in_new AND NOT is_in_old
   state = 2      ' in name taze be list ezafe shode !
else if Not is_in_new And is_in_old
   sate = 3      ' in name az list hazf shode !
else
   state = 4      ' in name dar hich kodam az listha nist !
end if
   

end function


الگوريتم كلي به اين صورت است كه:
1 اسم رو دريافت مي كنيم.
2 فرض مي كنيم اين نام در هيچ كدام از دو ليست نيست !
3 دنبال نام در ليست اول مي گرديم
4 دنبال نام در ليست دوم مي گرديم
5 اگر نام در هر دو ليست بود، نام بدون تغییر ثبت شده .
6 اگر نام فقط در قدیم بود ، این نام حذف شده !
7 اگر نام فقط در جدید بود ، این نام تازه اضافه شده !
8 اگر نام در هیج کدام نبود ، این نام موجود نیست !

امید وارم مفید بوده یاشه ( یادی از قدیم ها هم کردم !! )

_________________
And hell was so cold
All the vases are so broken
And the roses tear our hands all open
Mother mary miscarry
But we pray just like insects
The world is so ugly now
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ديدن وب سايت كاربر نام كاربري در پيغامگير Yahoo
 

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


تاريخ عضويت: 2 شنبه 19 بهمن 1383
تعداد ارسالها: 1524
محل سكونت: اهواز


3 شنبه 9 مرداد 1386 - 16:02
پاسخ بصورت نقل قول
---------------------=

دستت درد نکنه.

یه توضیح :

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

یعنی در واقع با لیست جدید می خوایم لیست قدیمی رو به روز کنیم.


کدت رو امتحان میکنم و خبرش رو بهت میدم.
بازم ممنون. Laughing

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

نويسنده
پيغام
beelzebub
کاربر جدید
کاربر جدید


تاريخ عضويت: 2 شنبه 11 آبان 1383
تعداد ارسالها: 2


4 شنبه 10 مرداد 1386 - 23:54
پاسخ بصورت نقل قول
اميدوارم درست متوجه شده باشم
ببينيد اين كد بدرد مي خوره
كد:


Dim arrayName1(20) As String
Dim arrayName2(20) As String
Dim arrayName3(20) As String
Dim nullChar As Boolean
Dim i, j, count As Integer

        nullChar = False

        For i = 0 To 20
            For j = 0 To 20
                If arrayName1(i) = arrayName2(j) Then
                    If (arrayName1(i) = "" And arrayName2(j) = "") Then
                        nullChar = True
                        Exit For
                    End If
                    Exit For
                End If
            Next

            If j = 21 And Not (nullChar) Then
                arrayName3(count) = arrayName1(i)
                count = count + 1
            End If
            nullChar = False
        Next


arrayName3 آرايه‌اي هست كه مقادير حذف شده از arrayName2 را نشان ميده
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي
 

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


تاريخ عضويت: 2 شنبه 19 بهمن 1383
تعداد ارسالها: 1524
محل سكونت: اهواز


5 شنبه 11 مرداد 1386 - 00:25
پاسخ بصورت نقل قول
--------------------=

دستت درد نکنه. Arrow

بررسیش می کنم.

راستی شما بعد از سه سال عضویت ، اولین پستتون رو بخاطر کمک به من دادید. ممنونم. Question

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

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


 
پرش به:  


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


unity3d

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