• الإعلانات

    • فيصل الحربي

      تسجيل عضوية جديدة في المنتدى   01/31/2016

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

usama707

أعضاء الشرف
  • عدد المشاركات

    378
  • تاريخ الانضمام

  • تاريخ اخر زياره

كل شيء نشر بواسطة usama707

  1. Required for a multinational company in Egypt Job Description -Contribute in different software development project phases. -Implement the process identified for the project. -Attend daily & weekly project internal and customer meetings to report on progress. -Contribute with improvement proposals whenever possible Job Requirements -B.Sc. in Communication, Electronics or Computer Engineering. -From 0 to 5 years of relevant experience. -Knowledge of software validation and C-Programming. -Knowledge of embedded C-Programming, Microcontroller architecture, real time design. -Experience in Test bench using emulators/simulators is a plus. -Experience in Object-oriented programming, C/C++, MFC, Win32 APIs, XML Technology, Matlab Scripting is a plus. If you see that you're fit for the position, please send your CV to [email protected]
  2. Job Description -Manage several projects simultaneously, each running at a different phase ensuring the management of all aspects of the project -Ownership of the project since its acceptance till its closure, and leading the project initiation phase. -Main contact person with the customer during the project life time. -Prepare the schedule and planning of the project to meet the customer requirements. -Control the project in terms of budget, milestones, dependencies and actions. -Follow all Valeo Egypt Quality Standards & processes. -Manage the project risks and issues. -Report the project to different stakeholders (customers, management and senior management team). -Track and lead the project team members follow-up on their work. Job Requirements -B.Sc. in Communications, Electronics or Computer Engineering. -Minimum 6 years of development experience of which 2 years in Project Management. -Experience in embedded systems development is a plus. -Excellent command of English Language (written and verbal). -Excellent communication skills. If you see that you're fit for the job, please send your CV to [email protected]
  3. لو كانت المصفوفة معكوسة تماماً فيمكنك بكل بساطة عمل reverse لها في Linear Time ... لتصبح مرتبة تصاعدياً أما لو كنت متأكد انها معكوسة لحد ما .. مثلاً 9 - 8 - 2 - 7 - 6 - 5 - 4 - 1 - 3 - 0 فيمكنك عمل reverse للمصفوفة أولاً لتصبح 0 - 3 - 1 - 4 - 5 - 6 - 7 - 2 - 8 - 9 ثم عمل Insertion Sort على المصفوفة الذي يعمل بشكل جيد إذا كانت مرتبة لحد ما بصفة عامة Randomized Quick Sort يعطي أفضل النتائج ، بالذات أنه يمكن تحسينه و عمل Optimization بشكل كبير كأن يتم ترتيب العناصر بإستخدام Insertion Sort مثلاً عندما يكونوا أصغر من عدد معين (20 كمجرد مثال لكن يجب عليك التجربة بنفسك للحصول على افضل النتائج) في كل الحالات ابتعد عن ال Bubble Sort تماماً
  4. مساعدة في كود : الترتيب والبحث

    هذه المسأله لا أنكر انها ليست سهله .. و استغرقت بعض الوقت للوصول للحل وجدت سؤال لكي منذ قليل عن الBinary Search .. و هو من الخوارزميات البدائية و البسيطة جداً مما يعني انك مازلتي في مرحلة بداية تعلم الخوارزميات على العموم للأسف لا استطيع شرح الخوارزمية بطريقة افضل من ذلك .. فقط حاولي التركيز في ما كتبته جيداً و حاولي التركيز و التجربة ببعض الأمثله ارسميها على الورق و نفذي الخوارزم على الورق و إن كنتي بدأتي بتعلم الخوارزميات حديثا ، يجب أن تأخذي الوقت الكافي للتعلم و لمحاولة حل المسائل بنفسك
  5. جدول ديناميكي قياسي

    لما تستخدم malloc و realloc التابعين للسي داخل كود سي بلس بلس يتم إستخدام ال templates فيه؟ ليست هذه طريقة جميلة أبداً لكتابة كود أيضاً عن الإنتقال من لغة إلى أخرى ، لا تحاول أن تكتب كود اللغه القديمة بإستخدام الSyntax الخاص باللغه الجديده ، حاول أن تتعلم الفلسفة وراء اللغه الجديده أولاً لكي تستغل امكانياتها جيداً و بصورة جميلة
  6. مساعدة في كود : الترتيب والبحث

    بالنسبة للحل التقليدي فهو بالتأكيد عن طريق ال Merge لإستخراج العنصر بالترتيب i و سيأخذ وقت خطي (Linear Time) أما بالنسبة لحل هذه المسأله على Two Arrays فقط فلنفرض أنهم A و B و أننا نريد إيجاد العنصر ذو الترتيب i نحن نعلم أن الTwo Arrays are sorted لنفترض أن لدينا Two Arrays A and B و أن كل منهم تحتوي على 12 عناصر و أن أول عنصر ترتيبه هو صفر و أننا نريد أن نجد العنصر صاحب الindex الذي هو 6 يعني العنصر السابع سنحسب أولا i / 2 = 6 / 2 = 3 we will compare A[3] with B[3] if A[3] == B[3] that means we have 3 elements in A and 3 elements of B which are all less than or Equal to A[3] and B[3] so we have six elements A[0], A[1], A[2], B[0], B[1], B[2] which are all less or equal to A[3] and B[3] and we know that all elements after A[3] and B[3] will be either greater than or equal to them, so we find out that A[3] = B[3] is actually the element with index 6 when merging both of the arrays otherwise for the case that A[3] > B[3] .. we find that A[3] is bigger than three elements in A at most and at least bigger than 4 elements in B including B[3] ... if the element we are looking for is in A it can't be after A[3] because that elements will now be bigger or equal to 8 elements ... A[0] to A[3] and B[0] to B[3] ... so its rank will be at least 8 ... if the element is in B, it can't be smaller than B[3] because if it does, then it will have a rank lower than that of B[3] which is lower than 6 ... which is impossible, so now we know that the element must be in either A[0 ... 3] or B [3 ... 11] ... so we use recursion on these two subarrays and we take into consideration the elements we neglected from B (which must be smaller than the element we are looking for) so we search in these with an element of rank 6 - 3 = 3 A similar argument applies when A[3] < B[3] .... and there's a similar argument too for 3 Arrays The main point here is that we are looking for k elements to remove which are smaller than the element we are looking for. we remove the elements from our consideration and take into account how they change the new index we are looking for (i - k) and as long as k is a portion of n ... n/2 ... n/3 ... n/100 ... the running time will be logarithmic عذراً على الكتابة بالإنجليزية لكن وجدت من الأسهل شرح الخوارزمية بهذه الصورة
  7. مساعدة في كود : الترتيب والبحث

    Very Nice Problem !! بعد تفكير عميق .. وجدت الخوارزمية التي تحلها في Logarithmic Time إذا استطعتي الوصول لها فلا اعتقد سيقابلك الكثير من المشكل في كتابة الكود بالسي .. فقط تعاملي جيداً مع ال Special Cases ال Special Cases ستحدث عندما لا يمكنك تطبيق ال Divide and Conquer على أحد الArrays أكثر من ذلك .. في هذه الحالة اعتقد يمكنك استخدام الMerge و لكن بالطبع بدون عمل Merge في الحقيقه ...
  8. مساعدة مبتدىء

    منصحكش بيه قوي لإنه للأسف مبيعتمدش اخر حاجه نزلت في السي بلس بلس اللي بنسميها ال Standard :D
  9. معنديش معلومات عن مكتبات Cross-Platform بتعمل كده الصراحه ، ممكن حد تاني من الاخوه يكون عنده فكره
  10. مساعدة مبتدىء

    النسخه ال Express اللي حطيتلك اللنك بتاعها دي مجانيه مش ل30 يوم ولا حاجه .. شكلك نزلت نسخه تانيه أما بالنسبه للكتب ، فيه كتاب مشهور قوي إسمه Object Oriented Programming in C++ و فيه كتاب تاني إسمه C++ How to Program عموماً إبدأ انت بس و إحنا معاك في اي حاجه ان شاء الله :)
  11. مساعدة مبتدىء

    يا باشا و لا يهمك اللي في الرابط و انت نزلته ده مش البرنامج نفسه ، دي مجموعة ملفات لازمه عشان تشغيل البرامج اللي بيكتبوها بVisual C++ 2010 جرب تنزل الService Pack 3 و بعدين تنزله من الرابط اللي انا حطيته فوق و لو النت عندك بطيء و مكسل تنزل Service Pack 3 ، فده رابط للنسخه بتاعة 2008 و محتاج يكون عندك Service Pack 2 http://www.microsoft.com/visualstudio/en-us/products/2008-editions/express هتختار Visual C++ 2008 من القايمه اللي عندك و تدوس Download
  12. مساعدة مبتدىء

    فيه مترجمات تانيه ، بس ده تقريباً الوحيد اللي استخدمته على ويندوز و من اسهلهم و تقدر تعمل منه كل حاجاه تقريباً عموماً أنا رأيي الشخصي انك تنزل ال SP3 و خلاص و تقدر تنزلها من هنا http://www.microsoft.com/download/en/details.aspx?id=24
  13. مساعدة مبتدىء

    break ليس داله و إنما operator و لا يمكن إستخدامها في ذلك المثال البسيط بل إستخدامها قاصر على ال Loops أو داخل Switch Block بالنسبة لمشكلتك يا اخ m_farouk ، فواضح إن المترجم إللي بتستخدمه قديم و لا يلتزم بال C++ Standards أما بالنسبه للمترجم فأنصحك بإستخدام Visual C++ 2010 Express أما لحل مشكلتك مؤقتاً فجرب الكود التالي #include <stdio.h> #include <iostream.h> using namespace std; int main() { cout << "Hi C++" << endl; getchar(); return 0; }
  14. هذا مثال على إستخدام DirectSound الموجوده داخل DirectX لصنع Voice Chat Application A Voice Chat Application in C# بالنسبه للWeb Cam فلا أدري إن كان يمكن عمل ذلك بإستخدام DirectX ... لكن يمكن بكل سهوله عمل ذلك بإستخدام Direct Show كنت قد قرأت عنها و استخدمتها من فتره ، المكتبه سهله للغايه و لست مضطر إلى تعلم COM للإستخدامات البسيطه ، لو كنت سأصمم ذلك البرنامج فسأقيس سرعة النقل بين الجهازين أولاً لتحديد سرعة نقل ال Frames و ربما جودة الصور ، ثم سأستخدم ال DirectShow Library لإلتقاط صور (Frames) ، و ليس فيديو قبل نقلها ..
  15. فكر ...معايا

    لي ملحوظه صغيره فقط : بالنسبه لحل الأخ M.B.O فسيأخذ من المستخدم أول كلمة فقط ، بمعنى لو أدخل المستخدم جملة "Hello World" فسيحتوي النص على كلمة "Hello" فقط بينما كان المطلوب في الحل الأساسي أن يحتوي على النص الذي تم إدخاله كاملاًً بإستخدام cin.getline
  16. Object Oriented Thought Process: كتاب يتحدث عن المباديء ببساطه بالنسبه للC++ فهناك العديد من الكتب مثل : Object Oriented Programming in C++, C++ How to Program بعد قراءة احدهما ، انصحك بقراءة Wrox Professional C++ بالنسبة لData Structures and Algorithms Introduction to Algorithms, MIT Press : من أفضل الكتب في هذا المجال كذلك قد تجد بعض الكتاب بأسماء : Data Structures in C++, Data Structures and Algorithms in C++ هي جيده أيضاً بالنسبة لComputer Organization and Architecture Hardware and Computer Organization, The Software Perspective ال X86 Assembly فهناك العديد من الكتب قد تقرأ أياً منها لكن أنصحك بتعلم التعليمات الأساسيه فقط و الArchitecture الخاصه بالمعالج الOperating System Concepts فيمكنك قراءة Operating Systems Internals and Design Principles, William Stallings بالنسبة للWindows API فأنصحك بقراءة Programming Applications for Microsoft Windows
  17. هذه ليست سوى مجرد تقنيات ، إذا أردت أن تكون مبرمجاً محترفاً يجب عليك دراسة ال Concepts أولاً ، بعد ذلك لن تتطلب منك هذه التقنيات وقت يذكر لتعلمها على العموم أنصحك بتعلم التالي بهذا الترتيب Object Oriented Programming (ابحث عن كتاب عن المباديء فقط) C++ Data Structures and Algorithms Computer Organization and Architecture X86 Architecture & Assembly Operating System Concepts Windows API هذه أبسط المباديء إذا كنت تريد أن تكون مبرمج ويندوز ، و على حسب المجال الذي تريده ستضطر لتعلم المزيد من الأشياء مثال : إذا كنت تريد أن تكون مبرمج ألعاب فيجب أن تدرس الرياضيات جيداً و ال Graphics Programming ثم بعد ذلك يمكن تعلم DirectX أو إستخدام بعض محركات الألعاب و إذا أردت أن تحترف نظام التشغيل ويندوز أكثر ، فيجب عليك دراسة ال Driver Development Kit لأن هناك بعض الأشياء التي لا تستطيع فعلها إلا بكتابة Driver و على حسب البرنامج الذي تطوره قد تضطر إلى تعلم Artificial Intelligence, Neural Networks, Image Processing, TCP/IP Protocol Suite, Encryption, .... سيتطلب الأمر منك العديد من الدراسه و الكثير من الصبر و يجب أن تحب ما تفعله كثيراً حتى تنجح فيه
  18. أثناء تجوالي بين الصفحات وجدت مجموعة من المقالات الرائعة عن تصميم الكرنل و نظم التشغيل فأحببت أن أشاركها معكم الأولى Bran's Kernel Development Tutorial تضمن بعض أساسيات تصميم الكرنل تتحدث بالطبع عن الIRQ و ال Interrupt Descriptor Table و ال Global Descriptor Table و ال PIC و توفر لك بيئة بسيطة للطباعة على الشاشة و التعامل مع الكيبورد تفترض المقالة أنك تستخدم GRUB كBoot Loader لتحميل الكرنل في الذاكرة Overview This tutorial was created in an attempt to show you, the reader, how to set up the basics for a kernel. This involves: 1) Setting up your development environment 2) The basics: Setting the stage for GRUB 3) Linking in other files and calling main() 4) Printing to the screen 5) Setting up a custom Global Descriptor Table (GDT) 6) Setting up a custom Interrupt Descriptor Table (IDT) 7) Setting up Interrupt Service Routines (ISRs) to handle your Interrupts and IRQs 8) Remapping the Programmable Interrupt Controllers (PICs) to new IDT entries 9) Installing and servicing IRQs 10) Managing the Programmable Interval Timer / System Clock (PIT) 11) Managing Keyboard IRQs and Keyboard Data 12) ...and the rest is up to you! السلسة الأخرى و التى أراها أشمل و أغنى من الأولى هي Operating System Development Series وهي خاصة للمبتدئين أيضا و ستجدوا فيه روابط لكل البرامج المستخدمة بل و ستجد فيها أيضا شرح لتصميم الBoot Loader لتحميل الكرنل إلى الذاكرة و تتضمن المواضيع التالية # Bootloaders * Tutorial 1: Introduction * Tutorial 2: History and Basic Theory * Tutorial 3: Bootloaders * Tutorial 4: Bootloaders 2 * Tutorial 5: Bootloaders 3 * Tutorial 6: Bootloaders 4 # Stage 2 * Tutorial 7: System Architecture and Memory Mapping * Tutorial 8: Protected Mode * Tutorial 9: Direct Hardware Programming and A20 * Tutorial 10: Prepare for the Kernel Part 1 * Tutorial 11: Prepare for the Kernel Part 2 # The Kernel: Setting up * Tutorial 12: Kernel: Basic Concepts Part 1 * Tutorial 13: Kernel: Basic Concepts Part 2 * Kernel Setup: MSVC++ 2005 * Coming Soon: Kernel Setup: DJGPP * Coming Soon: Kernel Setup: Cygwin GCC # The Kernel * Tutorial 14: Kernel: Basic CRT Setup and Code Design * Tutorial 15: Kernel: Error, Exception, and Interrupt Handling * Tutorial 16: Kernel: PIC, PIT, and exceptions * Tutorial 17: Kernel: Physical Memory Management * Tutorial 18: Kernel: Virtual Memory Management (Demo not up yet) # Microcontrollers * 8259A Programmable Interrupt Controller (Advanced) * 8253 Programmable Interval Timer بالطبع لن تسطيع بعد قراءة هذه المقالات أن تكتب نظام تشغيل كويندوز أو لينكس في شهر أو في سنة!! وليس هذا هو الغرض منها لكنها تعطيك مقدمة جيدة عن تصميم الكرنل و عن كيفية عمل نظام التشغيل والقاريء المهتم ينصح بقراءة المزيد من الكتب عن Operating System Design Concepts قبل قراءة المقالات يفضل بالطبع معرفة أساسية بالx86 Assembly و معرفة أساسية أيضا بلغة السي
  19. Starcraft I كانت اللعبه المفضلي لي بلا منازع ... و ليس بعيدا على Blizzard تحقيق هذا النجاح
  20. عذرا لم أفهم هذه النقطه :) اذا كنت تريد الحصول على قيمتين او اكثر لهم نفس درجة التكرار فماذا إذا كانت كل العناصر مكرره بنفس الدرجه؟؟ فما الإختلاف إذن بين هذه الحاله و بين عدم وجود منوال؟ هذا الخوارزم سيبحث عن اكثر العناصر تكرار و اذا كانت كل العناصر لها نفس درجة التكرار سيرجع كل العناصر ================ يمكن ايجاد المنوال في زمن خطي O(N) Linear Time اذا كان مدى العناصر معروف مسبقا و صغير الى حد ما كالتالي Input: Array A, Size of the array (n) Output: Print the most recurring elements or create a list of them Algorithm: 1. Create an array C of size of the range of elements for example, if the elements in the array range from 0x0000 to 0xFFFF then create array C of size 0xFF 2. Loop through all elements in the array making all of them zeros for(i = 1; i <= Range; i++) C[i] = 0 3. Count the occurence of every value found in array A into array C => O(N) time for(i = 1; i <= Size; i++) C[A[i]] = C[A[i]] + 1 4. Find the maximum value k in C => O(N) time 5. Loop through the array C and print the index of any element with value k or add it to a list أما إذا أردت أن تعتبر أن المنوال يجب أن يكون عنصر واحد فقط واذا كان هناك عنصرين لهما نفسة الدرجة من التكرار و تصادف أنها اكبر درجة تكرار فيمكن عمل تعديل بسيط في الخوارزم السابق ليكتشف هذه الحاله و هنا لا يوجد منوال
  21. انا بتفق مع aohammed لا يمكن اعتبار ان هناك فعلا Worst-Case, Average-Case Nor Best Case Scenario لأن زمن تنفيذ الخوارزم يعتمد على عدد العناصر n بصفه أساسيه ولا يعتمد جقا على العناصر نفسها أو ترتيبها على عكس خوارزميات اخرى ك Insertion Sort الذي يعمل بكفاءه كبيره اذا كانت العناصر مرتبه فعلا الى حد كبير لكنه في أسوأ الحالات O(n ^ 2) هناك خوارزميات ترتيب اخرى تعمل في زمن O(n lg n) كال Merge Sort كما ان هناك خوارزميات ترتيب تعمل في Linear Time فتعتبر O(n) و ذلك تحت بعض القيود فهذه الخوارزميات لا تعتمد على المقارنه لترتيب العناصر :)
  22. الخوارزميات,,,لوجيك,,,جافا

    الموضوع مش صعب او مستحيل يا إسراء لو ركزتي شويه :) لو بيتم ادخال كل جمله في ال conjunctive normal form هيسهل عملية ال parsing جدا لاننا لن نحتاج لتحويلها لل conjunctive normal form و الا هتضطري لعمل parsing للجمل لتحويلها لل conjunctive normal form و ده مش هيكون صعب قوي لو درستي كورس Compiler Design بعد ادخال او تحويل الجمل الى CNF يتم تصميم algorithm للقيام بالتالي http://en.wikipedia.org/wiki/Resolution_(logic)#A_resolution_technique
  23. لغز حسابى

    انا بعتلك الحل يا دكتور عماد
  24. أنا في هندسة حاسب و موجود عندنا كورسات Computer Graphics و Image Processing و Computer Vision و كلا التخصصين سواء هندسة الحاسب أو علوم الحاسب يؤهلك لدراسة برمجة الألعاب و المواقع أما بالنسبة لتصميم الجرافكس فليس له علاقة بهذه التخصصات ...
  25. أيوه طبعا :D جالنا اكتر من مره يعمل seminars مجانا و ساعد الناس اللي داخلين robocon كانوا عاملين كمان كورس مكثف عن الEmbedded Systems الصيف اللي فات في جامعة القاهرة كنت حروحه بس حصلت ظروف مرحتش ركز في الكورس بقه و هاتلنا المحاضرات أول بأول ;)