Перевод из Pascal в VBA (написать макрос)
Формулировка задачи:
Здравствуйте. Я только знакомлюсь с языком VBA. Мне нужно написать макрос, который будет раскладывать заданное число N на простые множители. Я начал писать макрос сам, но запутался, не понимаю как нужно работать с ячейками на листе. Пожалуйста помогите разобраться с excel'ем!
Вот мой код на языке Pascal:
Листинг программы
- procedure factorize(n: longint);
- var
- divisor: longint;
- begin
- divisor := 2;
- while divisor * divisor <= n do
- if n mod divisor = 0 then begin
- n := n div divisor;
- writeln(divisor);
- end
- else
- inc(divisor);
- if n <> 1 then
- writeln(n);
- end;
- var
- n: longint;
- begin
- readln(n);
- factorize(n);
- end.
Решение задачи: «Перевод из Pascal в VBA (написать макрос)»
textual
Листинг программы
- Sub main()
- n$ = 595
- MsgBox PrimeFact(n), , n & "="
- End Sub
- Function PrimeFact$(s$) 'число передается в виде текстовой строки, т.к. тип Double не может содкржать более 15 значащих цифр
- Dim i&, txt$, n
- n = CDec(s)
- i = 2
- While CDec(i) * i <= n
- If Fix(n / i) <> n / i Then
- If i = 2 Then i = i + 1 Else i = i + 2
- Else
- n = Fix(n / i)
- txt = txt & "*" & i
- End If
- Wend
- If txt = "" Then PrimeFact = "Prime" Else PrimeFact = Mid$(txt, 2) & "*" & n
- End Function
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д