|
N. G. Mardanova
|
bet | 52/101 | Sana | 24.01.2024 | Hajmi | 3,88 Mb. | | #145014 |
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.
|
| |