
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Топ:
Техника безопасности при работе на пароконвектомате: К обслуживанию пароконвектомата допускаются лица, прошедшие технический минимум по эксплуатации оборудования...
Комплексной системы оценки состояния охраны труда на производственном объекте (КСОТ-П): Цели и задачи Комплексной системы оценки состояния охраны труда и определению факторов рисков по охране труда...
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного...
Интересное:
Уполаживание и террасирование склонов: Если глубина оврага более 5 м необходимо устройство берм. Варианты использования оврагов для градостроительных целей...
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Дисциплины:
![]() |
![]() |
5.00
из
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
Решение. Алгоритм задачи состоит из трех частей: ввести матрицу A; проверить каждый ее элемент: если он отрицательный, поместить его в массив B; вывести полученный массив B на печать. Первая и третья части – ввод и вывод данных решаются стандартным способом ввода и вывода массивов. Вторая часть – основа решения, рассмотрим ее подробнее. Анализ элементов A(i,j) матрицы A можно провести, как обычно для матриц, с помощью вложенных циклов For, перечисляющих все строки (i) и столбцы (j) матрицы. Если A(i,j) – отрицательный, нужно присвоить очередному элементу массива B это значение. Здесь проблема (и источник ошибок) в том, как определить очередной элемент массива B. Поскольку заранее количество отрицательных элементов в A неизвестно, то заранее неизвестна и точная длина массива B. Очевидно только, что она не превысит NxM – количества элементов исходной матрицы A. Ясно так- же, что счетчик элементов массива B никак не зависит от очередных i и j. Отсюда следует главный вывод для решения задач такого типа: для массива- приемника необходимо завести свой, независимый счетчик элементов. Отведем для него отдельную переменную. Пусть это будет k. При записи отрицательно- го A(i,j) в B(k) счетчик k будет увеличиваться на единицу, и по окончании всей работы значение k покажет истинную длину массива B. Для примера в программе взята исходная матрица A размером N=4, M=6. Вся программа имеет вид:
Sub Перенос()
Dim A(4, 6) As Integer, B(24) As Integer, k As Integer
For i = 1 To 4
For j = 1 To 6
A(i,j)=InputBox("Введите значение элемента матрицы ")
Cells(i,j)= A(i,j) ‘вывод вводимой матрицы на лист Excel для наглядности
Next
Next
k = 0 ‘обнуление счетчика элементов массива В перед началом его заполнения
For i = 1 To 4
For j = 1 To 6
If A(i, j) < 0 Then
k = k + 1
B(k) = A(i, j)
End If
Next
Next
For i = 1 To k
Cells(7, i) = B(i) ‘вывод массива В на лист Excel в строку 7
Next
End Sub
Эту программу можно написать короче, совместив анализ с вводом и выводом и сократив, соответственно, количество внешних циклов с трех до одного:
Sub Перенос()
Dim A(4, 6) As Integer, B(24) As Integer, k As Integer
k = 0
For i = 1 To 4
For j = 1 To 6
A(i,j)=InputBox("Введите значение элемента матрицы")
Cells(i, j) = A(i, j)
If A(i, j) < 0 Then
k = k + 1
B(k) = A(i, j)
Cells(7, k) = B(k)
End If
Next
Next
End Sub
Задача 19. Посчитать число четных чисел в матрице А(5 x 5).
Решение. Алгоритм включает ввод матрицы, перебор ее значений с проверкой на четность, подсчет суммы четных значений и вывод результата. Для программирования задачи возьмем переменную (например, k) в качестве счетчика четных чисел. Проверку на четность реализуем с помощью функции Mod.
|
Вся программа:
Sub matrixNumber()
Dim i, j, k, A(5, 5) As Integer
For i = 1 To 5 ‘вводим матрицу из листа Excel:
For j = 1 To 5
A(i, j) = Cells(i, j)
Next j
Next
k = 0 ‘обнуляем счетчик четных чисел
For i = 1 To 5 ‘начинаем перебор элементов матрицы:
For j = 1 To 5
If A(i,j) Mod 2 = 0 Then ‘проверяем на четность
k = k + 1 ‘считаем четные значения
End If
Next
Next
MsgBox (k) ‘печатаем результат
End Sub
Задача 20. Посчитать сумму элементов, стоящих на четных позициях строк и столбцов матрицы А(7 x 7).
Решение. Здесь уже не важна четность элементов, важна четность позиций: элемент А(2,4), например, нам подходит, а элемент А(3,4) уже нет. Чтобы попасть на четную позицию, излишне использовать функцию Mod для счетчиков строк i и столбцов j. Достаточно изменять шаг каждого цикла с приращением 2.
Программа:
Sub matrixIndex()
Dim i, j, s, A(7, 7) As Integer
For i = 1 To 7
For j = 1 To 7
A(i, j) = Cells(i, j)
Next
Next
s = 0 ‘обнуляем хранилище суммы
For i = 2 To 7 Step 2 ‘перебираем только четные строки, начиная с 2
For j = 2 To 7 Step 2 ‘перебираем только четные столбцы, начиная с 2
s = s + A(i, j) ‘элементы A(i, j) лежат на пересечении четных строк и столбцов
Next
MsgBox (s)
End Sub
|
|
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!