• For Each In Next [ ]
  • N. G. Mardanova




    Download 3,88 Mb.
    bet52/101
    Sana24.01.2024
    Hajmi3,88 Mb.
    #145014
    1   ...   48   49   50   51   52   53   54   55   ...   101
    Bog'liq
    Access 2 лотин (2)

    For < sanovchi> = g‘ichQiymat>
    To
    [Step <oshirma>]
    Next []

    Keltirilgan ta’rifga tushuntirgilar.



    • -musbat yoki manfiy son bo‘lishi mumkin. Agar manfiy qiymat ishlatilsa, oxirgi qiymat boshlang‘ich qiymatdan kichik yoki teng bo‘lishi kerak, sikl tanasi juda bo‘lmasa 1 marta bajarilishi uchun.

    • For...... Next sikli turgandan so‘ng sanovchi chifatida ishlatilgan o‘zgaruvchi agar qo‘shilma musbat bo‘lsa albatta oxirgi qiymatdan katta qiymat oladi va qo‘shimcha manfiy bo‘lsa oxirgi kichik qiymat qabul qiladi.

    • Agar boshlang‘ich va oxirgi qiymatlar teng bo‘lsa sikl tanasi faqat bir marta bajariladi.

    VBAda ko‘p ishlatiluvchi For...... Next siklining yana bir turi bir jinsli ob’уektlar massivi yoki oilasini tashkil qiluvchi ob’уektlarni qayta ishlashda ko‘p ishlatiladi. Siklning bu turida sanovchi bo‘lmaydi sikl tanasi ob’уektlar massivi yoki oilasi xar bir elementi uchun qo‘llanadi.
    Bu sikl sintaksisi :


    For Each In

    Next []

    bu yerda :


    -ob’уektlar oilasiga ilova sifatida ishlatiluvchi o‘zgaruvchi;
    -massiv yoki oila nomi;
    Shunday sikldan foydalanishga misol keltiramiz. Quyidagi protsedura joriy ochiq\ ma’lumotlar bazasi hamma jadvallari hamma maydonlari ro‘yxatini bosmaga chiqaradi:

    Public Sub EnumerateAllFields()


    Dim MyBase As Database
    Dim tdf As TableDef, fid As Field
    Set MyBase = CurrentDb()
    For Each tdf In MyBase. TableDefs
    Debug. Print "Таблица: " & tdf. Name
    For Each fid In tdf. Fields
    Debug. Print " Pole: " & fid. Name Next fid
    Next tdf
    Set MyBase = Nothing
    End Sub
    Dim operatorlarida My Base o‘zgaruvchini "DAO ma’lumotlar bazasi" sifatida e’lon qilgan edik tdf va fid bo‘lsa -jadval va jadval maydoni sifatida. Set operatori My Base o‘zgaruvchisiga joriy ochiq ma’lumotlar bazasini tayinlaydi. Xar bir jadval ta’rifi uchun jadval nomi bosmaga chiqariladi, shundan so‘ng, xuddi shu turdagi ichki joylashgan sikl hamma maydonlari nomlarini bosmaga chiqaradi.
    Shunga o‘xshash For Each... Next sikl operatorini qayta ishlashga qo‘llashni ko‘rib chiqamiz. Bizda 1000 elementdan iborat(o‘lchovlari 10*10*10) sonli massiv mavjud bo‘lsin va biz bu massivni 0 dan 1 gacha tasodifiy sonlar bilan to‘ldirmoqchimiz. Agarda biz oddiy hisoblovchili For... Next sikllarini qo‘llasak, bu masalani yechish uchun 3 ta ichki joylashgan For... Next sikli yozishimiz kerak bo‘lar edi:

    Dim tArray{9, 9, 9) As Single


    Dim i%, j%, k%
    Randomize
    For i=0 To 9
    For j=0 To 9
    For k=0 To 9
    tArray(i, j, k) = Rnd()
    Next k
    Next j
    Next i

    Aslida bitta sikl yetarli agar hisoblovchili sikl o‘rniga For Each... Next siklidan foydalanilsa.


    Dim tArray(9, 9, 9) As Single
    Dim elem As Variant
    Randomize
    For Each elem In tArray
    elem = Rnd()
    Next
    Yana bir marta tarmoqlanish operatorlar yozuВидagi kabi, sikllar yozuВидa chekinmalardan foydalanishni maslaxat beramiz.


    Download 3,88 Mb.
    1   ...   48   49   50   51   52   53   54   55   ...   101




    Download 3,88 Mb.