|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
08.12.2008, 02:48 | #11 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
А кому «магические квадраты»?
Option Base 1
Sub MagicalMatrix() 'печать строк чисел от 1 до N в виде таблицы Const N = 11 'при простом N получаем «магический квадрат» Dim m() ReDim m(N, N) Dim i As Byte, j As Byte, k As Byte Dim cap As Variant 'НАДстоящий элемент матрицы Dim even As Boolean ' = истине, когда N чётное ActiveWindow.ActivePane.View.ShowAl l = False 'скрыли непечатаемые знаки (абзацы, табуляторы и пр.) If MsgBox("Печать «матрицы» " & N & "*" & N & " из " & _ N & " различных чисел.", vbYesNo) = vbNo Then Exit Sub even = (N Mod 2 = 0) With Selection .HomeKey unit:=wdStory 'соответствует <Ctrl>+<Home> For j = 1 To N: m(1, j) = j: .TypeText m(1, j) & vbTab: Next j .TypeBackspace: .TypeParagraph For i = 2 To N For j = 1 To N cap = m(i - 1, j) m(i, j) = cap + 2 + N * (cap > N - 2 - even) + even 'здесь, как и в почившем FORTH, Истина=–1, а Ложь — нулю If N = 2 Then m(i, 1) = 2: m(i, 2) = 1: Exit For Next j For k = 1 To N: .TypeText m(i, k) & vbTab: Next k .TypeBackspace .TypeParagraph Next i .HomeKey unit:=wdStory, Extend:=wdExtend 'то же, что <Ctrl>+<Shift>+<Home> .ConvertToTable 'преобразует выделенный текст в таблицу .HomeKey 'курсор - к началу выделения End With SendKeys "{enter}", True 'ввод <ENTER> (для корректного продолжения) 'SendKeys выполняется только в активном окне (кроме окна программы) End Sub
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
Последний раз редактировалось Sasha_Smirnov; 08.12.2008 в 12:03. Причина: учёт чётности N. |
09.12.2008, 07:31 | #12 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
Как и просили!
Sub MagicalMatrixRandom()
'печать строк чисел от 1 до N в виде случайной таблицы Const N = 4 'а при простом N получаем «магический квадрат» Dim m() ReDim m(N, N) Dim i As Byte, j As Byte, k As Byte, R As Long Dim cap As Variant 'НАДстоящий элемент матрицы Dim even As Boolean ' равно Истине, когда N чётное If MsgBox("Печать «матрицы» " & N & "*" & N & " из " & _ N & " различных чисел.", vbYesNo) = vbNo Then Exit Sub even = (N Mod 2 = 0) R = Int((N - 1) * Rnd) 'случайное целое число из отрезка [0;N–1] With Selection .HomeKey unit:=wdStory 'соответствует <Ctrl>+<Home> For j = 1 To N m(1, j) = R + j + (R + j > N) * N 'ряд чисел первой строки .TypeText m(1, j) & vbTab Next j .TypeBackspace: .TypeParagraph For i = 2 To N For j = 1 To N cap = m(i - 1, j) m(i, j) = cap + 2 + N * (cap > N - 2 - even) + even 'здесь использовано то, что в VBA Истина=–1, а Ложь — нулю If N = 2 Then m(i, 1) = 2: m(i, 2) = 1: Exit For Next j For k = 1 To N: .TypeText m(i, k) & vbTab: Next k .TypeBackspace .TypeParagraph Next i .HomeKey unit:=wdStory, Extend:=wdExtend 'то же, что <Ctrl>+<Shift>+<Home> на клавишах .ConvertToTable 'преобразует выделенный текст в таблицу .HomeKey 'курсор - к началу выделения End With SendKeys "{enter}", True 'ввод <ENTER> End Sub
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
Последний раз редактировалось Sasha_Smirnov; 09.12.2008 в 07:33. Причина: шрифт. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сложить матрицу... | Zibiv | Помощь студентам | 7 | 19.05.2009 15:51 |
Задача на матрицу. | Fest | Помощь студентам | 2 | 16.12.2007 05:54 |
Задачка на матрицу. | Саня895 | Помощь студентам | 1 | 11.12.2007 08:45 |
Как посчитать матрицу? | RECREATOR | Помощь студентам | 8 | 30.11.2007 07:10 |