![](/img/CyberPedia.jpg)
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Топ:
Генеалогическое древо Султанов Османской империи: Османские правители, вначале, будучи еще бейлербеями Анатолии, женились на дочерях византийских императоров...
Основы обеспечения единства измерений: Обеспечение единства измерений - деятельность метрологических служб, направленная на достижение...
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного хозяйства...
Интересное:
Распространение рака на другие отдаленные от желудка органы: Характерных симптомов рака желудка не существует. Выраженные симптомы появляются, когда опухоль...
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Дисциплины:
![]() |
![]() |
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
|
|
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!