|
Смена элементов массива
|
|||
---|---|---|---|
#18+
Здравствуйте. Есть массив 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2017, 18:46 |
|
Смена элементов массива
|
|||
---|---|---|---|
#18+
Если под "упрощением" имеется в виду уменьшение количества написания строк, то можно. Например, один из вариантов: 1. Типизируйте данные массива (как Integer, например) 2. Сделайте размерность массива "шире" на единицу в каждую сторону. В этом случае, вы поимеете возможность описать для каждой "значимой" ячейки массива функцию подсчета "девяток" в соседних ячейках (двумя циклами по "вертикали" и "горизонтали") со сдвигом адреса от -1 до +1, исключая случай сдвига 0 и 0. На рисунке пример для элемента массива(1,1) Добавленные "внешние" элементы массива по умолчанию для Integer будут иметь значение 0, и в подсчете "девяток" не будут оказывать влияния на результат. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2017, 22:55 |
|
|
start [/forum/topic.php?fid=45&msg=39500475&tid=1612207]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
118ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 290ms |
total: | 496ms |
0 / 0 |