منتدى الإلكترونيات قسم الالكترونكس لمناقشة الافكار والمعلومات المتعلقة بالهندسة الالكترونية للمبتدئين والهواة والفنيين - Electronics

   

ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 11,652
نشاط [ ماجد عباس محمد ]
قوة السمعة:
قديم 25-09-2015, 09:57 AM المشاركة 121   
افتراضي الملف النصى Text File




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

خمسة ثقوب تعنى مجمل 32 خيار الآن لدينا 26 حرف و عشرة أرقام لذا لا يمكن ارسالها فاتبعت بعض النظم المحدودة للنقل بين "عالى" و "منخفض" للنقل بين مجموعة 32 للأحرف و أخرى للأرقام و العلامات ثم سريعا ما استبدل بنظام ذو 7 ثقوب وهو يوفر 128 خيار. الحروف و الأرقام 26 و يضاف إليها 26 حرف آخر للحرف الصغير و الكبير فالمجموع 62 و لدينا أوامر يجب تنفيذها مثل الرجوع لأول السطر، الإنتقال لسطر جديد الانتقال لعمود معين "Tab" للجدوله إضافة للعشرة أحرف التى تجدها على أزرار الأرقام على لوحة مفاتيحك وهى علامات النقود $,#,&,% والأقواس الخ و أيضا إطلاق جرس Bell كرسالة للمتلقى بالتنبه و الإنتقال لصفحة جديدة و الرجوع للخلف لإتاحة كتابة فوق كتابة (تحته خط أو مشطوب لسبب ما) الخ
الآن بقيت نقطة هامة جدا ، انت ترسل شريطا مثقبا و تنفق بالدقيقة ثمنا للخدمة ولو حرف زاد عن المطلوب قد يكلفك دقيقة بلا داعى، لذا كيف نلغى حرف أو جملة أو فقرة كتبت بالخطأ؟
الحل الوحيد هو ابتكار الخاصية No-Op أى No operation و المستخدمة كتأخير فى كل الميكرو الآن، تتم هذه الخاصية بتثقيب كل الثقوب السبعة و هكذا أى حرف آخر بالطبع سيكون أقل من 7 ثقوب و إلا لو 7 ثقوب سيلغى.
الآن ما أهمية ذلك؟
ماكينة الإرسال تعمل Off line اى محليا فبعد الغاء هذه الفقرة بالرجوع للخلف ثم الضغط على Del فيتم تثقيب كل الأخطاء المراد الغاؤها ، يعاد تمرير الشريط المثقوب فى القارئ و القارى متصل بالثاقب فيثقب كل حرف يمر عليه حتى إذا قرأ صفر صفر وهى NOP لا يفعل شيئا فقط ينتقل للحرف التالى و هكذا لا يحدث تثقيب للشريط الجديد فيكون الشريط الناتج أقصر من الاصلى المحتوى أجزاء ملغية.
اتفقت الهيئة العالمية الأمريكية ASCII على الأرقام المقابلة لكل حرف و رقم و عملية تحكم و اصبحت قياسا عالميا يستخدمه الجميع. و من أهم ميزاته أن الفرق بين الرقم و الكود هو إضافة 30 بالهكس و أيضا بت واحدة تحول بين الحرف الصغير و الكبير لذا التحويل من نوع لآخر أصبح سهلا.
الآن عندما نقول ملف نصى فالأساس أنه لا يحتوى على أحرف للتنسيق سوى "TAB" ولا أى فونت ولا أى صور فقط أعداد و أحرف و التحكمات القياسية ولو احتوى أعداد غيرها يسمى ملف ثنائى أو Binary .
اعتمد هذا الملف فى الحاسبات و عندما اعتمد عرض الحرف 8 بت أصبحت البايت تتحمل إضافة لغة ثانية فى 128 موقع التالية و طبعا هى إمتداد لبعض اللغات اللاتينية .
اللغات الأخرى مثل العربية و الصينية لا تعد ملفات نصية قياسية لحاجتعا لتحديد اتجاه الحروف من اليمين و الأحرف الجديدة أصبحت تشغل 2 بايت .


اعلانات

ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 11,652
نشاط [ ماجد عباس محمد ]
قوة السمعة:
قديم 27-09-2015, 10:30 AM المشاركة 122   
افتراضي اللغات



اللغات:
مما سبق نلاحظ أن كل شيئ هنا ارقام وهى أرقام ثنائية أى مجموعة من الآحاد و الأصفار فلتحميل رقم ما للمراكم الرئيسى سيكون هناك تركيبة خاصة لكل شركة حسب ما صمم المهندسون وحدتهم، لذا سيكون مستحيل حفظ أكثر من مئة تعليمة و أكثر (للوحدات 8 بت و التى اصبحت الآف فى 64 بت) بهذه الصورة.
أول خطوة، أن نعبر عنها بالأرقام الستة عشرية "هيكسا" و هذا أسهل كثيرا، البرنامج الذى يكتب بهذه الطريقة بالأرقام الهكسا يسمى لغة الآله machine code وهى صيغة معتمدة.
لكن من يتذكر هذا الكم من الأرقام و يستطيع الترجمة من الأرقام إلى معانيها و بالعكس، فضلا عن وجود مشكلة خطيرة هى أنك لو لم تسير بالترتيب المتسلسل و اردت الإنتقال لنقطة وسطية، مالم تكن شديد الحرص قد تأخذ بالخطأ رقم سابق أو لاحق لتترجمة، لاحظ أنك لا تأخذ أمر سابق أو لاحق بل العكس تأخذ ما يفترض كونه بيان و تحلله كأمر للتنفيذ!!
لذلك وضعت لغة تسمى التجميع Assembly Language وهى اعطاء اسم مختصر لكل تعليمة لكى تكون مفهومة
مثل وضع رقم فى مكان سميت Load و اختصارا LD وشركات أخرى استخدمت التعبير MOVE و اختصارا Mov و على الرغم من عدم نقل البيان بل هو فقط نسخه إلا أن البعض يروق لهم ما يروق لهم.
الأسيمبلر Assembler هو برنامج يقوم بالكتابة لك بلغة الأسيمبلى ولا يعطى شيئا ، فقط يحفظ ما تكتب فى صورة ملف نصى صرف Text File ولكن الإمتداد يختلف.
إذن لماذا لا نستخدم مثلا محرر النصوص فى الوندوز؟ لعدة أسباب
أولا يقوم بعرض الكتابة بالألوان فمثلا يجعل الأوامر بالنص الغليظ و الأرقام باللون الأحمر و التعليقت باللون الأخضر و العناوين باللون الأزرق ألخ مما يسهل عليك جدا معرفة ما تكتب و تكتشف بعض الأخطاء بالنظر.
ثانيا يطابق الأقواس لك فكل قوس تفتحة يربطه آليا بقوس تغلقه من الداخل للخارج فإن نسيت أحدها ستجد على الفور ماذا يخص ماذا و ما ترك بدون قوس – وهذا طبعا من وجهة نظرة هو فالبرنامج لا يعلم النوايا ولكنه يعد الموجود لذا لو نسيت قوسا فى الوسط ستجد التالى كله فى غير ما تتوقع له و هكذا تحدد الخطأ

أيضا هناك خط رأسى منقط يبين كل وظيفة بداية و نهاية مثلا بين For-Next فلو نسيت ان تغلق الوظيفة التى بداخلها ستجد الخط يذهب لمكان بعيد أو يختفى كليا.
أيضا الوظائف التى تتأكد من سلامتها ، يمكنك طيها كالمشار إليها بالصورة حتى لا تأخذ حيز من الشاشة و تركز تفكيرك على ما تريد وهذا بدأ من وظيفة داخلية صغيرة كالسابقة حتى Subroutine / Function كامل.
أعلم انك ستقول هذا برنامج بيزك الخ لكن هذا المحرر NotePad++ يمكنه التعامل مع عدد لا نهائى من اللغات فبالإضافة لعدد 48 لغة من اسيمبلى للغات متخصصة أو عالية مصل C ، يمكنك تعريف لغة ما لتستخدمها وهو مجانى
https://notepad-plus-plus.org
و أخيرا و ليس آخرا يوضح على الجانب رقم السطر
ولكن عند الحفظ، يحفظ فقط فى نسق نصى Textبدون أى تنسيق.

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


اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 11,652
نشاط [ ماجد عباس محمد ]
قوة السمعة:
قديم 29-09-2015, 09:09 AM المشاركة 123   
افتراضي المترجم Compiler



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

يعطى المترجم الناتج فى صورة ملف إما ثنائى بلغة الآلة لإستخدامه مباشرة ولذا فهو صغير وله إمتداد .BIN وهذا الملف لا يقرأ بواسطة محرر النصوص فكثير منها أرقام لا معنى لها، لكن يمكن مشاهدة محتواه بمحرر هيكس Hex editor و من أفضلها Hex Editor Neo
http://www.hhdsoftware.com/free-hex-editor

أو يحفظ فى صورة ملف هيكس Hex File بامتداد .Hex وهو ملف نصى يفتح بمحرر النصوص و يمكن التعديل عليه و حفظه لو تعلم ما تفعله لكنها عملية بالغة الصعوبة فكل سطر يبدأ بالحرف ":" ثم عنوان و عدد البايت ثم البايتات ذاتها ثم CRC للتأكد من صحة ما فى هذا السطر و نظرا لإستخدام حروف نصية تجد حجم الملف كبيرا ، مثال هذه السطور
كود:
:1000000075813075A0007580FF8017758C3C758AEE
:10001000ACD28CD5120575120A118175A88275892A
:100020000132C28C751000751160758C3C758AACFC
لمزيد من التفاصيل خاصة وأن هناك أكثر من نسق لهذه الملفات قم بالبحث عن Hex file format


اللغات العالية Hi level languages

لغة الأسيمبلى رائعة و تقوم بكل المهام لكن ستكون صعبة للمهام المعقدة ، لذا تنافس الكثير لتطوير لغات برمجية أقرب للإنجليزية و تقوم بكثير من المهام الصعبة ذاتيا مثل التعامل مع الأرقام العشرية و الضرب و القسمة و الجذور و العلاقات الهندسية و المثلثية الخ كدوال مبنية داخل اللغة ذاتها و إضافة كثير من الدوال المتخصصة فمثلا لغات المحاسبة تضيف دوال محاسبية و الإحصائية كذلك وهكذا وأعمها الهندسية.
لغة البيزك نشأت أصلا لتسهيل البرمجة للمتلقى العادى فهى اختصار للكلمات Beginner All-purpose Scientific Instruction Code أى هى علمية و لكل الأغراض و للمبتدئ لكونها أقرب للإنجليزية. وهذا لا يعنى إطلاقا أنها قليلة الشأن فقد برمجت إحدى كبار الشركات العالمية الأمريكية رادارها المدنى باستخدام VB6 الشهير.
أعلم أن هواة لغة السى و مشتقاتها سيقولون أنها أقرب للماكينة الخ و هذا و إن كان صحيحا إلا أنه خطر لمن ليست لديه الخبرة الكافية فقد يسبب تعطل كامل "Crash" للويندوز و لكنى أراها معقدة لضرورة استخدام كثير من الأقواس و الكلمات التى لا لزوم لها فببساطة فيجيوال بيزك يقوم بنفس العمل بدونها.
أيضا يجب الالتزام بالتعبيرات الدقيقة فهذا التعبير أنها أقرب للماكينة الخ يخص ميكروسوفت فيجيوال بيزك 6 لكن شركة Power Basic السابق التنويه عنها تصنع مترجم للويندوز بلغة البيزك المفهومة و كافة ميزات السى بما فيها إضافة اسيمبلى الخ الخ
حقا اللغات العالية التى تتيح أسيمبلى أقرب للماكينة من التى لا تتيح مثل بعض أنواع البيزك لكن هذا صحيح فقط فى الحاسبات لأنك تتخطى نظام التشغيل و العطله التى يسببها و تتعامل مباشرة مع المكونات لكن فى الميكرو كونتروللر فالأمر مختلف – لا يوجد نظام تشغيل لتتخطاه و على سبيل المثال دورة For-Next ستترجم لنفس الكود بأى لغة ولو زادت عدد الخطوات فهذا عيب فى المترجم أنه قليل الكفاءة لذلك فالحاجة للغة عالية لميكرو هى أساسا لتستطيع التعامل مع الأرقام الطبيعية ذات الكسور العشرية و الدوال الهندسية و المثلثية و اللوغاريتمات الخ و فيما عدا ذلك ، فالكل فى نظرى واحد.



ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 11,652
نشاط [ ماجد عباس محمد ]
قوة السمعة:
قديم 30-09-2015, 10:10 AM المشاركة 124   
افتراضي الكومبيوتر المصغر



الكومبيوتر المصغر:

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

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





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


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


ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 11,652
نشاط [ ماجد عباس محمد ]
قوة السمعة:
قديم 14-10-2015, 10:04 AM المشاركة 125   
افتراضي اللغات الأخرى مثل JAVA,HTML



اللغات الأخرى:
حسنا الآن هل اللغات العالية هى أقصى ما نحلم به؟
عندما حاول أحد العلماء ارسال ملف من حاسب الجامعة لزميل له فى ولاية أخرى نشأت الحاجة للربط التسلسلى عبر الهاتف و ما كان متيسرا هو أن نستخدم دائرة تضمين Modulator فى المرسل و فك التضمين Demodulator فى المستقبل. نظرا لأن الحوار من طرفين أى ارسال و استقبال فكل طرف يحتويهما معا فيما سمى Modulator Demodulator و إختصارا سمى MODEM و كان بطيئا يضع مئات من البت فى الثانية لكون خط الهاتف ذو سعة ترددية لا تزيد عن 6000 ذ/ث.
ما أن ظهرت هذه الحاجة و الضرورة ، زاد الإستخدام و زاد الطلب حتى تطورت لما عرف باسم الإنترنت حاليا.
ظهرت الحاجة لنقل الصور و صفحات المعلومات من أجل الدعاية للمنتجات و التجارة ، لكن هنا مشكلة بالغة الصعوبة، وهى:
من الذى يطلبنى؟ و كيف أرسل له معلوماتى.
قد تراها تافهة لكن عفوا فمن يطلبك قد يكون شخص يدير أول حاسب IBM شخصى يعمل بالميكرو 8080 مع نظام دوس و قد يكون حاسب كبير فى مؤسسة تعمل بنظام مثل SUN micro system أو يونكس أو غيره و لاحقا أضيف ويندوز التى تغير معالمها كل بضع سنوات. و أيضا نفس المشكلة تكون عندما أضع معلوماتى على حاسبى و الذى قد يكون أى من السابق ذكرهم و اللاحق تطورهم.
الحل: نرجع بضع صفحات لأعلى لنقدر حقا أهمية الملف النصى فهو الوحيد لكونه خالى من التنسيق الخاص مثل الفونت و الألوان الخ يمكن استخدامه بين جميع هذه الأنظمة.
لكن الصفحة النصية ليست براقة، لذا ابتكرت طريقة HTML وهى اختصار كلمات Hyper Text Markup Language وهى تعنى أن النص سنحمله فوق عادته و تم ذلك بإعتبار ما بين قوسين هو أمر من الأوامر <أمر> وهى لا تعرض ولكن تنفذ و تسرى حتى تجد امر الإقفال وهو بادئ بشرطة مائلة مثل </أمر> فيمكنك تغليظ النص أو تكبيره الخ و ابتكرت أنواع من الصور مثل GIF PNG JPG للإستخدام على النت و كل هذا مهمة المتصفح و تطورت لتشمل جداول ووسائل تنسيق أخرى كثيرة لكن كل هذه الأوامر و التعليمات تنقل فى صورة ملف نصى بحث و إن كان بامتداد مختلف.
لم تكتفى الشركات بهذا التطور و لكن ابتكرت وسائط أخرى و لغات أخرى مثل PHP و أيضا لغة JAVA وهى قابلة لتنفيذ أى برنامج كما تبرمجه بأى لغة أخرى و ميزته أنك فى لغات أخرى مثل C,C++ يجب أن توفر نسخ لويندوز كذا و ويندوز كذا و لينكس كذا و كذا و باقى أنظمة التشغيل هذه

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


محمد ع يسى
:: عضو فضي ::
تاريخ التسجيل: May 2015
الدولة: مصر
المشاركات: 1,040
نشاط [ محمد ع يسى ]
قوة السمعة:
قديم 16-12-2015, 08:45 PM المشاركة 126   
افتراضي



Complement أو المتممات
كما سبق الشرح فهذا التعبير يعنى........
.................

.................
نفترض لدينا معادلة مثل


واضح تبسيط فك المعادلات على الناتج النهائى

هناك غلطة غير مقصودة في الصورة...
حاول اكتشافها.


ماجد عباس محمد
:: نائب المشرف العام
::
تاريخ التسجيل: Jun 2009
الدولة: القاهرة - مصر
المشاركات: 11,652
نشاط [ ماجد عباس محمد ]
قوة السمعة:
قديم 23-12-2015, 07:39 PM المشاركة 127   
افتراضي


تم التصحيح


امون
:: مهندس متواجد ::
تاريخ التسجيل: Mar 2015
المشاركات: 52
نشاط [ امون ]
قوة السمعة:
قديم 01-12-2017, 09:14 AM المشاركة 128   
افتراضي


رائع شرح ممتاز



الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 03:13 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)