-
الإعلانات
-
تسجيل عضوية جديدة في المنتدى 01/31/2016
السلام عليكم ورحمة الله وبركاته عزيزي العضو الجديد : حاليا رسالة الإيميل لتأكيد صحة إيميلكم تذهب للبريد العشوائي ( جاري حل المشكلة ) فإذا لم تجد رسالة التحقق من إيميلكم في صندوق الوارد لديكم إتجه للبريد العشوائي ( JUNK) وقم بتفعيل إشتراككم من هناك
-

هاني الأتاسي
المشرفين القدامى-
عدد المشاركات
1,220 -
تاريخ الانضمام
-
تاريخ اخر زياره
السمعه بالموقع
3 عاديعن هاني الأتاسي
-
الرتبة
خبير #C
طرق الإتصال
-
Website URL
http://blogs.msdn.c
om/haniatassi - ICQ 0
أحدث الزائرين لملفلك الشخصي
-
mtbabosalam87 أعطى سمعة إيجابية لــ رد في موضوع: دروس في السي
-
boussouira أعطى سمعة إيجابية لــ رد في موضوع: طلب بسيط عن vTable
-
علمنيـ كيف ـأصطاد أعطى سمعة إيجابية لــ إجابة على سؤال: لغة الأسمبلي
-
دحدوح :) .. حلك كمان قريب .. بس في مشكلة أنا فرضا احب أضح آلاف الأشكال في قسم من الشاشاة .. وفرضا أيضا ممكن أعمل زوم على قسم معين وأرسم فيه كأنه الشاشة كلها .. هل ممكن أن يكون تقسيمك للشاشة ديناميكي مثل binary search ... أعتقد إذا لقيتو طريقة تدمجو طريقة بين حل دحدوح وحل وجدي يكون أفضل :)
-
عجبني متل ما بقولو تفكيرك خارج الصندوق :) فكرتك قريبة من الحل بس فيها مشكلة .. الاحداثيات 10,100 غير 100,10 وبالتالي وضعها في الشجرة لا يكون بشكل صحيح .. المفروض يمكنك استخدام احداثيات x و y على حدا في الشجرة من غير الجمع .. كيف يمكن هذا؟ الأسهل فكر كيف يمكن ان تستخدم x فقط ومن بعدها كيف تستفيد من y ..
-
شكرا أخ دحدوح على الكود وعلى توضيح الكود ل IsInShape .. طريقتك هي نفسها طريقة فهد في الكود المطلوب كتابته وهو Select .. ولكن هل يوجد طريقة أسرع .. الخوارزميات التي كتبتوها هي O(N) .. يجب أن يكون هناك افضل من هذا .. مساعدة : فكرو بتوزع الأشكال على لوحة الرسم ومواضعها وكيف يمكن تصميم data structure مناسب لها :)
-
هل قصدك ب windows forms? .. لا يفضل استخدام ال controls من ثريد مختلف عن الثريد الأساسي .. لأن الcontrols ليست مبرمجة لتكون آمنة للوصول من عدة threads .. يمكنك استدعاء تابع ليعمل في الثريد الأساسي باستخدام Control.Invoke . هذا التابع يمكنه ان ينشأ أو يعدل في الوندوز فورم.
-
كيف احصل علي اكبر و اصغر عدد من مجموعة اعداد
هاني الأتاسي رد على soliman123's موضوع في Microsoft Visual C#.NET
السؤال الأساسي لم يحدد هذا :) -
أنصح الجميع برؤية محاضرة Anders Hejlsberg عن السي# 4 ومستقبلها بعد ذلك .. هنا .. الأمور الجديد في سي# 4: 1- dynamic programming: بالمختصر الآن يمكنك تعريف التوابع والمتحولات على أنهم dynamic ويتم تحديد أنواعها أثناء عمل البرنامج .. يمكنك تشبيها ب VBA programming.. أو بشكل آخر يمكنك من كتابة برنامجك باستخدام untyped typed or late time binding . في الواقع سبب استخدام لغات مثل سي# او جافا وتفضيلها عن لغات السكريبت وغيرها هي أنها strongly typed وبالتالي تقلل من الأخطاء البرمجية وتأدي إلى أداء أفضل في بعض الأحيان .. والهدف الأساسي من جعل السي# تعدعم البرمجة الدينميكية لكي تدعم بشكل طبيعي لغات ال untyped مثل python و script languages ، وأخيرا الCOM .. 2- optional and named parameters: وكلنا يعرف ماهي وممتن من أن السي# أخيرا تدعم هذا :) 3- improved COM interoperability: من أجل 1 و 2 .. يمكنك الآن استخدام COM بكل سهولة بنفس الطريقة التي يتم منادتها من VBA .. 4- CO- AND CONTRA-VARIANCE : يمكنك من خلالها مثلا من تمرير مصفوفة من نوع string إلى تابع يقبل مصفوفة من نوع object .. اما مستقبل السي# فتفضل أندريس بعرض سي# compiler as a service .. حيث الآن يمكنك من استدعاء المترجم من برنامجك من أجل ترجمة أي شي وعرض مثال رائع على امكانية كتابة كود سي # من الcommand window .. وتكلم أندريس أيضا عن ال Expressions في الLinq و كيف تم الاستفادة منها في سي# 3 .. إذا أحببت أن ترى مثال عليها فلدي مثال سهل لها في مدونتي هنا
-
شكرا للمشاركة أخ فهد .. فقط للتوضيح في حلك ال vector يكون في الخارج ويتم اضافه له عند وضع الshapes على لوحة الرسم .. حلك صحيح ولكن: 1- في حال ليدنا المئات من الshapes هل يوجد حل أسرع؟ 2- ماذا لو يوجد أشكال فوق بعضها ، أيها سوف تعيد؟
-
لا.. فقط معرفة اي shape تم الضغط عليه .. مثال لدينا شكل shape1 احداثياته 10,10,100,100 وشكل shape2 احداثياته 200,200,250,250 والمستخدم نقر على الاحداثيات 50,50 فالكود المطلوب يجب ان يرجع shape1 .. أريد أي حل يحقق المطلوب وكودوز لأسرع خوارزمية :)
-
معظمكم يعرف سلسلتي شغل مخك في أيام الخوالي .. أحببت أن أعيدها وأقدم أسئلة أقوى وبتحدي أكبر :) الحلول ممكن أن تكون بأي لغة سي ، سي++، سي# ، psuedo code ، ... أبدأ الجزء الثاني من السلسلة بهذا السؤال .. مهمتك برمجة جزء من برناج رسم ثنائي الأبعاد .. لنقل smart paint .. يمكنك من خلال البرنامج ان تضع اشكال مثلا مربع دائرة خط نقطة .. الخ .. ووظيفتك أن تصمم الكود المسؤول عن اختيار الأشكال أي الكود داخل mouse click event .. مهمتك كتابة كود للتابع التالي: Shape Select(int x, int y) { }; للتسهيل ، يمكنك ان تعتبر أي شكل محاط بمستطيل وبالتالي تسهل عملية فحص إذا كانت الكليك تابعة للشكل ام لا.. أي أن كل shape يحتوي على التالي: class Shape { public int x1, y1, x2, y2; // boundry public bool IsInside(int x, int y); } المطلوب منك تصميم ال data structure لحفظ ال shapes ، أي كيف سوف تحفظ الأشكال بالذاكرة وكتابة الكود الذي يحقق أسرع وقت من أجل ملاقاة الشكل .. :wacko:
-
كيف احصل علي اكبر و اصغر عدد من مجموعة اعداد
هاني الأتاسي رد على soliman123's موضوع في Microsoft Visual C#.NET
ليش التعقيد ياشباب! هذا حل دحدوح من غير استخدام مصفوفات ولا ستاك ولا كيو! using System; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int max = int.MinInt; int min = int.MaxInt; do { Console.Write("Enter value: "); string input = Console.ReadLine(); int val; if (int.TryParse(input, out n)) { if (val > max) max = val; if (val < min) min = val; } else { Console.WriteLine("Invalid value!"); } } while (input != "-"); Console.WriteLine("Min: {0}, Max: {1}", min, max); } } } -
كيف احصل علي اكبر و اصغر عدد من مجموعة اعداد
هاني الأتاسي رد على soliman123's موضوع في Microsoft Visual C#.NET
بن عوض .. شكرا للتوضيح ... وإذا سمحت لي أن أوضح أكثر .. لا يعني من وجود دالة جاهزة أن يتم استخدامها .. مثلا أفضل من ال sort في هذا المثال يمكن استخدام linq extensions: int[] a = new[] { 1, 2, 3 }; int max = a.Max(); int min = a.Min(); ولها complexety of O(N) مثل الكود الذي كتبته .. ولكن باستخدام دالتي Max و Min يعني أننا سوف نفحص كل رقم مرتين بدال مرة واحدة كما في الكود السابق.. -
المشكلة الآن ، تجد الكثير من مخدمات الويب يقومون بحل نفس المشكلة وهي كيف يمكن زيادة سرعة الموقع والحفاظ على عمله في أوقات الضغط العالية .. أول من أعطى خدمة الاستضافة في بيئة تشبة الcloud هي Amazon في Ec3 . وتلتها جوجل وميكروسوفت . خدمة ميكروسوفت هي مختلفة بعض الشئ عن البقية فهي بيئة تشغيل جديدة تتيح استضافة برامج و خدمات مهما كانت في بيئة الcloud .. بشكل عام أعتقد أن المبرمجين والشركات سوف يتوجهون للcloud لأنها تتيح لهم بيئة مرنة وقابلة للتضخم وهم بالتالي يستطيعون التفرغ في كتابة البرامج نفسها .الcloud مازالت في أولها ومع ذلك تلاقي استحباب واسع والعديد من المطورين بدأو في كتابة برامج وأمثلة عليها . والعديد من المواقع الحالية في الشبكة ممكن كتابتها لتعمل على الcloud بشكل أسرع وأداء أفضل .. فإذا كانت الفرصة متاحة من أجل أن أحمل موقعي على أكثر من سيرفر فلما لا.. المستقبل ل cloud and parallel computing! في المستقبل أعتقد أنه سوف يكون هناك نوعان من البرامج: برامج على سطح المكتب و برامج في الcloud .. فمهما تطورت الانترنت فالمستخدم مايزال يريد بعض البرامج القوية التي تحتاج جهاز قوي من أجل أن تعمل .. أما البرامج الأخرى كمحرر النصوص وخلافها فممكن أن تعمل في ال cloud وفي الجهاز المنزلي ايضا على حسب رغبة المستخدم.. ميكروسوفت أعلنت أيضا بأنها سوف تنتج مجموعة Office من أجل أن تعمل على ال cloud وهي خطوة جديدة في هذا المجال ..
-
The String Function "endswith" Is Case-sensitive
هاني الأتاسي رد على Xlance's موضوع في قسم تكنولوجيا Microsoft .NET العام
Or even better use: str.EndsWith("someValue", StringComparison.OrdinalIgnoreCase); -
هل توجد طريقة لجعل Vs2008 Express يقرا قوالب منشأة بإصدار 2005
هاني الأتاسي رد على vbm's موضوع في قسم تكنولوجيا Microsoft .NET العام
They should be compatible.. rename the file to a zip file and open it up.. if it didn't open, it might be corroupted.. refer to this link: http://msdn.microsoft.com/en-us/library/ms185314.aspx -
أساسيات ال Threading مشكلة Race Condition
هاني الأتاسي رد على admin_cs's موضوع في Microsoft Visual C#.NET
Nice article.. Parallel C# is just a new extension for C# and also for C++ to allow programmers in C# to write parallel applications easily.. The most powerfull tool now, yet not programmer friendly, that allows you to program on a wide scale (like super computers) is MPI.. The basics of all parallel libraries is to give you methods for reductions (Parallel.Reduce) and expansions (Parallel.For). If you are using lock, don't lock on the (this), because you never know if the caller locks on your object, which would result in dead locks (two resources holding on the same lock).. If you want to use lock, lock on a private member. private object lockObject = new Object(); lock (lockObject) { }