رحيق الزهور نشر 28 يونيو 2022 أرسل تقرير نشر 28 يونيو 2022 ماهي الArray وmenu وما الفرق بينهما وبين List 1 اقتباس
0 Wael Aljamal نشر 2 يوليو 2022 أرسل تقرير نشر 2 يوليو 2022 إن List هي بنية معطيات مدعومة ضمن لغة برولوك، نضع فيها قيم مختلفة، وتتكون بشكل رئيسي من رأس القائمة head و الذيل وفيه بقية العناصر tail. التعامل مع القوائم في Prolog : يعبر عن القائمة الخالية ب [ ] أما القوائم غير الخالية فتأخذ الشكل: [Head |Tail] مثال: إذا كتبنا الحقيقة التالية: factlist([a,b,m,j,k]). ومن ثم سألنا الاستفسار التالي في مفسر ال Prolog : ?- factlist([Head|Tail]). سيكون الجواب : Head= a Tail= [b,m,j,k]. لتمييز نوع العناصر ذرات أما قوائم يمكن استخدام الإسنادات التالية: atom(X) تكون صحيحة إذا كان الوسيط فعلا ذرة. ولكن لا يمكن استخدام هذه الإسنادية مع الأرقام ! is_list(X) تكون صحيحة إذا كان الوسيط فعلا قائمة. ويمكن أن تكون عناصر القائمة أرقام مثال: ( تطبيق find في المثال الأخير) البحث عن عنصر ضمن قائمة: member( _ , _ ) للبحث عن عنصر ضمن قائمة. X قيمة نبحث عنها القائمة نقارن الرأس أي أول عنصر من القائمة مع العنصر الذي نبحث عنه، وفي حال لم يتم التطابق يتم البحث في باقي عناصر القائمة والتي هي Y (قائمة الذيل) نفس القائمة الأولى بدون أول عنصر member2(X,[X|_]). member2(X,[_|Y]):- member2(X,Y). أما Array: فهي غير موجودة من أصل اللغة، أي لا يمكن الحصول على قائمة مفهرسة (لا يمكن الوصول للعنصر 3 مباشرة) أي يتم التعامل مع القوائم بشكل قوائم مترابطة Linked List وعليك المرور عليهم بطريقة عودية من خلال استدعاء الدالة التي تقوم بالتجوال على القائمة مع تمرير عداد لمعرفة ترقيم العناصر أو فحص القيم الخاصة بهم. أي لتشكيل قائمة لها طول ثابت عليك تعريف هذا الموضوع برمجياً بشكل مخصص. أما menu هي عبارة عن قائمة اختيارات ممكنة للمستخدم، لتنفيذ إجراءات أو استعلامات محددة مسبقاً. يتم العمل بهذه menu على شكل حلقة تكرارية تطبع الخطوات الممكنة التي يقوم بها البرنامج ثم تستقبل دخل المستخدم و تنفذ الإجرائية ثم تعود لطباعة قائمة الاختيارات. تستخدم القائمة menu الأمر repeat للتكرار و المثال التالي لاستعراض قائمة اختيارات ثم تنفيذ فعل action محدد بالرقم المدخل من المستخدم. main :- repeat, % تكرار طباعة القائمة write('-------MENU-------'), nl, write('1. add'), nl, write('2. find'), nl, write('3. delete'), nl, write('4. exit'), nl, write('Choose : '), read(Z), % قراءة دخل المستخدم ( Z = 4 -> !, fail ; true ), % ايقاف البرنامج if Z = 4 action_for(Z), % تنفيذ الإجرائية fail. % إيقاف البرنامج لدخل 4 يكون الإجرائية أو الدالة action for مكتوبة من المبرمج مثال: action_for(X) :- write('Action for '), write(X), nl. ... سيكون التنفيذ: | ?- main. -------MENU------- 1. add 2. find 3. delete 4. Exit Choose : 1. Action for 1 -------MENU------- 1. add 2. find 3. delete 4. Exit Choose : 2. Action for 2 -------MENU------- 1. add 2. find 3. delete 4. Exit Choose : 4. no | ?- اقتباس
السؤال
رحيق الزهور
ماهي الArray وmenu
وما الفرق بينهما وبين List
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.