الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

السؤال الأسبوعي

مغلقرائج
بدأه HMS في 17 يناير 2005 · 265 رد · 18,628 مشاهدة · في قسم تكنولوجيا Microsoft .NET العام
مشاركة: واتساب X فيسبوك تيليجرام
#201

السلام عليكم جميعاً ... و اعتذر فعلاً عن التأخر في الرد ، و السبب على ما يبدو ان الإجازة التي كنت قد منيت نفسي بها قد انتهت سريعاً ،،، :)

---------------------------------------------------------------------------------------------------

اولاً و قبل كل شيء دعوني فقط ان ارسل احر تهاني الى اخونا الكريم هارون بمناسة مولودته "طفلة حبيبة" و التي اكاد ان اتخيل ابتسامتها من هنا ... بارك الله لك فيها اخي الكريم و افرحك دوماً بها ، و لن اتنازل عن اربع صور لها (من كل الجهات) ، فنحن هنا هنا بمثابة اعمامها و عماتها (الإلكترونيين :D ) ، و صدقني لكم اغبطك على هذه النعمة ... (ما رأيك ان تغير شعارك و ان تأخذ شعار اخونا احمد غريب .. :D )

---------------------------------------------------------------------------------------------------

اخي الكريم Non-top ، لقد فكرت مثلك حين رأيت حل اخونا رغيد ، فهو الحل الامثل (وضع عناصر في المصفوفة في حلقة ثم المبادلة بين اماكنها في حلقة اخرى) .. و لكن الذي ساعدني في وضع الحل الذي اقترحته هو ما تعلمته هنا منكم اي التفكير في حل اقتصادي (و هذا ما كنا ندرسه في مادة في الجامعة كان اسمها الخوارزميات) ، فرأيت كما قال الأخ رغيد ان الدروان الثاني يكلفنا الكثير (في التنفيذ) .. فحاولت ان اجد طريقة لتجنب الدوران الثاني ، فكان ان رجعت الى صيغة السؤال التي وضعها اخونا هارون (وزع الارقان من 1 الى 20....) ففكرت بأن يكون الدوران من 1 الى 20 و ان يتم تزيع الارقام عشوائياً ... (الخ) ... و كما ترى لا يوجد شيء مستحيل حتى على المبرمجين المبتدئين .. :)

اخي الكريم رغيد اعجبني جداً جداً تعديلك على الدروان الثاني بأن يبدأ من عند start (نقطة نضمن ان لا نعود لنفس الفحص عن اول موقع فارغ) .. و هو طبعاً يزيد من كفاءة الفكرة ، بارك الله فيك :)

و اخيراً اشكرك اخي الخبير هارون على تشجيعك المستمر لي ، (و اشكر الجميع بشكل عام) .. و لدي سؤال لكم سوف اطرحة بمجرد الانتهاء من حل سؤال الأخ احمد غريب ..

تحياتي للجميع ،،

بنت اليمن ،،

لا اله الا الله .. محمد رسول الله

(* ربِ اجعلني مقيم الصلاة و من ذريتي ، ربنا و تقبل دعـاء *)

يا حيّ يا قيـوم ... برحمتك استغيث ... اصلح لي شأني كله و لا تكلني الى نفسي طرفة عين

#202

السلام عليكم

اخونا الحبيب رغيد الحل ممتاز ولكن هناك مشكله بسيطه, الداله random تعيد رقم من نوع integer ,وكما ذكرت سابقاً فهناك 20! طريقه عشوائيه لترتين الاعداد فى 20 خانه, وبحلك اخى لن تحصل على جميع الاعداد العشوائيه.

الجميل فى الحل انه حل عام.

سؤال لهارون, عندما يسمى اليابانيون إسم "طفله حبيبه", هل يتغير الاسم عندما تبلغ الطفله سن معين؟ ام تبقى طفله للابد؟

والسلام

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#203

بسم الله الرحمن الرحيم

السلام عليكم و رحمة الله و بركاته

الأخ العزيز احمد غريب كأنني قد فهتمك بشكل خاطىء ... حيث انه يوجد 6 طرق لترتيب 3 اعداد وذلك نتيجة لمضروب الـ 3 اي ( 3! ) و كذلك الحال يوجد بالنسبة لـ 20 رقم يوجد عدد مقداره ( 20! ) اي انه يوجد ( 2432902008176640000 ) طريقة لترتيب العشرين رقم بشكل عشوائي كامل ! .. وماذا سيكون الحال لو طلبت مثلا توليد مصفوفة بها مليون رقم ! مرتبين عشوائيا ... لاحظ ان هذا يعني مضروب المليون وهو عدد من الصعب التفكير حتى فيه ... لهذا فضلت استخدام الطريقة التي ذكرتها انا هنا و يمكن أن اوضح الفكرة البسيطة التي اعتمدتها في الحل في حال الرغبة بذلك الحبيب ... و اشكرك كثيرا على تعقيبك .

وللأخت الفاضلة إن إجابتك رائعة من الإصل و لم يزدها التعديل Start شيئا ... و اتمنى مثل الأخ هارون ان تضعي السؤال التالي باسرع وقت ممكن بإذن الله تعالى.

بالنسبة للغالي HMS تظلمني عزيزي بقولك ( أني قد تزوجت السنة الماضية !! ) ... و إن كانت هذه حقاً رغبتي إلا أن الله تعالى لم يقدر لي ذلك إلى بعد و لازلت خاطبا زميلة لي في عامنا الأخير بقسم علوم الكمبيوتر بجامعتي ... و إن لم يشأ الله تعالى غير ذلك فقد يكون زواجنا بعد تخرجنا بإذن الله تعالى ... و اما الأطفال فلنا في فضل الله طمع و الى رزقنا بــ ( الذرية الصالحة بإذن الله ) شوق كبير ... و لا تقلق اخي ان قدر الله لي الزواج قريبا كنت وباقي الأخوة هنا أول المدعوين بإذن الله تعالى.

السلام عليكم و رحمة الله و بركاته

مواضيع برمجية تقنية جديدة

----------------------------------------------------------------------------------------------------------------------------------------------

• إستغلال خدمة الـ RSS في برامجنا ومواقعنا ! (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج للبحث في الملفات ومحتواياتها (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• فئة للتراسل بين برنامجين في جهاز واحد ! (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

مواضيع برمجية تقنية قديمة

----------------------------------------------------------------------------------------------------------------------------------------------

• إستغلال رسائل البالونات Balloons في الوينذوز أكس بي(VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• مقالة : لماذا يجب ان نعتني بشفرات برامجنا !؟- (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• لمطوري البرامج و مواقع الويب - برنامج تركيب ألوان - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج : بسيط للتحكم بالنظام, عن طريق الريجستري - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج : لتقييد و منع تشغيل البرامج الاخرى - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• النوافذ المنبثقة و طريقة لإستغلالها في برامجنا -(VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• تقنية الإستدعاء الذاتي - (VB.NET , VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• مصفوفات الأدوات Control Arrays افكار وتلميحات ! - (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• أفكار و تلميحات[ المعنى الحقيقي للـ True و False ] - أمثلة (VB.NETVB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• دوال الـ APIs و مايقابلها في الدوت نت ! - (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

#204
اقتباس
سؤال لهارون, عندما يسمى اليابانيون إسم "طفله حبيبه", هل يتغير الاسم عندما تبلغ الطفله سن معين؟ ام تبقى طفله للابد؟

سؤال رائع يا أحمد، وفعلاً الموضوع طريف عندما ترى إمرأة مسنة ويكون إسمها "طفلة الحب" وهو إسم شائع جداً هنا...لا، لا يتغير الإسم إلا بعد الممات (تقوم الأسرة بتغيير إسم الميت وإعطاءه إسم بوذي بعد حرق جثته)...

لكن الموضوع ليس طريفاً عند اليابانيين لأنهم تعودوا على هذه المسميات... وأنت تجد في عالمنا العربي مسميات بنفس الصورة تقريباً، فلربما رأيت عجوزاً إسمها "جميلة" أو "غادة"...الخ.

اقتباس
بالنسبة للغالي HMS تظلمني عزيزي بقولك

ظننت الأمر زواجاً... فأذكر بأنني قرأت خبراً (عن خطبة أو زواج) في المنتدى الراحل، يجب أن تعذرني فأنا في بداية شيخوختي :angry: ... أطال الله في عمرك لترى أحفاد أحفادك انت والأخوة الزملاء...

اقتباس
و لن اتنازل عن اربع صور لها (من كل الجهات) ، فنحن هنا هنا بمثابة اعمامها و عماتها (الإلكترونيين)

... ونعم العمة يا "بنت اليمن"، أما بالنسبة للصور فأرجوك أن تتريثي قليلاً فشكلها لا زال "مطعّج" :lol:

نحن بإنتظار سؤال أختنا "بنت اليمن"

Learn Japanese :>>> http://www.nouben.com/

#205

السلام عليكم

معك حق اخى الحبيب رغيد, من الصعب جعل الخوارزميه تعمل على مصفوفه كبيره وفى نفس الوقت الحصول على جميع الاحتمالات. اكيد هناك حل ولكن يحتاج إلى تفكير اعمق وخوارزميه اكثر تعقيداً, ساحاول التفكير فى الموضوع وإن شاء الله لو وجد حل اطرحه هنا.

الحل الذى توصلت له هو مشابه لحلك ولكن بعد التفكير اكتشفت انه لا يغطى جميع الاحتمالات, وكما قال سيدنا علي كرم الله وجهه "من استاثر برائيه هلك, ومن شاور الناس شاركهم عقولهم".

بالنسبه للاخ هارون عندما يسمى العرب إسم جميله فلا اعتقد انهم يقصدون جمال الشكل, وإنما يقصدون جمال الروح, ربما إسم فاتن اقرب للمثال الذى طرحته فالمره العجوز لا تكون فاتنه, اما إسم غاده فانا بصراحه لا اعرف معناه, على فكره انا كنت اعتقد ان إسم لينا إسم غربى, ولكن إتضح انه ذكر فى القران ومعناه النخله الصغيره " ما قطعتم من لينة او تركتموها ...".

والسلام

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#206

السلام عليكم ،،

سوف اطرح سؤالي ، و ارجوا ان عرف احدكم الحل (و هذا اكيد) ان لا يضع الحل سريعاً (حفاضا على ماء الوجه :D ) ...

السؤال هو ، بحسب الصورة التالية :

qus.JPG

المطلوب كتابة الكود الخاص بالزر الاول و الثاني (لأن الثالث و الرابع سهل ...) .

الزر الاول : هو لنقل عنصر او مجموعة عناصر (تم تحديده selected) الى القائمة الثانية (بحيث لا يظهر في القائمة الاولى و لا يكون مكانه فارغ) ..

الزر الثاني : هو لنقل عنصر عنصر او مجموعة عناصر (تم تحديده selected) الى القائمة الاولى من القائمة الثانية (بحيث لا يظهر في القائمة الثانية و لا يكون مكانه فارغ) ..

ارجوا ان يكون السؤال واضح و مفهوم ،، :)

-----------------------------------------------------------

اعتذر كل الاعتذار من الاخ crazy-man لأني اخطأت في صيغة السؤال .. و قد قمت بالتعديل ،،

-----------------------------------------------------------

بنت اليمن ،،

تم تعديل هذه المشاركة بواسطة بنت اليمن في 13 مارس 2005 في 19:20

لا اله الا الله .. محمد رسول الله

(* ربِ اجعلني مقيم الصلاة و من ذريتي ، ربنا و تقبل دعـاء *)

يا حيّ يا قيـوم ... برحمتك استغيث ... اصلح لي شأني كله و لا تكلني الى نفسي طرفة عين

#207
اقتباس
و ارجوا ان عرف احدكم الحل (و هذا اكيد) ان لا يضع الحل سريعاً (حفاضا على ماء الوجه)

:lol: :lol: :lol:

من أجمل ما سمعت من حِكم في هذا المنتدى... وقد قيل بأن النصيحة كانت بجمل.

Learn Japanese :>>> http://www.nouben.com/

#208

بسم الله الرحمن الرحيم

أخواني الأعزاء رغم أنه فاتني كم سؤال الا أني كنت متتبع لأخباركم و نشاطكم من بعيد(مقهى الأنترنت :D ) و ما شاء الله عليكم حيوية و نشاط مفيش بعد كدة المهم أنتهز فرصة وجودي أمام كمبيتري الخاص حتى أجاوب على سؤال الأخت بنت اليمن

هذا خو الكود :

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Me.ListBox2.Items.Add(Me.ListBox1.SelectedItem)
        Me.ListBox1.Items.RemoveAt(Me.ListBox1.SelectedIndex)
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Me.ListBox1.Items.Add(Me.ListBox2.SelectedItem)
        Me.ListBox2.Items.RemoveAt(Me.ListBox2.SelectedIndex)
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        Me.ListBox2.Items.AddRange(Me.ListBox1.Items)
        Me.ListBox1.Items.Clear()

    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Me.ListBox2.Items.AddRange(Me.ListBox1.Items)
        Me.ListBox1.Items.Clear()

    End Sub

Button1 ====> نقل عنصر من اللائحة الأولة الى اللائحة الثانية و مسحه من اللائحة الأولى

Button2 ====> نقل عنصر من اللائحة الثانية الى اللائحة الأولى و مسحه من اللائحة الثانية

أتمنى يكون كودي هو المطلوب أختي بنت اليمن

و أخيرا لا أنسى أن أبلغ سلامي الحار الى كل الأخوة (رغيد,هارون ( مبروك أخي مرة أخرى على المولودة Aiko), النحراوي,Non Top, و الغريب على لغتنا الأخ غريب :D و كل بأسمه حتى ل أنسى أحدا سأكتب كود ليمرر سلامي الى جميع المشتركين في المنتدى هههههههه

For I = 0 to MembersList.Count -1
PrivateMsg  " Assalamo 3alayko akhi : " & MembersList.Item(I)
Next

في رعاية الله

تم تعديل هذه المشاركة بواسطة crazy-man في 13 مارس 2005 في 13:37

#209
اقتباس
من أجمل ما سمعت من حِكم في هذا المنتدى... وقد قيل بأن النصيحة كانت بجمل.
...

في الحقيقة اخي هارون كنت اخشى على ماء وجهي انا .. :D :D :D .. و منتظرة حل السؤال منك ،،

اخي crazy-man : اولاً مرحباً بك منافساً ، و حلك لا غبار عليه ، و لكن ماذا ان اختار المستخدم اكثر من عنصر في القائمة الاولى لينقله الى القائمة الثانية ؟؟؟؟؟؟؟؟؟؟ (عذراً ان لم اوضح هذا سابقاً و سأوضحه الآن في صيغة السؤال) ... :)

تحياتي

بنت اليمن ،،

لا اله الا الله .. محمد رسول الله

(* ربِ اجعلني مقيم الصلاة و من ذريتي ، ربنا و تقبل دعـاء *)

يا حيّ يا قيـوم ... برحمتك استغيث ... اصلح لي شأني كله و لا تكلني الى نفسي طرفة عين

#210

أختي بنت اليمن،

ما كان يجب أن تعليقي على كود الأخ crazy-man الآن، فمن يقرأ تعليقك سيتلافى ذلك الخطأ... على فكرة هناك نقطة أخرى في كود crazy-man يمكن أن يقع الخطأ فيها... على كل حال، ها هي محاولتي وصدقيني بأنني كتبه قبل قراءة تعليقك:

الزر الأول (نقل عنصر من الليست الأولى الى الثانية):

Private Sub From_L1_to_L2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles From_L1_to_L2.Click

If ListBox1.SelectedIndices.Count = 1 Then
  ListBox2.Items.Add(ListBox1.Items(ListBox1.SelectedIndex))
  ListBox1.Items.RemoveAt(ListBox1.SelectedIndex)
End If

End Sub

الزر الثاني (نقل عنصر من الليست الثانية الى الأولى):

Private Sub From_L2_to_L1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles From_L2_to_L1.Click

If ListBox2.SelectedIndices.Count = 1 Then
  ListBox1.Items.Add(ListBox2.Items(ListBox2.SelectedIndex))
  ListBox2.Items.RemoveAt(ListBox2.SelectedIndex)
End If
    
End Sub

Learn Japanese :>>> http://www.nouben.com/

#211

بسم الله الرحمن الرحيم

السلام عليكم و رحمة الله وبركاته

اريد ان اقول بالفعل اني اشتقت اليك كثيرا اخي العزيز CrazyMan و لتواجدك مذاقه الخاص عزيزي كما افتقد الاخ عبد العليم كثيرا.

بالنسبة للسؤال المطروح من الاخت الفاضلة و كنوع من التغيير و بشكل عام يمكن استخدام الدالة :

Private Sub MoveFrom( Src As ListBox, dst As ListBox)
	If (Src.SelectedIndex + 1) Then
  dst.Items.Add(Src.Items(Src.SelectedIndex))
  Src.Items.RemoveAt(Src.SelectedIndex)
  If (Src.SelectedIndex + 1) Then MoveFrom(Src, dst)
	End If
End Sub

و بالتالي فالبارميتر Src إختصاراً لـ Source ( المصدر ) و البارمتير dst إختصاراً لـ Destination ( الوجهة او الهدف ) ... و يعني ذلك انه لنقل العناصر المحددة من ListBox1 الى ListBox2 نستخدم الامر التالي في الحدث Click لزر النقل :

MoveFrom(ListBox1, ListBox2)

و كذلك العكس :

MoveFrom(ListBox2, ListBox1)

طبعا يمكن كتابة الدالة السابقة بالشكل التالي :

Private Sub MoveFrom( Src As ListBox, dst As ListBox)
	If (Src.SelectedIndex > -1) Then
  dst.Items.Add(Src.Items(Src.SelectedIndex))
  Src.Items.RemoveAt(Src.SelectedIndex)
  If (Src.SelectedIndex > -1) Then MoveFrom(Src, dst)
	End If
End Sub

او

Private Sub MoveFrom( Src As ListBox, dst As ListBox)
	If Src.SelectedItems.Count Then
  dst.Items.Add(Src.Items(Src.SelectedIndex))
  Src.Items.RemoveAt(Src.SelectedIndex)
  If Src.SelectedItems.Count Then MoveFrom(Src, dst)
	End If
End Sub

ملاحظة اخيرة لم يتم مراعاه السرعة في الدالة السابقة فهي مجرد مثال على سبيل التغيير.

السلام عليكم و رحمة الله وبركاته

مواضيع برمجية تقنية جديدة

----------------------------------------------------------------------------------------------------------------------------------------------

• إستغلال خدمة الـ RSS في برامجنا ومواقعنا ! (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج للبحث في الملفات ومحتواياتها (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• فئة للتراسل بين برنامجين في جهاز واحد ! (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

مواضيع برمجية تقنية قديمة

----------------------------------------------------------------------------------------------------------------------------------------------

• إستغلال رسائل البالونات Balloons في الوينذوز أكس بي(VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• مقالة : لماذا يجب ان نعتني بشفرات برامجنا !؟- (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• لمطوري البرامج و مواقع الويب - برنامج تركيب ألوان - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج : بسيط للتحكم بالنظام, عن طريق الريجستري - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج : لتقييد و منع تشغيل البرامج الاخرى - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• النوافذ المنبثقة و طريقة لإستغلالها في برامجنا -(VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• تقنية الإستدعاء الذاتي - (VB.NET , VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• مصفوفات الأدوات Control Arrays افكار وتلميحات ! - (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• أفكار و تلميحات[ المعنى الحقيقي للـ True و False ] - أمثلة (VB.NETVB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• دوال الـ APIs و مايقابلها في الدوت نت ! - (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

#212

أعتقد أخي رغيد بأنك لم تلتزم بحرفية سؤال أختنا "بنت اليمن"، فهي تريد زر ينقل عنصر واحد فقط، (بالطبع فكرتك أفضل فهي تختصر الأزرار الأربعة الى زرين.... ويمكننا أيضاً إختصارها الى زر واحد إن أردنا).. وهذا حل مقترح آخر أضيفه الى حلولك (وأعتقد بأن هناك حلول أخرى):

Private Sub MoveFrom(ByVal Src As ListBox, ByVal dst As ListBox)

Do While Src.SelectedIndices.Count > 0
            dst.Items.Add(Src.SelectedItems(0))
            Src.Items.RemoveAt(Src.SelectedIndices(0))
Loop

End Sub

سؤال للأستاذ رغيد، اليس من المفضل في الثلاث حلول التي قدمتها أن نستخدم الثاني (بسبب التحويل من integer الى boolean)؟؟؟

Learn Japanese :>>> http://www.nouben.com/

#213
اقتباس
أعتقد أخي رغيد بأنك لم تلتزم بحرفية سؤال أختنا "بنت اليمن"

أسحب إتهامي الباطلأعلاه :( ، فقد قرأت سؤال أختنا بنت اليمن وهو سؤال يحتمل الوجهين... أولاً وضعت أربعة أزرار فالبتالي فهمت أنا و crazy-man بأن الزر الأول والثاني هما لنقل عنصر واحد فقط... وبعد ذلك كتبت في متن السؤال التالي:

اقتباس
الزر الاول : هو لنقل عنصر او مجموعة عناصر

الزر الثاني : هو لنقل عنصر عنصر او مجموعة عناصر

على كل حال، تبقى المُلامة هي اليمن السعيد سواء رغيد أو "بنت اليمن" :lol:

Learn Japanese :>>> http://www.nouben.com/

#214

بسم الله الرحمن الرحيم

بالفعل اخي العزيز هارون لقد قصدت الاخت نقل اكثر من عنصر و احد كما هو واضح من تعديلها للسؤال و كما قلت انت يوجد حلول كثيرة و قد بينت عند طرحي للمثال السابق اني لم اراعي الإداء الافضل خاصة و ان الاخت الكريمة لم تبين رغبتها في اداء عالي و لذلك قصدت التغيير بالتخلص من انواع الدوران المعروفة While For Until و اكتفيت بالحل السابق.

كما يمكن تحوير مثالك الجميل لأداء افضل بقليل بالشكل التالي :

    Private Sub MoveFrom(ByVal Src As ListBox, ByVal dst As ListBox)
        While (Src.SelectedIndex > -1)
            dst.Items.Add(Src.SelectedItem)
            Src.Items.RemoveAt(Src.SelectedIndex)
        End While
    End Sub

هل ستصدقني يا هارون إن قلت لك اني اشعر بإلافتقاد لك من الآن بمجرد رؤيتي لهذه الصورة :

hms.jpg

و اعتقد ان شهر يوليو القادم سيكون بائسا بدونك عزيزي، إن كتب الله لنا الحياة الى ذلك اليوم.

-----------------------------

صحيح لماذا لم ارى حتى الان اسئلة رسومية يعني شوية +GDI عشان التسلية ! ... إن لم يكن هناك مانع فحبذا لو وضع احد الشباب شيئا كهذا بعد سوؤال الاخت الفاضلة بإذن الله تعالى.

السلام عليكم و رحمة الله وبركاته.

مواضيع برمجية تقنية جديدة

----------------------------------------------------------------------------------------------------------------------------------------------

• إستغلال خدمة الـ RSS في برامجنا ومواقعنا ! (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج للبحث في الملفات ومحتواياتها (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• فئة للتراسل بين برنامجين في جهاز واحد ! (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

مواضيع برمجية تقنية قديمة

----------------------------------------------------------------------------------------------------------------------------------------------

• إستغلال رسائل البالونات Balloons في الوينذوز أكس بي(VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• مقالة : لماذا يجب ان نعتني بشفرات برامجنا !؟- (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• لمطوري البرامج و مواقع الويب - برنامج تركيب ألوان - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج : بسيط للتحكم بالنظام, عن طريق الريجستري - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج : لتقييد و منع تشغيل البرامج الاخرى - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• النوافذ المنبثقة و طريقة لإستغلالها في برامجنا -(VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• تقنية الإستدعاء الذاتي - (VB.NET , VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• مصفوفات الأدوات Control Arrays افكار وتلميحات ! - (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• أفكار و تلميحات[ المعنى الحقيقي للـ True و False ] - أمثلة (VB.NETVB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• دوال الـ APIs و مايقابلها في الدوت نت ! - (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

#215

بارك الله فيك أخي رغيد... سأشتاق لكم جميعاً في هذا المنتدى ولكنني سأتغيب قصرياً بسبب إنتقالي الى موقع شركتنا الرئيسية لمدة سنة.. والموقع الرئيسي يبعد عن البيت حوالي ال 200 كيلومتر لذا سأضطر للإقامة "كعزابي" ولن أرجع الى البيت سوى لمدة يوم في الإسبوع (بالطبع سأقضيه مع العائلة)... يبدو بأنني سأنقطع عن الفيجوال بيسك نيت لمدة سنة على الأقل.

للأسف لم أعد أرى بعض الأخوة في هذه المشاركة... أين هم؟؟؟

Learn Japanese :>>> http://www.nouben.com/

#216

بارك الله فيك أخي الحبيب رغيد و حقيقة لست أنت الوحيد الذي ستشتاق لهارون بل كل المنتدى لكن عندي سؤال لك أخي هارون : ألا توجد أنترنت في المدينة التي ستشتغل فيها ؟ يعني نحن نريد فقط أن نطلع على أخبارك بين الحين و الآخر

و دعائي لك بالتوفيق ان شاء الله

#217
اقتباس
ألا توجد أنترنت في المدينة التي ستشتغل فيها

أخي الحبيب Crazy-Man، الإنترنت هنا موجودة حتى بالغابات فما بالك بمدينة Yokoyama... ولكن الفيجوال ستديو موجود عندي فقط على كمبيوتري الشخصي (في البيت)...

بالنسبة لأخباري، بإذن الله سأبقى على إتصال معكم جميعاً عن طريق الإيميلات (سواء من العمل أو البيت)، وأقسم بالله العظيم بأنني سأشتاق لهذا القسم من المنتدى وسأشتقاق الى كومة الكتب التي تتحدث عن الفيجوال بيسك نيت والتي لم يكتب لي أن أتصفحها...

تم تعديل هذه المشاركة بواسطة HMS في 14 مارس 2005 في 14:52

Learn Japanese :>>> http://www.nouben.com/

#218

تحياتي للجميع ،، و اعتذر مرة اخرى عن تعديل السؤال :rolleyes: ، لأن الهدف منه كان نقل اكثر من عنصر في نفس الوقت ...

ما شاء الله عليك اخي رغيد ، فعلاً لازلت واقفة عند حلك الاول (الذي لم تستخدم فيه الدوران) ، لاني عندما حللت السؤال استخدمت الدوران ، و المشكلة كانت اني عندما احذف عنصر من القائمة الاولى لأنقله الى القائمة الثانية فأن طول القائمة الاولى سوف يتغير ، و عليه لابد ان لا ادور بالاعتماد على طول القائمة الاولى ، فقمت بعمل حل اخر به دوران لاتجنب هذه المشكلة !!! و اريد فقط ان افهم طريقتك الاولى و ان ننتظر اي حل اخر حتى اقوم بطرح حلي و نرى ما هي الطريقة الافضل ... مرة اخرى ما شاء الله عليك (من الحسد :D ) ..

و خالص تحياتي لكم جميعاً مرة اخرى ،،

بنت اليمن ،،

تم تعديل هذه المشاركة بواسطة بنت اليمن في 14 مارس 2005 في 22:46

لا اله الا الله .. محمد رسول الله

(* ربِ اجعلني مقيم الصلاة و من ذريتي ، ربنا و تقبل دعـاء *)

يا حيّ يا قيـوم ... برحمتك استغيث ... اصلح لي شأني كله و لا تكلني الى نفسي طرفة عين

#219

الاخوة الكرام (هارون ، رغيد ، crazy-man) .. اريد ان استفسر هنا عن نقطة على ضوء الحل الاول للأخ رغيد ، ايهما افضل ، استخدام الاستدعاء الذاتي (stack ... ) او الدوران ، فعلاً اريد ان اعرف الحل لأني دوماً اتهرب من الإستدعاء الذاتي ، و اعتقد ان حلك لا غبار عليه اخي رغيد ، و مرة ثالثة اعتذر من الاخوين هارون و crazy-man على اني عدلت السؤال .. :)

اخي الكريم هاورن .. لم استوعب حتى الآن ، هل فعلاً ستغيب عن المنتدى فترة سنة !!!!!

بنت اليمن ،،

لا اله الا الله .. محمد رسول الله

(* ربِ اجعلني مقيم الصلاة و من ذريتي ، ربنا و تقبل دعـاء *)

يا حيّ يا قيـوم ... برحمتك استغيث ... اصلح لي شأني كله و لا تكلني الى نفسي طرفة عين

#220

بسم الله الرحمن الرحيم

السلام عليكم و رحمة الله وبركاته

الاخت الفاضلة إن استخدام الإستدعاء الذاتي من سواه يعتمد على المكان و الموضوع الذي ستستخدميه فيه فعندما يكون عدد مرات الدوران قليلا لا تتجاوز بضعة اللوف فإن الإستدعاء الذاتي سيكون اجمل نظراً لبساطة الشفرة الناتجة و حجمها المحدود ... بينما في الحالات التي يكون فيها الدوران المتوقع للدالة هو كبير جداً فمن الافضل تجنب الاستدعاء الذاتي ... لاحظي مثلاً في سؤال العزيز Undo عن الدالة FindOccurences التي تقوم بالبحث عن كلمة معينة داخل نص ... كان من الافضل ان يتم تجنب الاستدعاء الذاتي لان النص قد يكون كبير جداً ما الذي يمنع مثلا من ان يكون طول النص 30 ميجا مثلا ! ..... اي عدد كبير من الدورات .. بينما في سؤالك السابق فإن عدد العناصر المحددة في القائمتين سيكون بالتأكيد صغيراً حتى و إن بلغ ألف عنصر محدد ! .. ( وهو شيء غير منطقي ان يقوم شخص بتحديد ألف عنصر يدويا ) و مع ذلك سيكون الامر بسيط جدا و يمكن استخدام الإستدعاء الذاتي فيها.

على الرغم انني قد ناقشت مع بعض الاخوة موضوع الإستدعاء الذاتي في الرابط :

/index.php?showtopic=56759

إلا ان الامر ربما يريد المزيد من الامثلة حتى يتسنى فهمه جيدا و الاعتياد عليه ... و كرأي شخصي يروق لي استخدام الاستدعاء الذاتي لتسهيل المسائل التي يكون فيها شيئا من التعقيد.

و إن وجد أي أستفسار فإني و بقية الاخوة نرحب به بإذن الله تعالى.

السلام عليكم و رحمة الله وبركاته

مواضيع برمجية تقنية جديدة

----------------------------------------------------------------------------------------------------------------------------------------------

• إستغلال خدمة الـ RSS في برامجنا ومواقعنا ! (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج للبحث في الملفات ومحتواياتها (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• فئة للتراسل بين برنامجين في جهاز واحد ! (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

مواضيع برمجية تقنية قديمة

----------------------------------------------------------------------------------------------------------------------------------------------

• إستغلال رسائل البالونات Balloons في الوينذوز أكس بي(VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• مقالة : لماذا يجب ان نعتني بشفرات برامجنا !؟- (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• لمطوري البرامج و مواقع الويب - برنامج تركيب ألوان - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج : بسيط للتحكم بالنظام, عن طريق الريجستري - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج : لتقييد و منع تشغيل البرامج الاخرى - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• النوافذ المنبثقة و طريقة لإستغلالها في برامجنا -(VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• تقنية الإستدعاء الذاتي - (VB.NET , VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• مصفوفات الأدوات Control Arrays افكار وتلميحات ! - (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• أفكار و تلميحات[ المعنى الحقيقي للـ True و False ] - أمثلة (VB.NETVB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• دوال الـ APIs و مايقابلها في الدوت نت ! - (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

#221

تعليق قد لا يكون مكانه هنا... في السي ++ يوجد قاعدة ذهبية وهي أن لا نلجأ الى الإستدعاء الذاتي مالم نعدم الحيل الأخرى والسبب يتعلق بالذاكرة وإستهلاكها لها.. الحقيقة لا أعلم إن كان الأمر ينطبق على ال NET (وسأستغرب إن لم ينطبق)...

اقتباس
اخي الكريم هاورن .. لم استوعب حتى الآن ، هل فعلاً ستغيب عن المنتدى فترة سنة !!!!!

نعم أختي بنت اليمن، سأغيب هذه الفترة بإذن الله ولن تكون لي مشاركات في هذا المنتدى العزيز عليّ والسبب كما أسلفت هو إنتقال مكان عملي الى مدينة غير المدينة التي أسكن بها... سأشتاق لكم جميعاً فقد كنتم نعم الأخوة والأخوات.

Learn Japanese :>>> http://www.nouben.com/

#222

السلام عليكم ،،،

و اعتذر اعتذر اعتذر من الجميع على الـتأخير ، لكن الوقت اصبح ضيق و ما باليد حيلة :rolleyes: ، و ارجوا لك اخي هارون التوفيق في اي مكان تختاره ، و بالنسبة للحل الذي افترضته فقدت عملته على الـ VB ,, و كان بالشكل التالي :

Dim size, varloop As Integer

varloop = 0
size = my_list.ListCount

Do While (varloop < size)
    If (my_list.Selected(varloop)) Then
        my_list2.AddItem my_list.List(varloop)
        my_list.RemoveItem (varloop)
        size = size - 1
    Else
        varloop = varloop + 1
    End If
Loop

و في الحقيقة ، لقد قمت بتكرار نفس الكود للزر الثاتي مع تغير ما يلزم ، و هو ما قام الأخ رغيد بحله بإستخدام كود واحد (فكرة ممتازة منك اخي رغيد كالمعتاد :) ) ، اما بالنسبة للإستدعاء الذاتي ففكرتي عنه كما قال الأخ هارون بأن نتجنب استخدامه (بحسب ما تعود في لغة C++) حيث ان يحتاج الى استخدام stack و استرجاع بيانات الـ stack ثم انه في بعض الاحيان يكون غير مفهوم لأي شخص اخر (شخص لم يقم بكتابة الكود !!! ) ، عموماً اشكرك على المقالة التي تحدثت بها اخي رغيد عن الاستدعاء الذاتي و بارك الله فيك دائماً ،،

تمنياتي للجميع بالتوفيق ،،

بنت اليمن ،،

لا اله الا الله .. محمد رسول الله

(* ربِ اجعلني مقيم الصلاة و من ذريتي ، ربنا و تقبل دعـاء *)

يا حيّ يا قيـوم ... برحمتك استغيث ... اصلح لي شأني كله و لا تكلني الى نفسي طرفة عين

#223

أتمنى لك التوفيق أخي هارون

سبحان الله وبحمده ... سبحان الله العظيم

#224

بسم الله الرحمن الرحيم

السلام عليكم و رحمة الله وبركاته

الإستدعاء الذاتي RECURSION

الأخ العزيز هارون و الاخت الفاضلة ... لم تكن تقنية الإستدعاء الذاتي يوما حكرا على الفيجوال بيسك او سواها من اللغات فهي تقنية مستقلة يمكن تطبيقها على اللغة التي تريدها .. غير ان الفكرة الخاطئة بعض الشيء عن هذه التقنية ادت الى نفور الكثير من المبرمجين منها على الرغم من انها ( اكثر من ظرورية ) و ستجد نفسك أن عاجلا او آجلا امام حالة من الحالات التي لا يمكن تطبيقها بدونها ! ... و في حالات كثيرة ينفق المبرمج غير المعتاد على هذه التقنية و قتاً طويلا لإكتشاف ان المسألة التي بين يديه لا يمكن حلها بدون الإستدعاء الذاتي ... و حتى بعد ان يكتشف ذلك يجد ان التفكير في حل يستخدم الإستدعاء الذاتي هو امر معقد عليه بسبب عدم تعوده على التفكير بإستخدمها .

سبب الإهمال الذي تواجه هذه التقنية بين اوساط المبرمجين يعود للاسباب التي تفضلتم بذكرها و انها قد تكون ابطأ من نظيرتها بدون ( إستدعاء ذاتي ) وهو امر صحيح غير انه أخذ على نحو مبالغ فيه كثيرا ... و كتجربة شخصية لا يوجد من يستطيع ان يحدد متى يفضل ان يستخدم الإستدعاء الذاتي سوى المبرمج نفسه ... و كم اتمنى ان يعطى لهذه التقنية حقها فهي اكثر من مفيدة ( كما ان اكوادها اكثر سلاسة و منطقية ) من الطرق الأخرى خاصة ( للمتعودين عليها ) ... و اتذكر ان آخر مقارنة اجريتها بين دالتين احدها تستخدم الاستدعاء الذاتي لحل مسئلة معقدة و الالخرى تستخدم الدروان ... كان الناتج لاكثر من خمسة و عشرون ألف دورة ! ) لصالح الدالة الخالية من الاستدعاء الذاتي بزمن مقدارة نصف ثانية فقط ! ... بينما لم تتجاوز اسطر دالة الاستدعاء الذاتي الاربعة اسطر فقط و بشكل منطقي للغاية وبسيط... بينما تجاوزت اسطر الدالة الاخرى العشرون سطرا دون ترابط حقيقي مفهوم بين اجزاء هذه الدالة ....

حقيقة نعتني احدهم في احدى المرات بأني ( متعنت ) لهذه التقنية ! ... و لم يكن مخطئاً في الواقع غير ان السبب يعود لرؤيتي للكثيرين من مبرمجي أمتي قد تجاهلوها على الرغم من نفعها الكبير و اهتمام الغير بها كثيراً.

اتمنى ان لا يدخلني كلامي السابق في منازعات كلامية أو يؤخذ على كوني اريد تغيير مفاهيم استقرت في اذهانكم اخوتي ! ... بل حبذا لو ُأخذ حديثي على كونه رأي ( شخصي ) اتمتم به مع نفسي ( و لكن بصوت مسموع ) لعل الله ينفع به أحد المسلمين.

و حتى لا ارمى بالتعنت لهذه التقنية مرة أخرى ! ... ارفق مقتطفات من كتاب Mastering Visual Basic NET الشهير و الذي ارفق فصلاً كاملا فيه بعنوان ( Recursive Programming ) لتفصيل هذه التقنية على الرغم من إستقلاليتها عن الفجيوال بيسك !

Recursive procedures are extremely useful !

Recursion is a special topic in computer programming that’s one of the least understood among beginners and even among some advanced programmers. It’s surrounded by an aura of mystery, and most BASIC programmers ignore it. The truth is, recur-sive
programming is no more complicated than any other programming approach, once you understand how it works and when to use it.

إقتباس آخر:

Special Issues in ecursive Programming

Recursion is not a technique that most programmers regularly use. Only a few situations call for recursive programming, and unfortunately, these programs can’t be implemented otherwise. As the various object models become more and more complicated, you’ll have to implement an increasing number of recursive procedures.

و يختتم الكتاب الفصل المتعمق عن هذه التقنية بـ :

If you find yourself nesting loops in many levels or if you’re trying to set up conditions to exit these loops prematurely, your code would probably benefit from a recursive implementation. Recursion bears some resemblance to iteration, and in some situations, you can implement a recursive algorithm with a loop. The factorial algorithm, for instance, can be easily implemented with a For …Next loop. But there are situations in which iterations won’t help.

كلمة آخيرة ان هذه التقنية على الرغم من فائدتها الكبيرة فلها مواضع ينبغي ان نتجنبها فيها و مواضع آخرى ينبغي ان لا نستغني عنها ابداً ... غير أن المتتبع لمعظم ردودي السابقة سيجدني استخدمها بشكل متكرر دون مراعاه لأفضلية إستخدامها ( كما في مثالي الاخير ) و السبب يعود الى رغبتي في زرع امثلة بسيطة كلما مكنني الله من ذلك امام عيني القارىء الكريم كي يعتادها و يألف التعامل معها بإذن الله تعالى.

آخيراً و كمثال سريع لا انتظر اجابته و لكنه للتفكر فقط ! ... تخيل انك تريد صنع دالة تمرر لها مسار مجلد معين فتقوم بإرجاع عدد الملفات التي يحتويها المجلد و جميع الملفات في المجلدات الفرعية التابعة له.

Function GetFiles( Path As String ) As Integer
.
.
.
End Function

لا اظن ان شفرة دالة كهذه ستتعدى الخمسة اسطر على اكثر تقدير بإستخدام تقنية الإستدعاء الذاتي.

بالنسبة للسؤال التالي ... إذا أذن لي الحاظرون فلعلي اجرب ان نتسلى بالـ +GDI بإذن الله تعالى .

السلام عليكم و رحمة الله وبركاته.

مواضيع برمجية تقنية جديدة

----------------------------------------------------------------------------------------------------------------------------------------------

• إستغلال خدمة الـ RSS في برامجنا ومواقعنا ! (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج للبحث في الملفات ومحتواياتها (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• فئة للتراسل بين برنامجين في جهاز واحد ! (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

مواضيع برمجية تقنية قديمة

----------------------------------------------------------------------------------------------------------------------------------------------

• إستغلال رسائل البالونات Balloons في الوينذوز أكس بي(VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• مقالة : لماذا يجب ان نعتني بشفرات برامجنا !؟- (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• لمطوري البرامج و مواقع الويب - برنامج تركيب ألوان - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج : بسيط للتحكم بالنظام, عن طريق الريجستري - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج : لتقييد و منع تشغيل البرامج الاخرى - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• النوافذ المنبثقة و طريقة لإستغلالها في برامجنا -(VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• تقنية الإستدعاء الذاتي - (VB.NET , VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• مصفوفات الأدوات Control Arrays افكار وتلميحات ! - (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• أفكار و تلميحات[ المعنى الحقيقي للـ True و False ] - أمثلة (VB.NETVB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• دوال الـ APIs و مايقابلها في الدوت نت ! - (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

#225

السلام عليكم ورحمة الله

كيف حالكم إخواني ؟ أرجو من الله أن تكونوا بخير حال

حتى يأتي إلينا أستاذنا الحبيب رغيد بسؤاله عن الـ+GDI والذي أتمنى أن أجد الوقت كي أجيب عليه لأنني مشغول جداً والله ..

المهم جاء في بالي سؤال قلت أضعه هنا من باب التنشيط ، ولو السؤال ده اتسأل قبل كده فسامحوني :)

السؤال هو : في بعض الأحيان نحتاج لعمل كلمة مرور عشوائية مثلاً أنت في هذا المنتدى إذا نسيت كلمة المرور الخاصة بحسابك وهي مشفرة ONE WAY فعندما تدخل على صفحة نسيان كلمة المرور وتدخل عنوان إيميلك يقوم برنامج المنتدى تلقائياً بعمل GENERATE لكلمة مرور جديدة ويرسلها لك

المطلوب : دالة تقوم بهذا العمل بحيث يكون شكلها كالآتي :

Fanction GeneratePassword(ByVal PasswordLength as Integer) As String
.
.
.
.
End Function

أرجو ألا يكون سؤالي معقداً هذه المرة :)

في انتظاركم

وأعتذر لأخينا رغيد الطيب إن كنت تطفلت وقدمت سؤالاً قبل وضعه سؤاله ، ولكن كما ذكرت من باب التنشيط

بارك الله فيكم

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…