powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Смена элементов массива
2 сообщений из 2, страница 1 из 1
Смена элементов массива
    #39500475
BaT9I
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Есть массив 5х5 с рандомными числами. После создания массива я хожу по каждому элементу и заполняю его.
Сколько раз встречается цифра 9 вокруг этого элемента такое значение и заношу в него. Можно как то упростить код?
Sub Massiv()
N = 5
m = 5
ReDim a(1 To N, 1 To m)
For i = 1 To N
For j = 1 To m
a(i, j) = CInt(Int((5 * Rnd()) + 1))
Next
Next
For i = 1 To N
For j = 1 To m
If a(i, j) = 5 Then a(i, j) = 9
Next
Next
Dim s As Integer
s = 0
If a(1, 1) <> 9 Then If a(1, 2) = 9 Then s = s + 1
If a(1, 1) <> 9 Then If a(2, 1) = 9 Then s = s + 1
If a(1, 1) <> 9 Then If a(2, 2) = 9 Then s = s + 1
If a(1, 1) <> 9 Then a(1, 1) = s
s = 0
If a(1, 2) <> 9 Then If a(1, 1) = 9 Then s = s + 1
If a(1, 2) <> 9 Then If a(2, 1) = 9 Then s = s + 1
If a(1, 2) <> 9 Then If a(2, 2) = 9 Then s = s + 1
If a(1, 2) <> 9 Then If a(2, 3) = 9 Then s = s + 1
If a(1, 2) <> 9 Then If a(1, 3) = 9 Then s = s + 1
If a(1, 2) <> 9 Then a(1, 2) = s
s = 0
If a(1, 3) <> 9 Then If a(1, 2) = 9 Then s = s + 1
If a(1, 3) <> 9 Then If a(2, 1) = 9 Then s = s + 1
If a(1, 3) <> 9 Then If a(2, 3) = 9 Then s = s + 1
If a(1, 3) <> 9 Then If a(2, 4) = 9 Then s = s + 1
If a(1, 3) <> 9 Then If a(1, 4) = 9 Then s = s + 1
If a(1, 3) <> 9 Then a(1, 3) = s
s = 0
...
Рейтинг: 0 / 0
Смена элементов массива
    #39500556
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если под "упрощением" имеется в виду уменьшение количества написания строк, то можно.

Например, один из вариантов:

1. Типизируйте данные массива (как Integer, например)
2. Сделайте размерность массива "шире" на единицу в каждую сторону.

В этом случае, вы поимеете возможность описать для каждой "значимой" ячейки массива
функцию подсчета "девяток" в соседних ячейках (двумя циклами по "вертикали" и "горизонтали")
со сдвигом адреса от -1 до +1, исключая случай сдвига 0 и 0.

На рисунке пример для элемента массива(1,1)

Добавленные "внешние" элементы массива по умолчанию для Integer будут иметь значение 0,
и в подсчете "девяток" не будут оказывать влияния на результат.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Смена элементов массива
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]