Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
Топ:
Комплексной системы оценки состояния охраны труда на производственном объекте (КСОТ-П): Цели и задачи Комплексной системы оценки состояния охраны труда и определению факторов рисков по охране труда...
Марксистская теория происхождения государства: По мнению Маркса и Энгельса, в основе развития общества, происходящих в нем изменений лежит...
Выпускная квалификационная работа: Основная часть ВКР, как правило, состоит из двух-трех глав, каждая из которых, в свою очередь...
Интересное:
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Дисциплины:
2024-02-15 | 72 |
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
|
|
Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...
Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!