#خليك_مبرمج_واع
22 subscribers
247 photos
38 videos
114 files
903 links
مجموعة أخرى أكثر إفادة و تجيب على الأسئلة
https://msaht-programming-and-w-d.quora.com/?ch=10&oid=3116845&share=396067ef&srid=hBsZuY&target_type=tribe
Download Telegram
الة_حاسبة.alif
4.4 KB
لبناء آلة حاسبة في لغة ألف5 تحسب الدوال المثلثية (جتا، جيب، ظل) وتطلب من المستخدم إدخال القيمة.

#لغة_ألف #ألف #برمجة_بالعربي #برمج_بألف #ألف_كود_عربي #ألف_رمز #كود_ألف
#Aliflang #Alis_programming_language
#خليك_مبرمج_واع @Programmer_educated
#خليك_مبرمج_واع
الة_حاسبة.alif
لبناء آلة حاسبة في لغة ألف5 تحسب الدوال المثلثية (جتا، جيب، ظل) وتطلب من المستخدم إدخال القيمة.
(الردود المحفوظة متاحة للاطّلاع فقط)
بالتأكيد، إليك 8 أسئلة متكررة مع إجابات مفصلة حول لغة البرمجة "ألف5"، مع التركيز على المواضيع الرئيسية في المصادر المقدمة:

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

2. كيف يمكن تشغيل برنامج مكتوب بلغة "ألف5"؟ وما هي أوامر الطرفية الأساسية؟
يمكن تشغيل برنامج مكتوب بلغة "ألف5" بطريقتين رئيسيتين:

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

alif -v: لعرض النسخة الحالية للغة.
alif -h: لعرض المساعدة.
3. ما هي أنواع البيانات الأساسية والعمليات المدعومة في "ألف5"؟
تدعم "ألف5" مجموعة متنوعة من أنواع البيانات والعمليات، بما في ذلك:

العمليات الحسابية: الجمع (+)، الطرح (-)، الضرب (*)، القسمة (\)، باقي القسمة (\\)، ناتج القسمة (\*)، القوة (^)، والجذر (\^). كما تدعم أولوية العمليات باستخدام الأقواس ().

المقارنات: يساوي (==)، لا يساوي (!=)، أكبر من (>)، أصغر من (<)، أكبر من أو يساوي (>=)، وأصغر من أو يساوي (<=).

العمليات المنطقية: و (AND)، او (OR)، ليس (NOT).

الإسناد: إسناد القيم (=)، إسناد متعدد (س, ص = 9, 7)، والإسناد الرجعي (مثل +=, -=, *=، وغيرها).

النصوص: تدعم النصوص العادية والنصوص المنسقة (formatted strings) التي تسمح بتضمين تعبيرات بسيطة داخل الأقواس المتعرجة {}.

الهياكل البيانية:

المصفوفات (Lists): يمكن تعريفها باستخدام الأقواس المعقوفة [] وتدعم عمليات مثل الإضافة (.اضف)، المسح (.امسح)، والإدراج (.ادرج)، بالإضافة إلى الوصول إلى العناصر باستخدام الفهرسة. تدعم أيضاً المصفوفات الضمنية (list comprehensions) لإنشاء مصفوفات بناءً على حلقات تكرار.
المترابطات (Tuples): تُعرف باستخدام الأقواس () وتسمح بالتكرار عبر القيم.
الفهارس (Dictionaries): تُعرف باستخدام الأقواس المتعرجة {} وتخزن البيانات على شكل أزواج مفتاح-قيمة. يمكن استرجاع المفاتيح باستخدام .مفاتيح() والتكرار يكون عبر المفاتيح.
4. كيف تعمل آليات الاستيراد والنطاق في "ألف5"؟
الاستيراد: تسمح "ألف5" باستيراد الملفات ذات اللاحقة .aliflib، سواء كانت ملفات فردية أو جزءًا من حزم (مجلدات تحتوي على ملفات _تهيئة_.aliflib). عند استيراد مكتبة للمرة الأولى، يتم تنفيذها، ولكن عند إعادة استيرادها، لا يتم تنفيذها مرة أخرى. يمكن الاستيراد بطرق مختلفة:

استورد اسم_المكتبة
من اسم_المكتبة استورد اسم_العنصر
استيراد من حزم فرعية مثل استورد مكتبة.فرعية.ملف_فرعي.
النطاق (Scope): تستخدم الكلمة المفتاحية عام (global) لجعل المتغيرات عامة داخل نطاق الدالة، مما يتيح التعديل عليها من داخل الدالة. يجب استدعاء الدالة لكي يصبح المتغير عاماً داخلها.

5. ما هي هياكل التحكم الرئيسية (الحلقات والشروط) في "ألف5"؟
حالة "اذا" (If-Else If-Else): تُستخدم لتنفيذ كتل من الشفرة بناءً على شروط معينة. تتضمن اذا (if)، اواذا (else if)، ووالا (else).

س = 6

اذا س > 9:

اطبع("س أكبر من 9")

اواذا س == 9:

اطبع("س تساوي 9")

والا:

اطبع("س ليست اكبر من 9 ولا تساويها")

حالة "لاجل" (For Loop): تستخدم للتكرار عبر مجموعة من القيم أو نطاق محدد. يمكن استخدام مدى() لإنشاء تسلسل من الأرقام.

لاجل ب في مدى(10):

اطبع(ب) # يطبع من 0 إلى 9

لاجل ب في (2,100,20):

اطبع(ب) # يطبع 2، 22، 42، 62، 82

لاجل ب في ("سلام", 1 , خطأ):

اطبع(ب) # يطبع القيم في المترابطة

حالة "بينما" (While Loop): تستخدم لتكرار كتلة من الشفرة طالما أن الشرط المحدد صحيح. تدعم الكلمات المفتاحية استمر (continue) للانتقال إلى التكرار التالي وتوقف (break) للخروج من الحلقة.

س = 1

بينما س < 10:

اذا س == 4:

س += 3

استمر

اواذا س == 9:

توقف

اطبع(س)

س += 1

6. كيف يتم التعامل مع الأخطاء والاستثناءات في "ألف5"؟
تُستخدم حالة حاول (Try-Except-Else-Finally) للتعامل مع الأخطاء المحتملة في الشفرة:


#لغة_ألف #ألف #برمجة_بالعربي #برمج_بألف #ألف_كود_عربي #ألف_رمز #كود_ألف
#Aliflang #Alis_programming_language
#خليك_مبرمج_واع @Programmer_educated
👍1
حاول: تحتوي على الشفرة التي قد تتسبب في خطأ.
خلل (Except): يتم تنفيذها إذا حدث خطأ في كتلة حاول.
وإلا (Else): يتم تنفيذها إذا لم يحدث أي خطأ في كتلة حاول.
نهاية (Finally): يتم تنفيذها دائماً، بغض النظر عما إذا كان هناك خطأ أم لا.
ملاحظة هامة: محدد الخطأ في "ألف5" غير مكتمل، وقد لا يتم تحديد موقع الخطأ بدقة أو قد يؤدي إلى خروج البرنامج دون معرفة السبب في بعض الحالات.

7. كيف يتم تعريف الدوال والأصناف والوراثة في "ألف5"؟
تعريف دالة: تستخدم الكلمة المفتاحية دالة لتعريف الدوال. يمكن للدوال قبول معاملات ذات قيم افتراضية وإرجاع قيم باستخدام ارجع.

دالة السرعة(المسافة, الزمن = 1):

ارجع المسافة \ الزمن

تعريف صنف (Class Definition): تستخدم الكلمة المفتاحية صنف لتعريف الأصناف. يتم تهيئة الصنف باستخدام دالة خاصة تسمى _تهيئة_ (constructor).

صنف مخروط_علوي:

دالة _تهيئة_(هذا, نق = 1, ع = 1):

هذا.نق_القاعدة = نق

هذا.الارتفاع = ع

الوراثة في الأصناف (Class Inheritance): تتم الوراثة عن طريق تمرير اسم الصنف الموروث ضمن قوسين بجانب اسم الصنف الوارث (مثال: صنف شخص(انسان):). يتم تهيئة الصنف الموروث من داخل الصنف الوارث باستخدام اصل()._تهيئة_(معاملات). في حال الوراثة المتعددة، يتم تهيئة كل صنف موروث باسمه بدلاً من اصل().

صنف انسان:

دالة _تهيئة_(هذا, عمر):

هذا.العمر = عمر

صنف شخص(انسان):

دالة _تهيئة_(هذا, عمر, طول):

اصل()._تهيئة_(عمر)

هذا.الطول = طول

8. ما هي القواعد التي تحكم بناء وتفسير شفرة "ألف5"؟
تعتمد قواعد مطابقة "ألف5 نـ5.0" على خليط من EBNF (Extended Backus-Naur Form) و PEG (Parsing Expression Grammar). هذه القواعد تحدد كيفية هيكلة اللغة وتفسيرها بواسطة المُطابِق (parser). بعض الجوانب الرئيسية لهذه القواعد تشمل:

تنسيق القواعد: اسم_الدالة: تعبير أو اسم_الدالة[النوع_المرجع]: تعبير (لتحديد النوع المرجع).
عوامل المطابقة:س ص: مطابقة متتالية.
س | ص: مطابقة بديلة (الأول الذي ينجح ينهي الدالة).
(س): تجميع.
[س] أو س؟: مطابقة اختيارية.
س*: صفر أو أكثر من المطابقات.
س+: واحد أو أكثر من المطابقات.
&س: نظرة أمامية إيجابية (يتابع المطابقة إذا نجح س دون استهلاكه).
!س: نظرة أمامية سلبية (يتابع المطابقة إذا لم ينجح س دون استهلاكه).
&&س: مطابقة فورية، تظهر خطأ إذا فشلت (لا تتراجع).
القواعد العامة: النصوص المحاطة بعلامات تنصيص "نص" تعتبر كلمات مفتاحية. الكلمات العريضة تعتبر كلمات محجوزة. يجب الالتزام بترتيب الحالات البديلة.
التعامل مع أخطاء النسق: تستخدم أسماء الدوال التي تبدأ بـ invalid_ لأخطاء النسق، ويتم استخدامها فقط في المحاولة الثانية للمطابق إذا فشلت المحاولة الأولى


#لغة_ألف #ألف #برمجة_بالعربي #برمج_بألف #ألف_كود_عربي #ألف_رمز #كود_ألف
#Aliflang #Alis_programming_language
#خليك_مبرمج_واع @Programmer_educated
👍1
دليل دراسة شامل للغة ألف5
نظرة عامة على لغة ألف5
لغة ألف5 هي لغة برمجة توفر طريقتين لتشغيل البرامج: إما عبر سطر الأوامر لتنفيذ الشفرة بشكل فوري (غير متاح حاليًا)، أو بتمرير اسم ملف بامتداد .alif لتنفيذ الشفرة الموجودة فيه. تدعم اللغة مجموعة واسعة من العمليات الأساسية والميزات المتقدمة، مثل العمليات الحسابية، المنطقية، المقارنة، والتعليقات. كما توفر آليات للتحكم في تدفق البرنامج مثل حالات إذا و لاجل و بينما و حاول. تدعم ألف5 أنواع بيانات متنوعة مثل النصوص، المصفوفات، المترابطات، والفهارس، بالإضافة إلى الدوال الضمنية وإدارة الذاكرة التلقائية. تتميز اللغة أيضًا بإمكانيات الاستيراد من الملفات والحزم، وتعريف الدوال والأصناف، والوراثة، وتحويل الأنواع.

المفاهيم الأساسية
تشغيل البرامج
التنفيذ الفوري: تشغيل alif في الطرفية واستقبال الشفرة فورياً (غير متاح حاليًا).
تنفيذ الملف: تشغيل alif متبوعًا باسم الملف (مثال: alif test.alif).
أوامر الطرفية
alif -v: لعرض النسخة الحالية من اللغة.
alif -h: لعرض المساعدة.
بناء الجملة (Syntax)
التعليقات: تبدأ بالرمز #. يمكن أن تكون في سطر منفصل أو بعد نهاية تعليمة.
حالات متعددة في سطر واحد: يتم فصل التعليمات بفاصلة منقوطة (;).
أنواع البيانات الأساسية
النصوص:نص عادي: يُحدد بعلامتي اقتباس مزدوجتين (مثال: "هذا نص عادي").
نص منسق (Formatted String): يُحدد بالحرف م قبل علامتي الاقتباس، ويسمح بتمرير عمليات بسيطة داخل أقواس متعرجة {} (مثال: م"نتيجة {7 + 9}").
المصفوفات (Lists): تُحدد بأقواس مربعة []. تدعم الإضافة (.اضف())، الحذف (.امسح())، الإدراج (.ادرج())، والوصول للعناصر بواسطة الفهرس ([ ]).
المصفوفة الضمنية: إنشاء مصفوفة باستخدام حلقة تكرار (مثال: س = [9 لاجل _ في مدى(9)]).
المترابطات (Tuples): تُحدد بأقواس عادية (). يتم التكرار خلالها عبر القيم.
الفهارس (Dictionaries/Maps): تُحدد بأقواس متعرجة {} مع أزواج مفتاح-قيمة. تدعم الحصول على المفاتيح (.مفاتيح()). يتم التكرار خلالها عبر المفاتيح.
القيم المنطقية: صح (True) و خطا (False).
العدد: يمثل الأرقام الصحيحة والعشرية.
عدم: يمثل القيمة الخالية (None).
العمليات
العمليات الحسابية:الجمع (+)، الطرح (-)، الضرب (*)، القسمة (\)، باقي القسمة (\\)، ناتج القسمة (\*)، القوة (^)، الجذر (\^).
الأولوية: تستخدم الأقواس () لتحديد أولوية العمليات.
المقارنة:يساوي (==)، لا يساوي (!=)، أكبر من (>)، أصغر من (<)، أكبر من أو يساوي (>=)، أصغر من أو يساوي (<=).
مقارنة خاصة (In/Not In): التحقق من وجود عنصر في مصفوفة (مثال: 7 في [3, 2, 9]).
العمليات المنطقية:و (AND)، او (OR)، ليس (NOT).
الإسناد (Assignment):إسناد قيمة لمتغير (مثال: س = 9).
إسناد متعدد (مثال: س, ص = 9, 7).
إسناد رجعي (Compound Assignment): عمليات مثل +=، -=، *=، \=, ^=, \*=, \\=.
إسناد شرطي (Ternary Assignment): إسناد قيمة بناءً على شرط (مثال: س = 9 اذا 6 == 6 والا 7).
الحذف (Deletion): حذف متغير (مثال: احذف س).
الدوال الضمنية (Built-in Functions)
ادخل("نص هنا: "): لأخذ مدخل من المستخدم.
اطبع("نص هنا او متغير"): لطباعة النصوص أو قيم المتغيرات.
اقصى(2, 9): لإرجاع القيمة الأكبر.
ادنى(3, 7): لإرجاع القيمة الأصغر.
طول(س): لإرجاع طول مصفوفة أو مترابطة أو فهرس.
المكتبات الضمنية (Built-in Libraries)
الوقت (Time):الوقت.الوقت(): للحصول على الوقت الحالي بالثواني.
الوقت.غفوة(9): لإيقاف التنفيذ مؤقتًا لعدد محدد من الثواني.
الرياضيات (Math):الرياضيات.جيب(30): لحساب جيب الزاوية.
الرياضيات.تجيب(60): لحساب تجيب الزاوية.
الرياضيات.ظل(90): لحساب ظل الزاوية (النتيجة بالراديان).
التحكم في تدفق البرنامج
حالة "اذا" (If Statement): لتنفيذ كتل شفرة بناءً على شروط. تدعم اواذا (elif) و والا (else).
حالة "لاجل" (For Loop): للتكرار عبر مدى من الأرقام أو عبر عناصر مصفوفة/مترابطة.
مدى(نهاية): يبدأ من 0 إلى نهاية-1.
مدى(بداية، نهاية، خطوة): يحدد البداية والنهاية وخطوة التزايد.
التكرار عبر القيم في المترابطات.
حالة "بينما" (While Loop): لتكرار كتلة شفرة طالما أن الشرط صحيح.
استمر (continue): يتخطى ما تبقى من التكرار الحالي وينتقل إلى التكرار التالي.
توقف (break): يوقف التكرار ويخرج من الحلقة.
حالة "حاول" (Try-Except/Finally): لمعالجة الأخطاء.
حاول: الكتلة التي قد تحتوي على خطأ.
خلل: الكتلة التي يتم تنفيذها في حال حدوث خطأ (استثناء).
وإلا: (اختياري) الكتلة التي يتم تنفيذها إذا لم يحدث أي خطأ.
نهاية: (اختياري) الكتلة التي يتم تنفيذها دائمًا، بغض النظر عما إذا كان هناك خطأ أم لا.


#لغة_ألف #ألف #برمجة_بالعربي #برمج_بألف #ألف_كود_عربي #ألف_رمز #كود_ألف
#Aliflang #Alis_programming_language
#خليك_مبرمج_واع @Programmer_educated
👍1
الدوال المعرفة من قبل المستخدم
تعريف الدالة: يُستخدم الكلمة المفتاحية دالة. يمكن للدوال أن تأخذ معاملات بقيم افتراضية (مثال: دالة السرعة(المسافة, الزمن = 1):).
إرجاع قيمة: تُستخدم الكلمة المفتاحية ارجع لإرجاع قيمة من الدالة.
النطاق (Scope):عام: تُستخدم لجعل المتغيرات عامة ضمن نطاق الدالة.
المتغير العام لن يصبح عامًا إلا عند استدعاء الدالة.
الأصناف والوراثة (Classes and Inheritance)
تعريف الصنف: يُستخدم الكلمة المفتاحية صنف.
التهيئة (_تهيئة_): دالة خاصة تُستخدم لتهيئة كائن الصنف. تأخذ المعامل هذا (self) كأول معامل.
تمرير صنف ككائن: يمكن تمرير كائن من صنف كمعامل إلى صنف آخر.
الوراثة:تتم الوراثة بتمرير اسم الصنف الموروث بين قوسين بعد اسم الصنف الوارث (مثال: صنف شخص(انسان):).
تهيئة الصنف الموروث: تُستخدم اصل()._تهيئة_(معاملات) لاستدعاء دالة التهيئة للصنف الأب.
وراثة متعددة: في حال وراثة أكثر من صنف، يتم تمرير أسمائهم مفصولة بفاصلة (موروث1, موروث2)، ويتم تهيئتهم باستخدام موروث1._تهيئة_(هذا, معاملات).
الاستيراد (Importing)
استيراد ملف: استورد اسم_الملف (اللاحقة .aliflib). يتم تنفيذ المكتبة عند الاستيراد الأول فقط.
استيراد عناصر محددة: من اسم_الملف استورد اسم_العنصر.
الاستيراد من الحزم (Packages): يتم تنظيم الحزم في مجلدات تحتوي على ملف _تهيئة_.aliflib.
مثال: استورد مكتبة.فرعية.ملف_فرعي.
من مكتبة.فرعية استورد ملف_فرعي.
من مكتبة.فرعية.ملف_فرعي استورد تم_الاستيراد.
استورد مكتبة.فرعية (يتطلب استيراد الدوال في ملف _تهيئة_ الخاص بالمجلد الفرعي).
تحويل النوع (Type Conversion)
صحيح("1"): تحويل إلى عدد صحيح.
عشري("0.5"): تحويل إلى عدد عشري.
مصفوفة(فهرس.مفاتيح()): تحويل مفاتيح فهرس إلى مصفوفة.
عشري("لانهائي"): يرجع قيمة عدد لانهائي موجب.
عشري("-لانهائي"): يرجع قيمة عدد لانهائي سالب.
ملاحظات عامة حول اللغة
إدارة الذاكرة: تلقائية.
محدد الخطأ: قد يكون غير مكتمل، وقد يؤدي إلى خروج البرنامج دون معرفة السبب الدقيق. يفضل تجنب معالجة كميات ضخمة من البيانات أو الحلقات اللانهائية.
قواعد مطابقة ألف نـ5.0 (Parsing Rules)
نسق القواعد
خليط من EBNF و PEG:EBNF (Extended Backus-Naur Form): تدوين خاص بقواعد لغات الحاسب.
PEG (Parsing Expression Grammar): شكل من أشكال نسق القواعد.
تنسيق القواعد العامة
اسم_الدالة: تعبير: تعريف قاعدة.
اسم_الدالة[النوع_المرجع]: تعبير: تحديد النوع المرجع (اختياري)، إذا حذف يرجع void* في C++ و أينوع في ألف.
س ص: مطابقة س ثم ص.
س | ص: مطابقة س أو ص، أول مطابقة تنهي الدالة.
(س): مطابقة المجموعة س.
[س] أو س؟: مطابقة س اختيارية.
س*: عدم مطابقة س، أو مطابقتها مرة واحدة أو أكثر.
س+: مطابقة س مرة واحدة أو أكثر.
س.ص+: مطابقة ص مرة أو أكثر، مفصولة بـ س. الفاصل س لا يُضمن في شجرة المطابق. تعادل ((س ص)*).
&س: (Lookahead) بدون استهلاك س، يتابع المطابقة إذا نجحت مطابقة س.
!س: (Negative Lookahead) بدون استهلاك س، يتابع المطابقة إذا نجح عدم مطابقة س.
~: (Cut) يلتزم بالمطابق الحالي حتى لو فشلت عملية المطابقة.
&&س: (Atomic Match) مطابقة فورية لـ س، المطابق لا يتراجع، ويظهر خطأ_نسق إذا تعذرت المطابقة.
قواعد عامة للمطابقة
الكلمات المفتاحية: النصوص المحاطة بعلامات تنصيص "نص".
الكلمات المحجوزة: الكلمات العريضة الخط.
ترتيب الحالات: يجب الالتزام بترتيب الحالات البديلة (مثال: "س | ص" يجب أن تبقى بهذا الترتيب).
دوال الأخطاء (invalid_):تُستخدم لتعريف أخطاء النسق.
لا تُستخدم في المحاولة الأولى للمطابق.
تُنفذ في محاولة ثانية فقط إذا فشلت المحاولة الأولى.
إذا فشلت المرحلة الثانية بسبب خطأ النسق، يتم استخدام موقع الفشل العام للمحاولة الأولى لتجنب الإبلاغ عن مواقع غير صحيحة.
ترتيب البدائل التي تتضمن دوال غير صالحة مهم.
حالات البداية
ملف: [حالات] نهاية: بداية تحليل الملف.
طرفية: حالة_سطر: بداية تحليل سطر في الطرفية.
الحالات الرئيسية
حالات: حالة+ (مجموعة من الحالات).
حالة: حالة_مركبة | حالات_بسيطة.
حالة_سطر: حالة_مركبة سطر | حالة_بسيطة | سطر | نهاية.
حالات_بسيطة: حالة_بسيطة !"؛" سطر | "؛".حالة_بسيطة+ ["؛"] سطر.
حالة_بسيطة: إسناد | نوع_بديل | تعبيرات_نجمة | حالة_ارجع | ... (قائمة طويلة من الحالات البسيطة).
حالة_مركبة: تعريف_دالة | حالة_اذا | تعريف_صنف | حالة_عند | حالة_لاجل | حالة_حاول | حالة_بينما | حالة_طابق.


#لغة_ألف #ألف #برمجة_بالعربي #برمج_بألف #ألف_كود_عربي #ألف_رمز #كود_ألف
#Aliflang #Alis_programming_language
#خليك_مبرمج_واع @Programmer_educated
سوف ارسلها هنا في المجموعة، لأنني لا اهدف من هذا المجموعة شيء.
لأنه موجودة فقط لأرشفت فيها ما أستطيع من معرفة فقط ولا أكثر. تحياتي
تفاصيل قواعد المطابقة
إسناد: يحدد قواعد الإسناد بأنواعها المختلفة، بما في ذلك الإسناد الرجعي (+=, -=, etc.).
استيراد: قواعد لـ استورد و من ... استورد.
التعريفات (دالة، صنف): قواعد لتعريف الدوال والأصناف، بما في ذلك الزخارف (@).
معاملات الدالة: قواعد معقدة لتحديد المعاملات الاختيارية، ذات القيم الافتراضية، والمعاملات النجمية (مثل *args, **kwargs).
الحالات الشرطية والحلقات: اذا، بينما، لاجل، حاول، طابق، مع تفاصيل الهياكل الداخلية.
الأنماط (Patterns): قواعد مطابقة الأنماط المستخدمة في حالة_طابق، تشمل الأنماط الحرفية، الالتقاط، الشاملة، القيم، المجموعات، المتسلسلة، الفهارس، والأصناف.
التعبيرات (Expressions): قواعد لمطابقة أنواع مختلفة من التعبيرات، بما في ذلك التعبيرات الشرطية (اذا...والا)، التعبيرات المولدة (ولد من)، وتعبيرات النجمة (*).
عمليات المقارنة والمنطقية والرياضية: قواعد مفصلة لترتيب أسبقية العمليات (منطقية، مقارنة، بتية، رياضية).
العناصر الأولية (Primitives): قواعد مطابقة العناصر الأساسية مثل الأسماء، القيم المنطقية، الأرقام، النصوص، والمصفوفات/الفهارس/المترابطات.
النصوص (Strings): قواعد للنصوص العادية والنصوص التنفيذية (formatted strings).
الحاويات (Containers): قواعد لمطابقة المصفوفات، المترابطات، التشكيلات، والفهارس، بما في ذلك الأنواع الضمنية (comprehensions).
الوسيطات (Arguments): قواعد مطابقة الوسيطات في استدعاءات الدوال، بما في ذلك الوسيطات الموضعية والمفتاحية والنجمية.
أهداف الإسناد والحذف: قواعد لتحديد الأهداف التي يمكن الإسناد أو الحذف منها.
اختبار قصير: لغة ألف5
أجب عن الأسئلة التالية بإيجاز (2-3 جمل لكل إجابة).

ما هي الطريقتان الرئيسيتان لتشغيل برنامج مكتوب بلغة ألف5؟ وما هو أمر الطرفية المستخدم لكل طريقة؟
كيف يتم إضافة تعليقات في شفرة ألف5، وهل يمكن وضع عدة تعليمات في سطر واحد؟
اذكر ثلاثة من العمليات الحسابية المتوفرة في لغة ألف5، وكيف يمكن التحكم في أولويتها؟
ما هو الفرق بين النص العادي والنص المنسق في ألف5؟ وما هي الميزة الرئيسية للنص المنسق؟
اشرح كيفية عمل س.اضف(7) و س.امسح("سلام") عند التعامل مع المصفوفات في ألف5.
ما هو الغرض من دالة ادخل() ودالة اطبع() ضمن الدوال الضمنية في ألف5؟
ما هي الكلمة المفتاحية المستخدمة لتعريف دالة في ألف5؟ وكيف يمكن تحديد قيمة افتراضية لمعامل الدالة؟
اشرح باختصار مفهوم "النطاق" في لغة ألف5، وكيف تؤثر الكلمة المفتاحية عام على المتغيرات داخل الدالة؟
ما هو الغرض من حالة حاول في ألف5؟ وما هي الكتل الثلاثة (باستثناء وإلا) التي يمكن استخدامها معها؟
كيف تتم الوراثة بين الأصناف في ألف5؟ وما هي الطريقة الموصى بها لتهيئة الصنف الموروث داخل الصنف الوارث؟
مفتاح الإجابات: اختبار قصير
الطريقتان هما: تشغيل alif في الطرفية لتنفيذ الشفرة بشكل فوري (غير متاح حاليًا)، أو تمرير كلمة alif متبوعة باسم الملف (مثال: alif test.alif) لتنفيذ الشفرة المكتوبة في الملف.
تتم إضافة التعليقات في شفرة ألف5 باستخدام الرمز #. نعم، يمكن وضع عدة تعليمات في سطر واحد عن طريق فصلها بفاصلة منقوطة (;).
ثلاث عمليات حسابية متوفرة هي: الجمع (+)، الطرح (-)، والضرب (*). يمكن التحكم في أولويتها باستخدام الأقواس ().
النص العادي يُحدد بعلامتي اقتباس مزدوجتين فقط، بينما النص المنسق يُحدد بالحرف م قبل علامتي الاقتباس. الميزة الرئيسية للنص المنسق هي إمكانية تمرير وعمليات حسابية بسيطة ضمن أقواس متعرجة {} داخل النص.
عند التعامل مع المصفوفات س.اضف(7) تقوم بإضافة العدد 7 إلى نهاية المصفوفة س. بينما س.امسح("سلام") تقوم بمسح أو حذف العنصر "سلام" من المصفوفة.
دالة ادخل() تُستخدم لأخذ مدخل من المستخدم، بينما دالة اطبع() تُستخدم لطباعة النصوص أو قيم المتغيرات على الشاشة.
الكلمة المفتاحية المستخدمة لتعريف دالة في ألف5 هي دالة. يمكن تحديد قيمة افتراضية لمعامل الدالة بوضع علامة = متبوعة بالقيمة بعد اسم المعامل في تعريف الدالة، مثل دالة السرعة(المسافة, الزمن = 1):.
النطاق في ألف5 يشير إلى المنطقة التي يكون فيها المتغير مرئيًا ويمكن الوصول إليه. الكلمة المفتاحية عام تُستخدم لجعل المتغير عامًا ضمن نطاق الدالة، ولكن المتغير لن يصبح عامًا فعليًا إلا عند استدعاء الدالة.
الغرض من حالة حاول هو معالجة الأخطاء التي قد تحدث أثناء تنفيذ جزء من الشفرة. الكتل الثلاث التي يمكن استخدامها معها هي حاول (try)، خلل (except)، و نهاية (finally).
تتم الوراثة بين الأصناف في ألف5 عن طريق تمرير اسم الصنف الموروث بين قوسين بعد اسم الصنف الوارث (مثال: صنف شخص(انسان):). الطريقة الموصى بها لتهيئة الصنف الموروث هي استخدام اصل()._تهيئة_(معاملات) داخل دالة التهيئة للصنف الوارث.
مسرد المصطلحات الأساسية (Glossary)
ألف5 (Alif5): لغة برمجة عربية تتميز ببساطة بناء الجملة وميزات برمجية متقدمة.
الطرفية (Terminal): واجهة سطر الأوامر التي يمكن من خلالها تشغيل برامج ألف5.
alif -v: أمر طرفية لعرض رقم نسخة لغة ألف5 المثبتة.
alif -h: أمر طرفية لعرض تعليمات المساعدة حول لغة ألف5.
التعليقات (#): نصوص في الشفرة يتجاهلها المترجم، تستخدم لتوضيح الغرض من الشفرة.
النص العادي (Normal String): سلسلة من الحروف محاطة بعلامتي اقتباس مزدوجتين، تُعالج كنص ثابت.
النص المنسق (Formatted String): سلسلة من الحروف مسبوقة بالحرف م تسمح بتضمين تعبيرات ديناميكية داخل أقواس متعرجة {}.
المصفوفة (List): مجموعة مرتبة ومتغيرة من العناصر، محاطة بأقواس مربعة [].
المصفوفة الضمنية (List Comprehension): طريقة مختصرة لإنشاء مصفوفة جديدة بناءً على مصفوفة موجودة أو تكرار.
المترابطة (Tuple): مجموعة مرتبة وغير متغيرة من العناصر، محاطة بأقواس عادية ().
الفهرس (Dictionary/Map): مجموعة غير مرتبة من أزواج المفتاح-القيمة، محاطة بأقواس متعرجة {}.
صح (True): قيمة منطقية تمثل الصدق.
خطا (False): قيمة منطقية تمثل الكذب.
عدم (None): قيمة خاصة تمثل غياب القيمة أو الكائن.
العمليات الحسابية (Arithmetic Operations): مثل الجمع (+)، الطرح (-)، الضرب (*)، والقسمة (\).
العمليات المنطقية (Logical Operations): مثل و (AND)، او (OR)، ليس (NOT)، تستخدم للتعامل مع القيم المنطقية.
المقارنة (Comparison): مثل == (يساوي)، != (لا يساوي)، > (أكبر من)، تستخدم لمقارنة القيم.
الإسناد (Assignment): عملية تعيين قيمة لمتغير، مثل س = 9.
إسناد رجعي (Compound Assignment): اختصارات لعمليات حسابية وإسناد في نفس الوقت، مثل += و -=.
إسناد شرطي (Ternary Assignment): تعيين قيمة لمتغير بناءً على تحقق شرط معين، على شكل س = قيمة_1 اذا شرط والا قيمة_2.
احذف (Delete): كلمة مفتاحية تُستخدم لحذف متغير أو عنصر من حاوية.
الدوال الضمنية (Built-in Functions): دوال مُضمّنة في اللغة نفسها، مثل ادخل() و اطبع().
المكتبات الضمنية (Built-in Libraries): مجموعات من الدوال والوحدات المدمجة مع اللغة، مثل الوقت و الرياضيات.
اذا (If): كلمة مفتاحية لبدء كتلة شرطية يتم تنفيذها إذا كان الشرط صحيحًا.
اواذا (Elif): اختصار لـ "وإلا إذا"، تستخدم لتحديد شروط إضافية بعد اذا.
والا (Else): كلمة مفتاحية تحدد كتلة شفرة يتم تنفيذها إذا لم يتحقق أي من الشروط السابقة في اذا/اواذا.
لاجل (For): كلمة مفتاحية لبدء حلقة تكرارية تقوم بالتكرار عبر عناصر متسلسلة أو مدى محدد.
مدى (Range): دالة تُستخدم لتوليد تسلسل من الأرقام في حلقات لاجل.
بينما (While): كلمة مفتاحية لبدء حلقة تكرارية تستمر في التنفيذ طالما أن الشرط صحيح.
استمر (Continue): كلمة مفتاحية تُستخدم لتخطي التكرار الحالي في حلقة والانتقال إلى التكرار التالي.
توقف (Break): كلمة مفتاحية تُستخدم لإنهاء حلقة تكرارية والخروج منها بالكامل.
حاول (Try): كلمة مفتاحية لبدء كتلة شفرة محتملة الأخطاء.
خلل (Except): كلمة مفتاحية تُستخدم لتحديد كتلة شفرة يتم تنفيذها عند حدوث خطأ معين داخل كتلة حاول.
نهاية (Finally): كلمة مفتاحية تحدد كتلة شفرة يتم تنفيذها دائمًا، بغض النظر عما إذا كان هناك خطأ أم لا.
دالة (Function): كلمة مفتاحية تُستخدم لتعريف دالة مُعرفة من قبل المستخدم.
ارجع (Return): كلمة مفتاحية تُستخدم لإرجاع قيمة من دالة.
النطاق (Scope): المنطقة التي يمكن فيها الوصول إلى متغير أو دالة.
عام (Global): كلمة مفتاحية تُستخدم للإشارة إلى أن المتغير داخل دالة يشير إلى متغير عام خارج الدالة.
صنف (Class): كلمة مفتاحية تُستخدم لتعريف صنف (قالب لإنشاء الكائنات).
_تهيئة_ (Initializer): دالة خاصة في الصنف تُستخدم لتهيئة الكائن عند إنشائه (مثل Constructor).

#لغة_ألف #ألف #برمجة_بالعربي #برمج_بألف #ألف_كود_عربي #ألف_رمز #كود_ألف
#Aliflang #Alis_programming_language
#خليك_مبرمج_واع @Programmer_educated
هذا (Self): المعامل الأول في دوال الصنف، يشير إلى الكائن الحالي.
الوراثة (Inheritance): آلية تسمح لـصنف جديد (الوارث) باكتساب الخصائص والسلوكيات من صنف موجود (الموروث).
اصل() (Super): دالة تُستخدم لاستدعاء دوال الصنف الأب في سياق الوراثة.
استورد (Import): كلمة مفتاحية تُستخدم لاستيراد وحدات أو حزم برمجية أخرى.
الحزم (Packages): طريقة لتنظيم الوحدات البرمجية في مجلدات هرمية.
_تهيئة_.aliflib: ملف خاص في مجلد الحزمة يُستخدم لتهيئة الحزمة عند استيرادها.
تحويل النوع (Type Conversion): عملية تغيير نوع بيانات قيمة من نوع إلى آخر (مثال: صحيح("1")).
EBNF (Extended Backus-Naur Form): تدوين وصفي يستخدم لتمثيل قواعد بناء جملة لغات الحاسوب.
PEG (Parsing Expression Grammar): شكل من أشكال قواعد التحليل النحوي، يتميز بالغموض الصفري والتراجع المحدود.
&س (Lookahead): عامل في قواعد المطابقة يتحقق من وجود نمط س دون استهلاكه.
!س (Negative Lookahead): عامل في قواعد المطابقة يتحقق من عدم وجود نمط س دون استهلاكه.
~ (Cut): عامل في قواعد المطابقة يمنع التراجع إلى البدائل السابقة إذا نجحت المطابقة حتى هذه النقطة.
&&س (Atomic Match): مطابقة فورية لـ س حيث لا يتراجع المحلل، ويؤدي الفشل إلى خطأ نحوي.

#لغة_ألف #ألف #برمجة_بالعربي #برمج_بألف #ألف_كود_عربي #ألف_رمز #كود_ألف
#Aliflang #Alis_programming_language
#خليك_مبرمج_واع @Programmer_educated
عمل كود يقوم بعمل ملفات txt وكتابة شيء داخلها؟

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

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

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

#لغة_ألف #ألف #برمجة_بالعربي #برمج_بألف #ألف_كود_عربي #ألف_رمز #كود_ألف
#Aliflang #Alis_programming_language
#خليك_مبرمج_واع @Programmer_educated
Forwarded from محمد ع ح 📖
نصيحة إضافية للممارسة:

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


لا تستعجل، الممارسة هي مفتاح التعلم. كل سطر تكتبه وكل خطأ تصلحه يقوي فهمك للغة.
Forwarded from محمد ع ح 📖
image.png
11.9 KB
اطبع قلب ت1.alif
Forwarded from محمد ع ح 📖
😄😄😁😁😁
خريطة ذهنية لإرشادات اللغة ألف ٥
- قد لا تكون كاملة
https://drive.google.com/file/d/1Jx0HUIoBIzxphNSvbyE0eeM3Y1npX7Zv/view?usp=drivesdk
الوحدة الأولى:
... قريبا