Перевод из Pascal в VBA (написать макрос)

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

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

Здравствуйте. Я только знакомлюсь с языком VBA. Мне нужно написать макрос, который будет раскладывать заданное число N на простые множители. Я начал писать макрос сам, но запутался, не понимаю как нужно работать с ячейками на листе. Пожалуйста помогите разобраться с excel'ем! Вот мой код на языке Pascal:
Листинг программы
  1. procedure factorize(n: longint);
  2. var
  3. divisor: longint;
  4. begin
  5. divisor := 2;
  6. while divisor * divisor <= n do
  7. if n mod divisor = 0 then begin
  8. n := n div divisor;
  9. writeln(divisor);
  10. end
  11. else
  12. inc(divisor);
  13. if n <> 1 then
  14. writeln(n);
  15. end;
  16. var
  17. n: longint;
  18. begin
  19. readln(n);
  20. factorize(n);
  21. end.

Решение задачи: «Перевод из Pascal в VBA (написать макрос)»

textual
Листинг программы
  1. Sub main()
  2. n$ = 595
  3. MsgBox PrimeFact(n), , n & "="
  4. End Sub
  5.  
  6. Function PrimeFact$(s$) 'число передается в виде текстовой строки, т.к. тип Double не может содкржать более 15 значащих цифр
  7.    Dim i&, txt$, n
  8.     n = CDec(s)
  9.     i = 2
  10.     While CDec(i) * i <= n
  11.         If Fix(n / i) <> n / i Then
  12.             If i = 2 Then i = i + 1 Else i = i + 2
  13.         Else
  14.             n = Fix(n / i)
  15.             txt = txt & "*" & i
  16.         End If
  17.     Wend
  18.     If txt = "" Then PrimeFact = "Prime" Else PrimeFact = Mid$(txt, 2) & "*" & n
  19. End Function

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


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

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

15   голосов , оценка 4.267 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут