Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
6 / 6 / 1
Регистрация: 03.06.2012
Сообщений: 73

Перевести из С++ в C#

14.10.2013, 13:20. Показов 1165. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Знающие люди, помогите. Имеется код на С++, под C# WinForms переделал, но не пойму как переделать эту строку.
C#
1
x=(double)rand()*O/RAND_MAX; y=(double)rand()*O/RAND_MAX;
RAND_MAX вручную задал равным 32767. Ругается только на rand().
Насколько я знаю в С++ rand() - генератор псевдослучайных чисел от 0 до RAND_MAX
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.10.2013, 13:20
Ответы с готовыми решениями:

Перевести фиолетовый (105, 62, 151) из RGB в HSB, уменьшить яркость в 2 раза и перевести обратно
Помогите пожалуйста! Перевести фиолетовый (105, 62, 151) из RGB в HSB, уменьшить яркость в 2 раза и перевести обратно

QString перевести в char* || QChar перевести в char*
Подскажите пожалуйста как сделать: Исходники в utf-8, qt4.8 setlocale(LC_ALL, "Russian"); QTextCodec *wincodec =...

Как презентации SWF флэш сайта перевести в HTML5 с сохранением эфектов ) Как правильно и полноценно Перевести SWF в HTML5
программа Sothink SWF Decompiler конвертирует SWF файл в HTML5 разбивая его на HTML и JS ...но она тянет только файл 15kb ...это очень...

6
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
14.10.2013, 13:27
Используйте класс Random для генерации случайных чисел.
1
145 / 45 / 16
Регистрация: 10.10.2013
Сообщений: 110
14.10.2013, 15:03
Реализация

C#
1
2
3
4
5
6
7
8
9
10
11
12
 static void Main(string[] args)
        {
            Random rand = new Random(unchecked((int)DateTime.Now.Ticks));
 
            int int_max = 32767;
            double x = rand.Next(int_max);
            double y = rand.Next(int_max);
 
            Console.WriteLine(" x = {0} ; y =  {1} \n",x,y);
 
            Console.ReadLine();
        }
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9673 / 4825 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
14.10.2013, 15:40
Цитата Сообщение от Courage Посмотреть сообщение
C#
1
Random rand = new Random(unchecked((int)DateTime.Now.Ticks));

C#
1
Random rand = new Random(DateTime.Now.Millisecond);
Вместо ручного задания 32767 можно использовать встроенную Int16.MaxValue
1
145 / 45 / 16
Регистрация: 10.10.2013
Сообщений: 110
14.10.2013, 15:48
Цитата Сообщение от tezaurismosis Посмотреть сообщение
C#
1
Random(unchecked((int)DateTime.Now.Ticks))
Так каша гуще получается и число вкуснее случайное будет
Цитата Сообщение от tezaurismosis Посмотреть сообщение
Вместо ручного задания 32767 можно использовать встроенную Int16.MaxValue
Можно но это тоже дело вкуса ,константой нагляднее и понятнее , имхо ,а то что Int16.MaxValue = 32767 это еще тоже знать надо .
0
14.10.2013, 15:57

Не по теме:

Цитата Сообщение от Courage Посмотреть сообщение
Можно но это тоже дело вкуса ,константой нагляднее и понятнее
Забыли написать что так 32767 вкуснее будет :D

1
6 / 6 / 1
Регистрация: 03.06.2012
Сообщений: 73
14.10.2013, 18:34  [ТС]
Всем спасибо. Особенно понравился вариант Random rand = new Random(unchecked((int)DateTime.Now.Ticks ));
надо будет попробовать

Добавлено через 23 минуты
Вопрос не по теме. Как в методе Монте-Карло посчитать площадь треугольника?
Вот как это пытался сделать я, но даже при большом количестве точек погрешность примерно 25%
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace Kursach
{
    public partial class Form1 : Form
    {        
        public Form1()
        {
            InitializeComponent();
            numericUpDown1.Minimum = 1;
            numericUpDown1.Maximum = 100;
            numericUpDown1.TabStop = false;
 
            numericUpDown2.Minimum = 1;
            numericUpDown2.Maximum = 100;
            numericUpDown2.TabStop = false;
 
            numericUpDown3.Minimum = 10;
            numericUpDown3.Maximum = 1000000000;
            numericUpDown3.TabStop = false;
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            label6.Visible = false;
            label7.Visible = false;
            label9.Visible = false;
            timer1.Enabled = false; ;
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            label10.Text = "00:00";
            timer1.Enabled = true;
 
            Random rand = new Random();
 
            double O, V, a, x, y, S, S0, delta;
            int n, m, i, nMax;
            double RAND_MAX = 32767.0;
 
            O = Convert.ToInt32(numericUpDown1.Value);
            V = Convert.ToInt32(numericUpDown2.Value);
            nMax = Convert.ToInt32(numericUpDown3.Value);
           
            n = 0; //точек, попавших в фигуру
            m = 0; //всего точек
 
            //где-то в цикле, возможно, есть ошибка
            for (i = 1; i <= nMax; i++)
            {                
                x = rand.Next(32767) * O / RAND_MAX;
                y = rand.Next(32767) * O / RAND_MAX;
                if (x + y <= O)
                {
                    n++;
                    if (y <= V) m++;
                }
            }
 
            //точная площадь прямоугольника. треугольник вписан в прямоугольник
            //a = O / 2;
            S0 = O * V;
            label7.Visible = true;
            label7.Text = Convert.ToString(S0);
 
            //площадь треугольника по методу Монте-Карло            
            S = S0 * m / n;
            label6.Visible = true;
            label6.Text = Convert.ToString(S);
                        
            //погрешность
            label9.Visible = true;
            delta = (S0 - S) / S0 * 100;
            label9.Text = Convert.ToString(delta) + " %";
            //timer1.Stop();
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
            //double Time;
            //Time = 0;
            //Time += 0.001 * timer1.Interval;
            //label10.Text = String.Format("{0:F3}", Time + " секунд");
        }
 
    }
}

Вот сам проект http://yadi.sk/d/yZsMwSVxAvLZ4
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.10.2013, 18:34
Помогаю со студенческими работами здесь

Текстовый файл перевести в двоичный, а потом полученный двоичный файл перевести обратно в текстовый
Всем привет. Есть такая задачка: &quot;текстовый файл перевести в двоичный, а потом полученный двоичный файл перевести обратно в текстовый&quot;...

Перевести из c++ в си
#include&lt;iostream&gt; using namespace std; int main(){ float a, sum=0, proiz=1; int i,j,n,k,l; cout&lt;&lt;&quot;Vvedite elementy...

Перевести с VB в C#
Народ помогите плз переделать в c# код. Этот код, при выделении ряда в datagride, отображает данные вроде как в label с выделенного ряда....

Перевести из С++ в Си
Заранее спасибо) #include &lt;iostream&gt; #include &lt;algorithm&gt; #include &lt;ctime&gt; #include &lt;cstdlib&gt; using namespace std; int...

Перевести в C#
Помогите перевести в C# implementation var t,p,a,tn,tk:real; e,k:integer; h,sw:array of real; procedure...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru