Chapter 7 - Practice
Q1: write Predicate
- ايه ناتج كل استعلام من دول (لو في خطأ Syntax Error اشرح ليه):
?- write(c), write(8), write(r).?- write([a, b, c, d]).?- write(Hello World).?- write('Hello World').?- X = 5, write('Value = '), write(X).
Solution (write)
Q2: nl و tab
- هات ناتج الاستعلام ده:
?- write(a), tab(3), write(b), nl, tab(1), write(c).
Solution (nl and tab)
Q3: read Predicate
- استخدم
read & writeعشان تعمل برنامج بياخد الاسم من اليوزر ويقولهGreeting : username
Solution (read)
Q4: مكعب العدد (Cube) - نسخة بسيطة
- اكتب دالة
cubeبتطلب من المستخدم إدخال رقم، وبعدين تحسب الـ Cube بتاعه (n³) وتطبعه وجربها.
Solution (Basic Cube)
Q5: مكعب العدد (Cube) - Loop مع Cut
-
عدل دالة الـ Cube عشان تفضل تقرا أرقام وتطبع Cubes لغاية ما المستخدم يكتب
stop. -
وجربها:
?- cube.
|: 2.
|: 5.
|: 12.
|: stop.
Solution (Cube Loop)
Q6: جمع رقمين (Sum)
-
اكتب دالة
sumتقرا رقمين من المستخدم وتطبع مجموعهم. -
وجرب:
?- sum.
|: 10.
|: 15.
Solution (Sum)
Q7: Function مع Read و Cut
- اكتب برنامج
functionيقرا قيمة X من المستخدم ويحسب:- لو X ≤ 3 يبقى Y = 2X
- لو X > 3 يبقى Y = 4X + 5
- استخدم Cut .
وجرب:
?- function.
|: 2.
?- function.
|: 5.
Solution (Function with Cut)
Q8: الجذر التربيعي مع Validation
- اكتب دالة
sqrتقرا رقم X وتطبع الجذر التربيعي بتاعه (X^0.5). - لو الرقم سالب، اطبع ايرور من غير ما تحسب حاجة.
وجرب:
?- sqr.
enter number: 9.
?- sqr.
enter number: -4.
Solution (Square Root)
Q9: تصنيف درجات الطلاب (Succeed / Fail)
- اكتب دالة
test1تقرا درجة الطالب وتطبعsucceedلو ≥ 50 وfailلو أقل من 50 (بدون Cut). - اكتبها تاني باستخدام Cut .
وجرب:
?- test1.
enter score: 75.
?- test1.
enter score: 30.
Solution (Succeed / Fail)
Q10: اسم الطالب + الدرجة + النتيجة
-
اكتب دالة
testتطلب من المستخدم إدخال الاسم ثم الدرجة، وبعدين تطبع اسم الطالب مع نتيجته (succeed/fail). -
وجرب:
?- test.
enter your name: ahmed.
enter score: 85.
Solution (Name + Score)
Q11: قسمة رقمين مع تجنب القسمة على صفر
-
اكتب دالة
divideتقرا رقمين A و B وتطبع ناتجA / B. لو B = 0، اطبع رسالة خطأ. -
وجرب:
?- divide.
Enter A: 10.
Enter B: 2.
?- divide.
Enter A: 10.
Enter B: 0.
Solution (Division)
لو وصلت لهنا فعاش اوي باذن الله تقفل الماده ومتنساش تدعيلي