240 likes | 357 Views
Массивы данных экономических расчетах. ПЛАН. 1. Понятие массивов и их типы. 2. Объявление массива. 3.Примеры использования массивов. Массивы. Массивом называется упорядоченная совокупность элементов одного типа. Тип массива может быть целочисленным( если его элементы- целые числа)
E N D
Массивы данных экономических расчетах
ПЛАН 1. Понятие массивов и их типы. 2. Объявление массива 3.Примеры использования массивов
Массивы • Массивом называется упорядоченная совокупность элементов одного типа. • Тип массива может быть целочисленным( если его элементы- целые числа) • 45876; 3567; 9987786; 8778665
вещественными( элементы- вещественные, реальные, т.е. содержат дробную часть числа): 89,54; 6987,354; 23654,21
текстовым или символьным: Ячмень Пшеница Рожь Кукуруза И т.д.
литерным ( элементы- отдельные слова или текст): Показатели урожайности; Эффективность использования; Пахотные земли; И т.д.
Для резервирования места в памяти ПК для работы с массивами данных используется оператор DIM. Любой массив должен иметь имя, тип, ссылку на размерность.
Имена переменных Для того чтобы сделать ваши переменные более наглядными и простыми для чтения, рекомендуется давать им имена, имеющие определенное смысловое значение. Существует несколько правил задания имен переменных; имя переменной может содержать не более 255 символов; имя переменной может содержать любые буквы и цифры; первый символ в имени переменной должен быть буквой; в имени переменной должны отсутствовать пробелы; имя должно быть уникальным в пределах области видимости.
Типы данных • В Visual Basic вы можете применять следующие типы данных: • числовой(integer, Long, Single, Double, Currency); • строковый(String); • типа дата (Date); • байтовый (Byte); • логический (Boolean); • произвольный (variant); • объектный (object).
Все элементы массива имеют одинаковый тип. Однако если массив имеет тип variant, то отдельные элементы могут содержать данные разных типов. Например, одни элементы могут быть числами, другие — строками или объектами.
Индекс элемента указывается в круглых скобках после имени массива. Например, strNames(l), strNames(2), strNames(10) ЯВЛЯЮТСЯ элементами массива с именем strNames. Вы можете использовать каждый из элементов массива точно так же, как и простую переменную.
глобальный массив объявляется с помощью оператора public в секции Declaration модуля:
массив уровня модуля — с помощью оператора private в секцииDeclaration модуля;
локальный массив — с помощью оператора private процедуры.
Объявление динамического массива • При объявлении глобального массива необходимо выбрать ключевое слово Public, при объявлении массива на уровне модуля — Dim, при объявлении массива в процедуре — Dim или static. Например, • Dim intCountPar (20)As Integer
С помощью выполняемого оператора ReDim • . указывается размерность массива в виде числа или выражения. Синтаксис оператора ReDim аналогичен синтаксису оператора объявления массива фиксированного размера. Например, размерность массива может быть задана любым из следующих способов: • ReDim intCountPar (х) • ReDim intCountPar (20) • ReDim intCountPar (1 То 20)
В нижеприведенном тексте программного VBA-кода содержатся строки по организации массивов различных типов: • Private Sub CommonButton1_Click() • Dim A (1To 25), B (1 to 25), C(1 to 25) As Integer • Dim Viktor (1To 56) As Single • Dim Slovo (1To 10) As String* 15 • Dim fox (1To 16) As Boolean • Dim I, N As Byte • Rem ВВОД данных массивов • N= InputBox (“введите N”) • For I= 1 To N • A(I) = InputBox (“введите a(i)- целое”) • Viktor(I) = (“ введите viktor (i)- вещественное”) • Slovo (I) = InputBox (“введите slovo (i) – текстовое”) • For I= InputBox (“введитеfox(i) - логическое”) • Next I • Rem ОБРАБОТКА данных массивов • For I= 1 To n • B(I) = A (i)^2 • C(i) = A(i)+b(I) • Next I • Rem ВЫВОД данных массивов • For I= 1 To n • MsgBox A(I) & “ “& b(i) & “ “& C(i) • MsgBox Viktor(I) • MsgBox Slovo(I) • MsgBox fox(I) • Next I • End Sub
Пример 1. Электротехнические характеристики трансформатора представлены массивами данных U и I. Определить сумму и произведение элементов в массиве U. Посчитать количество положительных элементов в массиве I. Сформировать третий массив данных с именем Р, каждый элемент которого образуется по правилу: PJ= UJ IJ. Распечатать значения элементов массива Р. Private Sub CommonButton1_Click() Dim U (1To 50), I (1To 50), P (1To 50) As Single Dim Sum, PR As Single Dim J,N, Kol As Byte N = InputBox (“Cк. Элементов в массиве?”) FOR J = 1 TO N U(J) = InputBox (“введите U(j)”) I(J) = InputBox (“введите I(j)”) NEXT J Sum=0 : Pr= 1: Kol=0 FOR J = 1 TO N Sum= Sum+I(J) Pr = Pr*I(J) NEXT J MsgBox “ сумма=”& Sum &” произв. =”& Pr FOR J = 1 TO N IF U (J)> 0 then KOL +1 NEXT J MsgBox “колич. полож. элементов=”& KOL Rem Новый массив FOR J = 1 TO N P(J)= U(J)*I(J) MsgBox” элемент нового массива =” & P(J) NEXT J END Sub
Пример 2. Среднее время Т безотказной работы электродвигателей определяется по формуле: Т= ( Lg e)/m+J/LgN- Lg (N-1)), Где N – число электродвигателей; m – число двигателей, вышедших из строя при испытании на надежность работы; ТJ- время безотказной работы j –го двигателя до его поломки, ч Private Sub CommonButton1_Click() Dim T (1To 30) As Single Dim TT As Single Dim J, N, M, As Byte N= InputBox (“введите N”) M= InputBox (“введите M”) MsgBox “ введите значения элементов T(J):” FOR J = 1 TO N T(J)= InputBox (“введите очередной элемент)”) NEXT J MsgBox “Теперь определим сумму элементов:” FOR J = 1 TO M S=S+T(J) / (LOG(N)/LOG(10)-LOG(N-1)/LOG(10)) NEXT J MsgBox “ Сумма элементов равна: & S MsgBox” Определим время безотказной работы: “ TT=(LOG(EXP(1))/LOG(10))/M+S MsgBox”времяТ =” & TT END Sub
Пример 3. Пример3. Среди элементов массива электротехнических данных найти минимальный и максимальный элементы, количество ненулевых элементов, а также все элементы, кратные семи: Private Sub CommonButton1_Click() Dim A (1To 30) As Single Dim Max, Min,S,P As Single Dim J,N,M,K As Byte N= InputBox (“сколько элементов в массиве?”) S = 0: P = 1:К = 0 MsgBox “введите значения элементов А:” FOR J = 1 TO N MsgBox “введите очередной элемент)”) NEXT J MsgBox “Определим максимум и минимум” Max = A(1): Min = A(1) FOR J = 1 TO N IF A (J)> = MAX THEN MAX = A(J) IF A (J)< = MIN THEN MIN = A(J) Next J MsgBox “максимум= “ & max & “минимум = “& min MsgBox “Определим количество ненулевых элементов” FOR J = 1 TO N IF A (J)> < = 0 THEN K = K+1 Next J MsgBox “Количество ненулевых элементов = “& K MsgBox “Определим элементы, кратные семи: “ FOR J = 1 TO N IF A (J)/7 = INT (A(J)/7) THEN MsgBox “A(“&_J &”) = “& A (J) END Sub
Пример 4. Определить значение статистического показателя: Z= 2 cosK +i+Xi)/ (w*m) + b Private Sub CommonButton1_Click() Dim Т (1To 50),Х (1To 50), А (1To 50) As Single Dim К, S, P,W, M, Z As Single Dim I, C, N, B As Byte N= InputBox (“сколько элементов в массивах Т и Х?”) С= InputBox (“сколько элементов в массиве А?”) S = 0: P = 1 К = InputBox (“Введите К”) М = InputBox (“Введите М”) W= InputBox (“Введите W”) MsgBox “Введем значения элементов массивов Т и Х:” FOR I = 1 TO N T(I) = InputBox (“введите очередной элемент)”) Х(I) = InputBox (“введите очередной элемент)”) NEXT I MsgBox “Рассчитаем сумму” S=S+(T(I)+X(I)/W*m) MsgBox “Введем значения элементов массива А:” FOR B = 1 TO C A (B) = InputBox (“введите очередной элемент)”) NEXT B MsgBox “Рассчитаем произведение” FOR B = 1 TO C P=P*5*sin (A(b)) NEXT B Z=2*cos (K)+S+P MsgBox “значение Z=”& Z End Sub
Контрольные задания Составить блок-схемы и программы для решения следующих задач: Задание 1. Электропроводность твердых тел определяется по формуле: V=i*exp(Wi/KT)) Где Wi и Ai – энергия перемещения иона и электрона Задание 2. Модель повреждения кабельных электролиний в течении года по месяцам имеет вид: M= A/2+n * cos (nk/6) +n * sin (nk/6) Задание3.Спектр электромагнитного сигнала может быть аппроксимирован функциональным рядом, который предусматривает обработку числовых массивов. Определить значение функции для первых пяти гармоник (т.е. при К=5) указанного ряда и квадрат значения I. I=b/2n+j * cos (nt+Fj), где Aj=sqr (U2j+ U2j) Задание 4. Среди совокупности электротехнических характеристик выбрать все положительные и определить их индексы, для отрицательных элементов- найти произведение, указать также количество нулевых элементов. Задание5. Определить сумму и произведение первых 17 элементов массива и среди десяти последующих элементов найти все неотрицательные и одновременно кратные трем. Задание 6. Найти значение выражения Z= 5 cos3x+6 sin7y, если Х- количество положительных элементов массива, а у- произведение первых 12 элементов того же массива.
Начало Ввод: N S:=0; Р =1; К=0 J:=1, N Ввод: .AJ MAX:=А1MIN:=А1 J:=1, N ДА Aj>=max Max:=Аj НЕТ ДА AJ<= min Min:=АJ НЕТ J:=1, N К:= К+1 AJ >< 0 ДА НЕТ Вывод: АJ AJ/7=int(AJ/7) КОНЕЦ Блок-схема