Иллюстрированный самоучитель по Mathematica 5

Факторизация целых чисел с помощью функции FactorInteger. Факторизация чисел Мерсенна.

Style = vbYesNo + vbCritical + vbDefaultButton2' Кнопки
Title = "Очередной множитель: степень простого"
'Заголовок окна
Response = vbYes ' Пока ошибки не обнаружены
' Selection.MoveRight Unit: = wdCharacter, Count: = 1,
Extend: = wdExtend strTemp = Selection.Text
' Выбираем очередной символ If strTemp = "{" Then
' Если открывающая скобка - начало множителя
Selection.Delete Unit: = wdCharacter, Count: = 1
' Скобку удаляем Selection.MoveRight Unit: = wdWord,
Count: = l, Extend: = wdExtend Selection.MoveRight
Unit: = wdCharacter,
Count: = 1 ' Основание Selection.MoveRight Unit: = wdWord,
Count: = 1, Extend: = wdExtend strTemp = Selection.Text
' Основание отделяется, от показателя
If strTemp = "," Then
' Разделитель нашли PowExp
' Обрабатываем показатель
Selection.MoveRight Unit: = wdCharacter, Count: = 1, Extend: = wdExtend
strTemp = Selection.Text
' Этот символ завершает множитель
If strTemp = "}"
Then ' Это должна быть закрывающая скобка
Selection.Delete Unit: = wdCharacter, Count: = 1
' удалить ее Else
' Но ведь в конце же должна быть закрывающая скобка
Response = MsgBox("***0шибка в сомножителе: нет }... " + Msg, Style, Title)
If Response = vbYes Then
' Пользователь выбрал Yes (Да)
MyString = "Yes" ' Запомним, что выбрал пользователь
Else ' Пользователь выбрал No (Нет)
MyString = "No"
' Запомним, что выбрал пользователь
End If End If Else ' Иначе - а где же запятая?
Response = MsgBox("***0шибка в сомножителе: нет,... " + Msg, Style, Title) If Response = vbYes Then
' Пользователь выбрал Yes (Да)
MyString = "Yes"
'Запомним, что выбрал пользователь
Else ' Пользователь выбрал No (Нет)
MyString = "No" ' Запомним, что выбрал пользователь
End If End If
Else ' Иначе - а где же открывающая скобка?
Response = MsgBox("***0шибка в сомножителе: нет {... " + Msg, Style, Title) If Response = vbYes
Then ' Пользователь выбрал Yes (Да)
MyString = "Yes"' Запомним, что выбрал пользователь
Else ' Пользователь выбрал No (Нет)
MyString = "No" ' Запомним, что выбрал пользователь End If
End If
Multiplier = Response
End Function
Sub PowExp()
  
' Обработка показателя
  
Dim strTemp As String
Selection.Delete Unit: = wdCharacter, Count: = 1
' Удаляем символ Selection.MoveRight Unit: = wdWord,
Count: = 1, Extend: = wdExtend strTemp = Selection.Text
' Это и есть показатель If strTemp = "1"
Then ' Если показатель равен 1
Selection.Delete Unit: = wdCharacter, Count: = 1
' Удаляем его
Else ' В противном случае форматируем его как надстрочный
With Selection.Font
.Superscript = True 'Надстрочный
End With Selection.MoveRight
Unit: = wdCharacter, Count: = 1
Selection.Font.Reset 'Восстановить стиль
End If End Sub
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.