Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Пример 4. Задана матрица а, имеющая кa строк и la столбцов, а также матрица b, имеющая кb строк и lb столбцов и матрица с, имеющая кc строк и lc столбцов.




Лекция 13

Задана матрица а, имеющая кa строк и la столбцов, а также матрица b, имеющая кb строк и lb столбцов и матрица с, имеющая кc строк и lc столбцов.

Найти значение наибольшего из максимальных элементов этих матриц. Вывести матрицу, максимальный элемент которой оказался наибольшим.

Перечень подзадач

1. Ввод матрицы x, имеющей imax строк и jmax столбцов.

Применим процедуру Ввод_матрицы (x() As Single).

2. Определение максимального элемента матрицы x, имеющей imax строк и jmax столбцов.

Применим функцию:

МаксМатр(x() As Single, imax As Integer, jmax As Integer) As Single

3. Вывод матрицы x, имеющей imax строк и jmax столбцов.

Применим процедуру:

Вывод_матрицы (x() As Single).

 


Блок-схема алгоритма функции МаксМатр

Рис. 13.1. Блок-схема алгоритма определения значения максимального элемента матрицы

 

Интерфейс проекта

Воспользуемся тем же интерфейсом проекта, который был применен для примеров, рассмотренных в предыдущих лекциях (подробнее).

Разработка программы

 

Option Explicit

Option Base 1

Private Sub Command1_Click()

Dim ka As Integer, la As Integer

Dim kb As Integer, lb As Integer

Dim kc As Integer, lc As Integer

Dim a() As Single, b() As Single, c() As Single

Cls

ka = InputBox("ka=?")

la = InputBox("la=?")

kb = InputBox("kb=?")

lb = InputBox("lb=?")

kc = InputBox("kc=?")

lc = InputBox("lc=?")

Print "ka= "; ka; " la= "; la

Print "kb= "; kb; " lb= "; lb

Print "kc= "; kc; " lc= "; lc

ReDim a(ka, la), b(kb, lb), c(kc, lc)

Print "Задайте значения элементов матрицы a"

Ввод_матрицы a

Print "Задайте значения элементов матрицы b"

Ввод_матрицы b

Print "Задайте значения элементов матрицы c"

Ввод_матрицы c

Dim МаксА As Single, МаксВ As Single, МаксС As Single

МаксА = МаксМатр(a, ka, la)

МаксВ = МаксМатр(b, kb, lb)

МаксС = МаксМатр(c, kc, lc)

Dim МаксАВС As Single

МаксАВС = МаксА

If МаксВ > МаксАВС Then МаксАВС = МаксВ

If МаксС > МаксАВС Then МаксАВС = МаксС

Print "Наибольший элемент равен "; МаксАВС

If МаксАВС = МаксА Then

Print "Наибольший элемент содержит матрица a"

Вывод_матрицы a

End If

If МаксАВС = МаксВ Then

Print "Наибольший элемент содержит матрица b"

Вывод_матрицы b

End If

If МаксАВС = МаксС Then

Print "Наибольший элемент содержит матрица c"

Вывод_матрицы c

End If

End Sub

Private Sub Ввод_матрицы(x() As Single)

1: Dim i As Integer

Dim i_min As Integer

Dim i_max As Integer

i_min = LBound(x)

5: i_max = UBound(x)

Dim j As Integer

Dim j_min As Integer

Dim j_max As Integer

j_min = LBound(x, 2)

10: j_max = UBound(x, 2)

For i = i_min To i_max

For j = j_min To j_max

x(i, j) = InputBox("Элемент матрицы (" _

& i & ", " & j & ") =?", _

"Ввод матрицы")

Print x(i, j),

15: Next

Print

Next

End Sub

Private Function МаксМатр(x() As Single, imax As Integer, _

jmax As Integer) As Single

Dim i As Integer, j As Integer, МаксХ As Single

МаксХ = x(1, 1)

For i = 1 To imax

For j = 1 To jmax

If x(i, j) > МаксХ Then МаксХ = x(i, j)

Next j, i

МаксМатр = МаксХ

End Function

Private Sub Вывод_матрицы(x() As Single)

1: Dim i As Integer

Dim i_min As Integer

Dim i_max As Integer

i_min = LBound(x)

5: i_max = UBound(x)

Dim j As Integer

Dim j_min As Integer

Dim j_max As Integer

j_min = LBound(x, 2)

10: j_max = UBound(x, 2)

For i = i_min To i_max

For j = j_min To j_max

Print x(i, j),

Next

15: Print

Next

End Sub

 

В процедурах Ввод_матрицы и Вывод_матрицы применены функции Ubound и Lbound.

Не обязательно передавать в процедуры и функции значения верхних и нижних границ размерностей массива. Их можно вычислять. Для этого можно применить функции Ubound и Lbound соответственно.

 

Синтаксис обращения к этим функциям:

 

UBound(ИмяМассива [,Номер измерения])

LBound(ИмяМассива [,Номер измерения])

 

Параметр НомерИзмерения используют в случае многомерного массива, например:

 

Dim x() As Single

.

.

.

НаибольшийНомерСтроки = Ubound (x, 1)

НаименьшийНомерСтолбца = Lbound (x, 2)

 

Если номер измерения опущен, то он подразумевается равным 1.




Поделиться с друзьями:


Дата добавления: 2014-12-07; Просмотров: 1077; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.