Переделать код с си++ на Visual basic - VB
Формулировка задачи:
Здравствуйте! У меня есть программа, создающая генератор случайных чисел, но она написана на языке си++. Помогите пожалуйста переделать в Visual Basic!
Листинг программы
- #include <iostream>
- #include <time.h>
- using namespace std;
- // начальное значение
- int x0=1;
- // функция генерации случайных чисел
- int rnd(void)
- {
- // некоторые целые параметры
- long int m=429496, a=214013, c =25310;
- // x объявляется статической переменной
- static long int x = x0;
- // формула линейного конгруэнтного метода
- x = ((a * x) + c) % m;
- x0 = x;
- return x;
- }
- // функция изменяет начальное значение, присваивая ему другую величину, получаемую функцией в качестве аргумента.
- void srnd(unsigned int seed)
- {
- x0 = seed;
- }
- int main()
- {
- int m;
- srnd(time(NULL)); // в функцию передается системное время в секундах
- m=rnd()%201-100;
- cout<<m<<endl;
- system("PAUSE");
- return 0;
- }
Решение задачи: «Переделать код с си++ на Visual basic»
textual
Листинг программы
- Option Explicit
- Dim x0 As Long
- Private Function Random() As Long
- Dim M As Double, A As Double, C As Double
- Static x As Double
- x = x0
- M = 429496: A = 214013: C = 25310
- x = rMod(((A * x) + C), M)
- x0 = x
- Random = x
- End Function
- Public Function rMod(ByVal Op1 As Double, ByVal Op2 As Double) As Double ' Возвращает остаток от деления одного указанного числа на другое указанное число.
- rMod = (Abs(Op1) - (Abs(Op2) * (Int(Abs(Op1) / Abs(Op2))))) * Sgn(Op1)
- End Function
- Private Sub SRnd(ByVal Seed As Long)
- x0 = Seed
- End Sub
- Private Sub Form_Load()
- Dim M As Long
- x0 = 1
- SRnd (Timer)
- M = Random() Mod 201 - 100
- MsgBox M
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д