نوشتن کد زیر در سی شارپ که به زبان سی پلاس نوشته شده
سلام من میخام این کد رو به سی شارپ بنویسم.
اما از جنریتور های تبدیل کننده که استفاده کردم نشد ونتیجه نداد.
میشه این رو به سی شارپ تبدیل کنید؟
#include "stdafx.h"
#include "math.h"
#include "cstdlib"
using namespace std;
double *c = new double[50];
int main()
{
srand(100);
double s = 0, Nstep = 0;
for (int i = 0; i < s; i++)
c[i] = 0;
scanf_s("%lf %lf", &s, &Nstep);
double A = 0;
bool sw;
double AB = 0;
int k = 0;
for (int i = 0; i < Nstep; i++)
{
double IA = -(1 / 4)*(log((double)(1 - (rand() % 100) / 100.0)) / log(2.718281828));
A = A + IA;
int j = 0;
sw = false;
while (A < c[j])
{
j++;
if (j == s) { k++; sw = true; break; };
}
if (sw)
continue;
double X = -(2.4)*(log((double)(1 - (rand() % 100) / 100.0)) / log(2.718281828));
c[j] = A + X;
double m = c[1];
for (int j = 2; j < s; j++)
{
if (c[j] < m) m = c[j];
}
if (m>A) AB = AB + m - A;
}
printf("%lf \n %lf\n", k / Nstep, AB / A);
return 0;
}
نقل قول: نوشتن کد زیر در سی شارپ که به زبان سی پلاس نوشته شده
درود دوست عزیز.
این برنامه چی کار میکنه؟
من نوشتم ولی نمیدونم درسته یا نه؟
بیشتره وقتا خطا داره.OutOfRange
ولی با مقادیر ورودی s=10 , Nstep=5 کار میکنه.
البته از بعضی کداش سر در نیاوردم حدس زدم چیه، مثلا srand(100) که من تو برنامه خودم تابع رندم رو با next(100) اجرا کردم.
برسیش کن خبر بده
اگر درست نبود بگو درستش کنیم. کنجکاوم بدونم خروجیش چیه.
double s = 0, Nstep = 0;
double[] c = new double[50];
for (int i = 0; i < s; i++)
c[i] = 0;
s = Console.Read();
Nstep = Console.Read();
double A = 0;
bool sw;
double AB = 0;
int k = 0;
Random rand=new Random();
for (int i = 0; i < Nstep; i++)
{
double IA = -(1 / 4) * (Math.Log((double)(1 - (rand.Next(100) % 100) / 100.0)) / Math.Log(2.718281828));
A = A + IA;
int j = 0;
sw = false;
while (A < c[j])
{
j++;
if (j == s) { k++; sw = true; break; };
}
if (sw)
continue;
double X = -(2.4) * (Math.Log((double)(1 - (rand.Next(100) % 100) / 100.0)) / Math.Log(2.718281828));
c[j] = A + X;
double m = c[1];
for (int q = 2; q < s; q++)
{
if (c[q] < m) m = c[q];
}
if (m > A) AB = AB + m - A;
}
Console.WriteLine(k / Nstep);
Console.WriteLine(AB / A);
Console.ReadKey();
نقل قول: نوشتن کد زیر در سی شارپ که به زبان سی پلاس نوشته شده
5 که وارد میکنی خطای otu of renge میگیره و 10 که وارد میکنی مقدار بعدی رو دیگه ازم نمیگیره ...
اما تو خود c داره جواب میده ..... یعنی تو سی که اجراش کردم هر چی بدی بهش خروجی داره .. یعنی تو سی داره دو تا ورودیمیگره و سپس حساب میکنه و بهت دو تا خروجی میده ....
برنامه خودمم نمیدونم چیه یکی ازم خاسته کمکش کنم منم که نمیدونم چیکار میکنه این برنامه ... فردا هم تحویل داره ....
نقل قول: نوشتن کد زیر در سی شارپ که به زبان سی پلاس نوشته شده
درود به شما
ورودی رو 5 10 بده، ورودی اول، یه فاصله ورودی دوم
نقل قول: نوشتن کد زیر در سی شارپ که به زبان سی پلاس نوشته شده
سلام
اول ازش بپرس که این برنامه چی هست
برنامه نوشتن راحت تر از خطا گیریه
به جای Console.Read() بنویس :
((Convert.ToDouble(Console.ReadLine)
((Convert.ToDouble(Console.ReadLine)
نقل قول: نوشتن کد زیر در سی شارپ که به زبان سی پلاس نوشته شده
کمک شما جواب داد فعلا خروجی یه چیزی تومایعات همون کد سی شد...
حالا دیگه نمیدونم درست هست یا نه!!!
================
دوورودی ودو خروجی در سی شارپ
5
10
-----
0.5
infinity
==========================
===========================
دو ورودی و دو خروجی در سی
5
10
----------
0.500000
1.#INF00
==============
دیگر ورودی های دیگه هم میدم تو خروجی هاکه چک کردم درست هست و متشابه با هم...
نمیدونم حالا در کل درسته یانه....