مشغلي الدورة في VBA. دورات دورة VBA VBA للشرط

بناء جملة المشغل:

لعداد= بداية T.فيالنهاية[خطوة.خطوة]

المراجعين كتلة

التاليعداد

يشار هنا:

لل (إلزامي Keywordvb)؛

ل.قبل (إلزامي Keywordvb)؛

المراجعين كتلة- واحد أو أكثر من المشغلين يسمى هيئة دورة؛

عداد -متغير كامل يعتبر عدد الدورات المنجزة؛

بداية النهاية -القيم الأولية والنهاية للعداد؛

خطوة.خطوة (keywordvb)؛

خطوة -خطوة تغيير العداد. ربما سلبية؛ المعلمة اختيارية، حيث إذا كانت الخطوة 1، Canstep خطوةأدنى؛

التالي هو التالي (إلزامي Keywordvb، نهاية تسجيل مشغل الدورة).

قيمة مضادة (بداية، النهاية)ربما قد تكون الثوابت العددية أو المتغيرات المتغيرة أو من النوع الحقيقي أرقاما سلبية أو إيجابية. إلى جسم الدورة، مرة واحدة على الأقل يجب أن يكون البدء نهاية،اذا كان خطوة\u003e 0، و البدء ≥ نهاية،اذا كان خطوة< 0. بمجرد اتخاذ ذلك عداد>النهاية (اذا كان بداية< Конец), تنفيذ انتهاء الدورة. اذا كان ابدأ \u003d.النهاية،سيتم تنفيذ الدورة مرة واحدة؛

مثال 9.1. .حساب وظيفةY. = 2 – 1.5 سينكس. عند تغيير X في الزيادات 0.2 في النطاق.

جزء من البرنامج لحساب إخراج الحجة X والوظيفة:

ل x \u003d 0 إلى 2.4 الخطوة 0.2

Y \u003d 2 - 1.5 * SIN (X)

لفهم كيف تعمل هذه الدورة، نقدم برنامجا من دورة مماثلة تم إنشاؤها بواسطة المشغل أو العاملاذهب إلى.، التسميات، المشغلإذاثم..

M1: x \u003d x + 0.2

إذا كانت X.<= 2.4 Then

Y \u003d 2 - 1.5 * SIN (X)

سنقوم بتحليل عمل هذا البرنامج. أول حساب هو ynestard، كما لو كان يسقط من الدورة. تبدأ الدورة بعد أول تحويل ControlGotom1 إلى تسمية M1. في سلسلة مع ملصق M1، تتم زيادة الوسيطة X بخطوة 0.2 والتحقق فورا، لا تتجاوز القيمة الجديدة للقيمة النهائية 2.4. إذا لم يتجاوز ذلك، فإن حساب هذا X الجديد X. ثم يتم تنفيذ بيان البيان مرة أخرى - التحكم في النقل في السلسلة باستخدام تسمية M1. هذه التكرار (الدورات) تحسب الحساب، بمجرد تجاوز X 2.4.

الآن برنامج مع إذا دورة ... بعد ذلك.

ل x \u003d 0 إلى 2.4 الخطوة 0.2

يستبدل سطرين

M1: x \u003d x + 0.2

إذا كانت X.<= 2.4 Then

إنه اثنان من الأسطر الأخير من التعليمات البرمجية يتم تنفيذها في الدورة، لكننا لا نرى ذلك. ترميزهم على صف من CFOR ... يتم تشفير رمز CODSGOTO M1 بواسطة WordNext X (حرفيا: أول x). اتضح تصميم مدمج.

عند استخدام Nexto Colory، تعرف على كيفية استخدام عداد الدورة عند حل المهام المختلفة. لمعرفة كيفية استخدام العداد لحل المشكلة، فمن الضروري لتحليل إعداد المشكلة، ابحث عن أنماط تغيير بعض المعلمات المهمة.

مثال 9.2. . تقدير مبلغ عناصر السلسلة :.

جزء من البرنامج:

S \u003d 0 - مجموع الصف

ل I \u003d 1 إلى 16 'عداد أنا denomoter

S \u003d S + 1 / I 'تراكم المبلغ

طباعة "s \u003d"؛ نموذج الإخراج S

في كل مرة قيمة العداد، يقوم المفاتيح 1 / ISET بصياغة عناصر الصف، بدءا من 1.

مثال 9.3. . حساب مجموع العناصر
.

جزء من البرنامج:

S \u003d 0 - مجموع الصف

لأني \u003d 1 إلى 18 'عداد I - NELERATOR

S \u003d S + I / (I + 1) 'قاسم أكثر دفئا على 1

طباعة "s \u003d"؛ نموذج الإخراج S

مثال 9.4. . حساب المبلغ: 5 + 8 + 11 + ... + 32 + 35

جزء من البرنامج:

S \u003d 0 - مجموع الصف

لأني \u003d 5 إلى 35 خطوة 3 "نحصل على حسابي

التقدم مع القاسم 3

طباعة "s \u003d"؛ س.

مثال 9.5. حساب المبلغ الخاص ب X:

تحليل المهمة يدل على أن الشهادة في X يتغير من 1 إلى 10. في هذه الحالة، فإن البسط في المعامل في X أكبر من 1، والقاسم - عند 2. سيتم تشكيل قيمة القيمة باستخدام العداد I. ثم يمكنك إجراء مثل هذا البرنامج (شظية):

S \u003d 1 'S - مجموع الصف

لأني \u003d 1 إلى 10 'كمتر أغير الدرجة في X

S \u003d S + (-1) ^ i * (i + 1) * x ^ i / (i + 2)

طباعة "s \u003d"؛ س.

دوراتلالتالي استعمل من قبلأدخل، الإخراج وعلاج الأسلحة .

مثال 9.6. أدخل وإخراج قيم عناصر الصفيف في (ن.).

جزء من البرنامج:

'خفض مهمة قيمة المتغير N، _

دخلت في النموذج في حقل النص TXTN:

B (I) \u003d Inputbox ("أدخل العنصر B (" & I & ")"، _

"إدخال صفيف B (" & n & ")")

مطبعة ""؛ ب (ط)؛

دور صندوق الإدخال.() يعرض مربع حوار مع زر إغلاق، رسالة محددة، حقل الإدخال، أزرار نعم,إلغاءعنوان مجموعة (أو بدونه). إذا كان الرقم 12 هو حجم الصفيف، ثم في مثالنا، في المظهر الأول، ستنظر هذه النافذة في:

كما ترون، الرسالة أدخل العنصر في (1)يقترح إدخال قيمة العنصر الأول في مربع النص. ستظهر هذه النافذة 12 مرة، حيث يحتوي الصفيف على 12 عنصرا. هذا يتبع من رأس النموذج. تختلف مؤشر العنصر في (I) بدعوة من 1 إلى 12.

إذا كنت ترغب في إخراج قيم العناصر فقط من مجموعة الصفيف في (n)، فسيتألف جسم الدورة من مشغل واحد:

يؤدي عرض عناصر الصفيف لأداء بعض الإجراءات فوقها أيضا باستخدام المشغل من ... دورة التالية.

هنا أمثلة معالجة المصفوفات ذات الأبعاد.

مثال 9.7. . تحديد الحد الأقصى للعنصر في الصفيف (م.).

من خلال استبعاد إدخال البيانات الأولية وإخراج النتائج، صف بإيجاز الخوارزمية:

    سوف نعلن متغير VAX، حيث نأتي قيمة العنصر الأول من الصفيف، والمسيار، الذي تم تعيينه إلى 1 - فهرس العنصر الأول من الصفيف.

    في الدورة باستخدام مشغل ل ... NEXT نحن نلقي عرض جميع عناصر الصفيف، بدءا من 2nd. باستخدام المشغل ... ثم قارن قيمها مع القيمة المخزنة في متغير BMAX.

    إذا اتضح أن قيمة عنصر الصفيف أكبر من قيمة BMAX، TibMax. قم بإخطار قيمة هذا العنصر، وقيمة OFIMAX هي فهرس هذا العنصر من الصفيف.

بعد نهاية الدورة في أضواء BMAX المتغير قيمة العنصر الأقصى، والشكل هو الفهرس الخاص به (رقم).

برنامج هذا الجزء من الخوارزمية.

BMAX \u003d B (1): IMAX \u003d 1

إذا ب (I)\u003e BMAX ثم BMAX \u003d B (I): IMAX \u003d I

مثال 9.8. تقدير المبلغ والأعمال وعدد العناصر الإيجابية للمجموعةد.(م.).

المتغيرات:S، P، K-، على التوالي، كمية المنتج والعدد من العناصر الإيجابية.

خوارزميةهذا التعريف:

    نقوم بتعيين متغير صفر SI To، VariablePrise 1. كقاعدة عامة، ومتغيرات دائما، حيث يتراكم المبلغ هنا، هنا، تتم إعادة تعيين الدورة، والمتغيرات التي يتم فيها حساب المنتج تم حسابه 1.

    باستخدام ... دورة التالية، جميع عناصر الصفيف وتحقق مما إذا كانت إيجابية (D (I)\u003e 0).

    إذا اتضح أن العنصر إيجابي، ثم نضيف قيمته إلى قيمة SI، فنحن نحتفظ بالمبلغ الجديد في نفس المتغير. متغير إلى القيمة الإيجابية للعنصر وكذلك حفظ أيضا إلى المتغير. وإلى المتغير - سحب 1 وحفظ قيمة جديدة في نفس المتغير

برنامجهذا الجزء من الخوارزمية لديه النموذج:

S \u003d 0: p \u003d 1: k \u003d 0

إذا د (ط)\u003e 0 ثم

S \u003d S + D (I) "لذلك تراكم المبلغ _

القيم الإيجابية لعناصر الصفيف D (I)

P \u003d P * D (I) تحديد عمل إيجابي

'مناصر ماسيفا

K \u003d K + 1 'هذا المشغل يسمى العداد، هنا

يحدد عدد العناصر الإيجابية للمجموعة

مثال 9.9. تقدير المبلغ والأعمال والكمية ويعني قيم عناصر الصفيف الغريبد.(م.).

دعونا تعطي جزءا من برنامج مثل هذا التعريف.

S \u003d 0: p \u003d 1: k \u003d 0

إذا د (1) وزارة الدفاع 2<> 0 ثم.

SSR \u003d S / K 'حساب متوسط \u200b\u200bقيم العناصر الفردية

قارن هذا الجزء من البرنامج مع برنامج المثال 9.8. هذا البرنامج يكرر تماما تقريبا السابق. غيرت الحالة فقط في بيان IF. شروط (I) وزارة الدفاع 2<> يعني 0 أننا نبحث عن عناصر من مجموعة (I)، والتي لا تقسم على 2، أي عناصر غريبة. إذا قمنا بفحص الشروط (I) MOD 2 \u003d 0، فسنقوم بتحديد عناصر الصفيف.

كما تعلمون، تقسيم عصري.dattime الناتجة عن رصيد الانقسام في الأعداد الصحيحة. على سبيل المثال، بعد تنفيذ Operatord \u003d 34mod4، يجب أن يكون المتغير 2. لذلك، بالنسبة للاختيار عناصر صفيف متعددة 4، فمن الضروري التحقق من الحالة (I) MOD 4 \u003d 0. الحالة مشابهة إذا بحثنا عن العناصر، عدة أرقام أخرى. بدلا من 4 سيتم تسجيل هذه الأرقام الأخرى.

مثال 9.10. تسجيل عناصر الصفيفرديئة(ن.)، متعددة 5، في صفيف آخر وسحب صفيف جديد في النموذج.

صفيف آخر هو، على سبيل المثال، R5 (ن). يجب أن تؤخذ حجم هذه الصفيف الجديد كأصل، لأنه في حالة الحد، يمكن أن تكون جميع العناصر متعددة 5.

خوارزمية المهمة:

    إعادة تعيين متر ك. باستخدام Cyclefor للمشغل ... خيارات جميع عناصر الصفيف (N).

    يقوم كل عنصر بالتحقق من التعدد 5 باستخدام أحد المشغلين ... ثم قم بتقسيم تنشيط عنصر الصفيف.

    إذا كان عنصر Koint 5، فعندئذ استخدام عداد K \u003d K + 1، فإننا نتشكل مؤشرات الصفيف (n)، بدءا من 1، واكتبها إلى هذه الصفيف الأخرى -R5 (N).

    إذا كان لاغيا، فإننا نستمد مجموعة () إلى النموذج.

    إذا انسحب Kranno Zero: "لا توجد عناصر، متعددة 5".

جزء من البرنامج:

إذا ص (1) mod 5 ثم k \u003d k + 1: r5 (k) \u003d r (i)

إذا ك.<> 0 ثم.

طباعة "لا توجد عناصر، متعددة 5"

يمكن استثمار الدورات في دورات أخرى.

سنقوم بإظهار العمل دورات متداخلة وبعد أدناه في البرنامج نظمت إخراج قيم عدادات الدراجات، JK. من نتائج الإخراج، ي، من الواضح كيف يتم تنفيذ دورات متداخلة.

Frmcycle_dblClick الخاص ()

Scalemode \u003d 4 "وحدات القياس - الرموز

لأني \u003d 1 إلى 3 'دورة خارجية

طباعة "i \u003d"؛ أنا؛

ل J \u003d 1 إلى 4 '1st دورة استثمار

currentx \u003d textwidth ("i \u003d 1") + 5

طباعة "J \u003d"؛ J؛

currentx \u003d textwidth ("i \u003d 1 j \u003d 1") + 7

ل K \u003d 1 إلى 5 '2nd دورة متداخلة

في النموذج الموضح (الشكل 1)، يتم تقديم نتائج مخرجات متر جميع الدورات الثلاثة: دورة خارجية - مواجهة I، أول دورة استثمار - عداد الدورة الثانية، الدورة الداخلية - عداد. كما ترون أكبر متر "بطيء" في الدورة الخارجية(بي)، و الأسرع "- عداد الدورة الداخلية (بواسطةك.).

يتم تنفيذ البرنامج بعد النقر المزدوج على زر الماوس الأيسر في نموذج FRMCICICLI.

CurrentX، خصائص Currenty - Form تحديد الإحداثيات، البيوت الريفية لبدء تشغيل طريقة إخراج المعلومات (انظر الشكل 1 فتح نموذج الموقع).

TextWidth () هي وظيفة تقوم بإرجاع عرض النص المحدد في الوظيفة كوسيطة في اقتباسات مزدوجة.

تستخدم دورات متداخلة في معالجة المصفوفات ثنائية الأبعاد (المصفوفات). ولكن في بعض المهام، باستثناء مدخلات وإخراج عناصر الصفيف ثنائي الأبعاد، يمكن أن تقتصر على دورة واحدة. النظر في بعض الأمثلة على مصفوفات البرمجة.

مثال 9.11. إدخال وإخراج المصفوفة (صفيف ثنائي الأبعاد) أعداد صحيحةإنستير(ن.).

يمكنك إدخال المصفوفة على الصفوف والأعمدة وبعد ببساطة - على الصفوف، إذا قمت ببرمجة سحب عناصر الصفيف على النموذج مباشرة بعد إدخالها.

مدخلات وإخراج المصفوفةفي الصفوف - جزء 1..

Dim M as Integer، n كمثل صحيح، وأنا كيميني، ي أن عددا صحيحا

ديم INTA () كعدد صحيح إعلان صفيف ديناميكي

م \u003d فال (txtn.text) 'م - عدد الصفوف

n \u003d val (txtn.text) 'n - عدد الأعمدة

Redim Inta (م، ن) كعدد عدد صحيح "تجاوز صفيف

ل i \u003d 1 إلى m 'سأقدم قيمتك حتى تماما

"لم يكتمل في الدورة المتداخلة من قبل J

مطبعة ""؛ INTA (I، J)؛ استنتاج حسب الخط

طباعة "انتقل إلى بداية سطر جديد

لإدخال المصفوفة على الأعمدة، من الضروري إجراء حلقة من الخارج من J (تعدد أرقام الأعمدة)، و PI الدورة الداخلية الدورة (تحدد أرقام الصف).

مدخلات وإخراج المصفوفةبواسطة الأعمدة جزء 2..

PRY \u003d 2500: CurrentY \u003d PRY "PRY" يحدد تنسيق ذ البداية

إخراج العنصر الأول من كل عمود في النموذج

ل J \u003d 1 إلى N 'J سيوفر قيمتك بينما تماما

"لم يكتمل في الدورة المتداخلة وفقا ل I

iNTA (I، J) \u003d Inputbox ("أدخل عنصر INTA (" & I & "،" & _) "، _

"مصفوفة INPUT INTA (" & M & "،" & n & ")

طباعة علامة التبويب (6 * j)؛ INTA (I، J) '' استنتاج في الأعمدة

Currenty \u003d PRY 'لإخراج العنصر الأول

العمود التالي

في هذا الجزء الثاني من البرنامج، لا تتكرر الأسطر الأولى من الجزء الأول من الجزء الأول. تعمل وظيفة علامة التبويب (6 * j) بداية الإخراج في السلسلة (بالأحرف)، تتراوح من الحافة اليسرى للنموذج. التنسيق يساوي 2500 غصين، ولكن يمكنك اختيار قيمة أخرى.

مثال 9.12. . تنظيم قيم عناصر الصفيفالخامس.(ن.) تصاعدي.

هناك العديد من الخوارزميات في ترتيب المصفوفات. نعطي واحدة منهم: بمساعدة دورات متداخلةلالتالي حدد العناصر التي تبدأ من الأول وإلى ما قبل الأخير، ومقارنة كل منها مع عناصر لاحقة؛ إذا اتضح أن العنصر اللاحق أقل من المحدد، فقم بتغييرها في الأماكن.

جزء من البرنامج ينفذ هذه الخوارزمية:

لأني \u003d 1 إلى n - 1

ل J \u003d i + 1 إلى n

إذا v (ي)< V(i) Then P = V(i): V(i) = V(j): V(j) = P

دعونا نوضح هذا الجزء من البرنامج.

باستخدام دورة خارجية مع متر، فإن العنصر الذي حدده (ط) للمقارنة مع العناصر اللاحقة. الدورة الداخلية مع المقابلة لمقارنة العناصر اللاحقة (J). القيمة الأولية-jowy + 1. هذا هو العنصر الأول من اللاحقة.

لتبادل قيم العناصر V (I) YV (J)، ندخل بعض المتغير، وهو "إخفاء" مؤقتا "قيمة واحدة من عناصر الصفيف (في البرنامج ISV (I)). ثم يتم بعد ذلك تعيين عنصر V (I) قيمة العنصر (ي)، ويتم تعيين ElectressV (J) القيمة OFV (I)، والتي يتم تخزينها في المتغير. إذا تم تعيين TOV "إخفاء" (ي)، فإن رمز تبادل القيم سيكون: p \u003d v (j): v (j) \u003d v (i): v (i) \u003d p. النتيجة لن تتغير.

ل تبسيط الصفيف تنازلي، حالة كافية للتحقق من الكتابة في Videov (J)\u003e V (I)، I.E.E. لتغيير علامة عدم المساواة إلى أخرى.

إذا لم تكن الصفيف رقما رقميا، وسلسلة، وسيتم تقديم الأبطن في عناصر الصفيف، ثم وفقا لبرنامج المثال 9.12، يمكنك ترتيب قائمة بأقللقة وفقا للحروف الأبجدية. الحقيقة هي أن أحرف الأبجدية المستخدمة في الكمبيوتر، وعدم المساواة عادلة:< Б < В < Г….< Я и т. д., поскольку числовые коды букв алфавита последовательно увеличиваются, начиная с А и до конца алфавита. Это же справедливо и для букв английского алфавита.

مثال 9.13. . حساب مقدار العناصر الإيجابية للأعمدة الفردية للمصفوفةF.(م., ن.) وإخراج الشكل.

برامج الخوارزمية:

    باستخدام الدورة الخارجية في الزيادات 2، قم بتشكيل فهرس عمود Matrix الفهرس، بدءا من العمود الأول.

    نقوم بإعادة ضبط مجموع S، حيث تتراكم مجموع العناصر الإيجابية.

    في الدورة الداخلية، تحقق من علامة عنصر الصفيف.

    إذا كان عنصر الصفيف إيجابيا (\u003e 0)، فإننا نحسب المبلغ S.

    بعد نهاية الدورة الداخلية، نستمد مجموع نموذج SNA.

شظية برامج:

ل J \u003d 1 إلى n الخطوة 2

إذا f (i، j)\u003e 0 ثم s \u003d s + f (i، j)

طباعة "حجم العمود"؛ J؛ ":"؛ S 'J - رقم العمود!

تسمح لك دورات متداخلة تنظيم خيارات Everbore وحل المشاكل التي لا يمكن حلها تحليليا. نتيجة وجود، يتم الحصول على خيارات الحلول، من بينها واحدا أو أكثر، والتي تلبي شرط المشكلة.

مثال 9.14. هناك 1801 روبل. كم يمكنك شراء الشوكولاتة ل 31 روبل. والثور على 18 روبل لإنفاق كل الأموال بالكامل.

برنامج:

المبلغ \u003d 1801.

جميع المائل \u003d المبلغ \\ 31: Allbilailails \u003d المبلغ \\ 18

لأني \u003d 1 إلى جميع

ل J \u003d 1 إلى الشاملة

السعر \u003d i * 31 + j * 18 'إجمالي سعر الشراء

إذا كان السعر \u003d 1801 ثم

طباعة "الشوكولاتة:"؛ أنا؛ علامة التبويب (19)؛ "الكتاب:"؛ ج.

دعونا نوضح البرنامج الذي نستخدم فيه المتغيرات في الروسية.

أولا، حدد ما هو الحد الأقصى لعدد الشوكولاتة فقط أو فقط الثور يمكن شراؤها من أجل المبلغ بأكمله. يتم استخدام القيم التي تم الحصول عليها لجميع الفولتية وجميع المطاحن للحد من كميات التنقلات من عدد الشوكولاتة والثور. لكل قيم كمية الشوكولاتة (I) وعدد الكتل (ي)، نحدد السعر الإجمالي لشراءهم. إذا كان السعر المحسوب 1801، فسيكون الخيار المحدد أحد حلول المشكلة.

تشير وظيفة علامة التبويب () إلى أي موقف من حافة النموذج سيكون إخراج المعلومات بعد هذه الوظيفة. iftab (19)، ثم من الموقف التاسع عشر.

يعرض البرنامج 3 خيارات شراء ممكنة:

الشوكولاته 7، كتاب 88

الشوكولاته 25، كتاب 57

الشوكولاته 43، كتاب 26

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

هناك العديد من المهام الرياضية التي يتم حلها ببساطة بواسطة طريقة الإطفاء باستخدام برمجة الدورات المتداخلة.

هناك مواقف تكون فيها نفس مجموعة الإجراءات مطلوبة من برنامج VBA (أي، كرر عدة مرات من نفس رمز الكتلة). يمكن القيام بذلك باستخدام دورات VBA.

عامل تشغيل دورة "ل" في Visual Basic

هيكل مشغل الدورة ل يمكن تنظيم Visual Basic في أحد النماذج: كدورة من أجل ... التالي أو كدورة لكل منهما..

دورة "ل ... المقبل"

دورة من أجل ... التالي يستخدم متغير يأخذ القيم باستمرار من نطاق معين. مع كل تغيير قيمة المتغير، تم إدخال الإجراءات في جسم الدورة. من السهل أن نفهم من مثال بسيط:

لأني \u003d 1 إلى 10 المجموع \u003d إجمالي + IARRAY (I) التالي

في هذه الدورة البسيطة من أجل ... التالي المتغير المستخدمة أنا.الذي يأخذ باستمرار القيم 1، 2، 3، ... 10، ولكل من هذه القيم، يتم تنفيذ رمز VBA داخل الدورة. وبالتالي، تلخص هذه الدورة عناصر الصفيف iarray. في متغير مجموع.

في المثال أعلاه، لا يتم تحديد خطوة زيادة الدورة، وبالتالي، للحصول على زيادة خطوة بخطوة في المتغير أنا. 1 إلى 10 افتراضيا هو الزيادة 1 وبعد ومع ذلك، في بعض الحالات مطلوبة لاستخدام قيم الزيادة الأخرى للدورة. يمكن القيام بذلك بكلمة رئيسية خطوة.كما هو موضح في المثال البسيط التالي.

ل D \u003d 0 إلى 10 خطوة 0.1 Dtotal \u003d Dtotal + D التالي D

منذ مثال خطوة الزيادة يتم تعيين في المثال أعلاه. 0.1 ، ثم متغير الدكتور لكل تكرار في الدورة تأخذ القيم 0.0، 0.1، 0.2، 0.3، ... 9.9، 10.0.

لتحديد خطوة الدورة في VBA، يمكنك استخدام قيمة سلبية، على سبيل المثال، مثل هذا:

لأني \u003d 10 إلى 1 خطوة -1 IARRAY (I) \u003d أنا التالي

هنا خطوة الزيادة متساوية -1 ، لذلك، المتغير أنا. مع كل تكرار من الدورة يأخذ القيم 10، 9، 8، ... 1.

دورة "لكل منها"

دورة لكل منهما. يشبه الدورة من أجل ... التاليولكن بدلا من تحويل تسلسل القيم لمتغير متر، دورة لكل منهما. يؤدي مجموعة من الإجراءات لكل كائن من المجموعة المحددة من الكائنات. في المثال التالي باستخدام دورة لكل منهما. يتم تلبية جميع الأوراق في المصنف الحالي Excel:

خافت Wshet كحد أوراق عمل لكل Wsheet في أوراق العمل MSGBOM "وجدت مدرجة:" & Wsheet.name Next Wsheet

مشغل المقاطعة "خروج"

المشغل أو العامل الخروج ل. تستخدم لتقاطع الدورة. بمجرد مواجهة هذا المشغل في التعليمات البرمجية، يكمل البرنامج تنفيذ الدورة والعائدات إلى تنفيذ المشغلين في التعليمات البرمجية مباشرة بعد هذه الدورة. يمكن استخدام هذا، على سبيل المثال، للبحث عن قيمة محددة في الصفيف. للقيام بذلك، بمساعدة دورة، يتم عرض كل عنصر من عناصر الصفيف. بمجرد العثور على العنصر المطلوب، فإنك تنظر من خلال البقية. لا حاجة - يتم مقاطعة الدورة.

تطبيق المشغل الخروج ل. أظهر في المثال التالي. تنقل الدورة هنا من خلال سجلات صفيف 100 ويقارن كل قيمة متغيرة. dVAL.وبعد إذا تم العثور على الصدفة، فقد تمت مقاطعة الدورة:

لأني \u003d 1 إلى 100 إذا DVALUES (I) \u003d DVAL ثم فهرسة \u003d أنا الخروج لإنهاء النهاية إذا كان ذلك التالي

دورة "تفعل أثناء" في Visual Basic

دورة افعل اثناء يؤدي رمز كتلة حتى يتم إجراء شرط معين. فيما يلي مثال على الإجراء. الفرعية.حيث مع دورة افعل اثناء يعرض عددا ثابتا من Fibonacci لا يتجاوز 1000:

"يعرض الإجراء الفرعي أرقام Fibonacci، ولا يتجاوز 1000 Fibonacci Sub () Dim i Meter" عددا صحيحا "للإشارة إلى موضع العنصر في HIMF IFIB كسلسلة عدد صحيح" يخزن القيمة الحالية للقيمة الحالية DIMFIB_NEXT كسلسلة عدد صحيح يخزن القيمة التالية من ISTEP القاتيم كمخزن تسلسل عدد صحيح "Store" حجم الزيادة التالية "تهيئة المتغيرات I و IFIB_NEXT I \u003d 1 IFIB_NEXT \u003d 0" سيتم تنفيذ الدورة حتى قيمة "العدد الحالي لل لن يتجاوز Fibonacci 1000 Do بينما Ifib_next< 1000 If i = 1 Then "особый случай для первого элемента последовательности iStep = 1 iFib = 0 Else "сохраняем размер следующего приращения перед тем, как перезаписать "текущее значение последовательности iStep = iFib iFib = iFib_Next End If "выводим текущее число Фибоначчи в столбце A активного рабочего листа "в строке с индексом i Cells(i, 1).Value = iFib "вычисляем следующее число Фибоначчи и увеличиваем индекс позиции элемента на 1 iFib_Next = iFib + iStep i = i + 1 Loop End Sub

في المثال المعطى، الشرط ifib_next.< 1000 فحص في بداية الدورة. لذلك إذا كان المعنى الأول ifib_next. سيكون أكثر من 1000، لن يتم الوفاء بالدورة.

طريقة أخرى لتنفيذ دورة افعل اثناء - ضع الحالة ليست في البداية، ولكن في نهاية الدورة. في هذه الحالة، سيتم تنفيذ الدورة مرة واحدة على الأقل، بغض النظر عما إذا تم تنفيذ الحالة.

تخطيطي مثل هذه الدورة افعل اثناء مع الشرط الذي يمكن التحقق منه في النهاية، يبدو أن هذا:

هل ... حلقة بينما Ifib_next< 1000

دورة "افعل حتى" في Visual Basic

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

irow \u003d 1 القيام به حتى حماس (IROW، 1)) "قيمة الخلية الحالية يتم حفظها في صفيف Dcellvalus Dcellvalues \u200b\u200b(IROW) \u003d الخلايا (IROW، 1) .Value IROW \u003d IROW + 1 حلقة

في المثال أعلاه، الحالة حماس (خلايا (IROW، 1)) في بداية البناء القيام به حتى.لذلك، سيتم الوفاء بالدورة مرة واحدة على الأقل، إذا كانت الخلية الأولى ليست فارغة.

ومع ذلك، كما هو موضح في أمثلة الدورة افعل اثناءفي بعض الحالات، من الضروري أن يتم تنفيذ الدورة مرة واحدة على الأقل، بغض النظر عن النتيجة الأولية للتعبير الشرطي. في هذه الحالة، يحتاج التعبير الشرطي إلى وضعه في نهاية الدورة، مثل هذا:

هل ... حلقة urtil حماسة (خلايا (IROW، 1))

دورة - هذه مجموعة من المشغلين عدة مرات. لتنظيم الدورات في VBA، أي تنفيذ متعدد من المشغلين أو أكثر من المشغلين، يمكنك استخدام مجموعتين رئيسيين: الدورات مع الإدراج من أجل ... Next و Cycles مع الحالة تفعل ... حلقة. هناك نوعان من الأصناف من أجل ... التالي (بعد ذلك ولكل من اليوم) واثنين من الدورات هل ... حلقة. (القيام به أثناء ... حلقة والقيام حتى ... حلقة)، والتي تختلف في نوع الشرط الذي يتم فحصه.

دورة ل

الدورة الأكثر شيوعا في VBA هي دورة مع قائمة "المقبل". تحتاج هذه الدورة إلى تعيين الحدود (القيم الأولي والإناهة للمتر) الذي سيغير فيه متغير الدورة.

يحتوي مشغل الدورة على بناء الجملة التالي:
ل ل ن \u003d 1)
الذي - التي القيمة النهائية ( الذي - التي 10)
خطوة. زيادة راتب ( خطوة.2)

التالي [عداد]

هنا، المتغير هو متر، وقيمة الزيادات المتغيرة أو النقصان مع كل تكرار للدورة. إذا لم تكن هناك خطوة في تصميم الدورة، فإن الزيادة هي 1 (افتراضيا). للخروج المبكر من مشغل الدورة، أي حتى الوصول إلى عداد القيمة النهائية، يجب تقديم المشغل في تصميم الدورة. الخروج ل..

مع النظر الخروج ل. يحتوي مشغل الدورة على بناء الجملة التالي:
ل عداد \u003d القيمة الأولية (على سبيل المثال، على سبيل المثال، ل ن \u003d 1)
الذي - التي القيمة النهائية ( الذي - التي 10)
خطوة. زيادة راتب ( خطوة.2)
[تعليمات] أو [كتلة المشغل]
الخروج ل.
التالي [عداد]

للتعامل مع مجموعة من الكائنات أو الصفائف المتجانسة، يتم تطبيق تصميم الدورة التالية:
لكل منهما. جزء في. مجموعة (اسم مجموعة من الكائنات متجانسة)
[تعليمات] أو [كتلة المشغل]
الخروج ل.
التالي جزء

دورات مع حالة القيام أثناء ... حلقة والقيام حتى ... حلقة

المشغل القيام به أثناء ... حلقة تؤدي دورات حتى يتم اتباع شرط معين. تجدر الإشارة إلى أن الحالة يتم التحقق منها قبل إجراء تعليمات أو مجموعة من المشغلين.

في هذه الحالة، بناء جملة المشغلين للقيام أثناء الدورة ... حلقة لها النموذج التالي:
افعل اثناءالشرط (على سبيل المثال، X<20)
[تعليمات] أو [كتلة المشغل]
الخروج القيام به.
حلقه.


يفعل.
[تعليمات] أو [كتلة المشغل]
الخروج القيام به.
حلقة في حين شرط

يعمل المشغل حتى ... حلقة تؤدي دورات حتى يتم امتثال الشرط للحالة، وعند مراقبة الحالة، يخرج المشغل من الدورة. يتم التحقق من الحالة قبل إجراء تعليمات أو مجموعة من المشغلين.

في هذه الحالة، بناء جملة مشغلي القيام به حتى دورة ... حلقة لها النموذج التالي:
القيام به حتى.الشرط (على سبيل المثال، X \u003d 20)
[تعليمات] أو [كتلة المشغل]
الخروج القيام به.
حلقه.

إذا كنت بحاجة إلى التحقق من الشرط بعد الإرشادات أو يتم تنفيذ كتلة المشغل مرة واحدة على الأقل، فيمكنك تطبيق تصميم مشغل الدورة التالية:
يفعل.
[تعليمات] أو [كتلة المشغل]
الخروج القيام به.
حلقة حتى. شرط

دورة من أجل ... التالي في VBA Excel، بناء الجملة ووصف للمكونات الفردية. أمثلة لاستخدام ... دورة التالية.

تم تصميم الدورة التالية في VBA Excel لإجراء مجموعة من المشغلين العدد المطلوب من المرات المحددة بواسطة دورة التحكم في التحكم - عداد. عند تنفيذ الدورة، تزيد قيمة العداد بعد كل تكرار أو تنخفض إلى الرقم المحدد من خلال تعبير مشغل الخطوة، أو بشكل افتراضي، لكل وحدة. عندما تحتاج إلى استخدام دورة إلى عناصر، فإن عدد والفهرسة في المجموعة (النطاق، الصفيف، المجموعة) غير معروفة، يجب عليك استخدامها.

دورة بناء الجملة ل ... التالي

لعدة التشغيل \u003d ابدأ في إنهاء [خطوة خطوة] [بيانات] [خروج] [العبارات]

في الأقواس المربعة، يتم الإشارة إلى السمات الاختيارية ل ... دورة التالية.

مكونات دورة ... التالي

مكون وصف
عداد. سمة إلزامية. المتغير العددي الذي يؤدي دور العداد، الذي يسمى أيضا متغير التحكم في الدورة.
بداية. سمة إلزامية. تعبير رقمي يحدد القيمة الأولية للمتر.
نهاية. سمة إلزامية. تعبير رقمي يحدد القيمة النهائية للمتر.
خطوة * السمة الاختيارية. المشغل الذي يشير إلى أن خطوة الدورة سيتم تحديدها.
خطوة. السمة الاختيارية. تعبير رقمي يحدد خطوة دورة. يمكن أن يكون إيجابيا وسلبيا.
صياغات اختيار اختياري **. مشغلي الكود الخاص بك.
الخروج ل. السمة الاختيارية. مشغل الإخراج من الدورة قبل الانتهاء.
التالي [عازدة] هنا عداد. - السمة الاختيارية. هذا هو نفس اسم متغير التحكم في الدورة، والتي لا يمكن الإشارة إليها هنا.

*إذا سمة خطوة. غائب، يتم تنفيذ الدورة التالية في الزيادات الافتراضية 1 .

**إذا كنت لا تستخدم التعليمات البرمجية الخاصة بك في الدورة، فقد فقد معنى تطبيق الدورة.

أمثلة على الدورات ... بعد ذلك

يمكنك نسخ الدورات في وحدة VBA الخاصة بك، لتشغيلها لتنفيذ ومشاهدة النتائج.

دورة بسيطة

املأ عشر الخلايا الأولى من العمود الأول من الأرقام النشطة لأرقام Excel من 1 إلى 10:

Sub Test1 () خافت أنا طالما أنا \u003d 1 إلى 10 خلايا (i، 1) \u003d أنا النهاية التالية

أبسط دورة في الخطوة

تمت إضافة مشغل خطوة 3 إلى الدورة السابقة بقيمة 3، ويتم كتابة النتائج إلى العمود الثاني:

Sub Test2 () خافت أنا طالما أنا \u003d 1 إلى 10 خطوة 3 خلايا (I، 2) \u003d أنا النهاية التالية

دورة مع الحجج السلبية

يملأ هذه الدورة الخلايا العشرة الأولى من الأعمدة الخلية في التسلسل العكسي:

Sub Test3 () خافت أنا طالما أنا \u003d 0 إلى -9 خطوة -1 خلايا (i + 10، 3) \u003d i + 10 next count sub

نحن نزيد حجم الخطوة إلى -3 واكتب النتائج في عمود قائمة Excel الرابعة:

Sub Test4 () خافتة أنا طالما أنا \u003d 0 إلى -9 خطوة -3 الخلايا (i + 10، 4) \u003d i + 10 نهاية النهاية الفرعية

دورة استثمار

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

Sub Test5 () Dim I1 طالما، I2 طالما طالبا I1 \u003d 1 إلى 10 "الخزانة الخامسة في الصف I1 تعيين 0 خلايا (I1، 5) \u003d 0 ل i2 \u003d 1 إلى 4 خلايا (i1، 5) \u003d الخلايا (i1 ، 5) + الخلايا (i1، i2) التالي النهاية التالية

الخروج من الدورة

في العمود السادس من الورقة النشطة، نكتب أسماء عشر حيوانات، بالطبع، باستخدام ... دورة التالية:

Test6 () Dist6 () خافتة أنا طالما أنا \u003d 1 إلى 10 خلايا (I، 6) \u003d اختر (I، "الدب"، "الفيل"، "الزرافة"، "الظباء"، "التمساح"، "Zebra"، "النمر"، "السحلية"، "LEV"، "BEMEMOTOT") نهاية النهاية

ستقوم الدورة التالية بالبحث في العمود السادس من التمساح، والتي أكلت Galoshes. في العمود السابع من الدورة، حتى يتم تكرار التمساح، سوف يكتب خطا "كانت هناك دورة" هنا، وعندما يكتشف التمساح، سيكتب "إنه يأكل جالوشز" وتوقف عن العمل عن طريق تنفيذ الخروج ل أمر. ستكون مرئية على الخلايا بجوار أسماء الحيوانات التي تقل عن التمساح، حيث لن يكون هناك نص "كانت هناك دورة".

Sub Test7 () خافتة أنا طالما أنا \u003d 1 إلى 10 إذا كانت الخلايا (I، 6) \u003d "التمساح" ثم الخلايا (i، 7) \u003d "إنهاء ate galoshes" الخروج من خلايا أخرى (I، 7) \u003d "هناك كان دورة "النهاية" إذا كانت النهاية التالية

هذه البيانات حول ورقة Excel النشطة ستتلقى إذا قمت ببدء تشغيل محرر VBA على التوالي جميع الروتين الفرعي السبع من الأمثلة التي توضح تشغيل دورات ... الدورات التالية.

دورة مع حجج كسور

يمكن تمثيل السمات البدء والنهاية والخطوة بالرقم أو التعبير المتغير أو العددي:

لأني \u003d 1 إلى 20 خطوة 2 ل i \u003d a to b step c for i \u003d a - 3 إلى 2B + 1 الخطوة C / 2

نتيجة لحساب قيمة المتغير خارج الدورة أو التعبير داخلها، يمكن الحصول على نتيجة كسور. جولة VBA Excel إلى عدد صحيح باستخدام:

"قيم السمة للتقريب من أجل I \u003d 1.5 إلى 10.5 الخطوة 2.51" قيم السمات مدورة ل i \u003d 2 إلى 10 الخطوة 3

حاول ألا تصدر من أجل ... قيم الوسيطة غير المستديرة في جسم الدورة، حتى لا تحصل على نتائج غير متوقعة لتنفيذها. إذا كان بدون أرقام كسور، فليس من الضروري استخدام التقريب المعتاد، واستخدام الورش الوردي وظيفي. وظيفة عمل ورقة العمل في رمز VBA لإعادة تشغيل الرقم قبل استخدامه في الدورة ...

خوارزمية ل ... يتم عرض دورة الاتصال في الشكل. 5.28.

عداد. - أي متغير VBA العددي، وعادة ما يكون عدد صحيح من النوع المتغير أو الطويل.

بداية. - أي تعبير رقمي وتحدد القيمة الأولية لمتغير العداد.

نهاية. - التعبير العددي الذي يحدد القيمة النهائية للمتغير عداد. .

صياغات - واحد، عدة أو ليس مشغل واحد. يقوم هذه المشغلون بأداء جسم دورة. يؤدي VBA كل من هذه المشغلين في كل مرة يتم فيها تنفيذ الدورة.

الكلمة الرئيسية التالي

عداد \u003d عداد + خطوات

FIG.9.28. خوارزمية دورة ل ....

الكلمة الرئيسية التالي تقارير VBA أنه يتم الوصول إلى نهاية الدورة. لا يجب أن يكون متغير عداد إلزامي في حالة الكلمة الرئيسية التالية نفس المتغير العداد، والذي تم تعيينه بعد الكلمة الرئيسية لبداية هيكل الدورة.

بناء الجملة:

لمكافحة \u003d ابدأ في النهاية

عند أداء دورةلالتالي VBA. يدخل كما يلي:

يعين القيمة المقدمة نجمة , عامل من عند أونتر. .

يؤدي جميع المشغلين المقدمة باستخدام صياغات حتى تصل إلى الكلمة الرئيسية التالي وبعد الكلمة الرئيسية التالي يظهر VBA لحقيقة أن نهاية جسم الدورة يتحقق.

يغير المتغير من عند أونتر. بحجمها حجم الخطوة (إذا تم تشغيل كلمة خطوة اختيارية) في حالة عدم تعريف الخطوة، فإن VBA يزيد من متغير العداد بنسبة 1.

يعود إلى بداية الدورة ويقارن القيمة الحالية للمتغير من عند أونتر. مع القيمة المقدمة إلى النهاية. إذا القيمة من عند أونتر. قيمة أقل نهاية. ، يستمر VBA في التنفيذ من المشغل الأول بعد الكلمة الأساسية التالي .

9.2.4. انسحاب من صفيفات واحدة ذات الأبعاد والأبعاد

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

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

البعد الضخم

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

صفائف أحادية الأبعاد

يظهر مثال على صفيف أحادي الأبعاد في الجدول رقم 9.9.

الجدول رقم 9.9.

تستخدم البرمجة عادة ترقيم مع قاعدة صفرية.

للوصول إلى البيانات المخزنة في عنصر صفيف محدد، يجب عليك تحديد اسم الصفيف مع الرقم اللاحق يسمى فهرس العنصر. يختتم المؤشر بين قوسين. على سبيل المثال، في حالة وجود صفيف في الجدول رقم 1.1 اسم Doublearray، فإن العبارة التالية يعين الرقم 45 من المتغير Doubleany.

Doubleany. = doublearray. (3)

في هذا المشغل، الرقم 3 هو مؤشر صفيف. نظرا لأن ترقيم العناصر يبدأ بخدش، فإن العنصر المشار إليه بواسطة المشغل هو، في الواقع، العنصر الرابع من صفيف Doublearray.

عند إجراء مشغل Doublearray، يختار VBA قيمة 45 وتوفر هذه القيمة في متغير Doublearray.

يمكن استخدام نفس المشغل أثناء حفظ البيانات في الصفيف:

doublearray. (5)=12.

عند تشغيل هذا، يتم تعيين مشغل VBA إلى 12 في عنصر الصفيف المحدد، واستبدال المحتويات السابقة لهذا العنصر.

يتم استخدام صفائف أحادية الأبعاد عادة لتمثيل قوائم البيانات المختلفة.

المصفوفات متعددة الأبعاد

عندما يكون من الضروري إرسال جداول البيانات مع البيانات بتنسيق الصفوف والأعمدة، لاستخدام صفيفات متعددة الأبعاد.

في الصفيف ثنائي الأبعاد، يتكون عنوان كل خلية من رقمين: رقم السطر (الفهرس الأول) ورقم العمود (الفهرس الثاني). في VBA، يمكنك إنشاء صفائف إلى 60 القياسات.

إذا لم يتغير عدد العناصر في الصفيف، فإن مثل هذه الصفيف يسمى ثابت.

صفائف ثابتة وديناميكية

إذا، عند إجراء برنامج VBA، يمكنك تغيير عدد العناصر الموجودة في الصفيف، ثم تسمى هذه الصفائف ديناميكية. لتغيير حجم الصفيف الديناميكي، يتم استخدام بيان redim.

يوفر VBA منطقة ذاكرة محجوزة لجميع العناصر الموجودة في الصفيف، في حين أن هناك متغير من نوع الصفيف. وتسمى هذه المصفوفات ثابتة (ثابت)، لأن عدد العناصر في الصفيف لا يتغير.

المشغل أو العاملخيار يتمركز.

عادة، يستخدم VBA صفائف مع قاعدة صفرية. يتيح لك Option Base Volidator تعيين 0 أو 1 كرقم افتراضي أولي لمؤشرات الصفيف. إذا كان المشغل خيار يتمركز. غير مستخدم، يبدأ VBA ترقيم الفهارس من 0 (افتراضي). من الضروري وضع المشغل الأساسي الخيار في منطقة الإعلان الوحدة قبل إعلان أي متغيرات أو ثوابت أو إجراءات. لا يمكنك وضع مشغل قاعدة خيار داخل الإجراء. يمكنك الحصول على مشغل قاعدة خيار واحد فقط في الوحدة النمطية.

بناء الجملة:

خيار يتمركز. 0|1

إعلان السنواتر

إعلان صفيف باستخدام المشغل خافتلديها بناء الجملة التالي.

بناء الجملة:

DIM VARNAME ()

DIM VARNAME (أعلى العلوي، العلوي] ....)[ مثل يكتب],

VarName - أي اسم للحصول على صفيف يرضي قواعد VBA أسماء المعرفات.

اشتراكات - قياس التدليك.

كما النوع - نوع البيانات.

انخفاض قيمة مؤشر الحدود أقل.

العلوي - الحد الأعلى لقيمة الفهرس.

اكتب - نوع البيانات

إذا خفضت النوع، فإن جميع عناصر الصفيف سيكون لها نوع مختلف. تهيئة VBA عناصر الصفائف الرقمية Zeros وعناصر صفائف السلسلة بأسلوت فارغة.

dim str_array (1 إلى 100) كسلسلة

dim variant_array ()

DIM Str_Multiplication (من 0 إلى 15، 0 إلى 15) كسلسلة

استخدام الأسلحة

للوصول إلى عنصر الصفيف، يجب عليك تحديد اسم الصفيف متبوعا بقيمة الفهرس المرفقة بين قوسين.

النداء إلى عنصر الصفيف لديه بناء الجملة التالي.

بناء الجملة.

arrayName (ValidIndex1، ....)

validIndex - اسم الصفيف.

validIndex1 هي قيمة فهرس مسموح بها للقياس الأول للمجموعة.

validIndex2 هي قيمة الفهرس الصالحة للبعد الثاني للمجموعة.

من الضروري تقديم قيمة فهرس لكل قياس صفيف في كل مرة تتحول فيها إلى أي عنصر من عناصر الصفيف.

سحب سحب الصفائف ذات الأبعاد

عند الدخول إلى مجموعة أحادية الأبعاد، من الضروري إدخال 1st، 2nd، إلخ. عادة ما تشبه عناصر الصفيف للمخرجات. لإدخال أو إخراج الصفيف، من الضروري تنظيم دورة. إنه لأمر مناسب للاستخدام لإدخال وإخراج خوارزمية صفيف ذاتية الأبعاد باستخدام دورة غير مشروطة.

يتم عرض خوارزمية لدخول إخراج صفيف واحد الأبعاد في الشكل 5.29.

يظهر فك إزعاج الإجراء أدناه.

Sub Massiv () هو اسم الإجراء.

ماس ماس (5) كمثل عدد صحيح - أعلن عن مجموعة واحدة بأحد الأبعاد مع 5 عناصر، نوع الأرقام عدد صحيح.

Dim S كسلسلة - أعلنت متغير عمل للمخرجات النهائية للبيانات من الصفيف في مربع حوار النافذة. كسلسلة هي نوع بيانات في متغير التخزين.

بالنسبة إلى I \u003d 1 إلى 5 - الإجراء الموجود في الأول من أجل ... NEXT DICCE، يأخذ الأعداد الصحيحة من 1 إلى 5 ويدخلهم في صفيف.

MAS (I) \u003d InputBox (I) - إدخال عدد صحيح لعنصر I.

التالي - انتقل إلى الدورة الثانية (يتم تسجيل عناصر الصفيف في السلسلة ويتم عرضها في مربع الحوار باستخدام مشغل MSGBOM).

لأني \u003d 1 إلى 5 - العناصر في الخط من 1 إلى 5.

s \u003d S & MAS (I) & "؛" - تشكيل سلسلة من عناصر الصفيف. يتم عرض الصفيف في سطر واحد. يتم فصل عناصر الصفيف عن طريق الرمز "؛".

MSGBOX S - إخراج الصفيف المدخل سابقا.

الشكل.5.27. خوارزمية المدخلات الانسحاب واحد الأبعاد

تين. 9.29. خوارزمية وإجراءات الإدخال / الإخراج لصفيف واحد الأبعاد

دخول الصفيف ثنائي الأبعاد

يتم تقديم الخوارزمية وإجراءات المدخلات وإخراج الصفيف ثنائي الأبعاد في الشكل .5.30.

وصف هذا الإجراء:

Sub Massiv () - اسم الإجراء

الإعلان عن المتغيرات المستخدمة في هذا الإجراء:

اعلن ماس ماس (5، 5) كعدد عدد صحيح - مجموعة ثنائية الأبعاد مع 5 أعمدة وخمسة خطوط، نوع الأرقام عدد صحيح.

Dim S كسلسلة - أعلنت متغير عمل للمخرجات النهائية للبيانات من الصفيف في مربع حوار النافذة. كسلسلة - نوع البيانات في متغير التخزين

التالي أنا - مهمة مهمة

إدخال عناصر الصفيف في ذاكرة الكمبيوتر:

لأني \u003d 1 إلى 5 - يتم إدخال ENTER من العنصر الأول من السطر الأول، ثم من الثانية، إلخ.

ل J \u003d 1 إلى 5 حتى نهاية السطر الأول، ثم من العنصر الأول من السطر الثاني، إلخ.

MAS (I، J) \u003d InputBox (I، J) - مشغل إدخال لعناصر صفيف في ذاكرة الكمبيوتر

تين. 9.30. خوارزمية وإجراءات الإدخال / الإخراج لمجموعة ثنائية الأبعاد

خوارزميات من ترتيب مجموعة

كمثال، نقدم خوارزمية وإجراءات لفرز مجموعة أحادية الأبعاد من طريقة "الفقاعة"

إخراج عناصر الصفيف المدخلة من ذاكرة الكمبيوتر:

لأني \u003d 1 إلى 5 - يتم إخراج الإخراج بالمثل الدخول

s \u003d S & MAS (I، J) & "؛ "

s \u003d S & Chr (13) - ترجمة الخط (الإخراج ليس مع سطر واحد، ولكن في عدة أشخاص، كما هو الحال في الصفيف المدخلة)

التالي أنا - إنهاء المشغل ل ....

MSGBOX S - سحب الصفيف الذي تم إدخاله مسبقا في مربع الحوار

نهاية الفرعية النهائي الإجراء.