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

مسابقات برمجيه

مغلق
بدأه AhmedElbaz في 10 يونيو 2006 · 30 رد · 2,788 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اقترح ان يبقي فيه مسابقات برمجيه

و أي حد عنده خدعه برمجيه يعرضها

يعني عايزين نشغل مخنا شويه و نرفع روح المنافسه الشريفه لرفع مستوانا البرمجي

وعلي فكره اي شركه برمجه محترمه بستخدم الخدع البرمجيه و الأفكار العاليه في ال interviews

ومحدش يبخل باي تكه

و انا باذن الله هحاول اجمع مجموعه من التكات

بس انا بقول الأحسن نعرض السؤال الأول و نسيب الناس تفكر وبعدين نناقش الحل الصحيح

عشان الموضوع يحلو

اتمني من الله ان يوفقنا جميعا الي ما فيه الخير

#2

أول مسابقه

لو فيه داله بتعمل swap ما بين 2 references بالشكل التالي

;()Class1 x = new Class1

;()Class1 y = new Class1

(void Swap(Class1 a,Class1 b

}

;Class1 temp = a

;a = b

;b = temp

{

عند استدعاء

;(Swap(x,y

السؤال

أيه هيكون تأثيرها علي ال x,y هيتبدلوا و لأ مع التعليل

و أيه الحل لو الداله دي معملتش تبديل

؟؟؟؟

اتمني التوفيق و نجاح التجربه

#3

من المفترض ان لا يتم التبديل و ذلك بسبب تمريير المتغيرات عن طريق by Value (هذه الدالة ممكن تغير على members التابعين لل references فقط و ليس على reference نفسه)

ويمكن الحل باستخدام ref او out

تحياتي

:)

#4

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

اولا جزاك الله خيرا يا أخ احمد على الفكرة الحلوة ديه

ثانيا انا متفق مع Whale في رأيه

الداله مش هاتغير في ال x,y لانها call by value وعلشان يتم التغير لازم نخليها call by reference

وشكرا

#5

السلام عليكم

ماشاء الله تمام يا شباب

بس فين أسئلتكم أهم حاجه كله يشارك بالتكات اللي قبلته

حتي لو فيه حاجه بعيده عن البرمجه شويه بس محتاجه تركيز مفيش مشكله

#6

السلام عليكم

المسابقه الثانيه

لو ; int i = 3

السؤال الأول:

ماهي قيمه ال i بعد هذه الجمله

;++i = i

السؤال الثلني:

ماهي قيمه ال i بعد هذه الجمله

=+i

;i++ + ++i

مع التعليل و الشرح

#7

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

السؤال الاول

i = 3

لان عملية increment by i هاتم بعد عملية equal

السؤال التاني

i = 11

هاقسم بس العملية للتوضيح

في الاول جمعنا قيمة ال i الى i فاصبح المجموع 6 وبعد كدة عملنا increment by one فاصبح المجموع 7

وبعد كدة في عملية increment لل i الاخيرة قبل جمعها فاتكون 4

وبعد كدة نجمع 4 + 7 = 11

والله اعلم

وشكرا

#8

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

المسابقة الثالثة

هل هناك اختلاف بين

for(int j = 0; j< 5; j++)
			{
				j++;
			}

وبين

for(int j = 0; j< 5; j++)
			{
				++j;
			}

مع الشرح والتعليل

وشكرا

تم تعديل هذه المشاركة بواسطة ahmed_shawky في 10 يونيو 2006 في 18:53

#9

السلام عليكم

ahmed_shawky انت مصحصح معايا

بالنسبه للمسابقه الثانيه

السؤال الأول

فعلا i=3

السوال الثاني

i = 11

بس ترتيب التنفيذ كالتالي

i++

i= 4

++i

مش هتاثر في الموضوع بالضبط ذي ما حصل في السؤال الأول

وبعدين ننفذ ال+

i = 8

بعدين ال =+

i = 11

لان هوه بياخد قيمه ال i اللي في الطرف الشمال في البدايه وبيضيف عليها الطرف اليمين في النهايه

#10

السلام عليكم

هوه في الحاله دي مفيش اختلاف

يعني ++j أو j++ في الحاله دي نفس التاثير

لان كل أمر فيهم في جمله لواحده

يعني مفيش أولويه في تنفيذ الأوامر

#11

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

فعلا زي ما أنت بتقول مافيش فرق بين الاتنين علشان كل واحدة جية في جملة لوحدها

#12

مرحبا :- موضوع كتير حلو اخ احمد وما دام عايزين تركات صعبه

خلينا ندخل على موضوع الجرافيك بواسطه السي شارب

وهو هل في اليه لرسم زخارف السجاد (الزخارف الغريبة ) الي بتكون مرسومه على السجاد بالسي شارب

بنتظر منكوا الجواب وان شاء الله حشرح في القريب العاجل بالتفصيل الممل جرافيك بالسي شارب ولكن بعد الامتحانات واتمنى لكم التوفيق

#13

بس دي تكه كبيره أوي يأخ Hadad.Net

جرافك وسجاد و زخراف

ماشي انا مستني تكاتك يا سيدي

و ربنا يوفقك في الامتحانات

#14

السلام عليكم

طيب بالنسبه لموضوع الجرفك يا أخ Hadad.Net

أيه الفرق بين

this.Invalidate

و

this.Refresh

و

this.Update

أقصد ب this ال Control الحالي

#15

السلام عليكم

هل فكرتم في يوم من الايام ان اجعلوا مثلا برنامجكم يعمل فلاش و هو في ال Taskbar

مثلا: مثل المسنجرعندما تصلك رسالة

في ال C++ و Visual Basic ممكنة عن طريق ال Win32 API لكن سؤالي لمن يعرف الاجابة (غيري :P) و هو كيفية فعلها بالسي شارب

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

#16

أخي Maverick

هناك class اسمه TaskbarNotifier وهو موروث من System.Windows.Forms.Form

يستطيع القيام بالفلاش الذي ذكرته ;)

اللهم طهر أرض فلسطين من العملاء والخونة

#17

السلام عليكم

فكره جميله يأخ Maverick

بس الموضوع API يعني هات كود ال vb اللي بيعمل كده

و باذن الله استخدم دوال ال API اللي فيه

علي العموم هبحث عن managed code بيعمل كده

و شكرا علي مشاركه الجميله

#18

جميل جدا. انا فكرت في كيفية التواصل او استعداء دوال ال Win32 API عن طريق الدوت نت و وجدت طريقة لفعل ذلك

http://www.vbdotnetheaven.com/Code/May2004...wInVbNetVK4.asp

http://www.c-sharpcorner.com/Code/2002/Nov/win32api.asp

و الجميل في الموضوع انك يمكنك البرمجة عن طريق الدوت نت و ان تكون لديك القدرة على استعداء دوال تمكنك من تغيير بعض الخصائص في نظام التشغيل عن طريق هذا الكلام.

مثلا اذا فكرنا في عمل طريقة لل Hooking او subclassing عن طريق الدوت نت فهل هذا ممكن؟

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

#19

يعطيكوا العافيه :-

1- فكرة السجاد والزخارف سهله بس بدها شويه رياضيات وشويه صبر وهي باستخدام نظريات عده من اشهرها MandleBrot Set وفي الرابط التالي متال عليها بالسي شارب طبعا ...

2- وبالنسبه لسوالك على ما اذكر انه

this.Invalidate تعمل على اعادة ضبط جزء من الكنترول يحدده المستخدم ولكن عمليه التعديل الي صارت لن تفعل الا في المرة التانية من تشغيل البرنامج اي المره التانيه من استدعاء داله الPaint بينما Refresh & Update فيقوموا باعادة الرسم مره اخرى للكنترول التى عملنا الها Invalidate ولكن الفرق بينهم انه ال Refresh بتعيد الرسم مع اي ابن لهذه الكنترول بينما ال Update بتعيد الرسم للكنترول فقط .

مثال على الزخارف الكتير حلوه وكتير مش حتتوقعوها

http://www.codeproject.com/csharp/mandelbrot.asp

#20

السلام عليكم

this.Invalidate

تقوم باستدعاء داله ال paint لاعاده رسم الcontrol

this.update

تطلب من نظام التشغيل تنفيذ داله ال paint في الحال لان ال graphic اتقل حاجه علي نظام التشغيل

يعني ميأخرش اعاده رسم ال control

this.refresh

this.refresh= this.invalidate + this.update

#21
اقتباس
هناك class اسمه TaskbarNotifier وهو موروث من System.Windows.Forms.Form

يستطيع القيام بالفلاش الذي ذكرته

يأخ علاء السلال انت متأكد من الكلام ده

انا فشلت في ايجاد هذا ال class

المهم بحثت عليه وجدت انه c++ class

والكود و ال demo في المرفقات

taskbarnotifier.rar

#22

المسابقه رقم :rolleyes:

المهم

عايزين كود لأفضل و أسرع و أكفأ مصفوفة integers في Csharp

الموضوع فيه فكره صغيره

و اتمني ان الأخوه الأعضاء يشاركوا بتكتهم :(

#23

أخي أحمد،

نعم متأكد من الكلام :)

أنت تقريباً وصلت إلى المطلوب ، البرنامج المطلوب يمكن برمجته بأي لغة برمجة..

ال code الذي أرفقته هو ما أشير إليه .. يمكنك استيراده في C# واستخدامه ( .cs )

وهذا هو البرنامج كاملاً يشمل الcode مع الشرح والتعليقات :

TaskbarNotifier.jpg

TaskbarNotifier, a skinnable MSN Messenger-like popup in C#

وهنا code آخر للبرنامج بلغة asp.net :

ieandmoz.png

custcols.png

ASP.NET Popup Control

وهنا code آخر للبرنامج بلغة VB.NET :

PopupNotifier_1.jpg

PopupNotifier_3.jpg

An Office 2003-like popup notifier

إذا أردتم التعمق في الموضوع أكثر،

هناك شيء يسمى " FlashWindowEx API " يمكنك استخدامه للتحكم في الأيقونة الصغيرة الموجودة في ال TaskBar ويمكنك فعل كل شيء تماماً مثل ما يحصل في msn messenger على سبيل المثال عندما يصلك رسالة جديدة أو عندما تتغير حالتك ..

لمتابعة الموضوع :

The FlashWindowEx API

:)

اللهم طهر أرض فلسطين من العملاء والخونة

#24

نعم دالة ال FlashWindow هي ما نبحث عنه في الدوت نت.

طيب لو قلنا اننا نريد ان نصنع برنامجا يضيف زر في نافذة اخرى لا تنتمي الي برنامجنا و من ثم اذا تم الضغط عليها ننفذ العملية من برنامجنا.

مثلا برنامجنا هو برنامج A و البرنامج الاخر المنفصل هو برنامج B

نضيف زر في B عن طريق A و نستمع الى Windows Messages عن طريق برنامج A و التي تصل الى برنامج B و من ثم اذا تم استقبال WM_CLICK نقوم بمعالجة ماذا سيحدث في A

هل هذا ممكن؟

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

#25
اقتباس
أخي أحمد،

نعم متأكد من الكلام

أنت تقريباً وصلت إلى المطلوب ، البرنامج المطلوب يمكن برمجته بأي لغة برمجة..

ال code الذي أرفقته هو ما أشير إليه .. يمكنك استيراده في C# واستخدامه ( .cs )

شكرا أخي علاء السلال علي الحاجات الحلوه دي

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

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