
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
Топ:
Оценка эффективности инструментов коммуникационной политики: Внешние коммуникации - обмен информацией между организацией и её внешней средой...
Основы обеспечения единства измерений: Обеспечение единства измерений - деятельность метрологических служб, направленная на достижение...
Проблема типологии научных революций: Глобальные научные революции и типы научной рациональности...
Интересное:
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Распространение рака на другие отдаленные от желудка органы: Характерных симптомов рака желудка не существует. Выраженные симптомы появляются, когда опухоль...
Дисциплины:
![]() |
![]() |
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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!