Translate

الاثنين، 12 يونيو 2023

لغات البرمجة الحاسوبية



 

1.آي آر سي

 مقدمة في الشبكات العصبية الاصطناعية

  لغات البرمجة الحاسوبية

1. آي آر سي

مرحبا بك في كتاب تعليمات الآي آر سي!

محتويات 1 مقدمة

2 عملاء الآي آر سي

3 أوامر الآي آر سي الأساسية

4 أوامر خاصة بالمسؤولين

مقدمة

الآي آر سي هي نظام الدردشة على الإنترنت، والذي يتيح تشارك الحوار النصي في اللحظة نفسها عن طريق شبكة الإنترنت بدأت الآي آر سي في عام 1988.

عملاء الآي آر سي

اقرأ نصًا ذا علاقة بتصنيف:عملاء آي آر سي، في ويكيبيديا.

للاتصال بتقنية الآي آر سي، يستلزم برنامج يسمى عميل آي آر سي. تتفاوت هذه البرمجيات بين المجاني منها والتجاري وفتوح المصدر ومغلق المصدر. من هذه البرامج:

الاسم العربي الاسم الإنجليزي الترخيص نظام التشغيل

إكس شات XChat تجاري لنظام ويندوز، جي بي إل للأنظمة الأخرى ويندوز، لينكس، يونكس

إم آي آر سي mIRC تجاري ويندوز

شات زيلا ChatZilla جي بي إل امتداد لفايرفوكس

أوامر الآي آر سي الأساسية

الأمر ماذا يفعل مثال

/attach

/server

/connect الاتصال بسيرفر

/attach irc.freenode.net

/server irc.freenode.net

/connect irc.freenode.net

/nick إعداد الاسم المستعار، يستخدم لإعادة التسمية

/nick YourName

/join الدخول إلى قناة

/join #wikibooks

/msg إرسال رسالة (يستخدم لإرسال رسالة إلى لمستخدم كمحادثة خاصة، أو الإرسال إلى قناة) رسالة إلى قناة:

/msg #wikibooks hello world!

رسالة إلى مستخدم:

/msg Rami مرحبا .

/whois إظهار معلومات عن مستخدم على السيرفر

/whois Rami

/clear

/clearall مسح كل النص لقناة ما.

تنظيف كل النصوص لكل القنوات المفتوحة

/clear

/clearall

/away تعيين الحالة كخارج. ملاحظة: اطبع /away مرة أخرى لتلغي الإجراء.

/away أنا بالخارج لأن...

/me إرسال أمر للقناة، راجع المثال النص التالي:

/me loves pie.

سوف تنتج النص التالي ل Rami:

Rami يجب ويكي الكتب.

أوامر خاصة بالمسؤولين

توفر الآي آر سي مسؤولين عن قوات الدردشة، بإمكان هؤلاء المسؤولين الطرد من القناة المنع من الدخول، تغيير صلاحيات القناة وإعطاء صلاحيات لمستخدمين آخرين

الأمر ماذا يفعل مثال

/kick طرد مستخدم من القناة، قد يتمكن من الدخول مرة أخرى. طرد مستخدم من القناة بسبب:

<coنص عريضde>/kick #القناة XChat السبب...

/ban

/unban منع مستخدم من الدخول للقناة.

إزالة المنع عن مستخدم في القناة.

/ban Ramiع

/unban

/cs op

/deop إعطاء صلاحيات إدارية

إزالة الصلاحيات الإدارية

/cs op #القناة Rami

/deop #القناة Rami

====

أسمبلي

اقرأ نصًا ذا علاقة بلغة أسمبلي، في ويكيبيديا.

لغة اسمبلي (إنجليزية Assembly language)، هي الصيغة السهلة القراءة للبشر المقابلة للغة الآلة التي تشكل الأوامر التي ينفذها حاسوب بتصميم ما. فلغة الآلة عبارة عن تتابع من البتات (bits) تمثل عملية حاسوبية أو أمر للحاسوب ، تصبح أسهل للقراءه عندما تستبدل برموز تعبر عنها .

محتويات 1 مثال

2 كيف نبدأ 2.1 العدّة والعتاد

3 برمجة أسمبلي للأجهزة بتصميم x86

مثال

حاسوب بوحدة معالجة مركزية تتبع تصميم أجهزة x86/IA-32 يقبل الأمر الآتي (بلغة الآلة): 10110000 01100001

اما للمبرمجين ، فانه من الأسهل تذكر وفهم الصيغة المقابلة لهذا الأمر المكتوبة بلغة اسمبلي وهي : mov al, 0x61

والتي تجعل الحاسوب ينقل قيمة 61 بالنظام الست عشري للعد (91 باللنظام العشري) إلى خانة وحدة تخزين في وحدة المعالجة المركزية اسمها al. فـ mov هي اختصار لكلمة move التي تعني "حرّك" أو "انقل" ، ومجموعة من المدخلات تتبع الأمر مفصولة عن بعضها بفاصلة(,) ، هي مثال على الشكل الشائع لأوامر لغة اسمبلي.

كيف نبدأ

العدّة والعتاد

ما يلزم لتبدأ في كتابة برامج أسمبلي هو محرر نصوص بسيط جدا ، في أنظمة يونكس ولينوكس يمكنك استخدام vi ، gedit ،kate ، kwrite ، emacs . أو أي محرر يخزن النصوص plain text ، في أنظمة ويندوز ، يمكن استخدام edit عن سطر الأوامر أو notepad .

حسنا ، المحرر الهدف منه الكتابة فقط ، وليصبح لديك برنامج بلغة أسمبلي تحتاج إلى ترجمان ، ليترجم النص الذي كتبته بلغة أسمبلي إلى لغة الحاسوب الرقمية ، في الحقيقة هناك العديد من الترجمانات ، منها nasm ، tasm ، وفي أنظمة يونكس هناك الأمر as القياسي وفي أنظمة لينوكس هناك gas ، كما أن هناك tasm من بورلاند ومن ميكروسوفت هناك masm.

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

برمجة أسمبلي للأجهزة بتصميم x86برمجة:أسمبلي:قائمة بأوامر أسمبلي لتصميم x86

.... ، إضغط تحرير لتقوم بمشاركة العالم بمعارفك ... فالجميع يمكنه العطاء ، ولا أحد يملك المعرفة الكاملة ! من أجل إنترنت عربية ذات قيمة معرفية !

====

البرمجة

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

هذا الكتاب هو ويكي وبالتالي يمكن تحسينه من طرف الجميع. لا تترددوا في المشاركة !

محتويات 1 فهرس 1.1 مفاهيم أساسية

1.2 مفاهيم نوعية

1.3 ملحق

فهرستاريخ

تجريد

مفاهيم أساسيةتعليمات

متغيرات

خوارزمية

مفاهيم نوعيةبرمجة كائنية التوجه

ملحقلغات برمجة

====

التصميم بواسطة الحاسوب

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

تشغيل الحاسب للبدء بالعمل على الحاسب عليك أولًا التأكد من توصيل كافة التوصيلات بشكلها الصحيح، ثم ابحث عن زر الطاقة الموجود في مكانٍ ما من جهاز الحاسب (طبعًا يختلف موقع وجوده من جهازٍ إلى آخر) لكن يمكنك التعرف عليه ببساطةٍ، حيث أن شكل أيقونة زر الطاقة تأخذ شكلًا موحدًا لجميع الأجهزة وهو الشكل الواضح في الصورة. turnon-computer

بمجرد تشغيل الحاسب سيستغرق بعض الوقت قبل أن تتمكن من استخدامه. تستغرق هذه العملية بين 15 ثانية حتى 5 دقائق، وتدعى هذه الفترة بمرحلة تمهيد الحاسب. بعد أن تنتهي هذه المرحلة قد يطلب منك الحاسب تسجيل الدخول وكل ما عليك القيام به في هذه الحالة هو كتابة اسم المستخدم و كلمة المرور التي قمت بتحديدها سابقًا. وإن لم يتم تسجيل الدخول عندها يتوجب عليك إنشاء حساب مستخدم.

استخدام لوحة المفاتيح والفأرة من اساسيات الكمبيوتر أن التعامل معه بشكلٍ رئيسيٍّ يتم من خلال لوحة المفاتيح والفأرة (الماوس) أو باستخدام اللوحة اللمسية في الأجهزة المحمولة.

تتحكم الماوس في المؤشر على الشاشة، فكيفما حركت الماوس سيتحرك المؤشر بنفس الاتجاه. ونفس الأمر بالنسبة للوحة اللمسية. تُستخدم أزرار الماوس للنقر على الأيقونات أو الأزرار المختلفة في الشاشة أو إظهار الخيارات المتنوعة، وكذا الأمر بالنسبة للوحة اللمسية التي يمكنك النقر عليها مرةً أو اثنتين لقيام بنفس مهمات أزرار الماوس. أما فيما يخص لوحة المفاتيح فتستخدم للقيام بعمليات الإدخال المختلفة، من نصوصٍ وأحرفٍ وأرقام، أو للتنقل بين أسطر ملف أو صفحات أو حتى للتنقل بين الصور والأيقونات.

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

folders

يتم استخدام الأيقونات لتمثيل الملفات والتطبيقات، والأيقونة هي صورةٌ مصغرةٌ توحي لك بعمل البرنامج أو الملف. يؤدي النقر المزدوج على الأيقونة إلى فتح الملف أو تشغيل البرنامج. ويمكنك الوصول إلى المجموعة الكاملة من البرامج بالضغط على زر القائمة الذي عادةً ما يوجد في الزاوية السفلية من الشاشة، وعندها ستظهر لك قائمة البرامج الكاملة. وعند قيامك بالدخول إلى تطبيقٍ أو مجلدٍ معينٍ فستفتح لك نافذة ضمن إطارٍ مزودةٍ بمجموعةٍ من الخيارات المتنوعة التي يمكنك الاطلاع عليها بسهولةٍ. ويمكنك إغلاق نوافذ البرامج والنوافذ المتنوعة بالضغط على زر X الموجود في الزاوية العلوية من إطار النافذة. بينما يقتصر عمل الزرين المجاورين له على تعديل حجم إطار النافذة.

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

محتويات 1 الصورةالنقطية Raster:

2 الصورة المتجهية Vector:

3 برامج التصميم: 3.1 برامج التصميم 2D:

الصورةالنقطية Raster:البكسل هو وحدتها الأساسية.

جودة الصورة محدودة، مهما بلغت أبعاد الصورة وحجم الملف.

لأفضل جودة معاينة ومشاهدة عبر الحاسب، ينبغي ألا تقل دقة استبانة الصورة 72dpi بمقياس 1:1.

لا بد من وضع الحجم النهائي المطلوب للصورة بعين الاعتبار قبل الشروع في معالجتها.

لأفضل جودة لغرض الطباعة بواسطة مطابع الأوفست أو اللارج فورمات، يبنغي ألا تقل دقة استبانة الصورة عن 300dpi بمقياس 1:1.

امتدادات الملفات الاعتيادية: bmp, jpg, jpeg, png, tif, gif,

بعض أنواع الامتدادات لا تسمح بإمكانية إجراء تعديلات على أجزاء الصورة، لأنها تتحول إلى جسم واحد مندمج.

بعض أنواع الامتدادات يسمح (إذا جهزه المصمم على هذا الأساس) بإجراء تعديلات على أجزاء الصورة.

الصورة المتجهية Vector:المنحنى الرياضي هو وحدته الأساسية.

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

لا يشترط وضع الحجم النهائي بالاعتبار قبل الشروع في معالجتها، ولكن من الضروري مراعاة النسبة والتناسب للتكبير والتصغير.

يمكن العودة إليها دائما وتعديلها.

برامج التصميم:

يرامج التصميم يمكن تقسيمها إلى عدة أنواع، أنواع مخصصة للتعامل مع الأعمال والتصاميم ثنائية الأبعاد، وأنواع أخرى مخصصة للتعامل مع الصور ثلاثية الأبعاد.

برامج التصميم 2D:

أهم برامج التصميم ثنائي الأبعاد التجارية (الخاصة بعملية الطباعة): Adobe photoshop ويختص بمعالجة الصور Pixel Corel draw ويختص بمعالجة الرسوميات vector FreeHand ويختص بمعالجة الرسوميات vector

هناك ملفات عن Computer-aided design في ويكيميديا كومنز.

'p>

====

البرمجة مع بايثون

اقرأ نصًا ذا علاقة ببايثون، في ويكيبيديا.

محتويات 1 مقدمة 1.1 استعمال

2 الوحدة الأولى : أساسيات Python

3 الفصل الأول : البداية 3.1 ما مجالات لغة بايثون ؟

4 كيف تشغل برنامج مكتوب بلغة بايثون؟

5 الفصل الثاني: الأنواع والعمليات 5.1 بنية برنامج بايثون

5.2 لماذا نستخدم الأنواع المدمجة؟

5.3 نوع الكائن

5.4 الأعداد

5.5 المعامل

5.6 الفهرسة والتقطيع السلسلة النصية

5.7 الأدوات العامة لسلاسل النصية

5.8 القوائم

5.9 الإسناد في القوائم

5.10 القواميس

5.11 العمل على القواميس

5.12 الملفات

6 الفصل الثالث: التعابير الأساسية 6.1 قواعد تسمية المتغيرات:

مقدمة

لغة بايثون Python لغة برمجة من مستوى عال, مفتوحة المصدر و متعددة الاستعمالات تم تطويرها من قبل جيدو فان روسم Guido Van Rossum في عام 1993, وهو كالتطبيقات والبرامج المفتوحة المصدر, مدعوم بفريق من المطوريين المنتشرين حول العالم. انشئت اللغة كـ Object-Oriented Programming أو برمجة كائنية التوجه. من بين الأسباب الأخرى, نذكر سرعة التطوير (ميزة مهمة للبرامج المؤولة), الكمية الكبيرة من القوالب المرفقة في التوزيعة الأساسية بالإضافة لعدد الواجهات المتاحة مع مكتبات مكتوبة ببرمجة سي, برمجة سي++ أو Fortran. كما يتميز بسهولة ووضوح لغته, عكس لغة Perl. تتميز بالسهولة من حيث الكتابة والقراءة ومن حيث التركيب النحوي لها،وهي لغة ذات قوة هائلة تخولك باحترافها ان تصمم موقعك الخاص أو برنامجك الخاص ويكون مفتوح المصدر هو أفضل مافيها بانها مفتوحة المصدر وتستطيع أن تبرمج بها في كل المنصات المعروفة الآن، فهي تصارع لغة Java العريقة، وتصلح لكل الأغراض تقريبا.

ملاحظات حول الكتاب: هذا الكتاب مفتوح (حر) خاضع لرخصة GNU FDL (أي GNU Free Documentation License) نسخ أو تصوير أو الإقتباس من هذا الكتاب لا يعد مخالفاً للقانون إذا حصلت عليه بأي طريقه (شراء أو هدية أو استعارة أو تنزيل من الشبكة ...) فإنه يحق لك نسخه والتعديل فيه ، ويمكنك تنزيله مجاناً. ولكن إذا استخدمته في عمل منتج مشتق فإنه يصبح خاضعاً لرخصة FDL كما لا يمكنك الإدعاء بأنك من قام بهذا العمل وعليك الإشارة لمؤلفه الأصلي يقدم هذا الكتاب كما هو من دون أي كفالة أو ضمان لمحتوياته لسنا مسؤولين عن أي أثر سلبي (لا بشكل مباشر ولا ضمني) يقع عليك وعلى جهازك أو على قطتك. كتب هذا الكتاب على منصة أرابيان 0.6 باستخدام برنامج OpenOffice.org 2.0 لذا إذا حاولت فتحه على منصة الويندوز فلربما يذهب التنسيق، فحاول أن تعدل عليه في المنصة التي أنشأ فيها لتجنب إعادة الجهد من جديد.

استعمال

كما تمت الإشارة له في الأعلى, بايثون يستعمل في عدد كبير من المهام. التوزيعة الأساس تتيح, من حين لحين, تطويرا شبكيا, إنشاء واجهة رسومية (مرورا ب tcl/tk), البرمجة cgi, من معالجة XML, إلخ... سهولتها النسبية الواجهية مع مكتبات مكتوبة بلغات أخرى جعلتها أداة اختيار للتطبيقات الحسابات العلمية. كما أنها تستعمل بكثرة كلغة بروتوتيب.

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

الوحدة الأولى : أساسيات Pythonالفصل الأول : البداية

الفصل الثاني: الأنواع والعمليات

الفصل الثالث: التعابير الأساسية

الفصل الرابع: الوظائف

الفصل الخامس: الوحدات

الفصل السادس: الصفوف

الفصل السابع:الاستثناءات

الفصل الأول : البدايةالنقاط المهمة: لماذا لغة Python ؟

كيف تشغل برنامج مكتوب بلغة Python؟

معرفة بيئات التطوير الخاصة بـPython

في هذا الفصل سنمضي سويا في رحاب لغة بايثون، لنعرف كيف نشأة لغة بايثون؟ ولماذا نتعلم لغة بايثون؟ وما مجالات التي تصلح لها لغة بايثون؟ كل هذه الأسئلة ضرورية لمن يريد أن يبدأ في تعلم أي لغة ! ، فلننتقل سريعا ... لماذا لغة Python ؟

في عام ١٩٩٠م قام Guido van Rossum باختراع لغة بايثون، وقد استقى هذه اللغة من عدة لغات سابقة من أمثال: C و++C وModula-3 وABC وIcon.

وتعتبر بايثون من اللغات النصية التي لا تحتاج إلى بناء لتشغيل البرنامج المكتوب بها، وهي من اللغات السهلة والمنظمة بشكل صارم مما أهلها أن تكون الخيار الأول في صنف اللغات الأكاديمية التي تعتمد في الجامعات، وسنلخص مميزات لغة بايثون في جدول ونبين فائدة كل مميزة .. المميزات الفوائد لا تحتاج إلى بناء أو ربط مثل لغة السي

تسريع دورة التطوير فيها بشكل ملحوظ

لا تحتوي على أنواع المتغيرات

البرامج تصبح أسهل وأبسط وأكثر مرونة

إدارة آلية للذاكرة

مجمع النفايات يجنبك الجهد في تنقيح الكود

برمجة غرضية التوجه

يمنحك التكامل مع ++C وJava وCOM

إمكانية التضمين والتمدد مع لغة السي

تحسين الأداء وإمكانية التحاور مع النظام

البساطة والوضوح في قواعد الكتابة والتصميم

درجة عالية من المقروئية وإمكانية الصيانة وسهولة التعليم

محمولية عالية

تعمل على عدة منصات: الويندوز واللينكس والماكنتوش واليونكس بدون تغيير الكود

مفتوحة المصدر

تعطيك الحرية في توزيعها والتعديل فيها وضامن لبقائها

دعم أنواع البيانات والعمليات عالية المستوى

تطوير سريع باستخدام أنواع الكائنات المدمجة

تحميل ألي لوحدات السي

امتدادات مبسطة وتصغير الملفات التنفيذية

دعم بروتوكولات الإنترنت القياسية

تسهيل الوصول إلى البريد الإلكتروني وHTTP ..

كثرة المكتبات المضمنة ومن أطراف ثالثة

تسريع وتسهيل تطوير البرامج

و أهم مميزاتها أنها سهلة التعلم ، وهذا ما ستلحظه أثناء تعلمك لها مع قوتها في آن واحد مما جعلها الخيار الأمثل لكثير من الشركات، وسنذكر مجموعة منها: Yahoo Maps* Yahoo Groups* Google* Ultraseek* Jasc Software, Paint Shop Pro* National Weather Service* NASA* Red Hat * SGI, Inc* IBM* Real Networks*

ما مجالات لغة بايثون ؟

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

مجال برمجة الإنترنت

مجال برمجة واجهات المستخدم الرسومية

مجال برمجة قواعد البيانات

مجال البرمجة الموزعة

وغيرها الكثير من المجالات، مما سهَّل لها وجود أدوات كثيرة تسهل عمل المبرمج بشكل ملاحظ، فمن أشهر هذه الأدوات: المجال

الأدوات برمجة النظام

Sockets وthreadsو signals وpipes وRPC calls وPOSIX bindings واجهات المستخدم الرسومية

Tk وPMW وMFC وX11 وwxPython وKDE وGnome واجهات قواعد البيانات

Oracle وsybase وPostGresو mSQL وpersistence وdbm أدوات Microsoft Windows

MFC وCOM وActiveX وASP وODBC و.NET أدوات الانترنت

Jpython وCGI tools وHTML/XML parsers وemail tools وZope الكائنات الموزعة

DCOM وCORBA وILU وFnorb أدوات أخرى مشهورة

SWIG وPIL وregular expressions وnumPy وcryptography

كيف تشغل برنامج مكتوب بلغة بايثون؟

بما أن لغة بايثون نصية ، فإنه يتوجب عليك أن يكون لديك مفسر اللغة فقط لتشغيل البرنامج، وللحصول على المفسر اذهب إلى موقع لغة بايثون ، ونزل المفسر حسب النظام الذي تعمل عليه : http://www.python.org

بطبيعة الحال لكتابة برنامج بايثون ستحتاج إلى محرر نصوص ثم حفظ الملف بلاحقة py. بعد ذلك ادخل على سطر الأوامر واكتب: >> python program.py

بحيث program اسم الملف، وللتعامل مباشرة مع محث لغة بايثون ، اكتب في سطر الأوامر : >> python

و لكتابة أول برنامج لك ، اكتب :

>>> print ' My name is Fahad Al-Saidi'

بعد كتابتك لأول برنامج لك بواسطة بايثون، ستعرف بنفسك مدى سهولة بايثون وقوتها.

بيئات التطوير الخاصة بـPython سترغب مع الوقت في امتلاك بيئة تطوير تسهل عليك أداء الكثير من العمليات الروتنية، وهناك الكثير من بيئات التطوير الخاصة بلغة بايثون ، ما عليك إلا أن تختار حسب رغباتك ، فقط تابع هذين الرابطين : http://wiki.python.org/moin/PythonEditors http://wiki.python.org/moin/IntegratedDevelopmentEnvironments

و لكن يكفيك أن تملك مفسر لغة بايثون مع محرر نصوص عادي لتكمل مشوارك معنا في تعلم لغة بايثون. اغلب توزيعات غنوا لينوكس تأتي مدمجة بلغة python خاصة الإصدار الثاني من اللغة كما أن أغلب محررات النصوص تدعم بايثون من حيث تلوين الدوال مثل gedit على واجهة غنوم ,و kwrite على واجهة كيدي كما توجد برامج تحرير بواجهة رسومية وهي برنامج idle وبرنامج eric وفي الويندوز هناك محررات تدعم خاصية التلوين مثل edit plus3 وnotpad++

وللبدء في استخدام برنامج بايثون قم بفتح سطر الاوامر واكتب python وستجد بين يديك مفسر هذه اللغة لكن في هذه اللحظة انت تتعامل الواجهة التفاعلية للبايثون مباشرة إذا اردت حفظ برامجك عليك بفتح idle أو أي محرر ثاني وفيه تكتب السكريبت وبعد ما تنتهي احفظه بلاحقة .py حتى تستطيع استعماله مرة أخرى ويمكنك ان تناديه في برامج أخرى كانه مكتبة داخلية ب import كما بإمكانك كتابة برامج بمحررات النصوص الأخرى المذكورة بالاعلى وستجدها في الغالب على القائمة الرئيسية وداخل قسم تطوير.

الفصل الثاني: الأنواع والعمليات

النقاط المهمة:

بنية برنامج بايثون لماذا نستخدم الأنواع المدمجة؟ الأعداد السلاسل النصية القوائم القواميس المجموعات الملفات الخصائص العامة للكائنات تلميحات مهمة الملخص

بنية برنامج بايثون

قبل البدء في خوض غمار تفاصيل لغة بايثون، من المهم أن نعرج على بنية البرنامج المكتوب بلغة بايثون، ليتكون لديك تصور واضح بشكل عام حول البرمجة بلغة بايثون، وباختصار نقول: برنامج بايثون يمكن أن يحلل إلى ثلاثة أجزاء: وحدات، وعبارات، وكائنات، على نحو التالي: البرنامج يتكون من وحدات

والوحدات تحتوي على عبارات

والعبارات تنشأ الكائنات وتعالجها.

لماذا نستخدم الأنواع المدمجة؟

إذا كنت قد برمجت سابقا باستخدام السي أو السي بلس بلس أو الجافا ستدرك كم من الوقت يستغرق ترتيب الكائنات وتنسيقها في الذاكرة بما يسمى بنى المعطيات،وكم هو مرهق للأعصاب ترتيب تلك الكائنات في الذاكرة والتعامل مع الذاكرة وكيفية الوصول إليها وترتيبها والبحث من خلالها.. في برامج بايثون المثالية ،معظم ذلك الجهد يذهب عنك بعيدا ، لأن بايثون تزودك بكائنات من صلب اللغة تجعل برمجة تلك الأشياء بمنتهى السهولة، فقط فكر في حل المشكلة ثم اكتب الحل، لا داعي من الآن فصاعدا أن ترهق نفسك في ترتيب الكائنات. في الحقيقة، كل ما تريده ستجد تلك الأنواع تزودك به ما لم تكن بحاجة إلى أنواع خاصة. ستجد في غالب الأحيان أنك تفضل تلك الكائنات ،لعدة أسباب منها: كائنات المدمجة تجعل البرامج البسيطة سهلة الكتابة للمهمات البسيطة ستجد أن أنواع الكائنات المضمنة تلبي جميع احتياجاتك بعيدا عن مشاكل بنى المعطيات.لأن ستجد الأشياء مثل المجموعات ( القوائم) و الجداول (القواميس) في متناول يدك، وستجد أن كثيرا من العمل أنجز فقط باستخدام كائنات بايثون المدمجة. بايثون تزودك بالكائنات وتدعم التوسعات بايثون تستعير في بعض الطرق من اللغات التي تدعم الأدوات المضمنة مثل Lisp واللغات التي تعتمد على المبرمج في تزويدها بالأدوات المطلوبة أو إطار العمل الذي يحتاجه مثل ++C و بالرغم من أنك ستطيع أن تنشيء أنواع كائنات فريدة في بايثون إلا أنك في الغالب لا تحتاج إلى ذلك. الكائنات المدمجة أكثر كفاءة من بنى المعطيات المخصصة الأنواع المدمجة في بايثون تستخدم خوارزميات بنى معطيات محسنة ومعمولة بالسي لزيادة السرعة، وبالرغم أنك تستطيع أن تكتب أنواع كائنات مشابهة إلا أنك ستبذل جهدا مضاعفا للحصول على أداء أنواع الكائنات في بايثون. الجدول التالي يبين أنواع الكائنات المدمجة التي سنأخذها في هذا الفصل، إذا كنت قد استعملت لغة قبل ذلك ستجد أن بعض هذه الكائنات متشابهة مثل ( الأعداد والسلاسل النصية والملفات) وستجد أيضا أنواع قوية وعامة مثل (القوائم والقواميس) تزودك بها بايثون بدون تعب خلافا لكثير من اللغات مثل C و++C وJava.وسنقوم بشرحها واحدا واحدا

نوع الكائن

مثال عليه :

الأعداد Numbers 3.1415, 1234, 999L, 3+4j سلاسل نصية Strings 'spam', "guido's" قوائم Lists [1, [2, 'three'], 4] قواميس Dictionaries {'food':'spam', 'taste':'yum'} المجموعات Tuples (1,'spam', 4, 'U')

الملفات Files text = open('eggs', 'r').read()

الأعداد

تدعم لغة بايثون تشكيلة واسعة من أنواع الأعداد : الأعداد الصحيحة وعدد حقيقي يحوي فاصلة، وهذا مألوف لمن تعامل مع لغات سابقة، وأيضا تدعم أنواع مركبة من الأعداد مثل الأعداد المركبة والأعداد ذات دقة الفاصلة العائمة غير محدود وتشكلية واسعة من الأدوات و فيما يلي سنشرح النوعين: أنواع الأعداد القياسية: بايثون تدعم الأنواع القياسية في بقية اللغات وأتت بأنواع جديدة وفي ما يلي جدول يبين تلك الأنواع مع أمثلة لكل نوع: النوع تفسيره 1234, -24, 0 Normal integers (C longs) 999999999999L Long integers (unlimited size)

1.23, 3.14e-10, 4E210, 4.0e+210 Floating-point (C doubles)

0177, 0x9ff Octal and hex constants

3+4j, 3.0+4.0j, 3J Complex number constants

الأعداد الصحيحة والاعداد الحقيقية الأعداد الصحيحة هي مجموعة من الأعداد العشرية مثل (10) ، والأعداد الحقيقية هي التي تحتوي على فاصلة مثل (10٫10). الدقة الرقمية الأعداد الصحيحة تعامل معاملة longs في لغة السي مما يعني أنها غير محدود بدقة رقمية، والأعداد ذات الفاصلة "العدد الحقيقي" تعامل معاملة doubles في لغة السي مما يعني أنك يمكنك أن تكتب أي رقم يخطر على بالك، مع ملاحظة أنك إذا ألحقت حرف L أو l فإنك تخبر مفسر لغة بايثون أن هذا العدد عدد صحيح طويل على مقايس لغة باثيون. الأعداد الثمانية والستعشرية الأعداد الثمانية هي التي تبدأ بالصفر 0 والأعداد الستعشرية هي التي تبدأ بـ 0x أو 0X. -الأعداد المركبة

لغة بايثون تزودك بهذا النوع وهو يكتب كالتالي (الجزء الحقيقي + الجزء التخيلي) ( real-part + imaginary-part) وينتهي باللاحقة j أو J . تعابير المعاملات في بايثون:

ربما الأداءة الأساسية في معالجة الأعداد هي التعابير وهي عبارة عن مجموعة من الأعداد ( أو كائنات أخرى) ومعاملات تنتنج قيمة عند تنفيذها في بايثون، والمثال على ذلك عندما تريد أن تجمع عددين مثل x وy فإنك تقول x + y فالمعامل هنا + . تزودنا بايثون بقائمة طويلة من هذه المعاملات والجدول التالي يبينها ويشرحها ويبين أسبقيتها عند التنفيذ تنازليا:

المعامل

الوصف x or y معامل المنطقي "أو" x and y معامل المنطقي "و" not x معامل المنطقي "عكس" in, not in اختبار العضوية الكائن is, is not اختبار هوية الكائن x | y معامل "أو" على مستوى البت x ^ y معامل "عكس" على مستوى البت x & y معامل "و" على مستوى البت x << y, x >> y إزاحة x يمينا أو شمالا بمقدار y من البتات x + y, x – y معامل الطرح والجمع x * y, x / y, x % y معامل الضرب والقسمة وباقي القسمة العمل على الأعداد أحسن طريقة لفهم الأشياء النظرية هي تجربتها عمليا وواقعيا، فدعنا نشغل سطر الأوامر لنطبع عليه بعض الأسطر التي ستشرح ما قلناه سابقا عمليا. العمليات الأسياسية: قبل كل شيء نحتاج إلى إنشاء كائن من فئة الأعداد مثل x وb ، لكي نطبق عليه معاملات ، في اللغات الأخرى ستحتاج إلى ذكر نوع الكائن ثم تسميته ثم إسناد قيمة إليه لكي نتعامل معه، ولكن في بايثون فقط سم الكائن ثم أسند إليه قيمه وتتولى الباقي بايثون للتعرف على نوعه ، وهذا بشكل عام في كائنات بايثون يكفي فقط اسناد القيمة إلى الكائن لتعريف بنوعه. لتطبيق ذلك عمليا ،اكتب التالي في سطر الأوامر : % python >>> a = 3 # name created >>> b = 4

وبهذا نكون قد أنشأنا كائنين من فئة الأعداد وأسندنا إليهما قيمتين ، ولعلك لاحظت كيفية إضافة التعليقات في بايثون فكل ما بعد # فهو تعليق ، وللتعليق أهمية كبرى في توضيح الكود وسهولة قراءته وسهولة تطويره من قبل مطورين آخرين. بعد إنشاء الكائنات ستحتاج إلى تطبيق بعض المعاملات ، وكلما كانت المعاملات بين الأقواس كلما كانت الأمور أوضح ، ولكن هذا لا يعني أن المعاملات لا تعمل بدون الأقواس، ولكن انتبه إلى أسبقية المعاملات على حسب ما ذكر سابقا ، وإليك بعض الأمثلة :

>>> b / 2 + a # same as ((4 / 2) + 3) 5 >>> b / (2.0 + a) # same as (4 / (2.0 + 3)) 0.8

فكما هو واضح في المثال الأول أن بايثون تولت ترتيب المعاملات في الأقواس، وبما أن المعامل القسمة أسفل من معامل الجمع فهو مقدم ، ولكن في المثال أضفنا إلى التعبير قوسين فأجبرنا بايثون على تنفيذ المعاملات التي نريد تقديمها أولا ، وفي النهاية يجب مراعاة مثل هذه الأمور عند كتابة برامجك في لغة بايثون. ولعلك تسأل ما فائدة إضافة النقطة العائمة في المثال الثاني ، سأقول لك جرب تنفيذ المثال بدون إضافة النقطة العائمة وستجد أن النتيجة هي 0 ، ماذا حصل؟ لقد تعاملت بايثون على أنه عدد صحيح، ولكن عندما تكتب النقطة العائمة فإنك تخبر بايثون أني أريد النتيجة كما هي بدون تقريب وكذلك إذا أضفت صفرين ستلاحظ النتيجة بنفسك. معاملات على مستوى البت: ستحتاج إلى التعامل على المستوى البت في بعض الأحيان فيجب عليك أن تعرف العد الثنائي أولا وستتضح لك الأمثلة التالية :

>>> x = 1 # 0001 >>> x << 2 # shift left 2 bits: 0100 4 >>> x | 2 # bitwise OR: 0011 3 >>> x & 1 # bitwise AND: 0001 1 إذا لم تفهم ولم تدرس الأعداد الثنائية ، فلا عليك ، استمر ، وستجد أنه هذه الجزئية لا يحتاجها إلا من يطلبها !! الأعداد المركبة : الأعداد المركبة من تخصصات الهندسة والكهرباء ، كشخص لا تخصص عندك في مثل هذه الأمور ،مر على هذه الجزئية مرور الكرام ، لأنك لكي تفهمها ستحتاج إلى أكثر من فصل دراسي ، ونحن نريد أن نوصلك إلى فهم البرمجة باستخدام الباثون في وقت قياسي ، أما إذا كان هذه الأعداد من لب تخصصه فإنك ستجد بايثون توفر لك الكثير ، فانظر إلى هذه الأمثلة:

>>> 1j * 1J (-1+0j) >>> 2 + 1j * 3 (2+3j) >>> (2+1j)*3 (6+3j)

للاستزاده في هذا المجال راجع وثائق بايثون للمزيد من التفصيل. المزيد من الأدوات : توفر لك بايثون عدة أدوات تتعامل مع الرياضيات ، وتقدم وحدة math التي تتعامل مع جميع قوانين الرياضيات ، ولكن يجب عليك أن تستورد هذه الوحدة ، وإليك المثال:

>>> import math >>> math.pi 3.14159265359 >>> >>> abs(-42), 2**4, pow(2, 4) (42, 16, 16)

و سنتكلم عن وحدات بشيء من التفصيل في الفصول القادمة بإذن الله تعالى . الدوال التي تتعامل مع السلاسل النصية مثل الفهرسة والتقطيع ومعرفة طول السلاسلة وتجميع السلاسل ،وهناك وحدات مستقلة لمعالجة السلاسل النصية في بايثون مثل string وregex وre.

و الجدول التالي يعرض بشكل سريع كيفية إنشاء السلاسل النصية وبعض دوالها : العملية شرحهايسثلريبربؤلا بؤ S1 = ' ' سلاسلة فارغة s2 = "spam's" علامات اقتباس مزدوجة block = """...""" ثلاث علامات تنصيص s1 + s2, s2 * 3 الجمع التكرار s2[i], s2[i:j], len(s2) الفهرسة التقطيع معرفة الطول "a %s parrot" % 'dead' تهيئة السلاسل النصية for x in s2, 'm' in s2 الحلقة تكرارية العضوية لاحظ أنه لا فرق بين علامة الاقتباس المفردة والمزدوجة ، فكلهن يؤدين العمل نفسه، ولك حرية الاختيار.

العمل على السلاسل النصية كما مر عليك أن إنشاء كائن من السلاسل النصية يكفي له أن تذكر اسمه وتسند له قيمة من نوع السلاسل النصية ، وقد مر عليك ثلاثة أمثلة في الجدول السابق، فدعنا نستكشف الجوانب الأخرى.. العمليات الأساسية لقد مر عليك المعامل الجمع + ومعامل الضرب * وعرفت كيف التعامل معها في كائنات الأعداد ، أما كائنات السلاسل النصية فهي تعامل الجمع كإضافة والضرب كتكرار للنص ، ولكن يشترط في معامل الجمع، أن يكون كلا الطرفين سلاسل نصية. وتزودنا بايثون بدالة تحسب لنا طول السلسلة النصية وهي الدالة len وهي مدمجة مع اللغة لا تحتاج إلى استيراد ، وهذه بعض الأمثلة: % python >>> len('abc') # length: number items 3 >>> 'abc' + 'def' # concatenation: a new string 'abcdef' >>> 'Ni!' * 4 # like "Ni!" + "Ni!" + ... 'Ni!Ni!Ni!Ni!'

سنأتي الآن إلى عمل حلقة تكرارية في السلسلة النصية وذلك باستخدام for واختبار العضوية باستخدام in : >>> myjob = "hacker" >>> for c in myjob: print c, # step though items ... h a c k e r >>> "k" in myjob # 1 means true 1

الفهرسة والتقطيع السلسلة النصية

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

>>> S = 'spam' >>> S[0], S[-2] # indexing from front or end ('s', 'a') >>> S[1:3], S[1:], S[:-1] # slicing: extract section

('pa', 'pam', 'spa')

قمنا أولا بتعريف متغير s بأنه سلسلة نصية وأسندنا إليه قيمة معينة ، ثم قمنا بعملية الفهرسة من البداية ومن النهاية ، فـ[0]S تعني أظهر الحرف الذي فهرسته 0 والناتج كان s ، و[2-]S تعني أظهر الحرف الذي فهرسته 2 من الأخير. بعد ذلك قمنتا بعملية التقطيع باستخدام المفهرس فـ[1:3]S تعني اجلب من الحرف الأول فما أعلى ولكن لا تجلب الحرف الثالث وما فوقه ، أما[:1 ]S فتعني اجلب من الحرف الأول فما فوقه إلى النهاية ، أما [1-:]S فتعني اجلب كل السلسلة ماعدا الحرف الأخير تهيئة السلاسل النصية إذا كان عندك سلسلة طويلة وأردت أن تضيف إليها كائنات متغيرة فهناك عدة طرق، ولكن بايثون توفر لك طريقة تستعملها لغة السي بشكل كبير ،ولغة #C حديثا ، انظر المثال التالي:

>>> S = 'spam'  >>> S[0] = "x"   Raises an error!

>>> S = S + 'Spam!' # to change a string, make a new one >>> S 'spamSpam!' >>> S = S[:4] + 'Burger' + S[-1] >>> S 'spamBurger!' >>> 'That is %d %s bird!' % (1, 'dead') # like C sprintf That is 1 dead bird!

لاحظ أن بايثون إعادة تعريف المعامل % ليعمل مع السلاسل النصية ، وعند الأعداد كباقي القسمة، كما قلنا سابقا أن السطر الأخير استخدم هيئة السي في ترتيب النص وخاصة الدالة sprintf وأخذ كل قواعدها، وهي بسيطة تعني ما كل على اليسار يساوي ما على اليمين على الترتيب ، وإليك أمثلة أكثر على هذه التهيئة: >>> exclamation = "Ni" >>> "The knights who say %s!" % exclamation 'The knights who say Ni!' >>> "%d %s %d you" % (1, 'spam', 4) '1 spam 4 you' >>> "%s -- %s -- %s" % (42, 3.14159, [1, 2, 3]) '42—3.14159 -- [1, 2, 3]' ولكن هل الحروف بعد % اعتباطية ؟ نقول لا ولكنها كل واحدة تدل على شيء ، أما s% فهي عامة لكل كائن سواء أكان عددا أو سلسلة نصية أو غيره ، أما البقية فالجدول التالي يشرحها: عدد ستعشري Hex integer %X سلسلة نصية String % الفاصلة العائمة الهيئة 1 Floating-point %e حروف Character %c الفاصلة العائمة الهيئة 2 Floating-point %E عدد عشري Decimal %d الفاصلة العائمة الهيئة 3 Floating-point %f

عدد صحيح Integer %i الفاصلة العائمة الهيئة 4 Floating-point %g

Unsigned (int) %u الفاصلة العائمة الهيئة 5 Floating-point %G

عدد ثماني Octal integer %o حرف % %%

عدد ستعشري Hex integer %x

الأدوات العامة لسلاسل النصية

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

>>> import string # standard utilities module >>> S = "spammify" >>> string.upper(S) # convert to uppercase 'SPAMMIFY' >>> string.find(S, "mm") # return index of substring 3 >>> string.atoi("42") # convert from/to string 42 >>> string.join(string.split(S, "mm"), "XX") 'spaXXify'

لعل المثال الأخير وهو الأكثر تعقيدا،فهو سهل الفهم فكل ما في القضية أن الدالة split قامت بتجزئة السلسلة إلى قسمين عند الحرف mm ، ثم قامت الدالة join بدمج XX بين القسمين السابقين ، يمكنك تجربة كل دالة واحدة ومعرفة كيفية عملها. لاحظ أن الدالة atoi تقوم بتحويل السلسلة النصية إلى عدد فقط ، ولكن توجد دالة أخرى مدمجة تسمى eval تقوم بتحويل السلسلة النصية إلى أي نوع ولكنها أبطأ بطبيعة الحال من الدالة الأولى. الاختلافات في كتابة السلسلة النصية في نهاية كلمنا عن السلاسل النصية ، سنتكلم عن أحرف الهروب التي بها تستطيع أن تنسق النص بشكل جيد ، مثل حرف بداية السطر وغيرها والجدول التالي يبين لك هذه الأحرف في بايثون: \newline الاستمرار \n سطر جديد \\ إظهار \ \v

Tab عمودية \' إظهار علامة اقتباس واحدة \t

Tab رأسية \" إظهار علامة اقتباس مزدوجة \r العودة إلى بداية السطر Carriage return \a جرس \f

صفحة جديدة Formfeed \b مفتاح الحذف الخلفي Backspace \0XX

Octal value XX \e زر الهروب Escape \xXX

Hex value XX \000 Null عدم إنهاء السلسلة \other

أي حرف آخر

القوائم

نكمل مشوارنا في غمار لغة بايثون ونصل إلى كائن يعتبر أكثر الكائنات المدمجة مرونة وترتيب ألا وهو القائمة list ، تمتاز القوائم عن السلاسل النصية أنها تستطيع أن تجمع في ضمنها عدة كائنات وليست النصوص فقط ، فالقائمة يمكن أن تكون من سلسلة نصية وأعداد وكائنات أخرى حتى قوائم أخرى. وتقوم القائمة مقام بنى المعطيات في اللغات الأخرى مثل لغة السي والجافا،وتتميز القوائم في بايثون بعدة مميزات منها: مجموعة مرتبة من كائنات غير متجانسة من الناحية الوظيفية، القائمة مكان للتجميع الكائنات لذا يمكنك أن تنظمهم كمجموعة والقائمة أيضا تقوم بترتيبهم من اليسار إلى اليمين . الوصول باستخدام المفهرس مثل السلاسل النصية تستطيع أن تصل إلى أعضاء القائمة باستخدام المفهرس، وإجراء عملية التقطيع والسلسلة. مرونة عالية تتمتع القوائم بمرونة عالية أكبر من مرونة السلاسل النصية، بحيث يمكن أن تكبر وتصغر حسب متطلبات برنامجك، ويمكنك وضع قوائم في قوائم بحيث تصير متشابكة. مصفوفة من الكائنات المرجعية من الناحية التقنية تعتبر القوائم نوع خاص من المصفوفات في لغة السي،وهي من هذه الناحية عبارة عن كائنات مرجعية، ونقصد هنا بقولنا مرجعية ، أي عندما نتعامل معها ب can't read superblockعد تعريفها فإننا نتعامل مع مؤشر يؤشر إلى الكائن وليس نسخة عنه، وهذا يعطينا سرعة أكبر ويسهل علينا البرمجة. الجدول التالي يوضح أهم عمليات القوائم: العملية الوصف L1 = [] قائمة فارغة L2 = [0, 1, 2, 3] أربعة عناصر والأدلة من 0 إلى 3

L3 = ['abc', ['def', 'ghi']] قوائم متداخلة

L2[i], L3[i][j] L2[i:j], len(L2) الفهرسة التقطيع الطول L1 + L2, L2 * 3 سلسلة إعادة for x in L2, 3 in L2 تكرار العضوية

L2.append(4), L2.sort(), L2.index(1), L2.reverse() الدوال: توسيع ترتيب البحث عكس del L2[k], L2[i:j] = [] الانكماش L2[i] = 1, L2[i:j] = [4,5,6] إسناد الفهرس اسناد المقطع range(4), xrange(0, 4) إنشاء قوائم أو مجموعات من الأعداد

ستلاحظ أنك قد رأيت معظم العمليات التي ذكرت في الجدول السابق قد مرت عليك في السلاسل النصية ، إلا بعض العمليات التي تدعمها القوائم ولا تدعمها السلاسل النصية مثل إسناد الفهرس وإسناد المقاطع والتوسع والانكماش. العمل على القوائم أفضل طريقة لفهم القوائم هي العمل عليها،ومرة أخرى سنأخذ العمليات التي ذكرت في الجدول السابق ونحاول أن نشرحها بشيء من الأمثلة العملية. العمليات الأساسية القوائم تدعم معظم العمليات التي تدعمها السلاسل النصية وإليك المثال التالي : % python >>> len([1, 2, 3]) # length 3 >>> [1, 2, 3] + [4, 5, 6] # concatenation [1, 2, 3, 4, 5, 6] >>> ['Ni!'] * 4 # repetition ['Ni!', 'Ni!', 'Ni!', 'Ni!'] >>> for x in [1, 2, 3]: print x, # iteration ... 1 2 3 الفهرسة والتقطيع بما أن القوائم عبارة عن سلاسل ،فإن عمليتي الفهرسة والتقطيع تعمل عليها بشكل جيد مثل السلاسل النصية مع ملاحظة الموقع الحقيقي لكل كائن ، وإليك هذا المثال: >>> L = ['spam', 'Spam', 'SPAM!'] >>> L[2] # offsets start at zero 'SPAM!' >>> L[-2] # negative: count from the right 'Spam' >>> L[1:] # slicing fetches sections ['Spam', 'SPAM!']

الإسناد في القوائم

الأشياء التي أتت بها القوائم وتعتبر متميزة عن السلاسل النصية هي المقدرة على إسناد قيم جديدة إلى الفهارس والمقاطع في القوائم وذلك بخلاف السلاسل النصية التي تحتاج لفعل ذلك إلى إنشاء نسخة جديدة من الكائن. عند استخدام القوائم تستطيع تغيير المحتوى باستخدام الفهرس أو المقطع كما يبين ذلك المثال التالي : >>> L = ['spam', 'Spam', 'SPAM!'] >>> L[1] = 'eggs' # index assignment >>> L ['spam', 'eggs', 'SPAM!'] >>> L[0:2] = ['eat', 'more'] # slice assignment: delete+insert >>> L # replaces items 0,1 ['eat', 'more', 'SPAM!'] مع ملاحظة أن بايثون حين تقوم بالإسناد إلى القوائم عن طريق المقاطع ، فإنها أولا تقوم بحذف المقطع المختار ثم تضع القيمة الجديدة مكانه ولو كانت القيمة أكثر من كائن واحد، على سبيل المثال عندنا قائمة L تساوي [1, 2, 3] فعند تطبيق عملية الإسناد باستخدام المقطع التالي L[1:2] = [4, 5] فإن النتيجة ستكون [1, 4, 5, 3]. القوائم تدعم بعض الدوال منها توسيع والترتيب والبحث والعكس وإليك المثال التالي: >>> L.append('please') >>> L ['eat', 'more', 'SPAM!', 'please'] >>> L.sort() >>> L ['SPAM!', 'eat', 'more', 'please'] >>> L.reverse() >>> L ['please', 'more', 'eat', 'SPAM!'] >>> L.index('eat') 2 وأخيرا بما أن القوائم عبارة عن سلسلة مرنة ، فإنها تدعم الحذف باستخدام الفهرس أو المقطع، وذلك عن طريق الاسناد إلى قائمة فارغة أو الحذف عن طريق الفهرس أو المقطع :

>>> L.sort() >>> L ['SPAM!', 'eat', 'more', 'please'] >>> del L[0] # delete one item >>> L ['eat', 'more', 'please'] >>> del L[1:] # delete an entire section >>> L # same as L[1:] = [] ['eat']

القواميس

بالأضافة إلى القوائم تعتبر القواميس من أهم الكائنات المدمجة المرنة في لغة بايثون،وإذا كنا اعتبرنا أن القوائم عبارة عن مجموعة من الكائنات المرتبة ، فإن القواميس بعكس ذلك فهي مجموعة من الكائنات غير المرتبة، ويعتبر الشيء الرئيسي في القوائم الذي يقوم عليه ترتيب وإحضار عناصر القاموس هو المفتاح وليس موقع العنصر. وكما تلاحظ فإن القواميس استطاعت استبدال الكثير من خوارزميات وبنى المعطيات التي ستضطر إلى استخدامها يدويا في بعض اللغات منخفضة المستوى، وأيضا تستخدم القواميس في بعض الأحيان لأداء عمل الجداول في بعض اللغات منخفضة المستوى. وتتميز القواميس بعدة خصائص منها: الوصول باستخدام المفتاح وليس الموقع القواميس في بعض الأحيان يطلق عليها المصفوفات المترابطة،هذا الترابط يضع القيم باستخدام المفاتيح، وباستطاعتك إحضار أي عنصر في القاموس باستخدام المفتاح الذي خزن به، ستستخدم نفس عمليات الفهرس ولكن باستخدام المفتاح وليس باستخدام الموقع. مجموعة غير منظمة من كائنات غير متجانسة بخلاف القوائم، العناصر في القواميس لا تبقى على ترتيب معين،في الحقيقة بايثون تقدم ترتيب عشوائي يضمن تقديم مشاهدة سريعة، المفاتيح تقدم راوبط (غير فيزيائية) إلى أماكن العناصر في القواميس. خصائص مرنة مثل القوائم القواميس تزودك بميزة التوسيع والتقلص بدون إنشاء نسخة جديدة، وكذلك يمكنها تحتوي على عناصر من كل نوع،وكذلك ميزة التداخل بحيث يمكنك أن تنشأ قواميس في قواميس وكذلك يمكنك قوائم في قواميس،وأيضا يمكنك أن تسند قيم جديدة بالاعتماد على المفاتيح جداول من كائنات المرجعية إذا كنا قلنا أن القوائم عبارة عن مصفوفة من الكائنات المرجعية ، فإن القواميس عبارة عن جداول غير منظمة من الكائنات المرجعية. داخليا القواميس تستخدم جداول من بنى المعطيات تدعم ميزة الاسترجاع السريع وهي تبدأ صغيرة وتكبر حسب الطلب، وعلاوة على ذلك بايثون توظف خوارزميات محسنة لإيجاد المفاتيح مما يعطي الاسترجاع سرعة كبيرة. وعند التعمق نجد أن القواميس تخزن مراجع الكائنات وليس نسخ منها مثل القوائم بالضبط. الجدول التالي يوضح أهم العمليات الشائعة على القواميس، لاحظ أنها تشابه القوائم. تكتب القواميس على شكل التالي: key:value العملية الوصف D1 = { } قاموس فارغ d2 = {'spam': 2, 'eggs': 3} عنصرين في القاموس

d3 = {'food': قالب:'ham': 1, 'egg': 2 التداخل

d2['eggs'], d3['food']['ham'] الفهرسة باستخدام المفتاح d2.has_key('eggs'), d2.keys(), d2.values() الدوال : دالة العضوية قائمة المفاتيح قائمة القيم len(d1) الطول (عدد الإدخالات المخزنة) d2[key] = new, del d2[key] الإضافة والتعديل الحذف

العمل على القواميس

دعنا نرجع إلى المفسر لنأخذ حريتنا في تطبيق بعض العمليات التي ذكرت في الجدول السابق: العمليات الأساسية: بشكل عام ، يمكنك إنشاء قاموس والوصول إلى عناصره باستخدام المفتاح key ، والدالة len المدمجة تعمل أيضا مع القواميس، وهي ترجع عدد العناصر المخزنة في القاموس أو بمعنى آخر ترجع طول قائمة المفاتيح. وعند حديثنا عن المفاتيح فإن الدالة keys ترجع كل المفاتيح في القاموس مجموعة في قائمة، هذا يعتبر أداة قوية لمعالجة القواميس بشكل متسلسل، ولكن لا تعتمد عليه في ترتيب قائمة المفتايح ،(تذكر أن القواميس عشوائية). % python >>> d2 = {'spam': 2, 'ham': 1, 'eggs': 3} >>> d2['spam'] # fetch value for key 2 >>> len(d2) # number of entries in dictionary 3 >>> d2.has_key('ham') # key membership test (1 means true) 1 >>> d2.keys() # list of my keys ['eggs', 'spam', 'ham']

التغيير في القواميس كما قلنا أن القواميس غير مرتبة، فلذا تستطيع أن تكبر وتصغر واسناد قيم جديدة أيضا ،بدون الحاجة إلى إنشاء قواميس جديدة مثل القوائم بالضبط، فقط عليك إسناد قيمة أو تغييرها لإنشاء مدخلة جديدة في القاموس. والدالة del تعمل أيضا على القواميس مثلما تعمل على القوائم بالضبط ، إليك المثال التالي: >>> d2['ham'] = ['grill', 'bake', 'fry'] # change entry >>> d2 {'eggs': 3, 'spam': 2, 'ham': ['grill', 'bake', 'fry']}

>>> del d2['eggs'] # delete entry >>> d2 {'spam': 2, 'ham': ['grill', 'bake', 'fry']}

>>> d2['brunch'] = 'Bacon' # add new entry >>> d2 {'brunch': 'Bacon', 'spam': 2, 'ham': ['grill', 'bake', 'fry']}

لاحظ هنا الطريقة في إنشاء مدخلة جديدة في القاموس المثال الأخير ، فهي تختلف عن طريقة إضافة مدخلة الجديدة في القوائم ، وذلك أن القواميس لا تعتمد على موقع بل على المفتاح فهي عشوائية ولا يهمها المكان، بعكس القواميس فهي تحتاج إلى الدالة append لإضافة مدخلة جديدة في القائمة. مثال واقعي سنأخذ هنا مثال أكثر واقعية وهو إنشاء جدول يحوي أسماء اللغات -ثلاث هنا- في العمود الأول -المفتاح- والعمود الثاني يحوي أسماء مؤلفيها – القيمة-،ركز في هذا المثال وحاول تطبيقه: >>> table = {'Python': 'Guido van Rossum', ... 'Perl': 'Larry Wall', ... 'Tcl': 'John Ousterhout' } ... >>> language = 'Python' >>> creator = table[language] >>> creator 'Guido van Rossum' >>> for lang in table.keys(): print lang, '\t', table[lang] ... Tcl John Ousterhout Python Guido van Rossum Perl Larry Wall

لاحظ الأمر الأخير،لأن القواميس ليست متسلسلة فلا يمكن أن تكررها بشكل مباشر باستخدام for مثل السلاسل النصية أو القوائم. ولكن إذا أردت أن تعرض جميع عناصر القاموس، فقم أولا باستخدام الدالة keys لجلب قائمة المفاتيح في القاموس ثم كررها واعرض قيمتها باستخدام for ، إذا لم تكن تعرف for فلا تتضايق فسوف ندرسها بالتفصيل في الدروس القادمة. وهنا بعض الملاحظات يجب أن تتذكرها حول القواميس قبل أن ننتقل إلى الكائنات الأخرى: العمليات التي تعتمد على التسلسل لا تعمل مع القواميس مثلما رأينا في ===المثال الأخير=== عند إسناد قيمة جديدة فإنك تضيف مدخلة جديدة في القاموس ليس شرطا أن يكون المفتاح سلسلة نصية ، بل تعمل كل الكائنات ماعدا القوائم المجموعات آخر نوع في اسكشافنا لبايثون لأنواع المجمعات هي المجموعات،المجموعات تتركب ببساطة من مجموعة من الكائنات،وهي تعمل بالضبط مثل القوائم باستثناء أن القوائم لا يمكن أن تتغير من مكانها فهي ثابتة وتكتب عادة كعناصر متسلسلة محصورة بين قوسين وليس بين قوسين معكوفين مثل القوائم.والمجموعات تستمد معظم خصائصها من القوائم وهي: مجموعة منظمة من الكائنات مثل السلاسل النصية والقوائم المجموعات عبارة عن مجموعة من الكائنات المنظمة في نسق معين ومثل القوائم يمكن أن تحتوي على كل أنواع الكائنات الوصول باستخدام الموقع مثل السلاسل النصية والقوائم يمكنك الوصول إلى أي عنصر في المجموعة باستخدام موقعه وليس مفتاحه، والمجموعات تدعم كل العلميات التي تستخدم الموقع والتي سبق وأن أخذناها مثل الوصول باستخدام الفهرس والتقطيع. سلسلة ثابتة من الكائنات مثل السلاسل النصية المجموعات ثابتة ويعني ذلك أنها لا تدعم أي عملية تغيير في المكان (الاسناد) مثل التي رأيتها في القوائم، وهي أيضا لا تدعم التوسع والتقلص بل يجب لفعل ذلك إنشاء نسخة جديدة من المجموعة المراد تكبيرها أو تصغيرها. مصفوفة من الكائنات المرجعية مثل القوائم بالضبط، المجموعة عبارة عن مصفوفة من الكائنات المرجعية. الجدول التالي يوضح أهم العمليات على المجموعات، مع ملاحظة لكي تنشيء مجموعة فارغة فقط يكفي وضع قوسين فقط.

العملية الوصف () مجموعة فارغة t1 = (0,) عنصر واحد في المجموعة t2 = (0, 1, 2, 3) أربعة عناصر

t2 = 0, 1, 2, 3 أربعة عناصر أيضا t3 = ('abc', ('def', 'ghi')) t1[i], t3[i][j] t1[i:j], len(t1) التداخل الفهرسة التقطيع الطول t1 + t2 t2 * 3 الجمع الإعادة for x in t2, 3 in t2 التكرار العضوية

أربعة الصفوف الأولى في الجدول تستحق إيضاحا أكثر، بسبب أن الأقواس تستخدم في إغلاق المعاملات ( راجع الأعداد) فإنك تحتاج إلى شيء مميز لإخبار بايثون أن كائنا واحدا بين القوسين هو من فئة المجموعات وليس عبارة عن تعبير بسيط،بكل بساطة ضع فاصلة سفلية قبل إقفال القوسين، وبذلك تخبر بايثون أن ما بين القوسين هو عبارة عن مجموعة. وكحالة خاصة فإن بايثون تتيح لك الحرية في وضع الأقواس أو لا في إنشاء المجموعات كما في الصف الرابع، ولكن يفضل دائما إذا سمحت لك الفرص بأن تستخدم الأقواس لأنها تضمن لك عدم التشويش. في العمليات الأخيرة في الجدول السابق فهي مشابهة تماما لمثيلاتها على السلاسل النصية والقوائم فلذا لا يوجد داعي لشرحها مرة أخرى ، فقط يكفي أن تتطبقها أنت على مفسر بايثون للتأكد من فهمك لها. لماذا نستخدم المجموعات؟ أول سؤال يتبادر للمبتدئ لماذا نستخدم المجموعات إذا كان عندنا القوائم؟ قد يكون هذا تاريخيا ولكن أفضل إجابة أن ثبات المجموعات يوفر العديد من مميزات، مثلا يمكن باستخدام المجموعات التأكد أن الكائنات لا تتغير باستخدام مراجع أخرى في مكان آخر في البرنامج. بعض العمليات المدمجة تحتاج إلى المجموعات وليس القوائم، وبشكل عام استخدم القوائم في المجموعات المنظمة التي يطرأ عليها التغيير أما في بقية الحالات فاستخدم المجموعات.

الملفات

على أمل أن معظم القراء عندهم خلفية عن فكرة أسماء الملفات التي تخزن المعلومات في الكميبوتر والتي يديرها نظام التشغيل،يكون آخر كائن مدمج في بايثون يزودنا بطريقة الوصول إلى تلك الملفات ضمن برامج بايثون.إن الدالة مدمجة open تنشأ كائن الملف في بايثون وهي تقدم لنا خدمة الربط إلى الملف المستقر على جهازنا،بعد مناداة الدالة open ،يمكننا القراءة والكتابة من الملف المربوط،بمناداة دوال الكائن ملف. عند مقارنة كائن الملفات بالكائنات الأخرى سنجده غريبا قليلا، لأنه ليس عددا وكائنات متسلسلة أو خرائطية، إنما هو استخدام دوال لمعالجة العمليات الشائعة في الملفات، وهذا الكائن ليس موجودا في اللغات الأخرى ، وإنما يدرس في مجال معالجة الخرج والدخل،وهو ليس مستقلا وإنما يستخدم دوال أخرى لمعالجة الملفات. الجدول التالي يوضح ملخص لأهم العلميات على الملفات، لفتح الملف يجب مناداة الدالة open وتزويدها بمعاملين الأول اسم الملف مع مساره ،و الثاني طريقة معاملة الملف للقراء r للكتابة w للكتابة في آخر الملف a ، مع ملاحظة أن كلا المعاملين يجب أن يكونا سلاسل نصية: العملية الوصف output = open('/tmp/spam', 'w') إنشاء ملف output في نمط الكتابة

input = open(''data', 'r'') إنشاء ملف output في نمط القراءة

S = input.read() اسناد خرج الملف بالكامل إلى سلاسل نصية S = input.read(N) قراءة N من البايتات (واحد أو أكثر) S = input.readline() قراءة السطر التالي L = input.readlines() قراءة خرج الملف ووضعه في قائمة بحيث كل سطر في الملف يساوي عنصر في القائمة output.write(S) كتابة S داخل الملف output output.writelines(L) كتابة جميع أسطر السلاسلة النصية في قائمة L داخل الملف output output.close() إغلاق الملف، بعد إغلاق الملف لا يمكن القراءة منه أو الكتابة عليه ويعطي خطأ عند محاولة ذلك

عند إنشائك للملف يمكنك الكتابة والقراءة منه، وفي كل الحالات بايثون تتعامل مع محتويات الملف كسلاسل نصية ولو كانت أعداد، وكذلك عند الكتابة إلى الملفات فهي تعاملها كسلاسل النصية، الجدول السابق يحوي أهم العمليات ويمكنك مراجعة وثائق بايثون للحصول على كل عمليات الملفات. عملية إغلاق الملف close، تعمل على إغلاق الاتصال بين البرنامج والملف الخارجي وهي مهم لتحرير مساحة من الذاكرة، ولكن كما تعلم أن بايثون تملك مجمع نفايات يقوم بغلق الاتصال عندما لا تكون في حاجة إليه تلقائي، وعملية إغلاق الملف لاتضر في البرامج الصغيرة مثل سكربتات، ولكن عند العمل على أنظمة كبيرة يجب ألا تتهاون عن غلق الملفات بنفسك وعدم الاعتماد على مجمع النفايات لتضمن أداء جيدا. العمل على الملفات هنا مثال بسيط يوضح كيفية العمل على الملفات، أول شيء قمنا بفتح ملف في نمط الكتابة،فيقوم المفسر بالبحث عن الاسم المعطى فإن لم يجده يقوم بإنشاء ملف جديد ويعطيه الاسم الذي أعطيناه إياه، ثم قمنا بالكتابة في الملف المنشئ سطر واحد مع ملاحظة إعطاءه علامة سطر جديد، ثم قمنا بإغلاق الملف، ثم قمنا بفتحه في نمط القراءة وقمنا بقراءة السطر الأول منه،ثم حاولنا قراءة السطر الثاني فأعطنا الناتج فراغ لأنه السطر الثاني فارغ: >>> myfile = open('myfile', 'w') # open for output (creates) >>> myfile.write('hello text file\n') # write a line of text >>> myfile.close()

>>> myfile = open('myfile', 'r') # open for input >>> myfile.readline() # read the line back 'hello text file\012' >>> myfile.readline() # empty string: end of file

وهناك بعض الملاحظات حول الملفات: من الإصدار 2.2 لبايثون استبدلت الدالة open بالدالة file فيمكنك استخدام الدالة file مكان الدالة السابقة، وكذلك يمكنك استخدام الدالة السابقة لأنها تعمل كقناع للدالة الجديدة في الإصدارات الجديدة لاحظ أن قراءة الملف تتم مرة واحدة والملف عند عرضه مرة ثانية باستخدام الدالة read لا يتم عرضه ويعطي فراغ، فيجب إعادة قراءة الملف مرة ثانية(هذا ما لاحظته على الإصدار 2.3 من بايثون) الخصائص العامة للكائنات الآن وبعد أن أنهينا جميع الكائنات المدمجة في بايثون، دعنا نأخذ جولة سريعة عن الخصائص العامة للكائنات المدمجة في باثيون التي تتشارك فيها. تصنيف الكائنات الجدول التالي يصنف جميع الأنواع التي رأيناها سابقا: نوع الكائن صنفه قابل للتوسع؟ الأعداد Numbers عددي لا السلاسل النصية Strings متسلسل لا القوائم Lists متسلسل نعم القواميس Dictionaries تخطيطي

نعم المجموعات Tuples متسلسل لا الملفات Files امتدادي N/A كما نرى من الجدول فإن السلاسل النصية والقوائم والمجموعات تشترك في أنها متسلسلة،و أن القوائم والقواميس فقط تدعم قابلية التوسع والإنكماش فقط أما غيرها فلا. الملفات تستخدم دوال للتوسع،فهي ليست قابلة للتوسع بالضبط، صحيح تتوسع حين يتم الكتابة، ولكن ليس بالقيود التي تفرضها بايثون على الأنواع. العمومية لقد رأينا العديد من الكائنات المركبة، وبشكل عام نستطيع أن نقول: -القوائم والقواميس والمجموعات يمكنها أن تخزن أي نوع من الكائنات -القوائم والقواميس والمجموعات تدعم التداخل المركب -القوائم والقواميس تستطيع أن تكبر وتصغر دينامكيا بسبب أن هذه الكائنات تدعم التداخل المركب فهي مناسبة جدا للتمثيل المعلومات المركبة في التطبيق،انظر إلى المثال التالي: >>> L = ['abc', [(1, 2), ([3], 4)], 5] >>> L[1] [(1, 2), ([3], 4)] >>> L[1][1] ([3], 4) >>> L[1][1][0] [3] >>> L[1][1][0][0] 3 قمنا بإنشاء قائمة تحوي على قوائم ومجموعات متداخلة، ثم قم قمنا بالوصول إلى الأعضاء عن طريق المفهرس، لاحظ أن بايثون تبدأ من اليسار إلى اليمين في الوصول إلى موقع الكائن باستخدام المفهرس، ولاحظ كيف تعمقنا في الوصول إلى الكائن المراد في كل مرة حتى وصلنا إلى الكائن المراد بالضبط، ومن هنا تعلم أهمية التداخل في بنى المعطيات وما تقدمه بايثون من أدوات سهلة لتأدية الأغراض. المراجع المشتركة لقد قلنا سابقا إننا نخزن مراجع إلى الكائنات وليس نسخة عنها،وعمليا هذا ما تريده في أغلب الأحيان،ولكن أحيانا ينبغى عليك التركيز في هذه النقطة وخاصة إذا كانت هناك مراجع مشتركة فإن أي تغيير في المرجع الأصلي يغيير كل النتائج، على سبيل المثال إذا أنشأنا قائمة X ثم قمنا بإنشاء قائمة أخرى L وضمناها مرجعا إلى القائمة X ثم قمنا إنشاء قاموس D وكذلك ضمنا أحد قيم مدخلاته مرجع إلى القائمة X سيكون المثال على الشكل التالي: >>> X = [1, 2, 3] >>> L = ['a', X, 'b'] >>> D = {'x':X, 'y':2} في هذه الحالة هناك مرجعين إلى القائمة X، وبما أن القوائم تقبل إسناد قيم جديدة إليها، فانظر ماذا يحدث عند إسناد قيمة جديدة: >>> X[1] = 'surprise' # changes all three references! >>> L ['a', [1, 'surprise', 3], 'b'] >>> D {'x': [1, 'surprise', 3], 'y': 2} فكنا منتبها لهذه النقطة. المقارنة ،والمساواة والتحقق جميع كائنات في بايثون تستجيب لعمليات المقارنة وعمليات التحقق فيما بينها، وكأنها أعداد وهذا بخلاف كثير من اللغات التي لا تسمح بمثل هذه المقارنات، انظر إلى المثال التالي: >>> L1 = [1, ('a', 3)] # same value, unique objects >>> L2 = [1, ('a', 3)] >>> L1 == L2, L1 is L2 # equivalent?, same object? (True, False) وهنا اختبرنا علاقة المساواة وعلاقة التحقق، وانظر المثال التالي: >>> L1 = [1, ('a', 3)] >>> L2 = [1, ('a', 2)] >>> L1 < L2, L1 == L2, L1 > L2 # less, equal, greater: a tuple of results? (False, False, True) وهنا عدة ملاحظات في المقارنة بين الكائنات المختلفة في بايثون: الأعداد تقارن بمقاديرها التقريبية السلاسل النصية تقارن معجميا، أي حرفا بحرف أي"abc" < "ac" لاحظ أن c أكبر من b في المعجم القوائم والمجموعات تقارن كل عنصر مع ما يقابله من اليسار إلى اليمين

القواميس تقارن أيضا باستخدام القائمة المخزنة من المفتاح والقيمة تلميحات مهمة في هذا القسم من كل فصل سنأخذ تلميحات وحيل تساعدك على فهم بايثون بشكل أعمق مع حل مشاكل قد تواجهك ولا تعرف لها إجابة وأنت مبتدئ في اللغة: إسناد المراجع المشتركة قد تكلمنا عن هذا النقطة مسبقا، ونعود نكرر شرح هذه النقطة؛لأن عدم فهمها يؤدي إلى غموض في فهم ما يجري في المراجع المشتركة ضمن برنامجك، على سبيل المثال سنقوم بإنشاء قائمة L ثم نقوم بإنشاء قائمة M نضمنها القائمة L ثم نقوم بإسناد قيمة جديدة في القائمة L ، انظر ماذا يحدث: >>> L = [1, 2, 3] >>> M = ['X', L, 'Y'] # embed a reference to L >>> M ['X', [1, 2, 3], 'Y']

>>> L[1] = 0 # changes M too >>> M ['X', [1, 0, 3], 'Y'] تلميح إن تأثير هذه الجزئية يكون مهما فقط في البرامج الضخمة، وعادة المراجع المشتركة تقوم بما تريده بالضبط، ولكن إذا أردت أن تسند نسخة وليس مرجع فماذا تفعل؟ بكل بساطة أضف نقطتين على الشكل التالي: >>> L = [1, 2, 3] >>> M = ['X', L[:], 'Y'] # embed a copy of L >>> L[1] = 0 # only changes L, not M >>> L [1, 0, 3] >>> M ['X', [1, 2, 3], 'Y'] التكرار على مستوى واحد عندما تكلمنا سابقا عن تكرار السلسلة قلنا أنه عبارة عن إعادة السلسلة عدد من المرات،هذا الأمر صحيح ولكن عندما تكون السلسلة متداخلة تكون النتيجة تختلف عما تريده بالضبط، انظر إلى المثال التالي:

>>> L = [4, 5, 6] >>> X = L * 4 # like [4, 5, 6] + [4, 5, 6] + ... >>> Y = [L] * 4 # [L] + [L] + ... = [L, L,...] >>> X [4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6] >>> Y 4, 5, 6, [4, 5, 6], [4, 5, 6], 4, 5, 6 لاحظ الفرق عندما عندما وضعنا القوسين، وهذا الفرق أيضا يتجلى عندما نقوم بإسناد قيمة جديدة إلى القائمة L انظر المثال التالي: >>> L[1] = 0 # impacts Y but not X >>> X [4, 5, 6, 4, 5, 6, 4, 5, 6, 4, 5, 6] >>> Y 4, 0, 6, [4, 0, 6], [4, 0, 6], 4, 0, 6 تلميح هذه حالة ثانية من متاهات المراجع المشتركة، ولكي تحل هذه المشكلة فقط طبق التلميح السابق،وهذا ينطبق أيضا الجمع والتقطيع فكن منتبها. الأنواع الثابتة لا يمكن أن تتغير في مكانها كما مر علينا سابقا أن الأنواع الثابتة لا يمكن تغيير مثل السلسل النصية والمجموعات، ولكن إذا أردت أن تغيرها فتضطر إلى إنشاء نسخة جديدة انظر المثال التالي: T = (1, 2, 3) T[2] = 4 # error! T = T[:2] + (4,) # okay: (1, 2, 4) تلميح لإنشاء نسخة جديدة ،نقوم بإنشاء كائن جديدة ثم نسند إليه الكائن السابق باستخدام ميزة التقطيع ثم نضيف إليه ما نريد إضافته مثل المثال السابق

الملخص في هذا الفصل تناولنا العديد من المواضيع التي تتعلق بأنواع الكائنات في بايثون،بدأنا ببنة البرامج في بايثون ثم الأعداد والسلاسل النصية ثم القوائم والقواميس والمجموعات ثم أخير الملفات ثم أخذنا أهم الخصائص العامة للكائنات المدمجة في بايثون ثم قمنا باستعراض أهم المشكلة التي تتعلق بالكائنات في بايثون. الأمثلة في هذا الفصل تميزت بأنها خصصت لتبيين الأشياء الأساسية، في الفصول القادمة ستكون الأمثلة أكثر واقعية.

الفصل الثالث: التعابير الأساسيةالنقاط المهمة:

الاسناد Print جملة الأختبار if الحلقة التكرارية while الحلقة التكرارية for تلميحات المخلص الآن وبعد أن رأينا الأنواع الأساسية للكائنات المدمجة في بايثون في الفصل السابق، سنتحرك في هذا الفصل لشرح أنواع التعابير الأساسية. وبكل بساطة التعابير هي عبارة عن أشياء نكتبها تخبر بايثون ما على البرنامج أن يفعله بالضبط. ولفهم التعابير في بايثون نسترجع ما قلناه في الفصل الثاني لما تكلمنا عن بنية البرنامج في بايثون، وقلنا أن هرمية البرنامج تكون كالتالي: ١- البرنامج يتكون من وحدات

٢- والوحدات تحتوي على عبارات ٣- والعبارات تنشأ الكائنات وتعالجها. إذا التعابير هي التي تعالج الكائنات -التي مرت علينا في الفصل السابق-،علاوة على ذلك التعابير هي التي تنشأ الكائنات بواسطة إسناد قيم إليها، وكذلك أيضا تنشأ أنواع جديدة من الكائنات مثل الفصول والدوال والوحدات. الجدول التالي يلخص تعابير بايثون،لقد مرت علينا .بعضا منها في الفصل الثاني مثل الإسناد والحذف del ،في هذا الفصل سنأخذ معظم ما ورد في هذا الجدول إلا التعابير التي تحتاج إلى متطلبات أكثر وسنأخذها في الفصول التالية: التعبير الدور مثال الاسناد المراجع curly, moe, larry = 'good', 'bad', 'ugly' مناداة الدوال stdout.write("spam, ham, toast\n")

Print طباعة الكائنات print 'The Killer', joke If/elif/else عمليات الاختيار if "python" in text: print text For/else التكرار for x in mylist: print x While/else الحلقات العامة

while 1: print 'hello' Pass المسؤلية

while 1: pass Continue قفز في الحلقات while 1: if not line: break

Try/except/finally الاستثناءات

try: action() except: print 'action error' Raise الاستثناء raise endSearch, location Import, From الوصول إلى الوحدات import sys; from sys import stdin Def, Return الوسائل def f(a, b, c=1, *d): return a+b+c+d[0] Class إنشاء الكائنات class subclass: staticData = [] Global اسم الفضاء def function(): global x, y; x = 'new' Del حذف الأشياء del data[k]; del data[i:j]; del obj.attr Exec تشغيل نصوص الأكواد exec "import " + modName in gdict, ldict Assert تأكيد التنقيحات assert X > Y الاسناد لقد رأينا الاسناد في التعابير سابقا،وبكل بساطة نقول أنك ستكتب الهدف الذي تريد أن تسند إليه على ناحية الشمال ،والمسند إليه على ناحية اليمين بينهما علامة يساوي =، والهدف من ناحية الشمال يمكن أن يكون اسم أو كائن ، أما المسند إليه يمكن أن يكون أي نوع من الكائنات التي مرت علينا. في معظم الأحيان الإسناد عملية بسيطة ، ولكن هناك بعض الخائص يجب أن تضعها في ذهنك: الاسناد ينشئ كائنات مرجعية كما رأيت سابقا،بايثون تخزن المراجع إلى الكائنات في أسماء وبنى معطيات، ودائما تنشئ مراجع إلى الكائنات، بدلا من نسخ المراجع.بسبب ذلك تبدو متغيرات بايثون أقرب ماتكون إلى المؤشرات في لغة السي، أكثر من مخزن معطيات. الأسماء تنشئ عند أول إسناد وكما رأينا أيضا أسماء المتغيرات تنشئ في بايثون عند أول عملية إسناد إليها، ولست بحاجة إلى أن تعلن عن الأسماء المتغيرات أولا ثم تسند إليها القيمة،وبعض بنى المعطيات وليس كلها تنشء إدخال جديد فيها بواسطة الإسناد مثل القواميس (راجع جزئية القواميس في الفصل الثاني). يجب أن تسند الأسماء قبل استخدامها بالمقابل تظهر بايثون خطأ إذا استخدمت الاسم ولم تسند إليه قيمة بعد وستظهر المزيد من الاستثناءات إذا حاولت أن تفعل ذلك الاسناد الضمني:import وfrom وdel وclass إلخ.. في هذه الجزئية نحن قد تعودنا على أن الإسناد يتم بالمعامل = ،ولكن الإسناد يحدث في العديد من سياقات في بايثون، على سبيل المثال لقد رأينا جلب الوحدات والدوال وكذلك الفصول ومعاملات الدوال وتعابير الحلقات التكرارية ..إلخ وهذه كلها تعتبر إسناد ضمني، وبما أن الإسناد يعمل نفس العمل أينما ظهر، جميع هذه السياقات ببساطة تسند الأسماء إلى مراجع الكائنات في زمن التنفيذ. الجدول التالي يبين نكهات التعابير الإسنادية في لغة بايثون: العلمية تفسيرها spam = 'Spam' الصيغة الأساسية والاعتيادية spam, ham = 'yum', 'YUM'

الاسناد المجموعي (اختياري) [spam, ham] = ['yum', 'YUM'] الاسناد عن طريق القوائم (اختياري) spam = ham = 'lunch'

تعدد الأهداف السطر الأول يظهر الصيغة مشهور وهي إسناد اسم إلى قيمة أو بنى معطيات ، أما الصيغ الباقية فهي هيئات خاصة وسنأخذها بشئ من التفصيل: الاسناد المجموعي والقوائمي: السطر الثاني والثالث بينهما علاقة،عندما تستخدم مجموعة أو قائمة في يسار علامة يساوي =تقوم بايثون بعملية مزاوجة من جهة اليمين بحيث تسند كل عنصر من اليسار مع ما يقابله من ناحية اليمين بالترتيب من اليسار إلى اليمين، على سبيل المثال في السطر الثاني العنصر spam أسندت إلية القيمة 'yum' . الإسناد متعدد الأهداف في السطر الأخير كان هناك أكثر من هدف،قامت بايثون بإسناد مرجع إلى نفس الكائن إلى جميع الأهداف من ناحية اليسار، في السطر الأخير من الجدول الكائن spam وham أسندا إليهما نفس القيمة وهي 'lunch'، وهذه النتيجة تعادل ولو أننا أسندنا قيمة في كل مرة إلى هدف واحد. المثال التالي يوضح أكثر عملية الإسناد المتعدد: >>> nudge = 1 >>> wink = 2 >>> A, B = nudge, wink # tuples >>> A, B (1, 2) >>> [C, D] = [nudge, wink] # lists >>> C, D (1, 2) >>> nudge, wink = wink, nudge # tuples: swaps values >>> nudge, wink # same as T=nudge; nudge=wink; wink=T (2, 1)

قواعد تسمية المتغيرات:

الآن وبعد أن تكلمنا عن قضية الإسناد في بايثون، نريد أن نتوسع في قضية تسمية المتغيرات التي سنسند إليها القيم ونفهم قواعدها. في بايثون أسماء المتغيرات تنشأ عندما نسند إليها القيمة،ولكن هناك قواعد تحكم اختيار الاسم أيضا، وهي مشابهة لقواعد لغة السي وهي: اسم المتغير يجب أن يبدأ بحرف أو شرطة سفلية اسم المتغير يجب أن يبدأ بحرف أو شرطة سفلية فقط ويمكن بعد ذلك أن يتبعه أي عدد من الأحرف أو الأعداد أو شرطة سفلية ،على سبيل المثال: أسماء صحيحة: spam _spam Spam أسماء غير صحيحة: 1spam ويجب أن لا يحتوي الأسماء على هذه الأحرف : $@#! بايثون حساسة لحالة الأحرف بايثون حساسة لحالة الحروف مثل السي بالضبط فالمتغير omlx يختلف عن المتغير Omlx فكن منتبها لهذه النقطة الكلمات المحجوزة هناك كلمات معينة في لغة بايثون محجوزة ولا يمكن أن تسمى متغيرك بها، وإذا سميت بها متغيرك تعطيك اللغة تحذيرا ،وإذا اضطررت إلى أن تسمي بها فغير حالة الحروف فقط أو حرف معين مثلا class لا يمكنك التسمية بها ولكن Class أو klass يمكنك، والكلمات المحجوزة موضحة في الجدول التالي: continue class break assert

and except

else elif del

def global from

for finally

exec lambda

is in import

if raise print pass or

not while try

return قبل أن نتحرك عن هذه النقطة، نريد أن ننوه بالفرق بين الأسماء والكائنات في بايثون، كما رأينا سابقا في الفصل الثاني أنواع الكائنات في بايثون ورأينا أن هناك كائنات ثابثة وأخرى غير ثابتة. أما الأسماء من ناحية أخرى فهي فقط مجرد مراجع تؤشر إلى الكائنات ولا ترتبط بنوع الكائنات بل تستطيع أن تؤشر إلى أي نوع من الكائنات وبنفس الاسم فهي غير ثابتة ،انظر المثال التالي: >>> x = 0 # x bound to an integer object >>> x = "Hello" # now it's a string >>> x = [1, 2, 3] # and now it's a list وكما نرى فإن المثال الأخير يوضح لنا مميزات الأسماء في بايثون بشكل عام.

Print التعبير print بكل بساطة هو التعبير الذي يطبع الكائنات،من الناحية التقنية يقوم هذا التعبير بكتابة التمثيل النصي للكائن ويرسله إلى الخرج القياسي للبرنامج. والخرج القياسي غالبا ما يكون النافذة التي بدأ تنفيذ برنامج بايثون بها، إلا إذا تم إرسال النتائج الخرج إلى ملف باستخدام أوامر الشل. في الفصل الثاني رأينا دوال الكائن الملف التي تكتب إلى الملفwrite ،التعبير print مشابهة إليها ولكن بتركيز أكثر: التعبير print يقوم بكتابة الكائنات إلى الخرج القياسي stdout، أما الدالة write تقوم بكتابة السلاسل النصية إلى الملف،ومنذ أن توفر الخرج القياسي في بايثون ككائن stdout في وحدة sys يمكنك أن تحاكي التعبير print باستخدام دالة كتابة الملفات write (انظر الأمثلة التالية) ولكن استخدام print أسهل بكثير. الجدول التالي يوضح صيغ التعبير print: العملية تفسيرها print spam, ham طباعة الكائنات إلىsys.stdout وإضافة بينهما فراغ print spam, ham, نفس السابق ولكن بدون إضافة سطر جديد في النهاية بشكل افتراضي يقوم التعبير print بإضافة فراغ بين الكائنات التي تفصل بينهما فاصلة مع إضافة علامة نهاية السطر في نهاية السطر من الخرج.لتجاوز علامة نهاية السطر (وبالتالي يمكنك إضافة نصوص أخرى في نفس السطر لاحقا) أنه تعبير print بإضافة فاصلة ،مثلما يظهر في السطر الثاني من الجدول السابق نص عريض

====

برمجة بيرل

اقرأ نصًا ذا علاقة ببيرل، في ويكيبيديا.

بيرل (Perl) هي لغة برمجة صممها لاري وال، تشتهر اليوم بمجتمع مطويريها ومستخدميها الكبير وأرشيف هائل من مكتباتها. صممت في الأصل للتعامل مع النصوص وإنتاج التقارير. وبالتالي تم إختراع معنى لأحرفها لتشكل إختصارا لعبارةPractical Extraction and Report Language أي تقريبا ما معناه لغة الإستخلاص وإنتاج التقارير العملية. تستخدم بيرل علامات الترقيم بشكل كبير، وقد يكون شكل الشيفرة الناتجة صعب القراءة ومعقد في حال لم تكتب بشكل مرتب.

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

كمثال على تطبيق استخدام لغة بيرل، فإن موسوعة ويكيبيديا الحرة ظلات تستخدم سكربتس CGI مكتوبة بلغة بيرل حتى يناير 2002. كذلك موقع slashdot الشهير. وعندما تستخدم ضمن تطبيقات الوب، فإن بيرل تستخدم عادة مع خادم الشبكة أباتشي ووحدة mod_perl. يجعل هذا من بيرل جزء من خادم الوب وبالتالي فإن سكربتس CGI لا تحتاج لتشغيل نسخة جديدة في كل مرّة يتم دخولها وإستخدامها. وصفات أخرى تبطيء من سرعة الوصول إلى الصفحات مثل استخدام الإتصال بقاعدة البيانات بشكل مكثف.

القسم الأولكيف نبدأالبرنامج الأولالنصوصالأعدادالمتغيراتالإختيار:جمل if و elseالعمليات الأساسيةأنواع البيانات المتغيرات المفردةمصفوفات المتغيراتقوائم البحث (Hash)عمليات الإدخال والإخراج للمستخدم.عمليات الإخراج المتقدمةالجمل الدورانيةالتعامل مع الملفات

======

البرمجة مع جافا Java

اقرأ نصًا ذا علاقة بجافا، في ويكيبيديا.

ما هي جافا؟

جافا عبارة عن لغة برمجة كينونية مشتقة من لغة سي بلس بلس، و لكنها تمتاز عن اللغات الأخرى بأنها تمكنك من كتابة برنامج مرة واحدة فقط و من ثم تستطيع أن تشغل البرنامج على أي جهاز كمبيوتر آخر، حتى إذا كان من نوع آخر أو يعمل على نظام تشغيل مختلف، بدون الحاجة لإعادة تركيب البرنامج. الهدف الأساسي لنشأة جافا هو إيجاد لغة مشابهة للغة سي+ + من حيث التركيب النحوي ، كائنية التوجه، و مصممة للعمل علي اّلة إفتراضية بحيث لا تحتاج إلي الترجمة من جديد عند استخدام برامجها على منصة تشغيل أو نظام تشغيل جديد، حيث قامت شركة صن بإنشاء الاّت افتراضية لتشغيل جافا على معظم منصات و نظم التشغيل الموجودة حاليا، فأصبح من الممكن ترجمة البرنامج مرة واحدة ثم تشغيله على نظم مختلفة أو ما أسمته صن ب إكتب مرة واحدة ، شغل في أي مكان (الإنجليزية: Write Once, run anywhere).

هنالك ثلاثة مستويات من جافا:

1) (Java 2 Standard Edition (J2SE: النسخة الرئيسة من جافا، و تستخدم عادة لكتابة برامج للكمبيوتر الشخصي.

2) (Java 2 Enterprise Edition (J2EE: النسخة الأكبر من جافا. تشمل النسخة الرئيسة. تستخدم عادة لكتابة برامج كبيرة للشركات أو لكتابة مواقع الإنترنت.

3) (Java 2 Micro Edition (J2ME: النسخة الأصغر من جافا، و تستخدم لكتابة برامج للأجهزة الصغيرة مثل الهواتف النقالة و المساعدات الشخصية الرقمية (PDA).

جميع هذه المستويات تتعامل مع نفس أسلوب البرمجة، و لكنها تختلف بشكل رئيسي من ناحية المكتبات الجاهزة (API) و بعض الأشياء الأخرى غير الأساسية.

نبذة عن تاريخ جافا:

في عام 1991 قامت شركة صن مايكروسيستمز (Sun Microsystem) بتمويل بحث لإنشاء لغة برمجة لتطوير الأدوات الإلكترونية الذكية، و كنتيجة لهذا البحث ظهرت لغة برمجة مبنية على لغة سي بلس بلس (++C) أطلق عليها مخترعها جيمس غوسلنغ (James Gosling) اسم أوك (Oak). و لكن بعد ذلك تم اكتشاف أن هنالك لغة برمجة تدعى أوك. لذا، و أثناء زيارة بعض موظفي شركة صن مقهى محلي، تم إقتراح اسم جافا (Java) و تم اختياره.

في هذه الأثناء كان المشروع الذي بنيت هذه اللغة من أجله يواجه بعض الصعوبات، حيث أن سوق الإلكترونيات الذكية لم ينمو كما كان هو متوقع. و لكن شاء الله أن الشبكة العنكبوتية (World Wide Web) بدأت بالإنتشار في عام 1993 و أدركت شركة صن فائدة جافا لإضافة المحتوى الحيوي (Dynamic Content) و الصور المتحركة (Animation) إلى صفحات الشبكة.

في شهر مايو من عام 1995 قامت شركة صن بالإعلان عن جافا رسميا، و كان إقبال القطاع التكنولوجي و قطاع الأعمال عليها كبير بسبب الاهتمام الكبير بالشبكة العنكبوتية.

الآن، يمكنك أن تجد جافا في برامج للشركات، أو تجدها تحسن الصفحات على الإنترنت، أو في برامج للأجهزة الإستهلاكية مثل الهواتف النقالة و غيرها الكثير و تعتبر ال java من أقوى لغات البرمجه .

الموضوعات و الدروس

كتاب برمجة جافا

ما هي أنواع البرامج في جافا؟ ما الفرق بين Application و Applet؟ ما معنى Class؟

كيف نعرّف المتغيرات؟ العمليات الحسابية و العمليات المنطقية.

جمل التحكم و جمل الدوران.

Methods و Arrays.

برمجة:جافا:تدريب 1: كتابة بعض البرامج مع شرح وافي.

مفهومها و أساسياتها.

التوارث (Inheritance).

التحول (Polymorphism).

كتابة بعض البرامج لشرح البرمجة الكينونية.

ما معنى Exception؟ ما تأثيره؟ كيف نتفاداه و كيف نتعامل معه؟

برمجة:جافا:التركيب النحوي

برمجة:جافا:أساسيات 1: ما هي أنواع البرامج في جافا؟ ما الفرق بين Application و Applet؟ ما معنى Class؟

برمجة:جافا:أساسيات 2: كيف نعرّف المتغيرات؟ العمليات الحسابية و العمليات المنطقية.

برمجة:جافا:أساسيات 3: جمل الاختيار و جمل الدوران.

برمجة:جافا:أساسيات 4: Methods و Arrays.

برمجة:جافا:تدريب 1: كتابة بعض البرامج مع شرح وافي.

برمجة:جافا:البرمجة الكينونية 1: مفهومها و أساسياتها.

برمجة:جافا:البرمجة الكينونية 2: التوارث (Inheritance).

برمجة:جافا:البرمجة الكينونية 3: التحول (Polymorphism).

برمجة:جافا:تدريب 2: كتابة بعض البرامج لشرح البرمجة الكينونية.

برمجة:جافا:الأخطاء (Exceptions): ما معنى Exception؟ ما تأثيره؟ كيف نتفاداه و كيف نتعامل معه؟

=======

البرمجة بلغة سي

نظرة شاملة على لغة البرمجة "سي" ومميزاتها.

قائمة المحتويات

قالب:Reading level

نسخة PDF متوفرة. (معلومات)

نسخة جاهزة للطباعة من برمجة سي متوفرة. (عدلها)

قالب:E-Book Reader PDF version

المُقدمة لماذا تتعلم لغة البرمجة سي؟ التاريخ ما تحتاجه قبل أن تتعلم تثبيت المترجم

Beginning C Intro Exercise Preliminaries Basics of Compilation Programming Structure and Style Variables Simple Input and Output Operators and type casting Arrays and Strings Program Flow Control Procedures and Functions Standard Libraries Exercises

Intermediate C Advanced Data Types Pointers and Relationship to Arrays Memory Management Error Handling Stream I/O String Manipulation Further Math Libraries

Advanced C Common Practices Preprocessor Directives and Macros Sockets and Networking (UNIX) Serialization and X-Macros Coroutines

C and Beyond Particularities of C Low-level I/O C Trigraph Language Overloading and Extensions Combining Languages Object Oriented Programming: The GObject System Commented Source Code Library

Computer Science

Some of the following are C adaptations of articles from the Computer programming book. Statements Side Effects and Sequence Points

Reference Tables

This section has some tables and lists of C entities. Standard Library Reference Preprocessor Reference Language Reference Table of Keywords

Table of Operators

Table of Data Types

Platform Reference POSIX GNU C Library MS Windows

Appendices C Compilers Reference List

Index

Links

Exercise Solutions

Related WikibooksA Little C Primer

GCC Debugging

GNU C Compiler Internals

====

لغة سي ++

وصف شامل وهرمي للغة البرمجة سي ++

اقرأ نصًا ذا علاقة بسي بلس بلس، في ويكيبيديا.

إن لغة البرمجة سي++ (++C) هي واحدة من أكثر لغات البرمجة استخدامًا و أوسعها إنتشارًا بالإضافة إلى جدتها لغة البرمجة سي. تعتبر لغة سي++ من لغات البرمجة الكائنية التوجه (Object-Oriented programming)، وإن كان من الممكن استخدامها بشكل بنيوي (Structural) أو كمزيج من الإثنين.

جزء كبير من لغة سي++ تعتبر من لغات البرمجة عالية المستوى. ولغات البرمجة عالية المستوى هي اللغات التي ظهرت لتسريع عملية البرمجة حيث أن تعليماتها أقرب ماتكون إلى لغة الإنسان وهذا ما يجعل عملية البرمجة أكثر سرعةً وسهولةً. تسهّل لغة سي++ الأسلوب المهيكل والمنهجي لعملية تصميم البرامج، حيث تتألّف برامج هذه اللغة من مكونات تسمّى الأصناف (classes) والدوال (functions) وبالتالي يمكن تقسيم عمليّة تعلّم لغة سي++ إلى قسمين: يعتمد الأول منها على تعلّم لغة سي++ نفسها، في حين يسمح الثاني بتعلّم كيفية استخدام الأصناف الملحقة بهذه اللّغة واستخدام التوابع الموجودة ضمن المكتبة المعياريّة ANSI C.

ماذا تحتاج للبدء ؟تحتاج مصرّف (compiler) (مترجم يقوم بتحويل ما تكتبه إلى لغة الآلة التي يفهمها المعالج)، ورابط (linker)، ومحرر نصوص. بعض بيئات التحرير توفر هذه الثلاث. لاختيار أحد بيئات التطوير المتكاملة، يمكنك رؤية المقارنة بينها على هذه الصفحة في ويكيبيديا الإنجليزية. وفي ما يلي بعض الإقتراحات :

فيجوال سي ++ (++Visual C)، من شركة ميكروسوفت، وهو مغلق المصدر وغير مجاني.

برنامج (Intel® C++ Compiler 9.1)، مغلق المصدر ومجاني لمدّة معينة. للتحميل

بيئة (Quincy 2005) الذي يأتي مع مصرّف gcc وأدوات أخرى حرّة. للتحميل

استخدام برامج حزمة مينجوي، تعمل من سطر أوامر دوس (DOS) بشكل عام وتستخدم مصرّف (gcc) وأدوات أخرى مرافقة. للتحميل

استخدام بيئة إكليبس (Eclipse CDT)، و هي مجانية ومفتوحة المصدر. للتحميل.

برنامج Dev C++ ، وهو مجاني ومفتوح المصدر.

برنامج Code Blocks ، وهو مجاني ومفتوح المصدر.للتحميل.

قائمة الموضوعات و الدروس

ملاحظة: يحتوي كل موضوع على شرح مبسط لفكرة و هدف الدرس، الغرض من هذا الشرح هو تنظيم كتابة الدروس و المحافظة على تسلسلها بشكل منطقي. من الممكن - بعد الانتهاء من الكتاب - اختصار هذه الشروح الصغيرة بشكل أكبر بحيث لا تزيد عن خمس كلمات.

مقدمة في البرمجة التفكير في كيفية عمل الأشياء، إيجاد حلول للمشاكل، الخ

الدرس الأول البرنامج الأول(الفارغ)، شرح مفاهيم أساسية: نقطة الدخول إلى البرنامج، نقطة الخروج، لماذا الـ main؟ فكرة عامة عن تقسيم البرامج الكبيرة إلى أجزاء صغيرة (برامج جزئية).

الدرس الثاني الكتابة على الشاشة، العمليات الأساسية، الجمع و الطرح، المتغيرات، الثوابت (litteral constants).

الدرس الثالث القراءة من المستخدم، تابع العمليات الرياضية و الاشارات في اللغة

الدرس الرابع السير المنطقي للبرنامج، الأوامر الشرطية، الاشارات الشرطية، و منطقها

الدرس الخامس تمارين، حل مشكلات بسيطة، أمثلة للتفكير البرمجي، التركيز على عقلية التحليل .. الخ.

الدرس السادس الدوال (functions)، تقسيم البرنامج إلى برامج جزئية (حسب المهام)، إرسال الإعدادات (parameters) الخ.

الدرس السابع تابع الدوال (functions)، مفهوم الـ expression و الـ return value، استخدام الدوال (functions) كعمليات حسابية، نطاق المتغيرات scope الخ.

الدرس الثامن استخدام الدوال (functions) لتحسين بنية و تركيب البرامج، تحسين برامجنا السابقة.

الدرس التاسع تطبيقات و تمارين، مزيد من المشاكل و حلولها

الدرس العاشر المصفوفات (arrays)، مفهوم الـ initialization بشكل عام، و تطبيقه على المصفوفات و بيان حالاته الاستثنائية.

الدرس الحادي عشر مفاهيم عامة عن الذاكرة، طبيعة المصفوفات في الذاكرة، مقدمة عن المؤشرات.

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

الدرس الثالث عشر مقدمة عن المؤشرات: مفهوم الـ statically allocated و الـ dynamically allocated بالنسبة للمتغيرات، الكومبايلر و أسماء المتغيرات و عناوينها في الذاكرة، استخدام المؤشرات للوصول إلى المتغيرات اللتي تم حجزها ديناميكيا.

الدرس الرابع عشر تطبيق على المؤشرات: إرسال عناوين المتغيرات إلى الدوال (functions)، مع تركيز على شرح الستاك و توضيح عدم جواز إرجاع مؤشر لمتغير داخلي في فنكشن، مع مقدمة عن الرفرنس في السي بلص بلص.

الدرس الخامس عشر الـ struct، تجميع معلومات متعلقة ببعضها، تمثيل حالة كائنات حقيقية، الخ.

الدرس السادس عشر تطبيقات عملية على الـ struct

الدرس السابع عشر استخدام الـ struct و المؤشرات لعمل linked list. نقاط القوة الضعف في الـ linked list و متى يمكن استخدامها، مع تطبيق بسيط.

الدرس الثامن عشر الأقسام (class)، توضيح عام من ناحية لغوية، الـ syntax الخاص بالأقسام الخ.

الدرس التاسع عشر البرمجة الشيئية / الكانئية، الكائنات objects، مفاهيم متعمقة .. تحليل المشكلة إلى أشياء وكائنات، الخصائص والتصرفات، attrbutes and behaviour .. الخ.

الدرس العشرون تابع مفاهيم متعمقة عن البرمحة الشيئية.. تصميم الحلول باستخدام الكائنات، ذكر بسيط لقضايا الـ cohesion and coupling، مع تطبيقات عملية، و لو بسيطة.

الدرس الحادي و العشرون مناقشة مواضيع الـ cohesion، coupling،1235 association: التفكير جيدا في تصميم الفئات بشكل جيد ومتماسك، فصل المهام الزائدة عن الـ class إلى فئات classes أخرى، الربط بين الكائنات، تقليل التداخل coupling.

الدرس الثاني و العشرون الوراثة (inheritance)، مع تطبيقات.

الدرس الثالث و العشرون الـ (polymorphism).

الدرس الرابع و العشرون تطبيقات عملية تستخدم المفاهيم اللتي تمت مناقشتها، مع التقديم لبعض الـ (design patterns)، كالـ (singleton) مثلا.

======

برمجة فيجوال بيسك

اقرأ نصًا ذا علاقة بفيجوال بيسك، في ويكيبيديا.

تمت كتابة هذا الكتاب من منظور فيجوال بيسك 6.0، على الرغم من أن الكثير مما يُذكر هُنا صالح أيضًا لفيجوال بيسك 5.0 وفيجوال بيسك 4.0. لا يُغطي هذا الكتاب فيجوال بيسك دوت نت وهي يمكن إعتبارها لغة مختلفة نوعًا ما. لكنه يُغطي العديد من التقنيات والموضوعات المختلفة بما في ذلك البرمجة كائنية التوجُّه، وتحسين البرامج وإرشادات الترميز.

المحتوى

نسخة جاهزة للطباعة من برمجة فيجوال بيسك متوفرة. (عدلها)

نسخة PDF متوفرة. (معلومات)

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

======

10 خطوات لبناء مواقع التجارة الإلكترونية الناجحة

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

محتويات 1 التخطيط للاعمال

2 تحديد سقف أولي

3 ميزانية التكاليف

4 استراتيجية الموقع

5 الحدود التقنية للمتصفحين

6 قائمة محتويات الموقع

7 اسم الموقع

8 أمن المعلومات 8.1 التوافر Availability

8.2 السرية Confidentiality

8.3 التكامل Integrity

8.4 السياسة Policy

8.5 الآلية Mechanism

8.6 التوكيد Assurance

9 شركة تصميم المواقع

10 تسويق الموقع

التخطيط للاعمال

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

تحديد سقف أولي

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

ميزانية التكاليف

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

استراتيجية الموقع

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

الحدود التقنية للمتصفحين

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

قائمة محتويات الموقع

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

اسم الموقع

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

أمن المعلومات

تشير الخطوة الثامنة إلى ضرورة التأكد من فعالية صلات أمن المعلومات من ويكي الكتب اذهب إلى: تصفح، بحث [تعديل] مكونات أمن المعلومات إن المحافظة على أمن المعلومات وسريتها وإبقائها بعيداً عن أيدي العابثين بها يتمركز حول ثلاثة مكونات تؤخذ على درجة واحدة من الأهمية حسب رؤية المختصين في هذا المجال, وهذه المكونات الثلاث هي:

التوافر Availability

التوافر Availability أو ضمان الوصول إلى المعلومات والموارد الحاسوبية و يقصد بهذا الهدف أن تكون نظم الحاسب والشبكات بمكوناتها المختلفة من مكونات مادية، وبرمجيات، وأجهزة تراسل متاحة لتقديم خدماتها دون نقص في جودة الخدمة المقدمة. وعادة ما يُحسب التوافر من خلال نسبة الوقت الذي تتوافر فيه النظم منسوباً إلى الوقت الكلي (وقت التوافر + وقت التعطل)

السرية Confidentiality

ويقصد بهذا الهدف حماية سرية البيانات من الإطلاع غير القانوني عليها. والمقصود هنا حماية البيانات من الإطلاع عليها بواسطة مستخدمين (أو برامج تتنبعهم) ليس لهم حق الإطلاع عليها.

التكامل Integrity

التكامل Integrity أو سلامة المعلومات ويقصد بهذا الهدف حماية البيانات من التغيير غير القانوني، أي منع المستخدمين الذين ليس لهم حق تعديل البيانات من تعديلها. ويلاحظ أن اتكامل لا يعني بالإطلاع غير القانوني.

خطوات تحقيق أمن المعلومات من الممكن تحقيق أمن المعلومات من خلال ثلاثة خطوات هي السياسة، والآلية، والتوكيد.

السياسة Policy

- تعرف المتطلبات المطلوب تطبيقها فيما يتعلق بالبرامج والمكونات المادية - خارج نظام الحاسب - تشمل أدوات التحكم المادي، والشخصي، والإجراءي. - تحدد الأهداف دون تحديد لكيفية الوصول إليهم.

الآلية Mechanism

- تطبق متطلبات السياسة. - يجب التأكد من أن الآلية تؤدي العمل المنوط بها على أكمل وجه.

التوكيد Assurance

- يوفر قياس لمدى تحقيق المتطلبات المحددة في السياسة. - آليات التوكيد الرخيصة لا توفر توكيد جيد.

تم الاسترجاع منالبريد الالكترونية للموقع وسهولة الوصول اليه لأنه ببساطة الجسر الأساسي للتواصل مع الزبائن والتعامل معهم وبدونه يبقى الموقع معزولا ولا معنى لوجوده على الشبكة ونذكر ان برنامج آر أس في بي يقدم اجابات وظيفية تلقائية تستند إلى نظام فرز ذكي لاستعلامات الزبائن يمكن تعريفه مسبقا وتعديله

شركة تصميم المواقع

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

تسويق الموقع

تركّز الخطوة العاشرة على تسويق الموقع وضمان تطويره الدائم بوضع تساؤلات حرجة عن كيفية الوصول لعدد معين للمتصفحين للموقع خصوصا إذا كان المطلوب اجتذاب فئة معينة من منطقة ما أو مهنة محددة وبالتالي كيف يتم الاعلان وفي أي بلد ومع أي المواقع الاعلانية على الإنترنت، وعادة توضع ميزانية تسويق تساوي 30 في المئة من تكاليف تشغيل الموقع• مع اضافة (5-10) في المئة شهريا على التسويق الطارئ تبعا لتغيرات معطيات السوق واحصاءات الدخول للموقع ومتغيرات أخرى ومن الخطأ الاعتقاد بأن اطلاق الموقع وتشغيله يعني انتهاء المهمة

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

=======

كيف تصبح مبرمجا محترفا؟

كيف تصبح مبرمجا محترفا؟

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

وإذا تحدثنا عن فريق العمل اللازم لتصميم وإنشاء البرامج أو التطبيقات نجد أنه يندرج تحت التخصصات الآتية ليصبح صالح ا للاستخدام:

محللوا النظم System Analysts مصممو النظم System Designers

المطورون - المبرمجون Developers - Programmers

بماذا تبدأ؟ ...وكيف تبدأ؟

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

الأمر الثاني يجب أولا أن تكون مستخدما جيدا للكمبيوتر وتعاملت مرارا وتكرارا مع شتى أنواع البرمجيات, ولكن يجب أن تتعامل مع البرنامج بنظرة مختلفة عن المستخدم العادي, مما يعنى أنك تنظر إلي البرامج نظرة عميقة لمحاولة فهم كيف تم تصميمه وإنشاؤه, ومن بعدها يمكنك الدخول إلى عالم صناعة البرمجيات بمؤهلات مناسبة.

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

الأول: وهو البرمجة التقليدية أو ما يطلق عليه Standard Programming وهي تلك اللغات التي يكون البرنامج فيها مكونا من سلسلة من الخطوات (من 1 إلي 100) مثلا تتسلسل تلقائيا في التنفيذ لتكوين البرنامج, وهي اللغات الخاصة بصنع التطبيقات التي تعتمد علي أنظمة التشغيل غير الرسومية مثل DOS Applications التي تعمل تحت بيئة DOS. ومن أمثلة هذه اللغات لغة الكوبول COBOL ولغة البيسيك Basic.

فعلي سبيل المثال, يكون البرنامج المكتوب بلغة البيسيك مثلا مكونا من مجموعة خطوات متسلسلة, فمثلا سيقوم البرنامج بمسح الشاشة ثم يطبع كلمة WELCOME ثم ينتهي بعد ذلك، فيكون الكود الخاص بكتابته كما يلي:

10 CLS الكود الخاص بمسح الشاشة

20 PRINT "Welcome" الكود الخاص بالكتابة على الشاشة.

30 END "كود انهاء البرنامج"

مع الوضع في الاعتبار أنه إذا كان الأمر مربكا بعض الشيء فلا تقلق فسوف نذكر ذلك بشيء من التفصيل لاحقا .

النوع الثاني: من لغات البرمجة هو اللغات التي تقوم بصنع البرامج التي تعمل تحت بيئة التشغيل الرسومية GUI وهي ما يطلق عليها OOP أو البرمجة الشيئية (البرمجة الموجهة بالعناصر أو الكائنات) Object Oriented Programming وفيها يتم إنشاء البرنامج عن طريق مجموعة من الكائنات المرتبطة ببعضها البعض والذي يؤثر كل منها في الآخر ويتأثر به. وخير مثال علي تطبيق مكتوب بأحد تلك اللغات التي تعتمد علي OOP هو برنامج الرسام مثلا. والموجود ضمن حزمة برامج نظام التشغيل Windows على اختلاف إصداراته. ومن أشهر لغات البرمجة التي تنتهج هذا النهج لغةVisual Basic- ولغة Delphi- والعديد من اللغات الأخرى.

ولكي تبدأ بأي من هذين الطريقين السابقين يجب أن تتعلم أولا مفاهيم ومباديء البرمجة بشكل عام Programming Concepts.

مباديء البرمجة Programming Concepts تعتبر مباديء البرمجة ومفاهيمها الأساسية هي الخطوة الأولي والأساسية لتعلم أي لغة برمجة, ومباديء ومفاهيم البرمجيات لا تخص أي لغة برمجة بعينها ولكنها خطوات ومبادئ عامة مشتركة بين جميع اللغات. وفيما يلي شرحا تفصيليا لأهم المباديء والمفاهيم الأساسية التي تحتاج إليها في هذا الصدد:

حل المشكلات Solving Problems

يجب أن تعلم أن المبرمج بطبيعة مهنته حلال للمشكلات التي تعترض سير العمل وذلك بشكل منطقي ومدروس.

خوارزميات Algorithmeth

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

خريطة التدفق Flow Chart

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

لغة البرمجة

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

===لينكس من الألف إلى الياء

اقرأ نصًا ذا علاقة بلينكس، في ويكيبيديا.

ملاحظة: باقى فهرس الكتاب موجود في صفحة النقاش لتكون مرجعا لمن يريد المساهمة في هذا العمل.

محتويات 1 ويندوز مقابل توزيعات لينكس: 1.1 مميزات نظام لينكس: 1.1.1 التكامل:

1.1.2 المرونه و سهولة التشكيل:

1.1.3 أنظمة لينكس أنظمه بناءه

1.1.4 الاستقرار :

1.1.5 الأمان :

2 ملخص:

3 نظرة عامة 3.1 إصدارات توزيعات لينكس: 3.1.1 إصدارات لينكس

3.1.2 توزيعات لينكس 3.1.2.1 أمثله لتوزيعات أخرى و لكنها غير أساسيه و ناتجه من التوزيعات السابقه

3.2 عملية التثبيت

ويندوز مقابل توزيعات لينكس:

وعندما نتحدث عن ويندوز فإننا نتحدث عن نظام تشغيل بمعناه القديم و الذي يدل عليه الاسم، فهو مجرد نظام قادر على تشغيل العتاد بشكل بدائي/أساسي و يأتي معه البرامج الأساسية لتشغيل عتاد الجهاز -الأساسية- مثل لوحة المفاتيح و الفأرة و الشاشه و لا يتضمن النظام أي برمجيات متطورة مثل برامج معالجه الكلمات و مجموعة برامج العمل المكتبي Office و العديد من البرامج الأخرى الهامه و التي لا يستغنى عنها المستخدم و الموظف و العامل . و لكن عدم وجود هذه البرمجيات بشكل مباشر مع نظام ويندوز لا يعنى أنها غير متاحة، و لكن عليك شراء كل منها بشكل مستقل مما يعنى أنها في الغالب غير متكامله مع بعضها البعض كما سنرى لاحقاً.

مميزات نظام لينكس:

التكامل:

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

تشتمل توزيعات لينكس على برمجيات في المجالات التاليه:

- برامج المكتب Office Suites : مثل OpenOffice ويبرا اوفيس المتكامل و المتوافق مع مجموعة MS-Office .

- برامج الانترنت و الشبكات: مثل برنامج المتصفح و برامج تحميل الملفات و المشاركه و الدردشة و برامج الاتصالات الصوتيه و المرئية و برامج البريد الإلكتروني . برامج شرعيه؟

- برامج الوسائط: مثل برامج مشاهدة و تحرير و إنتاج ملفات الصوت و الفيديو و الصور و برامج الرسم ثلاثي الابعاد و الرسوم المتحركه .

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

- أدوات برمجيه كامله و بيئات تطوير متكامله لبناء برمجيات بواسطة لغات برمجه مشهورة مثل C/C++ - Java - Perl - Python - PHP - C# - Pascal - dotNET - و برامج قواعد البيانات .

- برامج للأطفال و برامج تعليميه مختلفة مثل برامج تعلم اللغات و الكتابه و برامج خاصه بتعلم بعض العلوم مثل الكيمياء و الفيزياء و الفلك و الاحياء و الرياضيات .

- برامج علمية متخصصه مثل برامج CAD، CAM .

- برامج للشركات الكبرى و المؤسسات مثل برامج إدارة المشاريع و الموارد البشريه و برامج التخطيط و الإنتاج.

المرونه و سهولة التشكيل:

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

كما يمكنك بناء توزيعه وظيفتها الوحيدة هي تشغيل ملفات الوسائط المتعددة أو العمل كجهاز موجهه للشبكه Router أو حائط نارى Firewall أو حتى نقطة وصول للشبكات اللاسلكيه wireless Access-point كل هذا يثبت مرونة أنظمة لينكس و قدرتها الفائقه على التشكيل و التخصص كما أن الأنظمة الناتجة من عمليات التخصيص هذه تكون على درجه عاليه من الكفاءة و القوة و الاستقرار .

أنظمة لينكس أنظمه بناءه

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

الاستقرار :

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

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

الأمان :

إن أنظمة يونكس و لينكس مصممه لتكون أنظمة شبكات متعددة المهام و متعددة المستخدمين، لهذا كان من اللازم بناء هذه الأنظمة لتكون أكثر الأنظمة أماناً على الإطلاق، فمثلا إذا قام المستخدم (س) بتشغيل البرنامج (أ) فإن النظام يعطي صلاحيات المستخدم (س) للبرنامج (أ) فإذا كان من صلاحيات المستخدم (س) مثلاً التعديل على الملف (م) فإن البرنامج (أ) يستطيع القراءة و التعديل على محتويات الملف (م) و العكس، كذلك لا يمكن لغير المستخدم (س) إغلاق البرنامج (أ) - بغض النظر عن مدير النظام الذي له الصلاحيات لفعل أي شيء يحلو له - كذلك هو الحال بالنسبه للملفات و المجلدات لكي تستطيع التعديل على ملف ما يجب أن تكون المالك الاصلي لهذا الملف أو ان يعطيك المالك صلاحيات القراءه و التعديل عليه أو ان تكون مدير النظام .

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

لذلك من الدواعي الأمنية على أنظمة يونكس ألا تستخدم حساب مدير النظام root في أعمالك اليوميه و لكن عليك فتح حساب مستخدم عادي و العمل من خلاله .

ملخص:

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

-توزيعات لينكس هي المعنى الحديث لأنظمة التشغيل المتكامله و التي تستطيع تشغيل العتاد إلى جانب سد جميع إحتياجات المستخدمين مع اختلاف أنواعهم بالبرمجيات التي تجعل من السهل عليهم القيام بمهامهم و أعمالهم

-أنظمة لينكس ليست تلك الشاشات السوداء التي لا تعمل إلا من خلال سطر الاوامر بل أنها تحتوى على واجهات استخدام رسوميه ليست أجمل ولكن جميلة ككيدي وجنوم ولكن تحتاج في بعض الأحيان سطر الاوامر والذي بدا يقل استخدامة في الآونة الأخيرة

-لكل برنامج من برامج ويندوز بديل لا يساويها بإجمالة والتطوير ولكن يقوم بالعمل المراد لاما الألعاب فان وندوز بلا منازع منصة الألعاب الأولى

-أنظمة لينكس أكثر أماناً و إستقراراً من أنظمة ويندوز بدليل استخدام الشركات الكبرا له .

-أنظمة لينكس و البرمجيات الحرة تساعد على تنميه الكثير من المهارات و العادات الايجابيه عند المستخدمين مثل الاعتماد على الذات و البحث العلمى و الايجابيه و تحمل المسؤليه على عكس الأنظمة التي تلغى العقل و تنمى رذائل الاحتكار و كتم العلم و البخل .

نظرة عامة

في هذا الفصل سوف ألقى نظرة عامة على المفاهيم الأساسية في عالم لينكس و المصادر المفتوحة، كما سأمر بشكل سريع على أساسيات عملية تثبيت التوزيعات باختلاف أنواعها ( توزيعات مصدريه - توزيعات جاهزه ) ثم في مرحله متقدمه من هذا الفصل سوف نتعلم معاً كيفيه إدارة الملفات، المستخدمين و الحزم إلى جانب كيفية التعامل بشكل سهل و سليم مع سطر الاوامر .

إصدارات توزيعات لينكس:

إن كلمة لينكس أو لينوكس في حد ذاتها تعبر عن نواة النظام Kernel و هو الجزء المسؤل عن الاتصال المباشر و التحكم في العتاد و لكنه لا يحتوى على بيئه استخدام لا نصيه Command Line Interface - CLI ولا رسوميه Graphical User Interface - GUI لذلك هذا الجزء من النظام وحده لا يمثل أي نفع للمستخدمين .

إصدارات لينكس

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

أما الجيل الثاني فيوجد ٣ إصدارات مختلفه منه، هذه الإصدارات مرت بمراحل مختلفة و طويله من الاختبار و التطوير حتى وصلت إلى ما هي عليه الآن من الاستقرار و الامان

الإصدار الأول - 2.2 و هو إصدار قديم و انتهى تطويره obsolete

الإصدار الثاني - 2.4 و هو الإصدار المستقر stable

الإصدار الثالث - 2.6 و هو الإصدار المتداول و الذي يعتبر تحت التطوير testing ملاحظه: الإصدارات الفرديه 2.1 و 2.3 و 2.5 هي إصدارات تطويريه فقط Development versions .

توزيعات لينكس

كما ذكرت من قبل فإن النواة وحدها تكون بلا فائدة بالنسبه للمستخدم لذلك قامت مؤسسة GNU جنو بإعتماد النواة لينكس في نظام تشغيلها الحر GNU و الذي لم يكن إكتملت فيه النواه بعد بينما إكتملت فيه أدوات البرمجه و التطوير .

التوزيعه Distribution هي عباره عن النواة + برامج ( سواء CLI أو GUI ) يتم توليف أجزاءها مع بعضها البعض .

يوجد عدد كبير من توزيعات لينكس على مستوى العالم بعضها متخصص و غالبيتها للاستخدام العام و لكن التوزيعات الأم التي تستخدم في بناء باقى التوزيعات 5 أو 6 توزيعات كما يلي :

1- توزيعة Redhat / Fedora تعمل و تشرف على بناءها شركة Redhat و الأولى مجانيه و موجهه للاستخدام الشخصي و المكتبي و تحتوى على أحدث البرامج ويطورها المبرمجين في جميع انحاء العالم و تكتفى شركة RedHat بالإشراف على تطويرها بينما الثانيه موجهة للاستخدام في المؤسسات الكبرى و على الخادمات و هي غير مجانيه وتختص RedHat بتطويرها و يوجد لها دعم تجارى و تحتوى على إصدارات قديمه نسبياً من البرامج.

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

3- توزيعة Slackware من أوائل التوزيعات التي ظهرت و يقوم ببناءها فرد واحد و زوجته -على حد علمى- و هي من التوزيعات المستقره جداً و الامنه و تلى Debian في الامن و الاستقرار و القوة و لكنها أيضا صعبه بعض الشيء على المستخدمين الجدد و في الغالب تحتوى على برامج قديمه نسبياً.

4- توزيعة Gentoo و هي توزيعه مصدريه Source Based أي انها تقوم بعمل compiling لكل برنامج قبل تثبيته مما يحتاج إلى وقت طويل كما أن عملية التثبيت صعبة جداً على المستخدمين الجدد و لكنها تتميز بالمرونه الشديده و سهولة إدارة النظام و الحزم و القدره على تخصيص النظام بطرق سهله جداً .

5- توزيعه Linux From Scratch - LFS و هي في الحقيقه كتاب و ليست توزيعه، يشرح هذا الكتاب كيفية بناء نظام لينكس كامل من المصدر لذلك فهي توزيعه تعليميه أكثر منها توزيعه للاستخدام حيث أنك بعد الانتهاء من بناء النظام سوف تحتاج إلى مدير حزم و أدوات أخرى لإدارة النظام لن تجدها في هذه التوزيعه و إن استخدمت أدوات توزيعه أخرى ستتحول LFS إلى التوزيعه التي اخترت ان تستخدم أدواتها كما أن عملية التثبيت صعبه جداً و تحتاج إلى وقت طويل من العمل اليدوي .

أمثله لتوزيعات أخرى و لكنها غير أساسيه و ناتجه من التوزيعات السابقه

١- توزيعة PCLinuxOS وهي توزيعة جميلة وسهلة وهي مبنية في الأساس على توزيعة Mandriva وهي تجمع بين مميزات كل من المندريفا والتوزيعات الأخرى وتعتبر الآن في موقع متقدم جدا من حيث عدد المستخدمين وذلك بحسب موقع http://distrowatch.com والذى يقوم بترتيب توزيعات لينكس.

٢- توزيعة اوبونتو [Ubuntu] تعتبر من أفضل الإصدارات واسهلها أثناء عملية التنصيب و الاستخدام وتعتمد على إصدار ديبيان ويمكن استعراض النظام ككل واستخدامه وبدون تنصيبه ويتميز الإصدار بالمرونة والقدرة على التعرف على الهاردوير وهناك عدة إصدارات فرعية مثل(Edubuntu,Kubuntu,Xubuntu)ويمكن الإستعلام عن المزيد من خلال الرابط التالي http://www.ubuntu.com

٣- توزيعة Mandriva و هي ناتج الاتحاد بين Connectiva ، Mandrake و هي في الأساس مبنيه على نظام RedHat و تقوم ببناءها شركه بنفس الاسم و يوجد منها إصدارات مجانيه و أخرى تجاريه و تتميز هذه التوزيعه بالسهوله و الجمال .

٤- توزيعة SuSe و هي توزيعه مشتقه من Slackware و يوجد منها إصدارين (مجاني OpenSuSe و تجاري SuSe ) و تشرف على تطويرها شركة Novell .

عملية التثبيت

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

=========

مبادئ الشبكات الحاسوبية

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

و تتنوع الشبكات من حيث الحجم فمثلاً LAN:LOCAL AREA NETWORK هي شبكة محلية تقع في مساحة صغيرة (أو بالأحرى تحوي عدد صغير من الحواسيب والأجهزة) مثل تلك التي في المكتب أو المنزل

WAN:Wide Are Network هي شبكة تقع في مساحة كبيرة مثل شبكة تصل بين فروع بين مناطق أو دول من مختلف أنحاء العالم

و تتنوع بروتوكولات نقل البيانات عبر الشبكات ولكن أهمها و أكثرها إنتشاراً هو الإيثرنت Ethernet

أرجو أن تضيف بعضاً مما تعرف لكي تفيد وتستفيد "دقيقه من وقتك لن تخسر فيها شيئاً"

محتويات 1 مقدمة

2 نبذة تاريخية

3 الفصل الأول تعريف بمكونات الشبكة 3.1 أنواع الموصلات المستعملة في الشبكة الداخلية

3.2 أنواع الكابلات

4 تعريف بتصميم الشبكات Topology

5 تعريف بالبروتوكولات

6 نظرة تاريخية

مقدمة

تعتبر الشبكات هي الحل الأمثل لمشاكل نقل البيانات الموجودة في كل أماكن العمل التي تستخدم الحاسب الآلي إبتداءاً من الطباعة حتي نقل الملفات بشكل مبسط يمكن تقسيم الشبكات من حيث الحجم إلى ثلاثة أنواع يعتبر كل نوع منها مستقل بذاته من حيث استخدام البنية التحتية للشبكة (infrastucutre)

يمكن تقسيم معرفة الشبكات المحلية إلى عدة مستويات -المستوى الأول: هو المعرفة لمكونات الشبكة الفزيائية من كابلات و مقسمات إلى أخرى -المستوى الثاني معرفة البروتوكولات المستعملة لتشغيل الشبكة -المستوى الثالث معرفة الحلول لتصميم الشبكة و أمان البيانات

لماذا الشبكات؟

لكي يكون لديك شبكة داخلية فمن البديهي وجود أكثر من جهاز حاسب و طابعة في مكان واحد أو في أماكن متفرقة في مكان العمل الأمر الذي يؤدي إلى مشكلة في نقل البيانات بشكل أكثر بساطة، إذا كان مكان العمل يحتوي على 4 أجهزة حاسب و طابعة واحدة فإننا نواجه المشكلة الآتية:

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

نبذة تاريخية

بدأت الشبكات خلال الستينات من القرن العشرين كناتج طبيعي عن صناعة الحاسب الآلي في تلك الفترة كان الحاسب الآلي من الجيل الأول ذو حجم كبير يصل إلى حجم الغرفة، يحتوي على مولدات للطاقة و ووحدات تبريد إلى آخره، ببساطة كان أبعد ما يكون عما تراه عندما تنظر إلى جهاز الحاسب الشخصي . كانت وحدة التخزين في ذلك العهد تعمل بالأشرطة الممغنطة، ببساطة كان نقل البيانات من جهاز إلى آخر بمثابة مجهود جبار، هنا ظهرت فكرة الشبكات الأولية لكن على الرغم من وجود الفكرة و بداية التنفيذ، أفتقدت الشبكات في بداياتها وجود نظام محدد لنقل البيانات حيث كانت تكتب برامج النقل في وقتها، في تلك الفترة ظهرت فكرة أول "بروتوكول شبكة"[1] قامت به وزارة الدفاع الأمريكية تحت مسمى (Advanced Research Projects Agency Network)[2]

من تلك البروتوكلات التي صممت في أواخر الستينات أحد أعرق بروتوكلات الشبكات المساهمة حتى اليوم TCP/IP و يعتبر حتى اليوم هو (البروتوكول الأساسي) لجميع الشبكات العاملة اليوم في العالم إبتداءاً من الشبكات المحلية حتى الشبكة العنكبوتية الدولية "الإنترنت INTERNET[3]"

أستمر تطور الشبكات بإستمرار مع تطور الحوسبة عموماً حتى صارت الشبكات جزء لا يتجزأ من أي نظام تشغيل و مع زيادة التطور زادت مشاكل أمان الشبكة و زاد بنفس المعدل سهولة العمل عليها بل زادت سهولة تصمميمها و تركيبها بالنسبة للشبكات المحلية الصغيرة

ظهر أول حاسوب رئيسي للشبكات عام 1940م وكان يدعى "الحاسوب الكبير Mainframe"

الفصل الأول تعريف بمكونات الشبكة

يمكن تقسيم الشبكة كبداية نفس تقسيم أجهزة الحاسب من مكونات مادية H/W و مكونات معنوية S/W على الرغم من الخطأ الكبير في ذلك التقسيم لكنه أكثر تبسيطاً بالنسبة للمبتدئين في الشبكات فيما بعد سأشرح بتمعن في تقسيمات مستويات الشبكة لكن في مرحلة أكثر إحترافاً بالنسبة للمكونات المادية ببساطة يمكن تقسيمها كالتالي وسيلة التوصيل الكابلات و المقسمات CABLING & HUBS , SWITCHES

كروت الشبكة NETWORKING ADAPTERS

الأجهزة المطلوب توصيلها

أنواع الموصلات المستعملة في الشبكة الداخلية

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

أنواع الكابلات

هنالك ثلاثة أنواع رئيسية من الكابلات 1- الكابلات الزوجية TWISTED PAIR CABLE وهي أحد كثر الأنواع إستخداماً على الإطلاق حيث تستخدم في أكثر الشبكات المحلية النوع الأكثر إستخداماً اليوم هو CAT 5 سنشرح فيما بعد بالتفصيل أساليب التوصيل و الإستخدامات لذلك الكابل بشكل خاص . من أهم مميزات تلك النوعية من الكابلات هو سهولة الإستعمال و المرونة في الإستعمال بمعني إمكانية استعمال نفس نوعية الكابلات لأكثر من غرض عموماً تلك الكابلات اليوم تدعم سرعات 10/100 10/1000 و تغطي حتي مساحة 100 متر عادة بدون الحاجة إلى مقويات

2- الكابلات المحورية: و هي أحد أنواع الموصلات النحساية المستعملة عادة في الشبكات كبيرة الحجم مميزاتها تنحصر في إمتداد التوصيل و قوة البيانات لمسافة أطول من الكابلات الزوجية

3- كابلات الألياف الضوئية: و هي أكثر الموصلات على الإطلاق حتى يومنا الحاضر من ناحية جودة التوصيل و طول مسافة التوصيل وسرعة نقل البيانات لكن يعيبها صعوبة تركيبها و غلو ثمنها مقارنة بالموصلات النحاسية

تعريف بتصميم الشبكات Topology

على الرغم من أن الغالبية العظمى من العاملين في مجال الشبكات لا يستعمل التصميمات الفعلية أو بمعنى أدق لا يستعمل تلك التصاميم بناءً على تخطيط مسبق في الشبكات الصغيرة الحجم إلا أن تلك التصاميم من الأهمية في الشبكات المتوسطة و الكبيرة التي تؤدي إلى أن أقل خطأ في إختيار التصميم المناسب يتسبب في إعادة بناء النظام بأكمله أو الكثير من الخسائر في الوقت و الجهد .

تقع التقيسمات الرئيسية للتصميم في عدة أنواع و هي: الدائري أو الحلقي Ring

يعتبر التصميم الدائري هو أحد أقدم التصاميم المستعملة في مجال الشبكات و يقوم على أساس الشحنة الحاملة Token ring ببساطة التصميم يعتمد على أساس وجود شحنة حاملة تدور خلال الحلقة التي تحمل البيانات من جهاز لآخر ففي حالة حمل الإشارة لبيان من أحد الأجهزة لجهاز آخر تتوقف كل البيانات المحملة حتى تلك اللحظة يمكن تمثيلها بسيارة تتحرك خلال مضمار و تلك السيارة فقط هي الوسيلة الوحيدة لحمل البيانات و يمكنها حمل بيانات محملة من محطة واحدة إلى محطة أخرى بالطبع في كل دورة تحمل بيانات موجهة من وجهة إلى أخرى، النجمي Start token وتعتمد هذه الطريقة في ربط الأجهزة الفرعية إلى الجهاز المركزي

المتتالي Bus token

Mesh Topology

mult Topology

تعريف بالبروتوكولات

البروتوكول هو الطريقة التي تتصل بها الأجهزة ببعضها يعتبر هو أحد أنواع التشفير التي تسمح للجهاز الهدف بترجمة محتويات الرسالة دون غيره و من أشهر البروتوكلات المنتشرة اليوم الـ TCP IP protocol وسنتعرف خلال ذلك الجزء تاريخ و تكوين ذلك البروتوكول الهام جداً في عالم الشبكات اليوم وترمز إختصارات TCP IP إلى (Transfer Control Protocol Internet Protocol)

نظرة تاريخية

تمتد جذور بروتوكلات اليوم إلى بروتوكلات الشبكة التي تم البداية في تصميمها في الستينات من القرن العشرين و تبدأ أولى البروتوكلات بشكل برامج كانت تكتب للترجمة من جهاز محدد إلى جهاز محدد في تلك الأيام الأولى من الحوسبة مما يعني كتابة برنامج جديد لدى كل محاولة إتصال مع أحد الأجهزة الموجودة الأمر الذي يحدد الكثر من إمكانيات الإتصال لكن في تلك الأيام كانت الأجهزة موجودة فقط لدى الجامعات الكبرى و المؤسسات العسكرية الخ. بدأ أول موديل عام كمشروع في منتصف الستينات و عرف فيما بعد بإسم DOD model إختصاراً لـ the Department of Defense Networking Model حيث تم تصميمه داخل مؤسسة الأبحاث التابعة لوزارة الدفاع الأمريكية و يعتبر ذلك التقسيم هو البداية للبروتوكلات المعروفة اليوم وقد قسم هذا المشروع الشبكة كالتالي 1 - واجهة الشبكة network interface 2- الشبكة internet 3- الناقل host to host 4- التطبيق application

قد قسم هذا المشروع الشبكة كالتالي 1 - واجهة الشبكة network interface 2- الشبكة internet 3- الناقل host to host 4- التطبيق application

بروتوكول_الإنترنت

أربانت شبكة وكالة مشاريع الأبحاث المتطورة

الإنترنت

=========

مقدمة في الروبوتات

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

روبوتات معالجة المواد الخطرة : و تستعمل لإزالة القنابل و معالجة المواد الخطرة .

روبوتات الخدمة : لأغراض الحراسة ، ضبط الأبواب ، تسليم البريد و الوقاية من الحرائق.

مزايا و مساوئ الروبوتات :

يبدو للوهلة الأولى أن الروبوتات تقدم المزايا التالية : إنتاج أكثر .

استعمال التجهيزات بشكل فعال .

تكاليف عمل منخفضة .

نوعية و مكننة أفضل للأجزاء .

مرونة محسنة .

إنجاز أقصر للعمل .

مرونة و سهولة في البرمجة .

القدرة على العمل في الظروف الخطرة .

نوعية محسنة لأماكن العمل .

نوعية محسنة لأماكن الإنتاج .

عائدات استثمار جيدة.

امتلاك الحرية في الحركة في الأبعاد الثلاثة للفراغ .

مزود بملاقط و أدوات قطع .

إلا أنها لابد و أن تعاني من عدد من السلبيات على كل الأحوال, فإحدى أكثر الصعوبات هو أن الروبوت لا يزال غير قادر بعد على مسك جزء معين عشوائي من صندوق بدون استعمال نظام رؤية خاص . إن أول التطبيقات الناجحة للروبوت كانت في مجال صناعة السيارات الأمريكية ، ففي شركة فورد الأمريكية و حصراً في عام 1940 تم ولادة كلمة جديدة سميت بالأتمتة ، و بعد مضي الكثير من الوقت و الجهد أصبح الروبوت ينفذ الكثير من الأعمال في هذا المجال كاللحام النقطي و تحميل الآلات و الكثير من التطبيقات الأخرى. و في عام 1995 أدخل حوالي 25000 روبوت في خدمة صناعة السيارات في أمريكا وحدها ، و بالنسبة لبقية العالم فلم يكن الرقم أصغر من هذا ، فقد تم استعمال 1000000 روبوت للخدمة في المجالات الصناعية المختلفة. إن العامل الأكثر أهمية في تطوير تكنولوجيا الروبوتات و الذي ساعد على اقتحام الروبوت لمجال الصناعة بلا هوادة كان معتمداً على اكتشاف المعالجات المكروية ( المعالجات الصفرية ) والتي استطاعت متحكمات هذه المعالجات من إنتاج برامج قادرة على تنفيذ حركة متناسقة من أجل عدة درجات طلاقة . كما أن ظهور الروبوت الصناعي كان بأنواع متعددة مهيئة لأعمال يدوية و سنبحث في هذا القسم عن التراتيب الفيزيائية للروبوت . و تقريباً كافة أجهزة الروبوت الصناعي المتوفرة تجارياً في الوقت الحالي تملك أحد النماذج الأربعة التالية :

1- الربط المركزي.

2- الربط الدوراني.

3- ترتيب الذراع المقرون.

4- الربط الديكارتي.

محتويات 1 الربط المركزي

2 الاقتران الدوراني

3 الذراع المقرون

4 الربط الديكارتي

5 حركات الروبوت الأساسية

6 درجة الحرية

7 حيز العمل

8 تصنيف و بنية الأنظمة الروبوتية

9 المستشعرات الروبوتية

10 اللواقط و القبضات الروبوتية

11 الصنف الأول :القبضات متعددة الأغراض

12 الصنف الثاني – القبضات الخاصة :

13 الصنف الثالث : القبضات العامة

14 لغات برمجة الروبوت

15 الروبوت في التطبيقات الصناعية

16 التطبيقات الصناعية للروبوتات :

17 تطبيقات الروبوت الغير صناعية

الربط المركزي

و يعرف أيضاً بالربط الكروي ، حيث أن الحيز الذي يمكن أن تتحرك فيه ذراع الروبوت هو جزء كروي من الفراغ .

الاقتران الدوراني

يكون جسم الروبوت عبارة عن محور رأسي يدور حول محور عمودي تتألف فيه الذراع من عدة صفائح متعامدة تسمح له بالحركة من الاتجاهات الأربع .

الذراع المقرون

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

الربط الديكارتي

و يتألف الروبوت المبني وفق هذا التصميم من 3 قضبان موازية للمحاور X-Y-Z في مجموعة الإحداثيات الديكارتية . و يمكن أن يقوم الروبوت بتحريك الذراع من أي نقطة من حيز العمل ثلاثي الأبعاد .

حركات الروبوت الأساسية

مهما كان الترتيب الذي يبنى على أساسه الروبوت ، فإن الغاية من الروبوت هو إنجاز مهمة ما . و لإنجاز المهمة يربط مؤثر أو يد إلى نهاية ذراع الروبوت هذا ، و المؤثر النهائي يوجه الروبوت لإنجاز مهمة معينة . و لإنجاز المهمة يجب أن تكون ذراع الروبوت مهيأة لتحريك المؤثر النهائي عبر تتابع حركي أو مكاني .

درجة الحرية

هناك حركات أساسية أو درجات حرية تعطي الروبوت الإمكانية لتحريك المؤثر النهائي عبر تتابع الحركات المراد إنجازها بهذه القدرة على التحرك . و تتألف الحركات الأساسية من : الحركة العمودية : أي حركة الذراع Up and Down الناتجة عن الدوران الداخلي حول المحور الأفقي أو الحركة على القضيب العمودي .

الحركة الشعاعية . الحركة الدورانية : الدوران حول المحور العمودي . التفاف الرسغ . انحناء الرسغ .

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

دقة العمل .

سرعة الحركة .

نوعية جملة القيادة .

حيز العمل

وهي المساحة التي يعمل فيها الروبوت .

تصنيف و بنية الأنظمة الروبوتية

مقدمة : يمكن تصنيف الأنظمة الروبوتية بثلاث طرق : 1- تبعا لنوع النظام : نظام نقطة إلى نقطة ( Point to point ) و نظام الطريقة المستمر 2- تبعا لنظام الشكل الهندسي للروبوت : نظام ديكارتي – أسطواني – كروي أو تمفصلي . 3- تبعا لنوع دارات التحكم : الدارة المفتوحة – الدارة المغلقة . أن اختيار نوع النظام و دارات التحكم و الذراع الآلي يعتمد على خصوصية التطبيق

1- تبعاً لنوع النظام : نظامي النقطة إلى نقطة (PTP) و الطريق المستمر : إن أي شخص لا يملك الخبرة بالروبوت يمكن أن يعتقد أن روبوت لحام النقطة هو نفسه روبوت لحام القوس و لكن بتجهيزات مختلفة . و لكن في الواقع هما أنظمة روبوتية مختلفة إن التحكم بروبوت لحام النقطة يعتمد على عملية من نقطة إلى نقطة و لا ينصح به لإنجاز لحام الأقواس الذي يحتاج لنظام الطريق المستمر .

A . أنظمة الروبوت من ( نقطة إلى نقطة ) : إن النظام المثالي ( PTP ) يتواجد في روبوت لحام النقطة . في عملية اللحام بالنقطة يتحرك الروبوت إلى الوضع بحيث تقع النقطة المراد لحامها تماما بين الإلكترودين لبندقية اللحام و من ثم تتم عملية اللحام و ثم يتحرك الروبوت إلى نقطة جديدة حيث ينجز فيها اللحام أيضا تتكرر هذه العملية حتى يتم لحام جميع النقاط المطلوبة و من ثم تعود البندقية إلى نقطة البداية و يكون النظام مستعدا للقسم الآخر و يمكن وصف عملية ( PTP ) بشكل أكثر شمولية كالتالي ( إن الروبوت يتحرك إلى موضع تم تحديده رقميا و من ثم تتوقف الحركة و من ثم المؤثر الطرفي (( End Effect )) يؤدي المهمة المطلوبة أثناء ثبات الروبوت و عند انتهاء مهمته ينتقل الروبوت على النقطة التالية و تعاد الكرة ) . في نظام ( PTP) يكون مسار الروبوت وسرعته أثناء الحركة من نقطة إلى أخرى غير مهم .

هناك نوعين أساسيين من أنظمة (PTP) الروبوتية : الأول : كل محور ينتقل من نقطة إلى أخرى بأقصى سرعة ممكنة و لهذا فإن السار من نقطة البداية إلى نقطة النهاية لا يتم التحكم به .

الثاني : يطبق في نظام ( PTP ) الأكثر تطورا حيث تنتهي الحركة في جميع المحاور في لحظة واحدة في هذا النظام .

B . أنظمة روبوت الطريق المستمر ( Continuous path ) : في روبوت الطريق المستمر ( CP ) تقوم الأداة بإنجاز مهمتها في الوقت التي تتحرك فيه محاور الحركة كمل يحدث في لحام الأقواس إن مهمة الروبوت في لحام الأقواس هي توجيه بندقية اللحام على طول المسار الموضوع سابقا في روبوتات ( CP ) . يمكن لجميع المحاور أن تتحرك بنفس الوقت كل واحد منها بسرعة مختلفة هذه السرعات يتم تنسيقها بواسطة الكمبيوتر و ذلك بتتبع المسار المطلوب .

2 - تبعا للأشكال الهندسية للروبوت : و تصنف ضمن خمسة أصنا ف : 1) الروبوتات الديكارتية أو المستطيلة : 2) الروبوتات الدائرية . 3) الروبوتات الكروية أو القطبية . 4) الروبوتات الدورانية أو المتمفصلة . 5) الروبوتات الشبيهة بالأفعى أو ذات الذراع الموترة .

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

مزاياها : • ثبات عالي و دقة عظيمة . • تجنب جيد للعوائق و الوقاية من التآكل . • سهولة التحكم بحركة الوصل .

سلبياتها : • الهيكل التركيبي ضخم . • تضييق مساحة العمل . • انحسار الانسجام مع أنظمة روبوتية أخرى في مجال العمل العادي . • تصميمها الميكانيكي المعقد جدا في الحركات المطلقة الخطية . • حاجتها إلى مساحة أرضية واسعة .

2 - الروبوتات الاسطوانية : تتألف هذه الروبوتات عادة من حركتين عموديتين خطيتين و حركة دورانية .

المزايا : • استقلالية كاملة عن قوى الجاذبية . • حركة متحررة من الاحتكاك . • أن وجود محورين خطيين يجعل من التصميم الميكانيكي أقل تعقيدا من الروبوتات الديكارتية .

السلبيات : • عدد كبير من الهياكل . • قلة الانسجام مع مناولات أخرى في مجال عمل عادي . • دقة و ثبات أقل بالمقارنة مع الروبوتات المستطيلة .

3 - الروبوتات الكروية أو القطبية : تتألف هذه الروبوتات من حركتين دورانيتين رئيسيتين و حركة انزلاقية واحدة بشكل أساسي .

المزايا : • وزن خفيف و درجة تعقيد قليلة في الهيكل . • لا تحتاج العديد من الحركات . • الانسجام مع روبوتات و آلات في مجال العمل العادي . • ثبات جيد .

السلبيات : • عزوم التدوير المتغيرة الكبيرة تخلق مشكلة توازن . • القدرة المحدودة على تجنب الاحتكاك مع العوائق . • كون خطا التوضع كبيرا بسبب الحركة الدورانية و نسبيا بالنسبة لنصف القطر .

4 - الروبوتات الدورانية أو المتمفصلة : و فيها درجات إضافية من الحرية .

المزايا : • مرونة الوصول إلى فوق أو تحت الجسم . • الانسجام مع الروبوتات الأخرى التي تعمل بنفي مساحة العمل العادية .

السلبيات : • قلة الثبات و الدقة . • مشكلة في التوازن نتيجة لعزوم التدوير الضخمة و المتغيرة . • القدرة المحدودة على تجنب العوائق . • عدم الاستقرار التوليدي ( الاهتزازات ) .

5 - الروبوتات الشبيهة بالأفعى : تستطيع هذه الأذرع الروبوتية أن تأخذ أي شكل في فراغ ثلاثي الأبعاد مبدئيا و هكذا فإنها تتألف من عناصر كثيرة .

3 - تبعاً لنوع دارات التحكم بالأنظمة الروبوتية : أن أنظمة التحكم يمكن أن تعمل إما في دارة مفتوحة أو في دارة مغلقة . في الدارة المفتوحة فإن النتيجة لا تؤثر على المعطيات ( الخرج لا يؤثر على الدخل ) . و كمثال على نظام الدارة المفتوحة : افترض أن هناك فرق كمون ثابت يطبق على محرك كهربائي و يدور المحرك باستمرار إن الخرج هو سرعة دوران المحرك و فرق الكمون المطبق هو الدخل . إن تحميل المحرك سوف يسبب تناقص في سرعة المحرك إن هذا الوضع لا يمكن إصلاحه طالما أن جهد الدخل لا يتأثر بتغيرات السرعة و سيكون لدينا نظام أفضل فيما إذا تم تحسس الخرج و إرجاعه من أجل مقارنته مع تغيرات الدخل . في مثالنا : سرعة المحرك يمكن أن يتم تحسسها و تحويلها إلى جهد و ذلك بمساعدة مقياس سرعة دوران و من ثم يتم مقارنة هذا الجهد مع تغيرات الدخل . و انطلاقا من هذه المقارنة يتم إجراء التصحيحات الضرورية بشكل أوتوماتيكي و ذلك لإرجاع سرعة الخرج إلى القيمة المرغوبة . إن الأنظمة التي فيها يؤثر الخرج إلى الدخل للعنصر الذي يتم التحكم فيه تدعى أنظمة الدارة المغلقة . كل محور للحركة لذراع الروبوت يتم تشغيله بشكل منفصل من خلال دارة تحكم التي تحتوي على عنصر قيادة في أنظمة الدارة المغلقة يتم تحسس الحركة الناشئة بواسطة جهاز تغذية مرتدة . أن القيادة المحورية يمكن أن تكون عن طريق محرك dc أو محرك متسارع أو نظام هيدروليكي أو اسطوانة هوائية و يتم تحديد النوع بشكل أساسي استنادا إلى الدقة و الاستطاعة المطلوبتين من الروبوت .

المستشعرات الروبوتية

حتى يكون الروبوت قادر على العمل فإن الروبوت الصناعي يتطلب أولاً معلومات و معطيات عن الوسط المحيط مثل وضعية الأجسام المطلوب مناولتها و محيط هذه الأجسام و من جهة أخرى معطيات حول العمليات الداخلية و الحالات الداخلية مثلاً : وضعية الربط ، السرعة الزاوية ، العزوم .....الخ. لذلك فإن المعطيات المطلوبة عن العملية يفترض أن تكون بأشكال مختلفة و تستخدم المعطيات ثنائية التكافؤ في تحديد القيم الحدية أو في تحسس حالات التشغيل المنطقية في تحديد الحالات الداخلية للروبوت الصناعي و لذلك يجب أن تكون هذه المعطيات المنطقية محولة . و الحساس هو بشكل عام جهاز يستخدم لتحويل شكل معلومة تصله إلى خرج قابل للاستخدام بشكل إشارة مناسبة لمعالجات لاحقة و بثها إلى مسافات بعيدة . و الدخل عادةً يكون عبارة عن كمية فيزيائية لا كهر بائية قابل للتحكم مثل (إزاحة – حرارة – ضغط – سرعة ....) .

اللواقط و القبضات الروبوتية

مدخل إلى القوا بض:

عادةً قبضات الروبوتات الصناعية تستغل لتحقيق مسائل معينة . و هي مخصصة لتحمل الأجسام على اختلاف شكلها و أبعادها و كما يجب أن تتمتع هذه القبضات بإمكانيات وظيفية معينة بدقة . فهذه القبضات و نهايات الأذرع هي الأدوات التي يتفاعل بها الروبوت مع البيئة المحيطة ، فهي التي يلتقط بها الأجزاء و يتفحص السطوح المجاورة التي يعمل عليها. و كلما كان تصميم هذه النهايات متقناً كلما زاد ارتقاء الروبوت في عمله ، و لهذا أصبح تصميم هذه النهايات له أهمية كبيرة يوم بعد يوم. المجمعات الفرعية للمعصم و اللاقط : تقوم جميع تمفصلات الوصل الروبوتية على مبدأ وضع المعصم و اللاقط في توضع مناسب . و قد جرت محاولات تصاميم كثيرة بالنسبة لمجمعات اللاقط . على كل الأحوال ، تبين أن اللاقط ذي الأصابع الثلاث كاف بشكل لمعظم التطبيقات العملية فغي المناولة الروبوتية . كما تم تجريب صنع كف بخمس أصابع كايد البشرية ، و لكنها لم تبدو مرونة أكثر من اليد بثلاث أصابع ، و لكن قد يكون لها استخدامات خاصة كالعزف عل الآلات الموسيقية . يتعلق تصميم هذه اللواقط بالكثير من العوامل و التأثيرات و أهمها : عدد الأصابع – عدد المفاصل في كل إصبع – عدد درجات الحرية لرسغ اليد . فرسغ الإنسان تمتلك خمس أصابع : الإبهام – السبابة – الوسطى – البنصر – الخنصر . و كآلية فإن يد الإنسان تمتلك 27 درجة حرية ، منها 20 تخص الرسغ ، كل من الأصابع عدا الإبهام يملك ثلاثة مفاصل و كل يمكنه التحرك بأربع درجات حرية, الإبهام يملك مفصلين و ثلاث درجات حرية ، كف اليد تمتلك درجة حرية واحدة . و يوجد طريقتين لزيادة ملائمة القبضة لشكل الجسم : 1- يمكن إضافة مفاصل للأصابع في القبضة . 2- يمكن زيادة عدد الأصابع في القبضة (بحيث لا تزيد عن خمسة). تصنيف اللواقط : يمكن تصنيف اللواقط وفقاً لمقومات مختلفة : 1. تصنيف أجهزة اللقط في الروبوت الصناعي حسب المميزات التصميمية . 2. بما أن هناك تصاميم متعددة اللواقط للروبوت الصناعي و لكن من غير الممكن إيجاد تصميم موحد يؤدي جميع متطلبات العمليات التكنولوجية المتعددة لذا يمكن تصنيف مجموعة الروبوت الصناعي حسب العلاقات التكنولوجية . 3. حسب الطبيعة الوظائفية فإن القبضات يمكن أن تقسم إلى ثلاث أصناف : متعددة الأغراض – خاصة – عامة . و سنعمد إلى شرح للقبضات من خلال التوسع في وصف قبضات هذا التصنيف : تشمل اللواقط على مايلي :

1- أجهزة التثبيت : و تشتمل على : • جهاز تثبيت عضلي . • متحركة ذو عضلات . • مزلقي عتلي . • عتلي . • بجريدة مسننية .

2- آليات نقل الحركة : و من أنواعها : • تعمل على الهواء المضغوط. • تعمل على السوائل . • كهرومغناطيسية . • مغناطيسية . • نابضية .

3- عناصر (الفكوك): و تصنف إلى : • ذات إصبعين . • ذات ثلاث أصابع . • ذات أربع أصابع .

الصنف الأول :القبضات متعددة الأغراض

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

أ‌- حسب عدد الأصابع و يمكن أن تكون : • ذات الإصبعين . • ذات ثلاث أصابع. • ذات خمس أصابع .

ب‌- حسب عدد القبضات المركبة على معظم المناول : العضو العامل متعدد القبضات يسمح بنفس الوقت بتنفيذ عدة عمليات . ت‌- التصنيف حسب أسلوب القبض للأجسام من الداخل أو من الخارج القبضة الخارجية .

اللواقط متعددة القبضات

لواقط تستخدم للقبض خارجاً a و خارجاً b ث‌- بطريقة حركة الأصابع فتقسم إلى قبضات ذات حركة تقدمية للأصابع و قبضات ذات حركة دورانية للأصابع .

و الآن سنحاول في هذا المقطع أن نشرح عن هذه القبضات . 1- القبضات ذات الإصبعين : و هي على شكلين : 1) القبضات الميكانيكية ذات الإصبعين (القبضات ذات الحركة الدورانية): هذا النوع غالباً ما يستخدم في الروبوتات الصناعية . هذا النوع يستعمل للإمساك بالأجسام المحدودة السطوح خاصة و هو مريح بإمساك الأجسام ذات الشكل الأسطواني .

لواقط ميكانيكية ذات أصبعين

2) القبضات ذات الحركة المستقيمة : آليات الحركة المستقيمة تستعمل بشكل واسع في قبضات الروبوت الصناعي و مثل هذه القبضات معقدة بعض الشيء بالمقارنة بتلك ذات نقاط الارتكاز في أبسط القبضات يستعمل بشكل مباشر انزياح المكبس في الشكل التالي موضحا مخطط هذه القبضة حيث يستعمل المكبس الهيدروليكي فيها . حيث أن حركة المكبس تتصل بشكل مباشر إلى الإصبع بدون تدخل أي فروع إضافية و هذا الخطط يستعمل في القبضات ذات الأصابع التي تباعد عن بعضها بشكل كبير و الشكل يوضح مخطط القبضة التي في تركيبها تدخل اسطوانة هيدروليكية أو هوائية مع المكبس .

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

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

مخططات لبناء القبضات ذات أجهزة التحريك الدورانية

2- القبضات المشابهة للقبضات البشرية ذات الثلاث أصابع : يمكن زيادة موثوقية القبضة على حساب زيادة عدد الأصابع و عدد درجات الحرية . و نتيجة ذلك فإن هيكل القبضة يزاد تعقيدا و مع العلم أن مبادئ تصميم هذه القبضات غير محدودة حتى النهاية بعد ، إلا أنه توجد تجربة عملية . هيكل أبسط قبضة ذات الثلث أصابع يتكون من مفصل ولحد و جهاز تحريك ذو بنيان خاص . أهم ميزة للقبضة ذات الأصابع هي أن سطوح تماس الأصابع مع الجسم تتكون في ثلاث نقاط و هذا مما يؤدي إلى : أولا : يزيد موثوقية القبض . ثانيا : يؤمن موضع ثابت لمركز الجسم المقبوض ذو الشكل الكروي بالنسبة للقبضة دون النظر إلى نصف قطره . هذه القبضات تبنى حسب مخطط الظرف ثلثي الفكوك و الشكل يبين أن حركة كل الأصابع تتم بمساعدة اللوالب الحركية ، البراغي تدار بمساعدة المحرك الكهربائي عبر أجهزة نقل حركة مسننية مخروطية ، حيث أن دوران اللوالب حسب حركة أو بعكس عقارب الساعة تتحول إلى حركة مستقيمة للأصابع و هذا بدوره يسبب فتح أو إغلاق القبضة .

أحد أشكال القبضة الثلاثية

الصنف الثاني – القبضات الخاصة :

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

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

لاقط بماصات هوائية

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

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

4- لاقط من أجل الأجسام التي تملك شكل كأس :

من أجل لقط الأجسام التي تملك شكل الكؤوس يستخدم الروبوت الصناعي المبين في الشكل التالي .

لاقط لمسك الأجسام التي تملك شكل كأس

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

5- لواقط أجهزة المناولة :

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

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

لاقط لمسك المطروقة التي تحتوي على زعانف

6- ماسكات أجهزة المناولة :

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

لاقط يستخدم في قص و تقطيع السبيكة لواقط أجهزة المناولة المستخدمة في آلات تشكيل البلاستيك : تتميز عملية تشكيل المنتجات البلاستيكية بسهولة التحكم بها نسبيا و بالمقارنة مع حجمها الكبير تكون اللواقط المستخدمة في هذه العمليات من أشكال مختلفة تبعا لشكل المادة المنتجة و يبين الشكل التالي جهاز تحكم من أجل مسك صناديق التعبئة لآلات تشكيل البلاستيك .

لاقط يستخدم في آلات تشكيل البلاستيك .

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

لاقط لتحميل و تفريغ المخارط الرأسية

الصنف الثالث : القبضات العامة

يضم القبضات العامة . كقاعدة لذلك وهي التي تمتلك أكثر من ثلاث أصابع و أكثر من مفصل في كل إصبع . هذا الصنف - يسمح بتنفيذ مجموعة كبيرة من العمليات كالقبض و النقل للأجسام من مكان لآخر . في بعض المخابر تم دراسة القبضات العامة ذات العدد الكبير من درجات الحرية مع زيادة درجات الحرية فإن صعوبة و تعقيد تصميم القطعة تزداد مثلا ، تزداد تعقيداً عملية تجميع أجهزة التحريك المرتبطة بدرجات الحرية ، لمثل هذه القبضات تلزم أجهزة التحريك المصغرة ، و التي تستطيع الحصول على طاقة ( استطاعة ) كافية . أجهزة التحريك المنتجة حسب الستاندرات كبيرة جداً . أحد الحلول المستقبلية لهذه المسألة ينص على استعمال أجهزة التحريك ذات فعالية التذكر للأشكال . غلا أنه اليوم غالباً ما تحل بمساعدة نقل الحركة بالحبل و هذا ما يسمح بإخراج المحرك خارج حدود الفراغ . نأتي بمثالين للقبضات العامة . في كلا الحالتين تستعمل طريقة الحركة بالحبل مع المحركات الكهربائية للتيار المستمر و في الشكل التالي توضح القبضة و التي تتكون من ثلاث أصابع الكبيرة ( الإبهام ) ( السبابة الوسطى ) عادة تكون الأصابع الثلاثة تكون كافية جداً للقبضات العامة .

قبضة عامة ذات ثلاث أصابع كل إصبع يتألف من قطعتين أو ثلاثة قطع مصنوعة من نابض نحاسي أسطواني الشكل بقطر ( 17mm ) . نهايات القطع مشحوذة بزاوية ( 30 ) بحيث يستطيع كل إصبع الانحناء بزاوية ( 45 ) باتجاه الداخل و كذلك باتجاه الخارج في كل مفصل أي أن إمكانية مثل هذا الإصبع أكبر منها عند الإصبع البشري . الإصبع الكبير يتكون من ثلاثة فروع – كل إصبع يتحرك بمساعدة محرك كهربائي من خلال عملية نقل الحركة بالحبل و له درجة حرية واحدة ، في كل فرع توجد وحدة و التي حولها ملفوف خيطان بشكل متقابل مع العلم أن نهايات هذه الخطوط مثبتة على هذه الوحدة . هذه الحبال محصورة في غشاء حلزوني ( لولبي ) و هذا يمنع تشابكهما عند حركة الأصابع . الغشاء الحلزوني يحمي الحبل و يسمح بإنقاص عدد الوحدات في عملية نقل الحركة ، حتى تكون حركة الأصابع أكثر مرونة و حتى تكون القبضة برمتها ( بكاملها ) مريحة فإن الحبال في الغشاء تدخل داخل الأصابع .

مخطط أجهزة التحريك للقبضة العامة ذات ثلاثة أصابع

تصميم الأصابع :

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

مطابقة التجويف لفك اللاقط مع شكل الجسم المراد إمساكه زيادة سطح التماس عند الإمساك – يسمح بتوزيع الجهد المطلق على الجسم . تركيب القبضة يحدد ملائمتها القليلة لتغيرات مقاييس الأجسام . هذه الملائمة يمكن زيادتها بالوضع على الأصابع عدة تجويفات مطابقة لأجسام مختلفة القياس و الشكل . للإمساك بها فإنه من الممكن استعمال الأصابع ذات الفجوات على شكل حرف (v) عند ذلك يحدث التماس بين الإصبع و الجسم في نقطتين في مثل هذه القبضة فإن الجهد يتوزع على سطح صغير من التماس و هذا بدوره يمكن أن يؤدي إلى تشويه الجسم أو تحطيمه . و عند العمل مع أجسام أكثر بساطة فإن مثل هذا الخطر لا يظهر و عندئذ فإنه من المفضل استخدام الأصابع ذات الفجوات على شكل حرف ( v ) عن تلك ذات الفجوات المطابقة لشكل الجسم .

محركات القبضات :

أغلب الروبوتات تستعمل ثلاث أنواع أساسية من أجهزة التحريك ( المحركات ) . كهروميكانيكي ، بالهواء المضغوط – هيدروليكي . الأكثر شيوعا هي تلك القبضات ذات المحرك الهيدروليكي على الهواء المضغوط . أهم أجزاء هذا المحرك هي الاسطوانة و المحرك . التحكم باتجاه الجسم حركة العامل يتم بمساعدة الصفيحتين ذوات الوظيفتين و التي يتحكم بهن بواسطة الملف الاسطواني اللولبي . للتحكم بسعة حركة المحرك فهناك صفائح التحكم بتدفق الهواء . لمد هذه المنظومة بالهواء المضغوط تستعمل الضواغط مع الحد الأعظمي للضغط العملي و مقداره 10 كغ / سم2 . المحركات الهيدروليكية ذات الهواء المضغوط هي الأقل كلفة و هذا هو السبب الرئيسي لاستعمالها الواسع في الروبوتات الصناعية . عدا عن ذلك فإن هذه المحركات تتصف بالجساءة القليلة و هذا ما يسمح بتنفيذ قبضات خفيفة و التي لا تؤدي إلى تشويه سطح الجسم المقبوض ، من جهة أخرى فأن قلة الجسوءة في المحرك تجعل عملية التوضع الدقيق عير ممكنة . في التحكم الموضعي بمثابة المحركات الهيدروليكية يمكن استعمال أجهزة الهيدروليك و لكن هذه الأجهزة لم تلق الاستعمال الواسع ، المحركات الكهروميكانيكية أيضا تستعمل بشكل واسع في الروبوتات الصناعية . يوجد نوعين من المحركات الكهربائية للحركة : محرك التيار المستمر و المحرك الكهربائي الخطوي كقاعدة فإن المحركات الكهربائية توصل بخافض للدورات و الذي يؤمن التقوية اللازمة أو عزم الدوران اللازم . مع العلم أنه في الوقت الحالي ظهرت في السوق المحركات البطيئة و التي لا تتطلب خافض للدورات و لكنها ذات فعالية جيدة بالنسبة لاستعمالها في الروبوتات الصناعية المنتجة . الأمثلة التي تدل على استعمال المحركات الكهربائية البطيئة في تصميمات القبضات قليلة ، في تكوين المحرك الكهروميكانيكي تدخل كذلك مضخمات الموازرة للاستطاعة ، المحرك الكهروميكانيكي استعماله مريح فغي المفاصل . 1) توجد وسائط كثيرة منتجة . 2) الطبيعة الكهروميكانيكية لإشارات التحكم تبسط بشكل قوة عملية بناء منظومات التحكم المرنة و كذلك تسمح باستعمال الحاسوب بمثابة واسطة التحكم . 3) المحرك الكهروميكانيكي و خاصة ذو المحرك الكهربائي للتيار المستمر يمكنه أن يعمل في المنظومات ذات التحكم بالقوة و كذلك ذات التحكم بالوضع. بالرغم من ذلك فإن للمنظومات الكهروميكانيكية سلبيات : هي أغلى تكلفة من المحركات العاملة على الهواء المضغوط ، المنحنيات الخصائصية الانتقالية عندها أسوء من تلك التي عند المحركات الهيدروليكية و الضاغطة ، جسوءة هذه المحركات أقل من جسوءة المحركات الهيدروليكية ، لا يمكن استعمال مثل هذه المحركات في الأماكن القابلة للإنفجار و ذلك بسبب إحداث الشرارات و إعطائها للحرارة مع العلم أن تصميم هذا المحرك عائد لتصميم المحرك الهيدروليكي الضاغط ، إلا أن المنحنيات الخصائصية لها مختلفة عن بعضها البعض ، عادة فإن المحرك الهيدروليكي يتألف من الميكانزمات التنفيذية المؤثرة ، و التي توجه أجهزة الهيدروليك و الوحدات المؤثرة .

توجد ثلاث أنواع للميكانزمات التنفيذية :

اسطوانة مع مكبس – المحرك ذو المكبس – المحرك الهيدروليكي . لتحقيق التحكم الموضعي بمساعدة الإشارات الكهربائية فإنه لا بد من المحولات الملائمة ، لمثل هذه المحولات ينسبون الأجهزة الكهروميكانيكية و كذلك الأجهزة الهيدروليكية ذات التوجيه الكهربائي ، الأولى منها مخصصة لوصل أو فصل التزويد بالضغط للجسم العامل . أما الثانية فتستعمل في منظومات التحكم بالتوضع النسبي ، المحرك الهيدروليكي يسمح بالحصول على دقة عالية في التمركز عند حمولات مختلفة و ذلك بفضل الجسوءة العالية للمنظومة من جهة أخرى هذا الأمر يعقد التحكم بالقوى لأن الجسوءة العالية تزيد قيمة معامل جهد الضغط و الذي بدوره يؤدي إلى عدم استقرار منظومة التحكم . الميزة الأخرى للمحركات الهيدروليكية هي القيمة العالية لنسبة ؟ كل هذا يجعل محركات الهيدروليك غير ملحوظة عند تصنيع الروبوتات القوية . عدا عن هذه الأنواع الثلاثة المدروسة للمحركات توجد أنواع أخرى و مثال ذلك أنه في بعض القبضات تستعمل النوابض أو أي عناصر مرنة أخرى . فالنوابض غالباً تستعمل لإبعاد الأصابع عن بعضها البعض في القبضات ذات المحركات الهيدروليكية أو الهواء المضغوط كما في الشكل التالي .

فالشكل السابق يوضح القبضة ذات النابض و العتلة مع الأسطوانة ذات الهواء المضغوط و القبض يتم بمساعدة الأسطوانة الهوائية – عند الإفلات فإن الأصابع تتباعد بواسطة النابض ، مثل هذه الطريقة لتصميم القبضة تبسط بشكل واضح المخططات البيانية للمنظومات الهيدروليكية و بالهواء المضغوط و منظومات التحكم بها ، النوابض أيضاً يكن استعمالها للقبض ، في هذه الحالة فإنه من الواضح أن جهد القبضة يتناسب طرداً مع جساءة النابض و بالتالي فإنه للحصول على جهد عالي في القبض فإنه لابد من استعمال النوابض ذات الجساءة العالية ، عندئذ يجب زيادة استطاعة المحرك الذي يباعد الأصابع بعضها عن بعض في القبضة ، بسبب ذلك فإن استعمال النوابض للقبض يقتصر على الأعضاء العاملة للعمل مع أجسام غير كبيرة مثل - المسامير عديمة الرؤوس – صواميل – براغي . النوابض غالباً تستعمل بشكل مشترك مع المحركات الهيدروليكية و بالهواء المضغوط لأنه عند إزالة الضغط عن الجسم العامل فإن النابض المتصل بالمكبس بكل سهولة يعيده إلى وضعه الأساسي ، من ناحية أخرى فإن التركيبة المؤلفة من النابض مع المحرك الكهربائي غير فعالة لأن المحركات تستعمل فقط بشكل مشترك مع مخفضات السرعة و التي تعيق دوران محور المحرك الكهربائي إلى وضعه الأساسي . أحيانا يستعمل في القبضات الكهرومغناطيسية المحرك الكهرومغناطيسي الذي يتألف من رأس مغناطيسي و الذي يملك هيكل مغناطيسي حديدي و وشيعة كهربائية و دافع - المؤلف ( من مادة مغناطيسية ) عندما نمد الملف بالتوتر فإن الرأس المغناطيسية تسحب إليها الدافع و بعد ذلك فإن وضع المحرك يثبت بشكل قوي . في حال عدم وجود التيار في الملف فإن الدافع يتحرك بحركة على طول المحور . في مثل هذا المحرك يكون عادة موجود نابض إرجاعي الذي يؤمن تثبيت الدافع في وضعيتين كما في الشكل فإنه يبين قبضة ذات جهاز التحريك الكهرومغناطيسي ، الدافع في جهاز التحريك الكهرومغناطيسي (1) يتحرك إلى اليسار على طول المحور ، هذه الحركة التقدمية تحول ضغط الأصابع بمساعدة القبضة (2) ، أما عملية فتح المقبض يتم بمساعدة النابض (3) كقاعدة فإن قيمة انزياح الدافع تكون غير كبيرة لأنه مع زيادتها فإن قوة جذب الرأس المغناطيسي تتناقص . لذلك فإن مثل هذه الأجهزة للتحريك تستعمل فقط عند العمل مع الأجسام الغير كبيرة – اختيار جهاز التحريك يبدي تأثيراً ملحوظاً عل فعالية القبضة بشكل عام اختيار جهاز التحريك ينفذ حسب طبيعة العمليات المنفذة من قبل العضو العامل. إذا كان في تكوين القبضة يوجد مفاصل ذات تحكم موضعي عند ذلك فإنه من الأفضل استعمال جهاز التحريك الكهروميكانيكي أو بالهواء ، في كل الحالات الباقية من الأفضل استعمال جهاز التحريك بالهواء المضغوط . إذا كانت القبضة ستعمل في وسط قابل للانفجار ( مثال ذلك على مناول روبوت منظومة التلوين الإيروزولي : هو جزيئات صلبة أو سائلة يحملها الهواء ) فإنه يجب استعمال جهاز التحريك الهيدروليكي أو بالهواء المضغوط إذا كان لابد من التحكم بالجهد المتزايد في المفاصل أو عن طريق القبض فإنه من المناسب استعمال جهاز التحريك الكهروميكانيكي أو بالهواء المضغوط .

لاقط ذو محرك كهرومغناطيسي

لغات برمجة الروبوت

إن الروبوتات الصناعية الأولى هي عبارة عن آلات يتحكم بها بواسطة المحركات ، و عن طريق متحكمات منطقية مبرمجة . و قد برمجت الأوامر عموماً عن طريق المستخدم . إن لغة MHI كانت لغة برمجة الروبوتات الأولى ، و من ثم طورت إلى MIT خلال السنوات الأولى من الستينات من القرن الماضي . و هي التي كانت تستخدم في الحاسبات الأولى و من ثم طورت هذه اللغة في جامعة ستانفورد في بداية عام 1970 بحيث اعتمدت على لغتي برمجة هما الباسكال و ال (ALGOL) . و من ثم ظهرت لغة البرمجة (VAL) و (VALII) في عام 1984 و التي طورتها شركة يونيميشن المحدودة . كما ظهرت لغة AML(A Manfacturing Language) في عام 1982 ثم طورتها شركة IBM الأمريكية . و كما ظهرت لغة جديدة سميت ب AUTOMATIX طورها ماكدونيل دوغلاس في نهاية عام 1983 و التي كانت تدعم مجموعة كبيرة من تطبيقات الروبوت التي قد تطور خلال هذه الفترة . أما بالنسبة للغة (V+) فكانت تعتبر من لغات برمجة الروبوتات الحديثة و كانت لديها أكثر من مائة تعليمة في برمجة هذه الروبوتات لتنفيذ حركات متعددة و متتالية .

التحكم بالروبوت : إن أوامر البرنامج المطلوب للتحكم بالروبوت يجب أن تسيطر على حركة الروبوت و تحديد موقعه ، و المسير و السرعة و التسارع و تجنب أي عائق . فمثلاً في لغة (V+) أوامر التحكم بالروبوت هي كما يلي : MOVE : هي تحريك الروبوت إلى موقع جديد محدد بالرمز .

APPRO: هي تحريك الروبوت إلى موقع آخر من موقع مسمى أي أنها تحرك المؤثر النهائي أو الأداة إلى المكان المحدد بالرمز ، ولكنه يبدأ بالقياس اعتباراً من نقطة على المحور Z.

فالأمر APPRO A,50 هو أمر تحريك الأداة إلى مسافة 50 عن النقطة A باتجاه المحور Z للأداة . APPRO : و هي مشابهة ل APPRO فيما عدا أن الحركة إلى جوار المكان المحدد تكون على مسار خطي.

DEPART : و هي تحريك الأداة بالمسافة المرادة وفق المحور و اعتباراً من الوضع الحالي للأداة . فمثلاً

DEPART 50 يتم فيها تحريك الأداة إلى الوراء اعتباراً من الموقع الحالي بمقدار 50 مم . DELAY : و هي إيقاف الحركة و ذلك لفترة معينة من الوقت . فمثلاً DELAY 3 تعني إيقاف الحركة و ذلك لمدة 3 ثواني .

SPEED : و هي تعليمة يتم فيها تحديد السرعة للحركات .

ACCEL : و هي تحديد التسارع و التباطؤ في حركة الروبوت .

SINGLE : تحديد حركة الوصلة أو النهاية .

MULTIPLE : و هي السماح بحركة كاملة لنهاية الوصلة (المعصم) .

OPEN : و هي تعليمة لتحديد وضعية الماسك على الوضعية المفتوحة .

CLOSE : هي تعليمة لتحديد وضعية الماسك على الوضعية المغلقة .

التحكم بالنظام : بالإضافة إلى التحكم بحركة الروبوت ، يجب على النظام أن يدعم البرنامج من حيث تصميمه ، و يتضمن التحكم بالنظام برامج معالجة البيانات و برامج خزن البيانات و برامج التحكم و نظام التحكم بالحساسات الخارجية . و كمثال عن أوامر التحكم في لغة (V+) مايلي : EDIT : و هذا الأمر يحدد منطقة في البرنامج لإجراء تعديل فيه .

STORE : و هي تعليمة تخزين المعلومات من الذاكرة إلى ملف .

LOAD : و هي قراءة محتويات القرص إلى الذاكرة .

COPY : و هي نسخ ملف محفوظ على قرص إلى برنامج جديد .

SPEED : و هو الأمر الذي يحدد سرعة حركة الروبوت الإجمالية .

EXECUTE : و هي التنفيذ للبرنامج الموجود .

ABORT : و هي إيقاف تنفيذ البرنامج .

Do : و هي تنفيذ أمر وحيد في البرنامج .

WHERE : و هي تحديد مكان موقع الروبوت .

TEACH : و هي تعريف سلسلة من المواقع المحتملة .

TIME : عرض البيانات و الوقت .

ENABLE : و هي أمر تشغيل واحد أو أكثر من مفاتيح النظام .

قواعد المعطيات و البنية : إن أوامر البرنامج تحتاج إلى ترتيب و تحكم منطقي في تنفيذها ضمن برنامج يتحكم بالروبوت و الأمثلة تتضمن الأوامر التالية : FOR : لتنفيذ عدد من الأوامر و لعدة مرات .

WHILE : و هي الاستمرار بتنفيذ مجموعة الأوامر و حتى الوصول إلى الغرض المطلوب.

DO : و هي تنفيذ عدة أوامر و حتى الوصول إلى الهدف المرجو .

IF : مراقبة فيما إذا تم تنفيذ الأوامر أو لا .

PARAMETER : و هي وضع قيمة بارا متر النظام .

بعض الوظائف الخاصة : و هذه الوظائف تكون ضرورية من أجل تسهيل برمجة الروبوت ، و هذه الوظائف تتضمن تعابير رياضية و أوامر لتحويل البيانات و معالجتها كما يلي في بعض الأمثلة : ABS : قيمة مطلقة .

COS : و هو جيب التمام .

SQRT : و هو الجذر التربيعي .

BCD : و هو متحول من النظام الحقيقي إلى العشري إلى الثنائي .

DCB : متحول من الثنائي إلى الحقيقي .

تنفيذ البرنامج : إن تنظيم البرنامج في تسلسل الأوامر القابلة للتنفيذ تتطلب جدولة المهمات و كمثال على ذلك الأوامر التالية : PECEXECUTE : و هي القيام بتنفيذ معالجة لبرنامج التحكم .

PCABORT : و هي التوقف عن تنفيذ معالجة برنامج التحكم .

PCRETRY :و هي الاستمرار أو الاستئناف بتنفيذ آخر خطوة بعد حدوث خطأ ما .

PCEND : و هي توقف تنفيذ البرنامج عند النهاية و من ثم إعادة دورة التنفيذ من جديد في حال تشابه العمليات .

مثال عن برنامج :

1: PROGRAM 2: PICK UP : و هي رفع الأجزاء من موقع إلى آخر 3: PART = 100 و هي عدد الأجزاء التي سيتم تشغيلها 4: HEIGHT= 25 و هي المسافة المراد رفعها للجزء المطلوب 5: OPEN و هي تعليمة تجعل يد الروبوت مفتوحة 6: MOVE START وهي تعليمة تحريك الروبوت إلى الموقع لبدء العمل 7: FOR I = 1 TO PARTS و هي تشغيل الأجزاء 8: APPRO PICK 9: MOVE PICK 10: CLOSE وهي إغلاق اليد أو المقبض 11: DEPARTS HEIGHT1 و هي تحريك الأداة بالارتفاع المذكور على نفس المحور و اعتباراً من الوضع الحالي للأداة . 12: MOVES PLACE و هي تحريك الروبوت 13: OPENI وهي تحرير القطعة 14: DEPARTS HEIGHT 2 و هي تعليمة عودة المقبض إلى الارتفاع رقم 2 15: END. الانتقال إلى الجزء الآخر من العملية . 16: STOP إنهاء البرنامج 17: END .

الروبوت في التطبيقات الصناعية

إن استبدال الأشخاص بالرجال الآليين غالباً ما أدى إلى فشل بالنتيجة المراد الوصول إليها . و السبب هو أن الروبوتات غالباً ما تكون لديها قدرات ميكانيكية للمعالجة و التنفيذ بينما يكونون عاجزون عن تصميم العملية و التحكم الكامل بجزئيات العملية . آلاف تجهيزات الروبوتات قد باءت بالفشل لأن تبديل الطريقة اليدوية بالطريقة الآلية أظهرت تراجع كبير بالتكييف العقلي للمعالجة المنطقية للأمور المختلفة . أن الأشخاص العاملين كانوا يستعملون مقدراتهم الإدراكية في تنفيذ العمل ، أما أغلبية واسعة من تطبيقات الروبوت الناجحة في الماضي و الحاضر عندها مظهر عام مهم جداً و هو التنفيذ المتكرر للبرامج الثابتة التي يعمل عليها و لكن بلا تعديل أو بالأحرى بتعديل طفيف جداً متعلق بالموقع أو مسار العمل . إن تصميم و برمجة الروبوت هي عملية ما زالت تتطلب الكثير من الجهود التي قام بها التقنيين الماهرين و غالباً ما كلفت هذه البرامج أكثر من اللازم . حيث أن التحكم المستمر و تنوع طرق حركاته يتطلب معالجة فورية للبارامترات ، و هذه هي الناحية الصعبة بالتحكم . العديد من المعالجات لا تعرف كفاية كيف تصف سيطرتها و تحويلها إلى خوارزميات . في التطبيقات الجديدة كالحساسات صار من الأسهل تكييف خطط الروبوت إلى التغييرات في البيئة المحيطة ، الإعداد ، و تتبع درزات اللحام ، و تتبع ناقل ، و الوضع ....الخ . بالإضافة إلى الأمور التي بوضع الروبوت في موقع العمل ، فإن هناك ظروف العمل التي تحدد ما إذا كان من الواجب استخدام الروبوت من الوجهة الاقتصادية. و يمكن أن نحدد هذه الظروف: 1- ظروف العمل الغير مريحة : في مكان العمل حيث يوجد خطر ناتج عن الحرارة و الإشعاع ، أو عندما يكون مجال العمل غير مريح يمكن أن يحل الروبوت مكان الإنسان و مثال ذلك عمليات صهر المعادن الحرارية . 2- العمليات المتكررة : إذا كانت دورة العمل تتألف من أعمال متتالية لا تتغير من دورة إلى أخرى من الممكن برمجة الروبوت لأداء المهام المراد إنجازها و هذا عندما يكون المراد إنجاز العمل في مكان محدد مثل التوضع و تلقيم الآلات . 3- العمليات كثيرة التعداد : إذا كانت كلفة الاستثمار الأولي للروبوت يمكن أن توزع على أكثر من عملية فإن الاستثمار يمكن أن يغطى سريعاً ، و هذا يعني أن الفارق بين الاستثمار و عدمه يمكن أن يبرر ، مثال ذلك معالجة البلاستيك

التطبيقات الصناعية للروبوتات :

إن القدرة الميكانيكية الأساسية لتنفيذ العمليات المطلوبة منه تحددها تركيبه الميكانيكي ، و ترتيبه الحركي ، و هناك بعض التطبيقات الصناعية التي سنتكلم عنها فيما يلي : 1- تلقيم الآلات : إن عملية تلقيم الآلات يقوم فيها الروبوت بتغذية آلة إنتاج لسلسلة من القطع أو يستلم القطع المنتهية من الآلة . يمتاز تلقيم الآلات عن نقل المواد بأن الروبوت يعمل مباشرةً مع تجهيزات المعالجة . في المجال النموذجي يقوم الروبوت بالتقاط القطع على السير و يقدمها إلى الآلة . و في بعض الحالات يمسك الروبوت بهذه القطع أثناء معالجتها و عندما تتم المعالجة يأخذ الروبوت الأداة من الآلة و يضعها على سير آخر . و من الأعمال التي نجح فيها الروبوت المهام التالية : التطريق الحراري للمعادن . التهيئة للتطريق . معالجة المعادن . و نوضح في هذا المثال روبوت من نوع Milacron يقوم بمعالجة أداة معدنية يتم تتابع دورة العمل كما يلي : 1- يأخذ الروبوت أداة معدنية خام من فوق السير إلى مركز المعالجة الأول ، يأتي الروبوت من نهاية الآلة و يأخذ الأداة المنتهية و يضع واحدة ثانية . 2- ينقل الروبوت الأداة التي تم معالجتها في الآلة الأولى إلى مركز اختيار أوتوماتيكي إذا كانت الأبعاد واقعة ضمن مجال التسامح ، و من ثم ينقل الروبوت الأداة إلى مركز معالجة جديد . 3- تؤخذ الأداة المنتهية من الآلة الثانية و تقدم الأداة المعالجة في الآلة الأولى التي تم اختبارها إلى الآلة الثانية . 4- يأخذ الروبوت الأداة المنتهية من الآلة الثانية و يقدمها إلى مركز اختبار أوتوماتيكي ، فإذا كانت واقعة أبعادها ضمن مجال التسامح فإنها توضع على السير . و بعدها يصبح الروبوت جاهز لدورة عمل ثانية .

2- التعبئة و الحزم :

التعبئة هي غالباً ما تكون مزيج من عمليتين هما نقل المواد و من ثم تجميعها ، فلذلك غالباً ما يكون على الروبوت جمع الأشياء المراد تعبئتها و من ثم وضع حشوة الرفد (و هي الحشوة لمنع المواد من العطب و الارتجاج) و من ثم ختم صناديق التعبئة . و لكن في الغالب ما تستعمل آلات عادية لهذا الغرض و تكون وظيفة الروبوت هو وضع الفواصل فقط و من ثم ختم تلك الصناديق . إن هكذا وظائف ليست بالأمر السهل ، فربما يحتاج الروبوت للقيام بعدة أنواع من الحركات لتنفيذ هذه المهمة كالحركات الدورانية و المقوسة ، و حيث أن هذه الحركات تختلف باختلاف نوعية المواد و الأحجام و الأشكال . و أيضاً اختلاف الخواص الفيزيائية للمواد الموجودة في الحزمة الواحدة يؤدي إلى تعقيد الحكات المطلوبة و تعقيد الأدوات و المتطلبات اللازمة ، فالقابض يمكن أن يصمم بحيث يؤدي عدة وظائف و ربما يصمم بحيث يتم استبداله بآخر لتنفيذ وظيفة أخرى .

3- تغميس الأجزاء ومعالجة السطوح بالغلفنة :

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

4- اللحام النقطي (اللحام الموضعي) :

يعد اللحام النقطي من أكثر تطبيقات الروبوت الصناعي انتشارا و خاصة في صناعة السيارات . فاللحام النقطي هو التحام بين قطعتي معدن في نقاط مركزة و ذلك بامرار تيار كهربائي عالي الشدة عبرهما في نقاط التماس . ينجز اللحام بنوع من المساري تضغط المعدنين معاً و تمرر التيار عبر نقطة التماس . و عادة يكون الزوج النموذجي للمساري له شكل محدد بحيث يمكن أن يركب بسهولة على رسغ الروبوت كمؤثر نهائي .ينجز الروبوت لحام نقطي بالتسلسل التالي : • يضع فرد اللحام (زوج الإلكترودين معاً) في المكان المراد على قطعتي المعدن . • الضغط بالمسريين بقوة على قطعتي المعدن . • امرار التيار المناسب مما يسبب انصهار المعدنين في نقطة التماس و التحامها نظراً لدرجة الحرارة العالية . • التبريد ، حيث يتم رفع المساري و الانتظار فترة كافية لتبرد المساري قبل نقطة اللحام التالية ، و عادة يمرر الماء ضمن المساري لتسريع التبريد . بهذا التتالي يصبح العمل النموذجي لروبوت PTP . و كمثال عن خطوط اللحام النقطي الروبوتية الأوتوماتيكية هي أجهزة جهزت عام 1980 في شركة DOOGE الأمريكية لصناعة السيارات . ينجز لحام البراشيم 8 روبوتات unimate و 4 روبوتات من نوع unimate4000 تنجز اللحام النقطي حول الأبواب . بعد هذا القسم تمر أجسام السيارات إلى خط إعادة اللحام حيث تنجز أكثر من 700 نقطة لحام ب 24 روبوت . يجهز المصنع ب 36 روبوت لحام نقطي في إنجاز تجميع أجسام السيارات و هو مهيأ لإنتاج 1750 سيارة في اليوم . إن اختيار الروبوت للقيام بهذه المهام له مبرراته و ذلك لأن المهارة التي أبداها الروبوت كانت على درجة عالية ، و هذه الدقة قد لا تكون موجودة عند الإنسان و ذلك بسبب حجم و وزن فرد اللحام و صعوبة مسكه ، و الذي قد يصل وزنه إلى 200 رطل ، كما أن دقة الروبوت آتية من كون اعتياده على دورة محددة و معينة للحام بدون تغيير ، و إتباعه نفس المسار ، و لذلك كان الوقت الذي يقوم به الروبوت باللحام قياسي و قد يصل إلى أقل من دقيقة . و لكن لسوء الحظ عندما يتم استبدال روبوت مبرمج بآخر جديد ، وقتها سيتم استغراق ساعات و أيام لوضع الروبوت على خط الإنتاج و ذلك بسبب الوقت الذي سيستغرقه في تعليمه على عمله و برمجته وفق المتطلبات . ففي الصور التالية نلاحظ وجود ستة أذرع روبوتية على خط إنتاج لصناعة السيارات و هي تقوم بتنفيذ لحام نقطي لهياكل السيارات .

و الصورة الأخرى توضح قيام ذراع روبوتية مفردة بلحام نقطي على صفيحة .

5- اللحام بالقوس الكهربائي :

اللحام بالقوس الكهربائي هو عملية وصل المعادن مع بعضها و التي تستخدم الحرارة العالية الناتجة عن القوس بين الإلكترودات و بين الأجزاء المعدنية الملحومة . عادةً ما تكون بقعة اللحام و القوس الكهربائي من أكثر استخدامات الروبوت الصناعية . و قد أدى انتشار الروبوتات لتنفيذ هكذا عمليات لما تتطلبه من جهد و لما لها من أخطار و أضرار مثل الأشعة الفوق البنفسجية و الإشعاعات المرئية التي تؤذي العينين بشكل كبير و بالإضافة إلى الأدخنة السامة الناجمة عن اللحام و الضجيج. و إن من أهم الأمور اللازمة لنجاح لحام القوس الكهربائي ، هو مقدار التقدم لفرد اللحام و الذي قد يؤدي ازدياد التقدم إلى ثقب المعدن ، أما التأخير بالتقدم فسيؤدي إلى انقطاع القوس الكهربائي ، و لذلك فقد برمج الروبوت بحيث يكون تقدمه مدروساً و بزمن محدد بدقة بحيث يحافظ على القوس الكهربائي .

6- بخ الدهان و معالجة السطوح و أعمال الطلاء : هي من المجالات الواسعة لاستخدام الروبوت الصناعي و ذلك لأهداف و غايات مختلفة و أهما الدقة و لما لها من تأثير ضار و سام على صحة الإنسان فأغلب مواد الطلاء تكون قابلة للانفجار و الاشتعال و لذلك فأن الروبوتات المستخدمة لتنفيذ مثل هذه الأعمال يجب أن تملك تصاميم و دارات ضد هذه الأخطار . و من أجل تنفيذ الطلاء يستخدم و بشكل واسع الذراع الروبوتية ذات المرذاذ ، و في هذه الروبوتات تكون متطلبات الدقة أقل مما هي عليه في روبوتات اللحام و أما بالنسبة للسرعة فعلى العكس فهي تنفذ عملها بشكل أسرع . تتم هذه العمليات بمساعدة نظم و دارات التحسس الفني و الذي يتم عبره تحديد حجم و أبعاد المشغولة التالية و المكان الذي يجب أن تتم فيه الطلاء . و هناك حالة أخرى أو طريقة بديلة تتضمن تنفيذ الطلاء ضمن الحقل الكهربائي ، هذه الطريقة تؤمن نوعية عالية للطلاء و اقتصادية غير أن الجهد العالي (عشرات الكيلو فولت) يشكل ملائمة أكثر للانفجار و هذا ما يحد من مجالات استخدام الروبوتات الصناعية للطلاء مع هذا النوع من المرذاذات . ولا يقتصر عمل الروبوت على الدهان و الطلاء فقط بل يشمله أعمال التنظيف بالرمل و معالجة السطوح و قطع الأجزاء الزائدة من القطع و مراقبة أبعادها . و في صورتنا هذه نرى ذراع روبوتية تقوم بأعمال الطلاء على خط لإنتاج سيارات لشركة فولفو .

7- عمليات الحفر :

إن عمليات الحفر هي عمليات ميكانيكية دقيقة ، و معظم الروبوتات لا تستطيع حمل محاور الحفر الدورانية بقوة كافية و التغلب على قوى رد الفعل على هذه المحاور الدورانية ، و معظم الروبوتات لا تستطيع أن تتحرك بحركة مستقيمة دقيقة عند تغذية الحفر ( أي المتابعة بالحفر ) . إن روبوتات الحفر هي روبوتات تستعمل نهايات آلية خاصة تختلف عن نهايات الروبوتات الآلية الأخرى لأن المعصم و الذراع يجب أن يكونان مطواعين بالتحرك و يتميزان بجساءة عالية بحيث تعمل هذه الأدوات بثبات . إن النهايات الروبوتية المستخدمة في الحفر تكون لها محركات كهربائية دورانية و آلية تغذية لمحور الحفر يتحكم بها عن طريق دارة تحكم خاصة . و لهذه الأسباب فإن إسهام الروبوتات في عمليات الحفر اقتصر على عدد من العمليات ، كحمل أدوات الحفر و تثبيتها عن طريق نهايته و على عكس ذلك كان استخدام الروبوتات في عمليات الحفر الدقيقة ( أي حفر الثقوب الصغيرة في هياكل الطائرات ) و يشكل عام عمليات الثقب الصناعي كان استخدامه ناجحا جداً و ذلك بسبب صغر آليات الثقب ، كما أن من إحدى أكبر المشاكل التي اعترضت عمليات الحفر و التنقيب هي كبر حجم آلات الحفر و بالتالي تطلب ذلك استخدام روبوتات ضخمة و كبيرة لتحقيق التوازن و الدقة في العمل .

8- عمليات رفع و إنزال منصات التحميل :

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

9- التثبيت و الربط :

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

10- صب البلاستيك :

تستعمل الروبوتات في هذا المجال لتعبئة و تفريغ قوالب الصب الحقنية أو تشذيب بعض القوالب . إن هذه المنشآت لها مبرراتها الاقتصادية من حيث وتيرة العمل الأسرع و المنتجات الأفضل من إنتاج البشر .

11- الفحص : إن روبوتات الفحص تتضمن على أجزاء و حساسات للقيام بعمليات المقارنة و القياس و الفحص . إن الحساسات المستخدمة في هذه الروبوتات هي : كاشفات كيميائية . أنظمة مراقبة كمبيوترية . فاحصات بالأشعة تحت الحمراء . السونار و الرادار الليزري . الفاحصات الإشعاعية . الحساسات السعوية . الكاميرات السينية و الفاحصات الفوتونية . أن عمليات الفحص دائماً تتم بالنسبة لنظام معطيات مقارن ، فيمكن للروبوت أن يقوم بفحص مقدار انحراف الزوايا عن القيم الحقيقية لها ، و أيضاً انزياح نقاط الاتصال عن موضعها الأصلي بالنسبة لإحداثيات فراغية ، و الروبوت يمكن أن يكشف أخطاء في الموضع قد تصل إلى 0.001 إنش . و الصورة التالية توضح روبوت يقوم بتفحص أولي لعملية تجميع مركبة .

12- القطع : معظم المواد الهندسية تنتج على شكل صفائح أو ألواح ، و بالتالي فلإتمام عملية الإنتاج يجب أن تتم عمليات القطع لهذه الصفائح بأشكال مختلفة و بمقاسات متعددة ، و يمكن أن تتم عمليات القطع باستخدام الروبوت و ذلك بمساعدة العمليات و الأدوات التالية : 1) الليزر : عن طريق صهر المعدن برفع درجة حرارته بتوجيه أشعة أو ضوء بالغ الحدة إلى المكان المراد قصه . و تستخدم هذه الطريقة من أجل القطع المعدنية التي لا تزيد عن 0.05 إنش .

2) النافث المائي : و هو عبارة عن نافث لماء عالي السرعة عن طريق ضغط الماء بشكل كبير من خلال فتحة تمدد ، و نتيجةًً لهذه السرعة العالية للماء المصطدم مع القطع يؤدي إلى قطع هذه الأجزاء المعدنية و تتراوح سماكات الأجزاء التي يتم قطعها بهذه الطريقة بين ( 0.04 – 0.008 ) إنش . و كما يمكن قطع أجزاء غير معدنية أخرى . و هناك طرق أخرى يمكن للروبوت أن يستخدمها في عمليات القطع مثل : ( قوس البلازما ، المثقب المركزي أو ما يسمى بمسحاج تخديد ) .

و الصورة السابقة تبين روبوت يقوم بعملية القص بواسطة الشعاع الليزر .

13- أعمال الطباعة : تستعمل الروبوتات في هذا المجال في صناعة السيارات بشكل رئيسي كختم لوحات أرقام الهيكل . إن إحدى الاعتبارات الرئيسية هو زيادة سلامة العامل أثناء عملية الختم و التخريم .

14- التجميع : حيث أنه من بعض عمليات التجميع التي يقوم بها الروبوت هي : القمط ، التوجيه ، تجميع المشغولات . و الصورة التالية توضح روبوت يقوم بعمليات تجميع على خط لإنتاج المركبات .

15- حمل أدوات الآلات : لقد شجع استعمال الروبوتات في هذا المجال و ذلك بالتصميم الأسبق على آلات التحكم الرقمي و المهمة السهلة نسبياً في الربط البيني بين الروبوتات إلى أدوات آلات التحكم الرقمي .

16- الحدادة : تستعمل الروبوتات في هذا المجال بشكل أساسي لمعالجة الأجزاء المعدنية الساخنة فقط أو للعمل في أماكن ذات درجات حرارة عالية . إن استعمال الروبوتات محدود نظرا للمستويات المنخفضة نسبياً للإنتاج الكمي و تعقيدات بعض الأجزاء .

17- عمليات الإنهاء : العديد من الأشكال و المنتجات المعدنية تنتج بدون حاجة لعمليات إنهاء ، و لكن بالمقابل هناك بعض الآلات تترك بعض الحواف و نهايات زائدة . ففي أجنحة الطائرات تترك العمليات النهائية الصغيرة و الدقيقة للروبوت لما يتميز من دقة في التشغيل و ذلك لتجنب تركز الإجهادات في معدن جناح الطائرة. و الصورة التالية توضح روبوت يقوم بعمليات إنهاء لمشغولة معدنية .

يتضح من هذه القائمة للتطبيقات الصناعية الحالية أن تطور و استخدام المناولات الروبوتية قد قطع خطوات واسعة من بداياته المتواضعة كمناول عن بعد تم تطويره في مخبر ARGONNE الوطني عام 1947 لمعالجة المواد المشعة .

تطبيقات الروبوت الغير صناعية

تأتي أهمية الروبوتات في الحياة العملية من كثرة و تنوع الوظائف التي يقوم و التي لا تقتصر على المجال الصناعي فقط ، و لكن أيضاً انتشاره في مجالات الحياة عامة . و سنفرد هذا المقطع للتكلم عن تطبيقات الروبوتات الغير صناعية : إن إحدى هذه التطبيقات كان في مجال تكنولوجيا الفضاء ، فالحدث ذو الأهمية الخاصة كان في رحلة الطيران الأولى لمكوك الفضاء الأمريكي كولومبيا في عام 1981 و الذي كان عبارة عن ذراع آلي في الفضاء . الذراع كان بطول 50 قدم و هو عبارة عن ذراع ميكانيكي يتحكم به من قبل رائد الفضاء من موقع في مؤخرة مركز القيادة للمركبة الفضائية . رائد الفضاء ينظر إلى النقطة الهدف بمساعدة كاميرا تلفزيونية مثبتة على الذراع الآلي و يحاول تحريك نهاية الذراع إلى هذه النقطة . مهمة هذا الذراع الآلي المتحكم به عن بعد هي وضع الأقمار الصناعية في المدارات حول الأرض و جلبها منها حين تدعو الحاجة إلى ذلك. ومن الأمور الغير عادية لهذا العصر هو استخدام الروبوت في القص (الجزئي - الكلي) لصوف الأغنام ، و هذا حاصل في أستراليا حيث تطور روبوت اختباري في استخدام أكثر من 150 تجربة على الحيوانات الحية . و جهاز القص هذا هو عبارة عن ذراع ذي ثمانية محاور هيدروليكية يتحكم بها من قبل حاسب مصغر يستعمل البرمجيات المطورة بشكل خاص من أجل عملية القص . و إن التقنيات التحسس الكهربائي تستخدم لتحري جلد الغنم ، و التجهيزات قد صممت لتثبيت و مناولة الحيوانات في مواضع مختلفة للقص. إن الرأس القاطع يمتلك ثلاث درجات حرية زاوية ليحافظ على وضع القص بشكل صحيح و يتوضع على الرأس القاطع مقامات سعوية تستعمل من أجل التحسس بالجلد .

و هناك نظام روبوتي يستخدم في المشافي لمساعدة الأشخاص المصابين بالشلل أو أولئك الذين يجب أن يبقوا في السرير بعد عملية جراحية باستعمال قيادة صغيرة فالشخص المريض يمكن أن يأمر الروبوت ليحضر له الدواء أو ليفتح الباب و بإضافة نظام اتصال صوتي فإن الروبوت يستطيع أن يتعلم ليستجيب للأوامر الصوتية للشخص المريض . و الحلم الآخر هو الروبوت المنزلي حيث أن كل مدبرة منزل تريد بعض المساعدة في إنجاز المهام المنزلية مثل: تنظيف البيت – جلي الصحون .........الخ . و من التطبيقات الغير صناعية للروبوتات هي ما يقومون به علماء أميركيون في معهد دارين رينسلاير للمياه العذبة، بتصميم روبوتات غواصة تعمل تحت الماء وتتحرك ذاتيا بهدف مراقبة العوامل البيولوجية والكيميائية الضارة، ومراقبة نقاوة المياه. وتصمم الروبوتات التي تعتمد على الطاقة الشمسية في عملها، بمجسات متطورة وسوف تنشر في الانهار والبحيرات العذبة المياه لمراقبة البيئة وجودة المياه.

=======

مقدمة في الشبكات العصبية الاصطناعية 

ليست هناك تعليقات:

إرسال تعليق

الجنة دار الأبرار والطريق الموصل اليها

  ➌ الجنة ومتاعها والنار وسوء جحيمها عياذا بالله الواحد. {{ إِنَّ الْمُتَّقِينَ فِي جَنَّاتٍ وَنَهَرٍ (54) فِي مَقْعَدِ صِدْقٍ عِنْدَ مَلِ...