• الإعلانات

    • فيصل الحربي

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

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

ahmed_youssef

المشرفون
  • عدد المشاركات

    3,206
  • تاريخ الانضمام

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

السمعه بالموقع

737 ممتاز جدا

1 متابع

عن ahmed_youssef

  • الرتبة
    مشرف و خبير بايثون

طرق الإتصال

معلومات الملف الشخصي

  • الجنس ذكر
  1. نظام ملفات ل github

    قمت بكتابة نظام ملفات موجه ل Github عن طريق fuse https://github.com/xmonader/githubfuse  
  2. بايثون

    تستطيع استخدام هذه المكتبة https://bitbucket.org/xmonader/linuxsysinfo/src/b7b17b87cc05e42d9a88a4989dacd0dfa89a0f31/sysinfo.py?at=default&fileviewer=file-view-default
  3. لعبة سودكو الشهيرة، تعتمد في حلها على عدم تكرار نفس الرقم في نفس الصف او في نفس العمود او في نفس المربع   http://static.guim.co.uk/sys-images/Guardian/Pix/pictures/2013/5/8/1368009788549/Sudoku2499medium.gif سنقوم بعمل برنامج لحل اللعبة بإستخدام لغة برولوج وعلى نموذج مصغر 4x4 ولكن بنفس القواعد. والأرقام المقبولة هي 1,2,3,4   ?- solve(1,4, _, _, _, _, 4, _, 2, _, _,_, _, _, _, 3). 1 4 3 2 3 2 4 1 2 3 1 4 4 1 2 3   كيف نقوم بحل ذلك السؤال؟ انظر على حلول لغات مثل سي هنا http://rosettacode.org/wiki/Sudoku يوجد اتجاه او اسلوب برمجي اخر يسمى ال declarative programming ... كل ماعلينا هو أن نقوم بوصف الحل لا الخطوات للحل..   طريق سريع لبرولوج   1-التنصيب http://www.swi-prolog.org/Download.html   مستخدمي لينكس موجود لديكم في مدير الحزم striky@localhost ~/m/prolog> touch hello.pl master striky@localhost ~/m/prolog> swipl master? Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 6.6.6) Copyright (c) 1990-2013 University of Amsterdam, VU Amsterdam SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. Please visit http://www.swi-prolog.org for details.   For help, use ?- help(Topic). or ?- apropos(Word).   ?- write('Hello, World!'). Hello, World! true. ?- write('Hello,'), nl, write('world'). Hello, world true. ?- X is 3*4 + 2. X = 14. لاحظ أي امر في برولوج ينتهي بال نقطة . write يستخدم لطباعة نص nl تستخدم لطباعة سطر جديد البرنامج في برولوج عبارة عن قاعدة معرفة knowledge base وفيه يتم ادراج الحقائق facts وقواعد الأستنباط rules friend(john, julia). friend(john, jack). friend(julia, sam). friend(julia, molly).   loves(john, julia). loves(julia, sam). loves(sam, julia).   male(brad). male(john). male(jim). male(alfred). female(marry). child(brad, alfred). child(john, jim). child(john, marry). هذا ملف KB يشمل مجموعة من الحقائق ... برولوج ستساعدنا كثيرا لإجابة الكثير من الاسئلة .. لنرى! ?- [hello]. % hello compiled 0.00 sec, 3 clauses true.   ?- listing(friend). friend(john, julia). friend(john, jack). friend(julia, sam). friend(julia, molly).   true.   ?- listing(loves). loves(john, julia). loves(julia, sam). loves(sam, julia).   true.   ?- listing(parent). ERROR: toplevel: procedure `parent' does not exist (DWIM could not correct goal) نستطيع استخدام listing لعرض الحقائق ?- friend(john, julia). true .   ?- friend(john, jack). true.   ?- loves(john, julia). true.   ?- loves(john, sam). false. استعلامات بسيطة على الحقائق التي لدينا ?- friend(john, Who). Who = julia ; Who = jack. هذا الاستعلام يعني ... ماهي قيمة المتغير Who التي تجعل العلاقة friend(john, Who) صحيحة؟ نجد في ال KB قيم مثل julia وتقوم برولوج بإخبارنا بذلك .. ولكن يوجد قيم اخرى نستطيع الوصول اليها بالضغط على ; *لاحظ ان المتغيرات تبدأ بحرف capital   الواد john دا ابن مين ?- listing(child). child(brad, alfred). child(john, jim). child(john, marry).   true.   ?- child(john, X). X = jim ; X = marry. الأستنباط   يوجد الكثير من الأسئلة والأجابات مثلا هل العلاقات friend(julia, john) صحيحة؟ هل john is friendzoned؟ :D هل فلان ابو فلان؟ لنقوم بإضافة بعض القواعد rule :- stmt1, stmt2,... تنطق ال rule محققة اذا كان ( :- ) stmt1, stmt2 محققين   parent(X, Y) :- child(Y,X). فلان X هو أبو Y في حال اذا كان Y هو ابن ل X father(X, Y) :- child(Y,X), male(X). فلان X هو اب ل Y في حال اذا كان Y هو ابن X وX هو male mother(X, Y) :- child(Y,X), female(X). فلان X هي ام ل Y في حال اذا كان Y هو ابن ل X و X تكون female friend(X, Y) :- friend(Y,X). فلان X صديق Y .. اذا كان في ال kB معروف ان Y صديق X friendzoned(X) :- loves(X, Y), \+ loves(Y,X). فلان X في ال friendzone اذا كان X بيحب Y وفي نفس الوقت Y لاتحب X ?- friend(julia, john). true . ?- male(jim). true.   ?- parent(jim,X). X = john.   ?- father(jim, X). X = john.   ?- mother(X, john). X = marry.   ?- mother(marry,X). X = john.   ?- mother(marry, john). true. قصة قصيرة حزينة...   جون بيحب جوليا، ولكن جوليا وسام بيحبوا بعض ?- loves(julia, X). X = sam.   ?- friendzoned(julia). false.   ?- friendzoned(john). true. الكود   اولا نقوم بتعريف ال domain .. وهو القيم المقبولة للمتغيرات num(1). num(2). num(3). num(4). التأكد من أن القيم فريدة بين 4 متغيرات %create unique values of A,B,C,D based. uniq(A,B,C,D) :- num(A), num(B), num(C), num(D), \+ A=B, \+ A=C, \+ A=D, \+ B=C, \+ B=D, \+ C=D. هنا نقول ان A لايساوي B ولايساوي C ولايساوي D وكذلك B لايساوي C ولا يساوي D وكذلك C لايساوي D وكل منهم عبارة عن رقم قد يكون 1 او 2 او 3 او 4   الحصول على الحل %find solution to sudoku 4x4 based on constraints. solution(C11, C12, C13, C14, C21, C22, C23, C24, C31, C32, C33, C34, C41, C42, C43, C44) :- %rows (every row is uniq). uniq(C11, C12, C13, C14), uniq(C21, C22, C23, C24), uniq(C31, C32, C33, C34), uniq(C41, C42, C43, C44), %columns (every column is uniq). uniq(C11, C21, C31, C41), uniq(C12, C22, C32, C42), uniq(C13, C23, C33, C43), uniq(C14, C24, C34, C44), %blocks (every block (2x2) cells is uniq). uniq(C11, C12, C21, C22), uniq(C31, C32, C41, C42), uniq(C13, C14, C23, C24), uniq(C33, C34, C43, C44). لاتنزعج! اولا الboard او لوحة السودكو عبارة عن 16 خانة .. 4 صفوف و 4 أعمدة قم بتسميتهم من C11 الى C44 C21 تعني الخلية في الصف الثاني والعمود الأول   الآن لنصف الحل ..   الحل يعتمد على 1-تفرد القيم في كل صف ..   uniq(C11, C12, C13, C14)   هنا نقول ان القيم C11, C12, C13,C14 المكونة للصف الأول يجب ان يتم اسناد قيمة مختلفة لها من 1 ل 4 وهذا ماوضحناه في uniq وبالمثل مع الخلايا المكونة لباقي الصفوف الثاني والثالث والرابع   2- تفرد الفيم في كل عمود .. uniq(C11, C21, C31, C41) وبالمثل مع الخلايا المكونة لباقي الأعمدة 3- تفرد القيم في كل مربع لدينا ٤ مربعات (C11, C12, C21, C22) (C31, C32, C41, C42)(C13, C14, C23, C24)(C33, C34, C43, C44)   يجب ان تكون الأرقام مختلفة داخل المربع uniq(C11, C12, C21, C22)   لقد أنتهينا! الآن برولوج ستقوم بالبحث عن القيم اللتي تتفق مع وصفنا لتلك المشكلة   الآن لنقوم بعرض القيم solve(C11, C12, C13, C14, C21, C22, C23, C24, C31, C32, C33, C34, C41, C42, C43, C44) :-   solution(C11, C12, C13, C14, C21, C22, C23, C24, C31, C32, C33, C34, C41, C42, C43, C44), showrow(C11, C12, C13, C14), showrow(C21, C22, C23, C24), showrow(C31, C32, C33, C34), showrow(C41, C42, C43, C44),nl. كان من الممكن دمجهم في الكود السابق فقط نقوم بطباع كل 4 خلايا المكونين لصف عن طريق showrow المعرف كالتالي showspace :- write(' '). %row representation. showrow(A, B, C, D) :- showspace, write(A), showspace, write(B), showspace, write(C), showspace, write(D), nl. *لاحظ showspace تقوم بطباعة مسافة فارغة فقط لاأكثر   الكود كامل %based on thinking as computation example   %domain num(1). num(2). num(3). num(4). showspace :- write(' '). %row representation. showrow(A, B, C, D) :- showspace, write(A), showspace, write(B), showspace, write(C), showspace, write(D), nl.   %create unique values of A,B,C,D based. uniq(A,B,C,D) :- num(A), num(B), num(C), num(D), \+ A=B, \+ A=C, \+ A=D, \+ B=C, \+ B=D, \+ C=D.   %find solution to sudoku 4x4 based on constraints. solution(C11, C12, C13, C14, C21, C22, C23, C24, C31, C32, C33, C34, C41, C42, C43, C44) :- %rows (every row is uniq). uniq(C11, C12, C13, C14), uniq(C21, C22, C23, C24), uniq(C31, C32, C33, C34), uniq(C41, C42, C43, C44), %columns (every column is uniq). uniq(C11, C21, C31, C41), uniq(C12, C22, C32, C42), uniq(C13, C23, C33, C43), uniq(C14, C24, C34, C44), %blocks (every block (2x2) cells is uniq). uniq(C11, C12, C21, C22), uniq(C31, C32, C41, C42), uniq(C13, C14, C23, C24), uniq(C33, C34, C43, C44). solve(C11, C12, C13, C14, C21, C22, C23, C24, C31, C32, C33, C34, C41, C42, C43, C44) :-   solution(C11, C12, C13, C14, C21, C22, C23, C24, C31, C32, C33, C34, C41, C42, C43, C44), showrow(C11, C12, C13, C14), showrow(C21, C22, C23, C24), showrow(C31, C32, C33, C34), showrow(C41, C42, C43, C44),nl. https://github.com/xmonader/prolog-rands/blob/master/sudoku.pl
  4. مشكلة عند Parser Error

    شكل في مشكلة في علامات التنصيص" " حاجة فيهم مش مقفولة مظبوط
  5. طلب توضيح الفرق بين private و public

    حتى تتمكن من تحديد الشروط المطلوبة على الحقول ال private، على سبيل المثال لاتقوم بعملية اسناد مباشرة لحقل salary ... حتى تستطيع تحديد شروطك الخاصة لذلك فمثلا لايمكن ان تقبل salary بقيمة سالبة او غير منطقية فتجعل عملية الأسناد عبر ال setters
  6. مساعدة

    عليكم السلام ورحمة الله وبركاته، المنتدى ليس لحل الواجبات المنزلية ولكن لتقديم المساعدة والتصحيح لمحاولتك. ففضلا أرفق محاولاتك مع الموضوع
  7. لماذا نضع self فى هذا الكود

    self تعبر عن الكائن الحالي كثير من اللغات لاتضيفها اثناء تعريف ال methods ولكن بايثون تقوم بإضافتها كأول عنصر دائما لل instance methods    عندما تقول فإذا كان لديك كائن يسمى h1 وهو من الصف Human واستدعيت الmethod مثلا eat h1.eat()فسيتم تحويل ذلك الكود إلى Human.eat(h1)
  8. لماذا لا يعمل كود البحث هذا ؟

    ﻷن Hi اول ظهور لها عند ال index رقم 0 فلايتحقق الشرط، جرب المقارنة ب  std::string::npos بدلا من المقارنة مع 0   http://www.cplusplus.com/reference/string/string/find/
  9. احتاج function

    foreach (Char c : word) { }
  10. Clear Screen in java?

    ممكن تنفيذ امر مثل cls او clear حسب نظام تشغيلك او طباعة هذا الكود   System.out.print("\033[2J\033[1;1H");
  11. في كورسات C++ للماكـ ؟ بالعربي؟

    تستطيع استخدام مترجمات gnu او clang للتطوير على اجهزة ماك بدون مشاكل بالإضافة لبيئة تطوير مثل xcode او appcode او اي بيئة اخرى او محرر نصوص حتى
  12. هل يمكن أن اصنع وراثه ل 2class فى ال PyQt

    قم بعمل الwidget الذي تريد وأشتقه من QWidget وحدده ك CentralWidget في كلاس اخر مشتق من QMainWinow
  13. كيف تعمل for مع else

    else تتحقق في حالة انتهاء الحاوية ال container الذي تقوم بعمل ال loop عليه    >>> for x in []:...     print x... else:...     print "empty list"...     ... empty list>>> for x in ["hi", "bye", "okay"]:...     print x... else:...     print "empty list"...     ... hibyeokayempty list 
  14. VLC-Subtrack

    كتبت اداة لتشغيل جزء من مقطع مرة او عدد ما من المرات او عدد لانهائي، مناسب جدا للناس اللي بتحاول تحفظ قرآن ومعندهاش مصاحف تحفيظ كل اللي عليه يحدد فترة البداية والنهاية وعدد المرات وخلاص ^_^   طريقة الأستخدام python subtrack.py -t "/home/striky/hawa.mp3" -s 150 -e 280 -r 3   يوجد اختيار --forever لتشغيل المقطع عدد لانهائي    التطبيق بيستخدم python bindings ل vlc مرفقة في المستودع   https://bitbucket.org/xmonader/vlc-subtrack