إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

كيفية حذف العناصر المتشابهة في مصفوفة ؟

تقليص
هذا الموضوع مغلق.
X
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • كيفية حذف العناصر المتشابهة في مصفوفة ؟

    السلام عليكم ورحمة الله وبركاته
    عندي مصفوفة تحتوي على الكثير من العناصر
    بعضها متشابه
    اريد ان احذف المكرر منها

    مثلا ايام الاسبوع
    Days = {"ee","ty","fd","ee","sd","gb","gh","re","gh","fd" ,"gh"}

    شكرا للاخوة على التواصل معناو المتابعة

  • #2
    السلام عليكم ورحمة الله وبركاته
    [html]items = {"ee","ty","fd","ee","sd","gb","gh","re","gh"," fd" ,"gh"}
    flags = {}
    t =""
    for i=1,table.getn(items) do
    if not flags[items[i]] then
    io.write(' ' .. items[i])
    flags[items[i]] = true
    t = t .. items[i]..","
    end
    end
    result = Dialog.Message("Notice",t);[/html]

    تعليق


    • #3
      أو
      [html]tblNames = {"ee","ty","fd","ee","sd","gb","gh","re","gh"," fd" ,"gh"}


      local sResult = ""
      local sNames = table.concat(tblNames,"%|%")
      for i = 1, #tblNames do
      local _,n = string.gsub(sNames,tblNames[i],"")
      local sline = string.format("%s ",tblNames[i],n)
      local _,d = string.gsub(sResult,sline,"")
      if (n > 1) then
      sResult = sResult .. sline.. "\r\n"
      end
      end
      Dialog.Message("Notice", sResult);
      [/html]

      تعليق


      • #4
        في الكود الثاني لاشارة المتراجحة > دور كبير في التحكم في عناصر الظهور

        غير فيها و لاحظ

        تعليق


        • #5
          المشاركة الأصلية بواسطة ثامر أبو بلقيس مشاهدة المشاركة
          السلام عليكم ورحمة الله وبركاته
          [html]items = {"ee","ty","fd","ee","sd","gb","gh","re","gh"," fd" ,"gh"}
          flags = {}
          t =""
          for i=1,table.getn(items) do
          if not flags[items[i]] then
          io.write(' ' .. Items[i])
          flags[items[i]] = true
          t = t .. Items[i]..","
          end
          end
          result = dialog.message("notice",t);[/html]
          السلام عليكم
          شكرا جزيلا على المود الجميل ساحاول ان افهمه جيدا
          -----------------
          و بدلك اكتملت المرحلة الاخيرة من حل التمرين في استراحة البلاي .......تمرين العمليات .......
          ساضع ملف تنفيدي ....ان كان فعلا طبعا ساضع الكود و الا فساظل احاول

          تعليق


          • #6
            لو كنت انت من قمت بملئ المصفوفة بواسطة كود
            فربما فاتك السؤال الصحيح هنا و هو :-
            " كيف يمكننى منع ادخال عنصر مكرر للمصفوفة من الاساس ؟؟"

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

            تعليق


            • #7
              حقيقة لا اعتقد ان يكون الامر مرهق للمعالج الا اذا كان العدد داخل المصفوفه كبير جدا .. وعملية ان تقوم بمسح المتكرر بعد ما تنتهي من ادخال كل العناصر او انك تمنع من الاساس ادخال العنصر المتكرر تحتاج نفس الامر هو البحث .. عموما جرب هذا الكود ممكن تستخلص منه ما يفيدك

              كود:
              if a == nil then
              
              a = {"1" , "2" , "3" , "4" , "5"}
              
              end
              
              
              enter = Dialog.Input("Enter Data", "Your answer:", "", MB_ICONQUESTION);
              
              found = false
              
              for x,y in pairs(a) do
              
              if enter == y then
              
              found = true
              
              end
              
              end
              
              
              if found == true then
              
              Dialog.Message("Notice", "العنصر موجود", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
              
              else
              
              Table.Insert(a, 1, enter);
              
              Dialog.Message("Notice", "تم", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
              
              end

              تعليق


              • #8
                فعلا ما تفضلت بذكره صحيح و فعلا الكود الذى تفضلت بطرحه لا يناسب سوى المصفوفات صغيرة الحجم
                و لا يصح استخدامه ابدا مع المصفوفات كبيرة الحجم

                تعليق


                • #9
                  المشاركة الأصلية بواسطة المـهاجر مشاهدة المشاركة
                  لو كنت انت من قمت بملئ المصفوفة بواسطة كود
                  فربما فاتك السؤال الصحيح هنا و هو :-
                  " كيف يمكننى منع ادخال عنصر مكرر للمصفوفة من الاساس ؟؟"

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

                  تعليق


                  • #10
                    المشاركة الأصلية بواسطة haitham.2012 مشاهدة المشاركة
                    حقيقة لا اعتقد ان يكون الامر مرهق للمعالج الا اذا كان العدد داخل المصفوفه كبير جدا .. وعملية ان تقوم بمسح المتكرر بعد ما تنتهي من ادخال كل العناصر او انك تمنع من الاساس ادخال العنصر المتكرر تحتاج نفس الامر هو البحث .. عموما جرب هذا الكود ممكن تستخلص منه ما يفيدك

                    كود:
                    if a == nil then
                    
                    a = {"1" , "2" , "3" , "4" , "5"}
                    
                    end
                    
                    
                    enter = dialog.input("enter data", "your answer:", "", mb_iconquestion);
                    
                    found = false
                    
                    for x,y in pairs(a) do
                    
                    if enter == y then
                    
                    found = true
                    
                    end
                    
                    end
                    
                    
                    if found == true then
                    
                    dialog.message("notice", "العنصر موجود", mb_ok, mb_iconinformation, mb_defbutton1);
                    
                    else
                    
                    table.insert(a, 1, enter);
                    
                    dialog.message("notice", "تم", mb_ok, mb_iconinformation, mb_defbutton1);
                    
                    end
                    شكرا استاذ هيثم على الكود بارك الله فيكم
                    نجعله مباشرة حيز الخدمة
                    ربي يحفظكم

                    تعليق


                    • #11
                      شكرا استاذ هيثم على الكود بارك الله فيكم
                      نجعله مباشرة حيز الخدمة
                      ربي يحفظكم

                      ربنا يكرمك اخي الكريم .. شكرا لك حبيبي

                      تعليق

                      مواضيع تهمك

                      تقليص

                      المنتدى: القسم العام نشرت بواسطة: Reem2Rabeh الوقت: 04-23-2025 الساعة 04:27 PM
                      المنتدى: ضبط وتوكيد الجودة نشرت بواسطة: HeaD Master الوقت: 04-15-2025 الساعة 09:30 AM
                      المنتدى: التصنيع والانتاج نشرت بواسطة: HeaD Master الوقت: 04-11-2025 الساعة 01:08 PM
                      المنتدى: القسم العام نشرت بواسطة: نوال الخطيب الوقت: 03-19-2025 الساعة 03:07 AM
                      المنتدى: الكمبيوتر والإنترنت نشرت بواسطة: عوض السوداني الوقت: 03-18-2025 الساعة 07:22 AM
                      يعمل...
                      X