الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

لو عندك مصفوفه من الارقام وعايز تعرف اقل رقم فيهم

مغلق
بدأه شريف عادل في 26 أكتوبر 2005 · 7 رد · 833 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

تفضل يا اخى المبرمج هذا الكود لو عندك ارقام كتيير وعايز تعرف الرقم الاقل فيهم يبقى اى رقم من ارقام المصفوفه هذا الكود يعمل لك ما تريد

جرب ولا تتردد

شريف،،،

;) ;) :D

Public Function GetLessNum(ByRef Matrex() As Double) As Double
On Error Resume Next
Dim Count1 As Double, Count2 As Double, Count3 As Long, Count4 As Long, Matre() As Double, CHEK(12) As Boolean, STR1 As String, STR2 As String
Count1 = LBound(Matrex)
Count2 = UBound(Matrex)
ReDim Matre(Count1 To Count2) As Double
For Count3 = Count1 To Count2
Matre(Count3) = Matrex(Count3)
Next
For Count3 = Count1 To Count2
If Matre(Count3) = 0 Then Matre(Count3) = Val(100000 * 10000)
Next
For Count3 = Count1 To Count2
If Matre(Count3) <= Matre(Count3 + Val(Count2 - Count3 - 12)) And _
Matre(Count3) <= Matre(Count3 + Val(Count2 - Count3 - 11)) And _
Matre(Count3) <= Matre(Count3 + Val(Count2 - Count3 - 10)) And _
Matre(Count3) <= Matre(Count3 + Val(Count2 - Count3 - 9)) And _
Matre(Count3) <= Matre(Count3 + Val(Count2 - Count3 - 8)) And _
Matre(Count3) <= Matre(Count3 + Val(Count2 - Count3 - 7)) And _
Matre(Count3) <= Matre(Count3 + Val(Count2 - Count3 - 6)) And _
Matre(Count3) <= Matre(Count3 + Val(Count2 - Count3 - 5)) And _
Matre(Count3) <= Matre(Count3 + Val(Count2 - Count3 - 4)) And _
Matre(Count3) <= Matre(Count3 + Val(Count2 - Count3 - 3)) And _
Matre(Count3) <= Matre(Count3 + Val(Count2 - Count3 - 2)) And _
Matre(Count3) <= Matre(Count3 + Val(Count2 - Count3 - 1)) And _
Matre(Count3) <= Matre(Count3 + Val(Count2 - Count3)) _
Then
CHEK(Count3) = True
Else
CHEK(Count3) = False
End If
Next
For Count3 = Count1 To Count2
If CHEK(Count3) = True Then
GetLessNum = Matrex(Count3)
Exit For
End If
Next
End Function

شريف،،،

;) ;) :rolleyes:

#2

مشكور يا غالي :)

يا ليت مثال على استخدامه

460.gif

#3

نفضل اخى المثال

dim M(10) as long
m(0)=1
m(1)=1
m(2)=1
m(3)=1
m(4)=1
m(5)=1
m(6)=1
m(7)=1
m(8)=1
m(9)=1
m(10)=1
lessnum=GetLessNum(m)
#4

مشكوووووووور وبالتوفيق

((رحلة العودة الى العالم الافتراضي قد بدأت))

#5

مشكووووور يأخى كود رائع

Never Give Up You Are Programmer

Being Genius Is The Step Before Madness

Artificial Intelligence Is No Match For Natural Stupidity

#6

سؤال للجميع الذين بدؤوا عملية "مشكور كود رائع", هل حاول أحدكم فهم ما يقوم به الكود, أو خلاص المهم ننسخ ونضع في المشروع ويشتغل صح "يا رب يا رب"؟

طيب حد فكر لو المصفوفة التي يتم العمل بها تحوي 1000 رقم حيصير ايه؟ حيصير انه لازم يتكرر الشرط 1000 مرة, يعني:

Matre(Count3) <= Matre(Count3 + Val(Count2 - Count3 - 12)) And _
Matre(Count3) <= Matre(Count3 + Val(Count2 - Count3 - 11)) And _
Matre(Count3) <= Matre(Count3 + Val(Count2 - Count3 - 10)) And _
Matre(Count3) <= Matre(Count3 + Val(Count2 - Count3 - 9)) And _
Matre(Count3) <= Matre(Count3 + Val(Count2 - Count3 - 8)) And _
Matre(Count3) <= Matre(Count3 + Val(Count2 - Count3 - 7)) And _
Matre(Count3) <= Matre(Count3 + Val(Count2 - Count3 - 6)) And _
Matre(Count3) <= Matre(Count3 + Val(Count2 - Count3 - 5)) And _
Matre(Count3) <= Matre(Count3 + Val(Count2 - Count3 - 4)) And _
Matre(Count3) <= Matre(Count3 + Val(Count2 - Count3 - 3)) And _
Matre(Count3) <= Matre(Count3 + Val(Count2 - Count3 - 2)) And _
Matre(Count3) <= Matre(Count3 + Val(Count2 - Count3 - 1)) And _
Matre(Count3) <= Matre(Count3 + Val(Count2 - Count3)) _
+
1000 مرة بشرط موافق لمقارنة الارقام

هل هذا ممكن؟

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

Dim i As Integer, j As Integer, var As Single, a(1000) As Single
For i = 1 To 1000
    For j = i + 1 To 1000
        If a(i) > a(j) Then
            var = a(i)
            a(i) = a(j)
            a(j) = var
        End If
    Next
Next

ان كنت لا اريد سوى اصغر رقم اقوم بتنفيذ الحلقة مرة واحدة فقط وانهي التنفيذ قبل Next التابعة للمصفوفة المرتبطة بـ i بان اجعل قيمة i > 1000 وبهذا يتم انهاء الحلقة مباشرة فاحصل على اصغر رقم ضمن جميع الارقام بعد دورة واحدة.

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#7

السلام عليكم

شكرا جزيلا يا شريف واهلا بعودتك للمنتدى (انت من فترة مش بنشوفك :D )

والف شكر للاخ Xacker على الاضافة المتميزة :D

Hany Saad Mostafa

ITI (Information Technology Institute) l

SD Dept.-Teaching Assistant

---

اسألكم الدعاء بظهر الغيب

#8

ألف ألف شكر على الكود الرائع

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…