Лабораторная работа № 5. Задачи с данными –одномерными (линейными) массивами — КиберПедия 

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Лабораторная работа № 5. Задачи с данными –одномерными (линейными) массивами

2024-02-15 24
Лабораторная работа № 5. Задачи с данными –одномерными (линейными) массивами 0.00 из 5.00 0 оценок
Заказать работу

Задача 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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.01 с.