Най-четените учебни материали
Най-новите учебни материали
***ДОСТЪП ДО САЙТА***
ДО МОМЕНТА НИ ПОСЕТИХА НАД 2 500 000 ПОТРЕБИТЕЛИ
БЕЗПЛАТНИТЕ УЧЕБНИ МАТЕРИАЛИ ПРИ НАС СА НАД 7 700
Ако сме Ви били полезни, моля да изпратите SMS с текст STG на номер 1092. Цената на SMS е 2,40 лв. с ДДС.
Вашият СМС ще допринесе за обогатяване съдържанието на сайта.
SMS Login
За да използвате ПЪЛНОТО съдържание на сайта изпратете SMS с текст STG на номер 1092 (обща стойност 2.40лв.)Съставни типове данни |
Съставни типове данни Във VBA са реализирани два типа съставни данни: - масиви; - тип, определен от потребителя. 10.1. Масиви Масивите са първият съставен тип данни, който се появява в езиците за програмиране от високо ниво, и се използва в изчислителните задачи при работа с вектори и матрици. В литрературата се наричат подреден тип данни. Масивът е клас от обекти, които се състоят от елементи от един и същи тип /наредена последователност от еднотипни елементи, означавани с едно и също име, снабдено с един или повече индекси/. Във VBA са реализирани два типа масиви – статични и динамични масиви. В много езици за програмиране терминът масив се използва за статичните масиви, тъй като в тях не се реализират динамични (СИ, Паскал и др.). 10.1.1. Статични масиви Ако броят на елементите е известен предварително се изпозлват статични масиви. Статичният масив е съвкупност, състояща се от фиксиран брой елементи. Синтаксисът при дефиниране на масиви е: Dim | Private | Public | Static име на масив ([индекси]) [As тип] където: индексите, ако се задават представляват следната последователност: [долна граница1 To] горна граница1 [, [долна граница2 To] горна граница2] ... [ , [долна границаN To] горна границаN] Както се вижда единствените задължителни параметри в дефиницията са името на масива и кръглите скоби след него. Когато е зададена само горната граница за индекс, долната се приема по премълчаване и е определена от компилаторската опция Option Base. Когато не е зададен типът на базовите елементи се приема по премълчаване за Variant. Когато и Option Base не е зададен номерацията се приема от 0. Dim | Private | Public | Static, To, As са ключови думи. Опцията Option Base в модула предшества описанието на подпрограмата и функцията и действа в границите на дадения модул. За масивите не са разрешени никакви операции, а за елементите на масивите са възможни тези оперции, които са допустими за типа данни към които се отнасят. Посочването на елемент от масив /цитиране/ става, като след името в кръгли скоби се поставят действителни индекси. Например петивтелемент от едномерния масив с име А ще се цитира с А(5). Действителните индекси могат да бъдат константи, променливи или изрази. 10.1.2. Работа с едномерни масиви В този раздел ще илюстрираме ползването на масиви в програмите на VBA с множество характерни алгоритми върху едномерни масиви. Задача 1. Съставете програма на VBA, която въвежда елементите на едномерния масив А(М), М ≤ 30 и определя сумата от неговите елементи. Option Explicit Option Base 1 Sub sumarray() Dim i, m As Integer Dim Sum As Single Dim A(30) As Single m = InputBox("Въведете брой елементи на масива", "Въвеждане на данни", 5) ' Логически контрол на текущия брой елементи Do While m 30 m = InputBox("Грешен брой елементи. Въведи ново m", "Въвеждане на данни", 5) Loop For i = 1 To m A(i) = InputBox("A[" & i & "]=", "Въвеждане елементите на масива А", 1) Next Sum = 0 For i = 1 To m Sum = Sum + A(i) Next MsgBox "Стойността на сумата от елементите на масива е=" & Sum End Sub Задача 2. Съставете програма на VBA, която въвежда елементите на едномерния масив А(м), м≤40 и определя най-големия елемент и неговото място в масива. Option Explicit Option Base 1 Sub maxelement() Dim i, m, kmax As Integer Dim Max As Single Dim A(40) As Single m = InputBox("Въведете брой елементи на масива", "Въвеждане на данни", 5) ' Логически контрол на текущия брой елементи Do While m 40 m = InputBox("Грешен брой елементи. Въведи ново m", "Въвеждане на данни", 5) Loop For i = 1 To m A(i) = InputBox("A[" & i & "]=", "Въвеждане елементите на масива А", 1) Next Max = A(1) kmax = 1 For i = 2 To m If A(i) > Max Then Max = A(i): kmax = i Next MsgBox "Стойността на най-големия елемент от масива е=" & Max MsgBox "Най-големият елемент от масива се намира на " & kmax & " място" End Sub 10.1.3. Динамични масиви В случаите, когато размерността на масив не е известна се използват динамични масиви. Динамичният масив е масив, при който броят на елементите и техния тип може да се променя в процеса на работа на програмата. Синтаксис: Dim | Private | Public nameArray () [As] където: nameArray е името на масива; nameType е името на типа на елементите; Dim | Private | Public, As са ключови думи. За динамичните масиви не са разрешени никакви операции, а за елементите на масивите са възможни тези операции, които с допустими за типовете данни, към които те се отнасят. За работа с динамичните масиви, заделяне на памет за тях (определяне на размерността, границите на изменение на индексите, типът на елементите) или промяна (промена на размерността, границите на изменение на индексите, типът на елементите) се изпозлва операторът Redum. 10.2. Типове данни, определени от потребителя Както за простите типове данни е въведен потребителския тип Enum, така и за съставните е дадена възможност за създадване на собствени типове данни. Типът данни, определен от потребителя в другите езици за програмиране често се нарича записи. Затова този термин ще се изпозлва за дадения тип данни. Типът на данните, определн от потребителя (записи) е клас обекти, съдържащи фиксиран брой елементи. Елементите могат да бъдат от различен тип. Синтаксисът е: За записите са допустими само операции присвояване, а за елементите операции, които са допустими за типовете данни, към които те се отнасят.
|