الطول والترتيب
احسب المتتاليات ورتّبها
الطول والترتيب درس مجاني في Lua Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Lua Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Lua Academy 4 دروس في المجموع.
عامل الطول
يعيد العامل # عدد العناصر الموجودة في التسلسل.
في جدول نظيف يبدأ من 1 ويحتوي على ثلاثة عناصر، تكون قيمة #t هي 3. ويوجد العنصر الأخير عند الفهرس #t.
local list = {"a", "b", "c"}
print(#list)
print(list[#list])الطول في حلقة
استخدموا #t حدًا أعلى لحلقة for رقمية لزيارة كل فهرس.
بما أن التسلسلات تبدأ من 1، يكون النطاق 1, #t.
local nums = {10, 20, 30, 40}
for i = 1, #nums do
print(i, nums[i])
endالجداول الفارغة
يكون طول التسلسل الفارغ 0.
لذلك تُعدّ #t == 0 طريقة سريعة للتحقق مما إذا كانت القائمة تحتوي على عناصر.
local empty = {}
print(#empty)
if #empty == 0 then
print("list is empty")
endالطول بعد التغييرات
عند إضافة العناصر أو إزالتها باستخدام دوال table، يتحدث العامل # وفقًا لذلك.
تزيد الإضافة العدد، بينما تنقصه الإزالة.
local list = {"a", "b"}
table.insert(list, "c")
print(#list)
table.remove(list)
print(#list)الفجوات تفسد حساب الطول
يكون # موثوقًا فقط مع التسلسلات الخالية من الفجوات. فقد تجعل الفجوة النتيجة غير معرّفة.
التزموا باستخدام table.insert وtable.remove حتى يظل # موثوقًا.
local good = {1, 2, 3}
print(#good)
table.insert(good, 4)
print(#good)الفرز في المكان
تعيد table.sort(t) ترتيب التسلسل في مكانه، من الأصغر إلى الأكبر افتراضيًا.
فهي تغيّر الجدول الأصلي بدلًا من إعادة جدول جديد.
local nums = {3, 1, 2}
table.sort(nums)
print(nums[1], nums[2], nums[3])فرز السلاسل النصية
تُفرز السلاسل النصية أبجديًا افتراضيًا، مع المقارنة حرفًا بحرف.
بعد الفرز، يحتوي الفهرس 1 على أول عنصر في الترتيب.
local names = {"Cy", "Ann", "Bob"}
table.sort(names)
print(names[1], names[2], names[3])الترتيب التنازلي
مرروا دالة مقارنة للتحكم في الترتيب. ويؤدي إرجاع a > b إلى فرز العناصر من الأكبر إلى الأصغر.
تحدد الدالة ما إذا كان ينبغي أن يأتي a قبل b.
local nums = {3, 1, 4, 2}
table.sort(nums, function(a, b)
return a > b
end)
print(nums[1], nums[2], nums[3], nums[4])مقارنات مخصصة
تتيح لكم دوال المقارنة الفرز وفق أي قاعدة، مثل طول السلسلة النصية بدلًا من ترتيبها الأبجدي.
في المثال أدناه، تأتي الكلمات الأقصر أولًا.
local words = {"hello", "hi", "howdy"}
table.sort(words, function(a, b)
return #a < #b
end)
print(words[1], words[2], words[3])الطول مع الفرز
اجمعوا بين الأداتين: افرزوا قائمة، ثم اقرأوا طرفيها بحسب الموضع.
بعد الفرز التصاعدي، تكون القيمة الصغرى عند الفهرس 1، والقيمة الكبرى عند الفهرس #t.
local data = {7, 2, 9, 4}
table.sort(data)
print("min:", data[1])
print("max:", data[#data])الفرز ثم التكرار
من المسارات الشائعة: فرز التسلسل، ثم استعراضه باستخدام ipairs لطباعته بالترتيب.
يعيد الفرز ترتيب الجدول نفسه الذي يبدأ من 1، ولذلك يتبع التكرار الترتيب الجديد.
local scores = {50, 10, 30}
table.sort(scores)
for i, s in ipairs(scores) do
print(i, s)
endاختبار سريع
تذكروا ما الذي يعيده عامل الطول.
مراجعة
تعلمتم أن #t يعدّ العناصر في تسلسل خالٍ من الفجوات، وأن العنصر الأخير يوجد عند t[#t]، وأن table.sort يعيد الترتيب في المكان، تصاعديًا افتراضيًا أو باستخدام دالة مقارنة مخصصة.
وبالاقتران مع insert وremove وipairs، يمكنكم الآن إدارة تسلسلات Lua بثقة.
تعلم Lua مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 40
- الدروس
- 159
الأسئلة الشائعة
هل درس «الطول والترتيب» مجاني؟
نعم — نص درس «الطول والترتيب» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Lua Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Lua Academy 4 دروس في المجموع.
ماذا ستتعلم في «الطول والترتيب»؟
احسب المتتاليات ورتّبها تتمرن على Lua Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Lua Academy؟
لا تُشترط خبرة سابقة. Lua Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «الطول والترتيب»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Lua Academy هذا؟
نعم. كل درس في Lua Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.