Дорогие друзья, у меня возникла такая проблема. Я написал код для VBA, но потом возникла небольшая проблема. Этот код нужно перевести на язык Scilab. Я вообще не знаком с этим языком . Нужно перевести без графических элементом, а с простым расчетом данных.
Если это важно, то задача звучит так:Минимум ферзей. Составить программу определения наименьшего числа ферзей, которые можно расставить на доске так, чтобы они держали под боем все ее свободные поля. Очень надеюсь на вашу помощь. Заранее безгранично благодарен!
А вот и сам код:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim c As Range, x&, y&, x0&, y0&
With Range("A1:H8")
If Intersect(Target, .Cells) Is Nothing Then Exit Sub
Cancel = True
If Target = "" Then Target = "W" Else Target = ""
.Interior.ColorIndex = xlColorIndexNone
On Error GoTo ex_
For Each c In .SpecialCells(xlCellTypeConstants)
x0 = c.Row
y0 = c.Column
.Rows(x0).Interior.ColorIndex = 5
.Columns(y0).Interior.ColorIndex = 5
For x = 1 To 8
y = x - x0 + y0
If y > 0 And y < 9 Then Cells(x, y).Interior.ColorIndex = 5
y = x0 - x + y0
If y > 0 And y < 9 Then Cells(x, y).Interior.ColorIndex = 5
Next
Next
End With
exx_: Exit Sub
ex_: Resume exx_
End Sub
Ответить
|