اسم الملف عندك RAMO وانتي لم تحملي الملف المطلوب بل كان aml . يجب ان تحملي اللف نفسه ..
هذا ما اراه في الصور المرفقه
بالتوفيق
اسم الملف عندك RAMO وانتي لم تحملي الملف المطلوب بل كان aml . يجب ان تحملي اللف نفسه ..
هذا ما اراه في الصور المرفقه
بالتوفيق
( HASSAN ) كتب:اسم الملف عندك RAMO وانتي لم تحملي الملف المطلوب بل كان aml . يجب ان تحملي اللف نفسه ..
هذا ما اراه في الصور المرفقه
بالتوفيق
السلام عليكم
لالا هدا فقط لاني حاولت في الموضوع عدة مرات وبعدة تسميات ولكن اذا لاحظت في الصورة المرفقة الاولى اسفلها
cannot open for write
جزاك الله خيرا
تابع LIST
بعض الادوات والاوامر التي تستخدم في LIST
Length
length ( [arg1,arg2,...,argn],Output_Name) ....
مثال:-
length([Ali, Rami,Banana, [], [10, 21, 3, 100]], L).
يكون الجواب 5 وهذا يدل على طول القائمه وكم تحتوي على عناصر كما لاحظنا انه كانت هنالك انواع مختلفه من العناصر مثل Ali و [] و قائمه تحتوي على ارقام داخل القائمه الام
11 ?- length([Ali, Rami,Banana, [], [10, 21, 3, 100]], L). L = 5.
مثال اخر لنفرض اننا نريد ان ننشيء قائمه يكون عدد العناصر بها اي رقم نريد :-
length(New_list, 5).
يكون الناتج كالتالي :-
length(New_list, 5). New_list = [_G869, _G872, _G875, _G878, _G881].
فيضهر لنا انه تم انشاء قائمه تحتوي على 5 arg , وبما اننا لم نحدد هذه العناصر فتقوم البرولولغ بانشاء ارقام من تلقاء نفسها بدل اماكن هذه العناصر .
member
member(Element,list). هذا يعني اننا نريد ان نسأل هل العنصر Element موجود او احد عناصر القائمه list
مثال :-
member(sami, [ali, rami, khaled, sami, hassan]).
فيكون الجواب True اذا كان موجود و False اذا لم يكن .
6 ?- member(sami, [ali, rami, khaled, sami, hassan]). true
append
هنا يعمل ربط ودمج بين قائمتين او اكثر
الصيغه العامه :-
append( first_list,second_list,new_list).
مثال :-
append([a,b,c],[d,e,f],New_list).
يكون الناتج :-
15 ?- append([a,b,c],[d,e,f],New_list). New_list = [a, b, c, d, e, f].
ملاحظه مهمه :- اتمنى ان لا تقع في هذا الخطأ , اسم القائمه الجديده او قائمة الربط يجب ان تبدأ باحرف كبيره Capital , بمعنى New وليس new
reverse
هذا الامر او الداله تعمل على تغير ترتيب القائمه بشكل عكسي .
reverse([hassan,omar,khaled], Reverse_list).
ويكون الناتج :-
reverse([hassan,omar,khaled], Reverse_list). Reverse_list = [khaled, omar, hassan].
وهنالك ادوات و اوامر اخرى اتمنى الاطلاع عليها من المراجع السابقه .
نعود لاحقا ان شاء الله ..
بالتوفيق
لقد اكتشفت الخطا وهو اني لم اكن اعمل خيار
SAVE A BUFFER
بعد كتابة البرنامج
دمتم بحفظ الرحمن :)
السلام عليكم ورحمة الله وبركاته ..
مثال لكتابة برنامج المضروب باستخدام البرلولغ .
factorial(0,1). factorial(X,Y) :- X1 is X - 1, factorial(X1,Z),Y is Z*X.
افضل طريقه لكتابة المضروب في البرلوغ هو عملها بشكل تكراري من خلال الكود السابق تلاحظ اننا اول امر كتبناه هو
factorial(0,1).
وهذا يعني اننا نعمل رجوع للقيمه عندما نصل للقيمه 0 وهي اخر رقم في المضروب وتكون قيمته دائما صفر ( factorial(0,1)
اذا في هذه الحاله ماعلينا الا كتابة الامر في شاشة البرنامج كالتالي :-
factorial(6,Y).
او اي رقم او متغير تريد . فيكون الناتج هنا :-
factorial(6,Y). Y = 720
يقوم البرنامج بجمع 6! و 5! و 4! و 3! و 2! و 1! وحتى يصل الى 0! والذي تكون قيمته 0
6!+5!+4!+3!+2!+1! = 720
هنالك اكثر من طريقه لكتابة المضروب.
في المرفقات ستجد برنامجين الاول باسم factorial وهو الذي ذكرته و الثاني ياسم factorial program وهو يشرح طريقه ثانيه لحساب المضروب وستلاحظ من خلال حجم الكود المكتوب ما هو الفرق بين الطريقه الاعتياديه لكتابة المضروب وطريقة recursivelly التي شرحتها في اول طريقه لكتابة المضروب ..
كود الطريقه الثانيه :-
factorial program.pl
factorial(N,FactN):-
fact_inter(N,FactN,0,1).
fact_inter(N,FactN,I,J):-
I=N,FactN is J.
fact_inter(N,FactN,I,J):-
I<N,
NewI is I+1,
NewJ is J*NewI,
fact_inter(N,FactN,NewI,NewJ).امر الكتابه للحصول على الناتج نفس الامر السابق :-
factorial(6,FactN).
ويكون الناتج :-
6 ?- factorial(6,FactN). FactN = 720
بالتوفيق .
السلام عليكم
بارك الله فيك يا د حسان على هذا الشرح الوافي
الهي...
لبست ثوب الرجا والناس قد رقدوا
وقمت أشكو إلى مولاي ما أجد
وقلت يا عُدتي في كــل نائبــة
ومن عليه لكشف الضر أعتمد
أشكو إليك أمـورًا أنــت تعلمها
مالي على حملها صبرٌ ولا جلدُ
وقـد مددت يــدي بالذل مبتهلاً
إليك يا خيـر م...ن مُدتْ إليه يد
فــلا تردَّنَّهــا يـا رب خائبةً
فبحر جودك يروي كل ما يردُ
ممكن أعرف كيف أعمل انترفيس سواء بالhtml أو VB
لبرنامج Amzi
أحتاج الى برنامح يقوم بعكس عناصر قائمه معينه ،كيف أتمكن من كتابته كاملا؟؟؟؟ أرجو المساعده بسرعه
وأتمنى اذا كان هناك أي كتاب للغة prolog بالغة العربيه
تم تعديل هذه المشاركة بواسطة safiya في 2 يونيو 2010 في 01:16
السلام عليكم اخي حسان اذا تكرمت بما انك متمكن ببرمجه برولوج مطلوب مني برنامج بسيط عن البورصه وتطبيق الرولز بالذكااالصناعي والوقت لا يسمح بتعلمها
فياريت اذا بامكانك اتساعدني او اكون شاكره بالتوفيق
السلام عليكم
اشكركم على الشرح والتوضيح وجزاكم الله خير على تعبكم هذا
بس عندي سؤال انا لساتني مااشتغلت اصلا على برولوغ ولا عندي اي معرفة فيه هلاء جمعت كم معلومة وكم برنامج بس المشكلة مش عارفة كيف ومن وين بدي انزل البرنامج الي رح اكتب بداخلو الكود ....ياريت لو فيكم تساعدوني مع الشكر مقدما
programmer nona كتب:السلام عليكم
اشكركم على الشرح والتوضيح وجزاكم الله خير على تعبكم هذا
بس عندي سؤال انا لساتني مااشتغلت اصلا على برولوغ ولا عندي اي معرفة فيه هلاء جمعت كم معلومة وكم برنامج بس المشكلة مش عارفة كيف ومن وين بدي انزل البرنامج الي رح اكتب بداخلو الكود ....ياريت لو فيكم تساعدوني مع الشكر مقدما
اقرا الموضوع من البدايه رح تستفيد ان شاء الله , والبرنامج موجود في المرفقات
تحياتي
مجهود كبييييييييير مشكور أخي حسان وربنا يجزيك ألف حسنه نظير مجهودك
مشكور دكتور عل المحاضرات شكرا جزيلا
مشكووووووووووووووووووووووووووووووور
جزاك الله خير
مشكورعلى المجهود العظيم
شكرا لك جزيل الشكر اخي الغالي HASSAN مجهود رائع
مشكور وماقصرت