Как написать код программы, подбирающей магический квадрат 5х5 перебором? - VBA

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Прошу помощи. Не знаю, как написать код программы, подбирающей магический квадрат 5х5 перебором для VBA. Помогите, пожалуйста. Есть наработки ниже
ПРОГРАММА ПОСТРОЕНИЯ МАГИЧЕСКИХ КВАДРАТОВ Разработанная программа на языке Turbo Pascal позволяет строить магические квадраты любой четности при n≤19. Можно брать и большие значения n, но при n>19 квадрат не помещается на экране монитора). http://levvol.ru/ar2.php
null

Alex77755

, покажите нам новичкам, пожалуйста, как задать кодом построение магического квадрата для VBA. Блесните познаниями, если они есть. Достаточно схемы для матрицы 3х3. Остальное будет по аналогии. Согласно сумме арифметической прогрессии, определяем сумму ряда (столбца, строки и диагонали) для каждой размерности: • Матрица 2х2: ((1 + 4) * 4/2)/2 = 2,5 (не целое) — построить магический квадрат нельзя! • Матрица 3х3: ((1 + 9) * 9/2)/3 = 15 — построить магический квадрат можно! • Матрица 4х4: ((1 + 16) * 16/2)/4 = 34 — построить магический квадрат можно! • Матрица 5х5: ((1 + 25) * 25/2)/5 = 65 — построить магический квадрат можно! • Матрица 6х6: ((1 + 36) * 36/2)/6 = 111— построить магический квадрат можно! • И т. п. и т. д.

Решение задачи: «Как написать код программы, подбирающей магический квадрат 5х5 перебором?»

textual
Листинг программы
Function Create_Magic(n As Integer) As Integer()
Dim R() As Integer
 
    ReDim R(0 To n - 1, 0 To n - 1) As Integer
    
    ss% = (n - 1) \ 2
    nn% = 1
    
    For i% = 0 To (n - 1)
        For j% = 0 To n - 1
            X% = (-ss% + i% + j% + n) Mod n
            y% = (ss% + i% - j% + n) Mod n
            R(X%, y%) = nn
            nn = nn + 1
        Next j%
    Next i%
    
    Create_Magic = R
 
End Function
 
Sub Test()
Dim X() As Integer
 
    X = Create_Magic(5)
    
    For i% = 0 To 4
        For j% = 0 To 4
            Cells(i% + 1, j% + 1).Value = X(i%, j%)
        Next j%
    Next i%
 
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5
Похожие ответы