عالم برمجةوتقنية الحاسوب C. P. W
758 subscribers
493 photos
53 videos
260 files
476 links
عالم الحاسوب برمجه وتقنيه وتطوير شرح كل ما يتطلب في مجال علوم الحاسوب والبرمجة
https://t.me/programming_C_w
قنات الجرافيكس @l_d_gh
#Digitalmarketing
#programming
#AI #CPA
#learn
التواصل معي @Eng_sharaf1
Download Telegram
📍 الخلاصة:

🚨 النسخ واللصق بدون فهم هو أسرع طريق للفشل في البرمجة 🚨

🔹 لا تكن مبرمجًا يعتمد على الآخرين، بل كن شخصًا يفهم الأكواد ويطورها بنفسه.

🔹 كل كود تنسخه دون فهمه هو فرصة ضائعة لتعلم شيء جديد

🔹 المبرمج الحقيقي ليس من يجمع الأكواد، بل من يستطيع كتابتها وتعديلها وفهمها بعمق🚀


📌 مهتم بتعلّم البرمجة بأسلوب عملي ومنظّم؟
انضم إلى قناة مختبر الكود وتعلّم من كتب وشروحات برمجية مفيدة:
🔗 @codlab

🔗 قنوات برمجية مفيدة لك:
📍 تحدي بايثون
شروحات واختبارات يومية بلغة بايثون للمبتدئين
@Python_Tahadi
📍 تحديات ++C
أسئلة وتمارين مبسطة في لغة ++C
@te_est
📍 برمجها
محتوى تعليمي مبسط في لغات البرمجة المختلفة
@Barmijha

🤍 لا تنسوني ووالدتي من دعائكم بظهر الغيب 🤲
🧠 9 - إهمال تعلم الخوارزميات وهياكل البيانات

المشكلة:

كثير من المبرمجين الجدد يركزوا فقط على تعلم لغات البرمجة (مثل بايثون أو جافا أو سي++) ويهملوا شيء جوهري:

"كيف تحل المشكلة؟ وكيف تنظم البيانات؟"

لو ما فهمت الخوارزميات وهياكل البيانات، فمهما كانت لغتك البرمجية قوية، برامجك ممكن تكون:

بطيئة

تستهلك ذاكرة أكثر من اللازم

غير قابلة للتوسع أو التعديل

📌 مهتم بتعلّم البرمجة بأسلوب عملي ومنظّم؟
انضم إلى قناة مختبر الكود وتعلّم من كتب وأدوات وشروحات برمجية مفيدة:
🔗 @codlab
الحل:

📌 أولاً: تعلم الخوارزميات الأساسية

🔸 الترتيب (Sorting):
يساعدك على تنظيم البيانات لتسهيل معالجتها.

Bubble Sort:
بسيطة وسهلة، لكنها غير فعالة في البيانات الكبيرة (تُستخدم للتعلم فقط).

Quick Sort:
سريعة وفعالة جدًا، وتُستخدم فعليًا في أنظمة كثيرة.

🔸 البحث (Searching):
كيف تلاقي عنصر معين بين ملايين العناصر؟

Linear Search:
يمر على كل عنصر حتى يلقى المطلوب — بطيء نسبيًا.

Binary Search:
سريع جدًا، لكنه يتطلب أن تكون البيانات مرتبة مسبقًا.

🔸 التكرار (Recursion):
حل المشكلات بطريقة تعتمد على "نفسها"، وتفيد في كثير من المسائل مثل:

حساب المضروب (Factorial)

تسلسل فيبوناتشي

استكشاف الأشجار

📌 مهتم بتعلّم البرمجة بأسلوب عملي ومنظّم؟
انضم إلى قناة مختبر الكود وتعلّم من كتب وأدوات وشروحات برمجية مفيدة:
🔗 @codlab
📌 ثانيًا: افهم هياكل البيانات الأساسية

🔹 Linked List (القوائم المرتبطة):
بديل عملي عن المصفوفات، تقدر تضيف وتحذف منها بسرعة بدون التأثير على العناصر الأخرى.

🔹 Trees (الأشجار):
تنظيم البيانات بشكل هرمي. مثال:

ملفات جهازك منظمة كأشجار.

تُستخدم في محركات البحث، وأنظمة التشغيل.


🔹 Hash Tables (الجداول التجزئية):
أفضل طريقة للوصول السريع لأي عنصر. تُستخدم في:

قواعد البيانات

أنظمة تسجيل الدخول

إدارة الكاش (Cache)

📌 مهتم بتعلّم البرمجة بأسلوب عملي ومنظّم؟
انضم إلى قناة مختبر الكود وتعلّم من كتب وأدوات وشروحات برمجية مفيدة:
🔗 @codlab
📌 ثالثًا: الممارسة المستمرة

أفضل طريقة تتقن فيها الخوارزميات وهياكل البيانات هي:

حل مشاكل حقيقية

التدريب على منصات احترافية


🔸 LeetCode:
منصة عالمية ترفع مستواك وتجهزك لوظائف شركات كبرى مثل Google و Amazon.

🔸 GeeksforGeeks:
يوفر شرح نظري وعملي لكل خوارزمية وهيكل بيانات، خطوة بخطوة.


📌 مهتم بتعلّم البرمجة بأسلوب عملي ومنظّم؟
انضم إلى قناة مختبر الكود وتعلّم من كتب وأدوات وشروحات برمجية مفيدة:
🔗 @codlab
💡 نصيحة ذهبية:

لا تجعل تركيزك كله على "اللغة"، وتهمل "الفهم".
اللغة مجرد أداة،
أما الخوارزميات وهياكل البيانات فهي عقلك كمبرمج.



كل شركة تقنية كبيرة لما تختبرك، ما تسألك عن لغة معينة…
تسألك "كيف تفكر؟ كيف تجيب؟ كيف ترتّب بياناتك؟"

📌 مهتم بتعلّم البرمجة بأسلوب عملي ومنظّم؟
انضم إلى قناة مختبر الكود وتعلّم من كتب وأدوات وشروحات برمجية مفيدة:
🔗 @codlab
🚀 الخلاصة :

ابدأ بتعلم الخوارزميات الأساسية:

الترتيب (Sorting)

البحث (Searching)

التكرار (Recursion)


بعدها افهم هياكل البيانات:

القوائم المرتبطة (Linked Lists)

الأشجار (Trees)

الجداول التجزئة (Hash Tables)


أجب على تحديات كل يوم، حتى لو واحدة بس.

راقب كيف يتحسّن تفكيرك المنطقي.

📌 مهتم بتعلّم البرمجة بأسلوب عملي ومنظّم؟
انضم إلى قناة مختبر الكود وتعلّم من كتب وأدوات وشروحات برمجية مفيدة:
🔗 @codlab
📌 تذكّر:
تعلم الخوارزميات وهياكل البيانات مش بس للامتحانات أو المقابلات،
بل لبناء برامجك بشكل محترف وسريع وذكي.


📌 مهتم بتعلّم البرمجة بأسلوب عملي ومنظّم؟
انضم إلى قناة مختبر الكود وتعلّم من كتب وأدوات وشروحات برمجية مفيدة:
🔗 @codlab
🔗 قنوات برمجية مفيدة لك:
📍 تحدي بايثون
شروحات واختبارات يومية بلغة بايثون للمبتدئين
@Python_Tahadi
📍 تحديات ++C
أسئلة وتمارين مبسطة في لغة ++C
@te_est
📍 برمجها
محتوى تعليمي مبسط في لغات البرمجة المختلفة
@Barmijha

🤍 لا تنسوني ووالدتي من دعائكم بظهر الغيب 🤲
🧠 9- إهمال تعلم الخوارزميات وهياكل البيانات

المشكلة:

التركيز فقط على اللغات البرمجية دون فهم الخوارزميات وهياكل البيانات يمكن أن يجعلك تواجه صعوبة كبيرة في بناء برامج فعّالة.

لماذا؟ لأنه إذا كنت لا تعرف كيف تنظّم البيانات وتتعامل معها بشكل صحيح، قد تكتب برامج بطيئة أو غير فعّالة، حتى لو كانت مكتوبة بلغة برمجة قوية.

📌 مهتم بتعلّم البرمجة بأسلوب عملي ومنظّم؟
انضم إلى قناة مختبر الكود وتعلّم من كتب وشروحات برمجية مفيدة:
🔗 @codlab

🔗 قنوات برمجية مفيدة لك:
📍
تحدي بايثون
شروحات واختبارات يومية بلغة بايثون للمبتدئين
@Python_Tahadi
الحل:

1. تعلم الخوارزميات الأساسية:

الترتيب (Sorting):

تعلم كيفية ترتيب البيانات بأسرع الطرق. على سبيل المثال:

ال Bubble Sort: سهل لكن بطيء في البيانات الكبيرة.

ال Quick Sort: أسرع وأكثر كفاءة.


البحث (Searching):

تعلم طرق البحث السريع في البيانات. على سبيل المثال:

ال Linear Search: يبحث في كل عنصر واحد تلو الآخر.

ال Binary Search: أسرع بكثير إذا كانت البيانات مرتبة.


التكرار (Recursion):

فكر في كيفية استخدام التكرار لحل المشكلات بدلاً من استخدام الحلقات التقليدية. مثلاً، لحساب عامل ضرب الأرقام أو إيجاد الأعداد الأولية.


📌 مهتم بتعلّم البرمجة بأسلوب عملي ومنظّم؟
انضم إلى قناة مختبر الكود وتعلّم من كتب وشروحات برمجية مفيدة:
🔗
@codlab


🔗 قنوات برمجية مفيدة لك:
📍 تحدي بايثون
شروحات واختبارات يومية بلغة بايثون للمبتدئين
@Python_Tahadi
2. افهم هياكل البيانات الأساسية:

القوائم المرتبطة (Linked Lists):

هي طريقة لتخزين البيانات التي يمكن أن تتغير بشكل مستمر.
مفيدة إذا كنت بحاجة إلى إضافة أو حذف عناصر بسرعة.

الأشجار (Trees):

هي طريقة لتنظيم البيانات بشكل هرمي، مثل شجرة العائلة.
تستخدم بشكل شائع في تنظيم البيانات في قواعد البيانات.

الجداول التجزئة (Hash Tables):

تستخدم لتخزين البيانات بحيث يمكنك الوصول إليها بسرعة كبيرة.
مفيدة جدًا في العمليات التي تتطلب الوصول السريع للبيانات مثل قواعد البيانات.


📌 مهتم بتعلّم البرمجة بأسلوب عملي ومنظّم؟
انضم إلى قناة مختبر الكود وتعلّم من كتب وشروحات برمجية مفيدة:
🔗
@codlab




🔗 قنوات برمجية مفيدة لك:
📍 تحدي بايثون
شروحات واختبارات يومية بلغة بايثون للمبتدئين
@Python_Tahadi
3. الممارسة المستمرة:

حل التحديات البرمجية:

مارس ما تعلمته عن الخوارزميات وهياكل البيانات عبر حل تمارين برمجية على منصات مثل:

LeetCode: تساعدك في حل المشاكل المعقدة باستخدام الخوارزميات.


GeeksforGeeks: يقدم لك حلولًا مفصلة مع شرح خطوة بخطوة.



هذه التمارين العملية ستساعدك في تحسين مهاراتك في التعامل مع المشكلات البرمجية بشكل أكثر كفاءة.

📌 مهتم بتعلّم البرمجة بأسلوب عملي ومنظّم؟
انضم إلى قناة مختبر الكود وتعلّم من كتب وشروحات برمجية مفيدة:
🔗
@codlab


🔗 قنوات برمجية مفيدة لك:
📍 تحدي بايثون
شروحات واختبارات يومية بلغة بايثون للمبتدئين
@Python_Tahadi


مركز المبرمجين
@centerprogrammer
💡 نصيحة ذهبية:
لا تقتصر على تعلم اللغات البرمجية فقط
من المهم تعلم الخوارزميات و هياكل البيانات لكي تصبح مطور برمجيات محترف.
هذه المهارات هي أساس بناء برامج سريعة وفعّالة. الفهم الجيد لهذه المفاهيم سيجعلك مبرمجًا قويًا وأكثر قدرة على حل أي مشكلة قد تواجهك.
📌 مهتم بتعلّم البرمجة بأسلوب عملي ومنظّم؟
انضم إلى قناة مختبر الكود وتعلّم من كتب وشروحات برمجية مفيدة:
🔗 @codlab


🔗 قنوات برمجية مفيدة لك:
📍 تحدي بايثون
شروحات واختبارات يومية بلغة بايثون للمبتدئين
@Python_Tahadi

مركز المبرمجين

@centerprogrammer


ليّطٌمئنٌ قَلبّك 🌾
كود تفعيل ويندوز 10/11 نسخة PRO
صالح للتفعيل لـ 17 ألف جهاز 🏃 🏃 🏃

NGQQ2-YQ9RF-9K2FP-2X7C2-DDBQB
🌐 إيه الفرق بين HTTP و HTTPS؟ 👨‍💻

ناس كتير بتسألني عن الفرق بين الاتنين دول، وخصوصًا المبتدئين، فقررت أشرحهم ببساطة كدا كأننا قاعدين على قهوة 😄

---

أول حاجة: يعني إيه HTTP؟

HTTP اختصار لـ HyperText Transfer Protocol، وده البروتوكول اللي بيخلي المتصفح يقدر يتواصل مع السيرفر، يعني لما تكتب لينك في المتصفح، هو بيروح للسيرفر يسأله: "فين الصفحة دي؟"، والسيرفر يرد عليه بالصفحة.

بس المشكلة؟
المحادثة دي بتكون من غير أي تشفير. يعني أي حد واقف في النص (زي شبكة Wi-Fi عامة أو هاكر بسيط) ممكن يتجسس على الداتا اللي رايحة وجاية بسهولة.

---

🔒 طب و HTTPS بقى؟

هنا بقى يدخل الـ S اللي في الآخر، وS دي مش للـ Sabr 😅، دي اختصار لـ Secure.

يعني: HyperText Transfer Protocol Secure.
وده نفس البروتوكول، بس بيستخدم SSL/TLS علشان يشفر كل حاجة بينك وبين السيرفر.

يعني لو حد حب يتجسس، يشوف شخبطة مش مفهومة

---

🛡️ ليه HTTPS مهم؟

بيأمّن بيانات المستخدم (زي الباسورد، الكريديت كارد... إلخ)

بيحسّن ثقة الزوار في الموقع

جوجل بتحب المواقع اللي عليها HTTPS وبتزود فرصها في الظهور

فيه مواقع بتشتغلش أصلًا من غير HTTPS (زي أي موقع بيطلب تسجيل دخول أو دفع)

---

🤔 طب أفعّل HTTPS إزاي؟

لو أنت مطور وعندك دومين، ممكن تستخدم:

🔐 Let's Encrypt (سيرتيفيكيت مجاني)

أو تشتري SSL Certificate من شركة استضافة

ولو بتستخدم منصات زي Vercel، Netlify، أو Firebase…
هما بيعملوا دا تلقائي ومجاني 👌

---

🧠 خلاصة الكلام

HTTP = مشفرش

HTTPS = مشفر وأمان

لو بتبني Web App أو حتى صفحة بسيطة فيها فورم → استخدم HTTPS على طول

---

💡 عايزك تفكر معايا

لو أنت بتستخدم HTTP بس، هتأمن الداتا إزاي؟ وهتتوقع إن الناس تثق في موقعك؟ 🤷‍♂️

---

📌 مقترحات لمواضيع جايه؟

1. الفرق بين Frontend و Backend

2. إزاي تشتغل API من البراوزر

3. Cookies vs LocalStorage

5. إزاي تحمي موقعك من XSS و CSRF ببساطة
الفرق بين Access Port و Trunk Port … وإمتى نستخدم كل واحد؟
وقبل ما نبدأ المقال عندى ليك هدية جميلة ..
شوف ال Playlist دى
لو بدأت تلعب فى إعدادات VLAN على السويتش، أكيد قابلت المصطلحين دول:
Access Port و Trunk Port
بس يعنى إيه؟ وليه لازم تفرق بينهم؟ تعال نفهم مع بعض 👇

🔌 الأول: Access Port
دى البورتات اللى بنوصل عليها الأجهزة العادية:
كمبيوتر – طابعة – IP Phone – كاميرا – أى حاجة بتاخد IP وبتشتغل

البورت بيكون شغال فى VLAN واحدة بس
يعنى لما توصل كابل من اللابتوب للسويتش، البورت ده بيبقى Access وبيتعيّن له VLAN معينة

مثال:
لو عندك VLAN 10 خاصة بقسم الـ HR، يبقى كل الأجهزة فى HR متوصلة على Access Ports تابعين للـ VLAN دى.

🔀 طيب إيه هو Trunk Port؟
هنا بقى السحر!
Trunk Port بيشتغل كبوابة بين السويتشات وبعضها، أو بين السويتش والراوتر أو Layer 3 Switch
وبيعدّى فيه الترافيك بتاع أكتر من VLAN

يعنى بدل ما توصل سويتشين مع بعض وتحتاج كابل لكل VLAN
بتوصل كابل واحد Trunk… وهو ينقل كل الترافيك بتاع كل VLANs جوا نفس الكابل 🎯

🧱 طيب السويتش يعرف إزاى إن الفريم ده بتاع VLAN كام؟
عن طريق حاجة اسمها VLAN Tag
الـ Trunk Port بيضيف علامة (Tag) جوه الفريم علشان يوضح إنها جايه من VLAN معينة
والسويتش التانى يقرأ التاج ويعرف يبعته على الـ Access Port المناسب

⚠️ خد بالك:
Access Port = VLAN واحدة بس

Trunk Port = ينقل كل VLANs

لو نسيت تحط البورت الصح على النوع الصح… الترافيك مش هيوصل وممكن تتجنن فى الـ Troubleshooting 😅

🎯 إمتى نستخدم Access؟ وإمتى Trunk؟
جهاز عادى زى كمبيوتر؟ → Access

كابل بين سويتش وسويتش؟ → Trunk

راوتر-on-a-stick؟ → Trunk

سيرفر بيخدم أكتر من VLAN؟ → Trunk

السويتش مش بيفهم لوحده البورت ده يبقى Access ولا Trunk
إنت كمهندس لازم تعرف وتحدد نوع البورت، وتظبط إعداداته بنفسك علشان الشبكة تشتغل صح.
🔵 الFile Server
⬅️ هو نوع من الخوادم يستخدم لتخزين الملفات وإدارتها وتوزيعها عبر شبكة. يتمثل دوره الرئيسي في توفير مكان مركزي يمكن للمستخدمين الوصول إليه لتحميل وتنزيل الملفات. يمكن أن يكون هذا الخادم عبارة عن جهاز فعلي أو خادم افتراضي.
🔵 وظائف File Server الأساسية:
1️⃣ تخزين الملفات: حفظ الملفات بشكل مركزي بدلاً من توزيعها عبر أجهزة مختلفة.
2️⃣ مشاركة الملفات: تمكين المستخدمين من الوصول إلى الملفات المشتركة بسهولة من أي جهاز متصل بالشبكة.
3️⃣ إدارة الأذونات: التحكم في من يمكنه الوصول إلى الملفات وتعديلها من خلال تعيين أذونات محددة للمستخدمين أو المجموعات.
4️⃣ النسخ الاحتياطي: توفير آلية للنسخ الاحتياطي للملفات لحمايتها من الفقدان أو التلف.
🔵 مميزات استخدام File Server:
⬅️ الأمان: يمكن تطبيق سياسات الأمان لحماية البيانات الحساسة.
⬅️ الكفاءة: تحسين أداء الشبكة من خلال توفير الوصول المركزي إلى الملفات.
⬅️ التعاون: تسهيل العمل الجماعي من خلال توفير الوصول إلى الملفات المشتركة.
⬅️ التحكم المركزي: إدارة مركزية للملفات مما يسهل عمليات الصيانة والتحديث.
👈 يعد File Server مكونًا أساسيًا في بيئات العمل التي تتطلب إدارة مركزية وفعالة للملفات والبيانات.
*أنواع JOIN في SQL — شرح سريع ومفهوم*

الهدف من JOIN: دمج بيانات من جدولين باستخدام عمود مشترك (Key). نوع الـJOIN يحدد "مَن يظهر" في النتائج.

- *INNER JOIN (المشترك فقط)*
يُرجع الصفوف التي يوجد لها تطابق في الجدولين.

- *LEFT JOIN (يسار + ما يطابق من اليمين)*
يُرجع كل صفوف الجدول الأيسر، وإذا ما فيه تطابق من اليمين، تكون القيم NULL.

- *RIGHT JOIN (يمين + ما يطابق من اليسار)*
عكس LEFT JOIN: يُرجع كل صفوف الجدول الأيمن، والمفقود من اليسار يظهر بـ NULL.

- *FULL OUTER JOIN (الجميع)*
يُرجع كل الصفوف من الجدولين، مع عرض NULL في الأعمدة التي لا يوجد لها تطابق.

*الصيغة العامة:*
SELECT ...  
FROM A
<TYPE> JOIN B
ON A.key = B.key

*نصائح سريعة:*

- تخيّلها كرسمة Venn:
- INNER = فقط الجزء المتقاطع
- FULL = كل الدائرتين

- من ناحية الأداء (Performance):
- أضف فهرسة (Index) على عمود الربط
- انتبه: العلاقات من نوع 1︎N قد تكرر الصفوف
*لماذا تُعتبر Python اللغة الأقوى في مجال الذكاء الاصطناعي؟*

عندما يتعلق الأمر بالذكاء الاصطناعي، فإن لغة *Python* تتربع على القمة، وإليك أبرز الأسباب التي تجعلها الخيار الأول للمبرمجين والباحثين:

🔹 *1. لغة سهلة وقابلة للتعلم:*
تصميم Python البسيط يجعل كتابة الكود وقراءة البرامج أسهل بكثير من لغات أخرى، مما يوفّر وقت وجهد المطورين.

🔹 *2. أداء متميز في تنفيذ الخوارزميات:*
Python قادرة على التعامل مع خوارزميات الذكاء الاصطناعي والتعلم الآلي بكفاءة وسرعة عالية.

🔹 *3. نمو مجتمعي وتطور سريع:*
العدد الكبير من مستخدمي Python ساهم في تسريع تطورها، وتوفير دعم مجتمعي هائل مقارنة بلغات مثل Java أو ++C.

🔹 *4. مكتبات وأطر عمل متكاملة:*
Python تمتلك مكتبات متخصصة تسهّل تنفيذ المشاريع، ومن أبرزها:
• *NumPy* للتحليل العددي
• *PyBrain* لتطبيقات الذكاء الاصطناعي
• والعديد من المكتبات الأخرى التي تختصر الوقت وتعزز الأداء

🔹 *5. مثالية لعلم البيانات:*
Python تُستخدم على نطاق واسع في تحليل البيانات الضخمة، وتُعرف بلقب "مـلـكـة علم البيانات" بفضل قدرتها على التعامل مع البيانات المعقّدة بسهولة.
أهم النصائح التي أرى أنها جوهرية لأي مبرمج سواء كنت مبتدئًا أو محترفًا:

1. تعلم الأساسيات بعمق

لا تعتمد فقط على نسخ الأكواد من الإنترنت.

افهم جيدًا مفاهيم مثل الخوارزميات هياكل البيانات أنماط التصميم (Design Patterns) لأنها أساس التفكير البرمجي.


2. مارس يوميًا ولو قليلًا

البرمجة مثل العضلات، إذا توقفت عن استخدامها تضعف.

حتى 30 دقيقة يوميًا كافية لتحافظ على لياقتك البرمجية.


3. نظّم كودك وكأن شخصًا آخر سيقرأه

استخدم أسماء متغيرات واضحة، وتعليقات تشرح لماذا وليس فقط ماذا.

الكود النظيف أسهل في الصيانة من الكود الذكي المعقد.

4. افهم قبل أن تكتب

خطط للمشكلة قبل فتح المحرر.

ارسم مخططًا أو اكتبه كنص خطوة بخطوة.

5. تعلم استخدام أدواتك باحتراف

محررك، نظام التحكم في الإصدارات (Git)، وأدوات التصحيح (Debugger) هي أسلحتك.
كلما أتقنتها وفرت وقتًا وجهدًا

6. لا تخف من قراءة الكود القديم أو المعقد

قراءة أكواد الآخرين توسع خبرتك وتكشف لك أنماطًا لم تكن تعرفها.

7. اتعلم البحث الذكي

كتابة السؤال بشكل جيد على جوجل أو Stack Overflow مهارة لا تقل أهمية عن البرمجة نفسها.

8. لا تطارد كل تقنية جديدة

ركّز على فهم المبادئ، فالأدوات تتغير لكن الأساسيات تبقى.

9. احرص على كتابة اختبارات (Tests)

الاختبارات تقلل الأخطاء وتزيد ثقتك عند تعديل الكود.

10. استمتع بالرحلة.
البرمجة ليست مجرد عمل، هي فن وحل الألغاز جزء من متعتها.