Ищу примеры интересных и наглядных макросов - VBA

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

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

Ищу интересные наглядные макросы (или задания) для школьников, приблизительно на 5-6 академических часов неспешного решения. Пока самостоятельно придумал только рисование шахматной доски произвольного размера с обводкой ячеек по запросу пользователя (через msgbox). Что бы еще интересного можно предложить? Интересуют в первую очередь задания, решить постараюсь сам)

Решение задачи: «Ищу примеры интересных и наглядных макросов»

textual
Листинг программы
Option Explicit
Const cntQueens = 8 'Количество ферзей (или размер доски)
Dim H(1 To cntQueens) As Integer 'горизонталь для каждого ферзя
Dim chessMap As Range
Dim R As Long
 
Sub Queens()
'Erase H
Cells.Clear
Cells.Font.Size = 36
Cells.HorizontalAlignment = xlCenter
Cells.VerticalAlignment = xlCenter
Cells.RowHeight = 40
Cells.ColumnWidth = 6.86
Cells(1).Activate
R = 1
Решение 1
End Sub
 
Sub Решение(W As Integer)
Dim I As Integer
For H(W) = 1 To cntQueens
  For I = 1 To W - 1
    If H(I) = H(W) Or Abs(H(I) - H(W)) = W - I Then 'ферзи бьют друг друга
      Exit For 'идём вверх, на Next H(W)
    End If
  Next I
  If I = W Then 'ферзи не бьют друг друга
    If W = cntQueens Then 'ферзь последний
      Set chessMap = Range(Cells(R, 1), Cells(R + cntQueens - 1, cntQueens))
      With chessMap
        .Borders(xlEdgeLeft).LineStyle = xlContinuous
        .Borders(xlEdgeTop).LineStyle = xlContinuous
        .Borders(xlEdgeBottom).LineStyle = xlContinuous
        .Borders(xlEdgeRight).LineStyle = xlContinuous
      End With
      For I = 1 To cntQueens
         Cells(cntQueens - H(I) + R, I) = ChrW(9819)
      Next I
      R = R + cntQueens + 1
    Else 'ферзь не последний
      Решение W + 1 'идём к следующему
    End If
  End If
Next H(W)
End Sub

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


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

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

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