Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Топ:
Когда производится ограждение поезда, остановившегося на перегоне: Во всех случаях немедленно должно быть ограждено место препятствия для движения поездов на смежном пути двухпутного...
Особенности труда и отдыха в условиях низких температур: К работам при низких температурах на открытом воздухе и в не отапливаемых помещениях допускаются лица не моложе 18 лет, прошедшие...
Методика измерений сопротивления растеканию тока анодного заземления: Анодный заземлитель (анод) – проводник, погруженный в электролитическую среду (грунт, раствор электролита) и подключенный к положительному...
Интересное:
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Финансовый рынок и его значение в управлении денежными потоками на современном этапе: любому предприятию для расширения производства и увеличения прибыли нужны...
Дисциплины:
2024-02-15 | 69 |
5.00
из
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
Задача 11. Ввод и вывод линейного массива.
Ввод массива фиксированной длины можно осуществить с клавиатуры или, в VBA, также с листа Excel. Для ввода проще всего использовать цикл For с числом шагов, равным длине (количеству элементов) массива. Пусть, например, требуется ввести массив М из 10 целых чисел.
Ввод массивас клавиатуры:
For i = 1 To 10
М(i) = InputBox("Введите элемент массива")
Next
Ввод массива с листа Excel (массив расположен на листе в диапазоне, например, A1:A10):
For i = 1 To 10
М(i)=Cells(i,1) ‘номер строки меняется в цикле, столбец первый (А)
Next
Вывод массива в VBA нагляднее всего реализовать непосредственно на лист Excel, например, в диапазон B 1: B 10:
For i = 1 To 10
Cells(i,2)= М(i) ‘номер строки меняется в цикле, столбец второй (В)
Next
Вывод массива с помощью оператора MsgBox :
For i = 1 To 10
MsgBox М(i)
Next
Задача 12. В массиве из 10 чисел найти максимальное значение.
Решение. Задача отличается от разобранной в Задаче 7 только тем, что вначале последовательность вводится в массив (одномерный), а затем анализируется: каждый элемент A(i) массива сравнивается с уже полученным на предыдущих шагах максимумом. В качестве начального значения можно взять любой из A(i), но удобнее A(1) – циклическую проверку можно тогда начать со второго элемента, сократив число шагов:
Sub maxmas()
Dim i, max, A(10) As Integer
For i = 1 To 10
A(i) = InputBox("Введите число – элемент массива")
Next
max = A(1)
For i = 2 To 10
If A(i) > max Then
max = A(i)
End If
Next
MsgBox (max)
End Sub
Здесь первый цикл выполняет ввод элементов массива, а второй – поиск максимума. В данной задаче оба этих действия можно совместить, воспользовавшись одним циклом, например:
Sub maxm()
Dim i, max, A(10) As Integer
max = InputBox("Введите число –первый элемент массива")
For i = 2 To 10
A(i) = InputBox ("Введитечисло –элементмассива")
If A(i) > max Then
max = A(i)
End If
Next
MsgBox (max)
End Sub
Задача 13. Поменять местами первый положительный и первый отрицательный элементы массива А из 10 целых чисел.
Решение. Алгоритм состоит из четырех частей:
1) ввод массива,
2) поиск в нем первого положительного элемента,
3) поиск первого отрицательного элемента,
4) обмен их значений.
5) вывод полученного массива.
Для наглядности будем вводить массив с листа Excel (например, из диапазона А1:А10) и выводить результат на тот же лист (например, в диапазон В1:В10).
|
Поиск первого положительного элемента проведем, перебирая в цикле значения A. Как только встретится A(k)>0, нужно запомнить его индекс (номер k) и сразу выйти из этого цикла. Обратите внимание, что если продолжить цикл, то мы в результате получим номер не первого, а последнего положительного элемента массива.
Аналогично проводим поиск первого отрицательного элемента массива. Пусть это будет A(j). Индекс j запоминаем.
Теперь осталось обменять значения A(k) и A(j), используя переменную- посредника.
Вся программа выглядит так:
Sub obmen()
Dim i, j, k, rab, A(10) As Integer
For i = 1 To 10 ‘вводим массив из листа Excel:
A(i) = Cells(i, 1)
Next
For i = 1 To 10 ‘находим первый положительный элемент:
If A(i) > 0 Then
k = i
Exit For
End If
Next
For i = 1 To 10 ‘находим первый отрицательный элемент:
If A(i) < 0 Then
j = i
Exit For
End If
Next
rab = A(k) ‘меняем значения
A(k) = A(j)
A(j) = rab
For i = 1 To 10 ‘выводим массив налистExcel:
Cells(i, 2) = A(i)
Next
End Sub
|
|
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!