Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2009, 21:21   #1
Faithlessguy
Новичок
Джуниор
 
Регистрация: 13.05.2009
Сообщений: 2
По умолчанию Из С или С++ в С#?

Подскажите пожалуйста, есть программа, которую очень нужно переделать в С# ) Сама она выглядит вот так (найдено в древней книжке =))

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define RND ((float)rand()/32768.0)
//Функция lg() -> ln(x)
float lg(void)
{ float x, ARG=1e-6;
X=RND; if (x<ARG) x+=ARG;
return log(x);
}
void main()
{
int n[2], np[2], nm[2], nmax, I, j, pp;
float ns[2], nss, TP[2], TW[2], TM, tp[2], tw, t, ts, dt;
static float tqq, tqs[2],tss,tq[2],tqm,st[100] [2],sum[2];
FILE *fp;
fp=fopen(“system.txt”,”w”);
//Ввод варианта моделирования
for (i=o;i<2;i++)
{
printf(“введите TP[%d} : “,i);
scanf (“%f”,&TP[i]);
printf(“введите TW[%d} : “,i);
scanf (“%f”,&TW[i]);
}
printf (“введите время моделирования TW:”)
scanf(“%f”,&TM);
//Печать варианта моделирования
fprintf (fp,”\n\n\t\t ИСХОДНЫЕ ДАННЫЕ “);
fprintf (fp,”\n Интервал времени между заявками: TP[0]=%4.2f”
“TP[1]=4.2f”,TP[0],TP[1]);
fprintf (fp,”\n Среднее время выполнения заявок : TW[0]=%4.2f”
“TW[1]=4.2f”,TW[0],TW[1]);
fprintf (fp,”\n Время моделирования: TM[0]=%6.1f”, TM);
fprintf (fp,”\n\n\t\t РЕЗУЛЬТАТЫ МОДЕЛИРОВАНИЯ “);
// Моделирование а)простая очередь, б) приоритетная очередь
for (pp=0;pp<2;pp++)
{ srand(2501); //инициализация модели
for (j=0;j<2;j++)
{
tp[j]=-TP[j]*lg();
np[j]=n[j]=nm[j]=0;
sum[j]=tq[j]=0.0;
}
t=0.0; tw=TM; nmax=0;
//основной цикл
while (t<TM)
{
if (tp[0]>tp[1]) j=1; //событие
else j=0;
if (tp[j]>tw) ts=tw;
else ts=tp[j];
dt=ts-t; t=ts;
//подведение итогов
for (i=0;i<2;i++)
{
sum[i]+=dt*n[i];
if (n[i]>nm[i]) nm[i]=n[i];
}
if (n[0]+n[1]>nmax)
nmax=n[0]+n[1];
//какое событие?
if (ts==tp[j]) //новая заявка
{
tp[j]-=TP[j]*lg(); np[j]++;
if (tw==TM) tw=t-TW[j]*lg();
else
{
if (n[j]==99)
{
fprintf (fp,”\n очередь переполнена!”);
goto end;
}
st[n[j]++] [j]=t;
}
continue;
}
else //заявка выполнена
{
if (n[0]==0&&n[1]==0) //очередь пуста
{ tw=TM; continue;}
//очередь не пуста, выбираем номер очереди
if (n[0]==0) j=1;
else if(n[1]==0) j=o;
else if(pp) j=0;
else if (st[0][0]<st[0][1]) j=0;
else j=1;
tqq=t-st[0][j]; //время ожидания
if (tqq>tq[j]);
tq[j]=tqq;
tw=t-TW[j]*lg();
for (i=1;i<n[j];i++)
st[i-1][j]=st[i][i]; //сдвиг очереди
n[j]--;
}
}//конец основного цикла
// обработка результатов моделирования
for (j=0;j<2;j++)
{
tqs[j]=sum[j]/np[j];
ns[j]=sum[j]/TM;
}
tss=sum[0]+sum[1])/(np[0]+np[1]);
nss=(sum[0]+sum[1])/TM;
tqm=tq[0]>tq[1]? tq[0]:tq[1];
//печать результатов моделирования
if (pp==0) fprintf (fp,”\n простая очередь”);
else fprintf (fp,”\n\t Приоритетная очередь”);
fprintf (fp,”\n время ожидания”);
fprintf (fp,”\n среднее[0]=%5.2f среднее[1]=%5.2f”
“ среднее=%5.2f”, tqs[0], tqs[1],tss);
fprintf (fp,”\n max [0]=%5.2f max[1]=%5.2f”
“ max=%5.2f”, tq[0], tq[1],tqm);
fprintf (fp,”\n длина очереди: “);
fprintf (fp,”\n средняя[0]=%5.2f средняя[1]=%5.2f”
“ средняя=%5.2f”, ns [0], ns[1],nss);
fprintf (fp,”\n max [0]=%2d max[1]=%2d”
“ max=%2d”, nm[0], nm[1],nmax);
}//конец цикла по типу очереди
end:
fclose(fp);



Хочется получить то же самое, но в С#, кто нибудь подскажет как это можно попроще сделать?
Faithlessguy вне форума Ответить с цитированием
Старый 13.05.2009, 22:57   #2
Faithlessguy
Новичок
Джуниор
 
Регистрация: 13.05.2009
Сообщений: 2
По умолчанию

Совсем никто не может помочь? -(
Faithlessguy вне форума Ответить с цитированием
Старый 13.05.2009, 23:15   #3
ben95
Новичок
Джуниор
 
Аватар для ben95
 
Регистрация: 22.12.2007
Сообщений: 204
По умолчанию

ПОМОГУ ОБЪЕСНИТЬ ПО СМЫСЛУ КАЖДУЮ СТРОЧКУ ПРОГРАММЫ
Пример:
Код:
#include <stdlib.h>//подключение библиотеки с функцией printf
#include <conio.h>//подключение библиотеки с getch
void main()// тело функции
{
printf("Привет"):// Вывод на экран надписи "Привет".
getch();//программа не закроется после выполнения
}

Последний раз редактировалось ben95; 13.05.2009 в 23:19.
ben95 вне форума Ответить с цитированием
Старый 13.05.2009, 23:32   #4
ben95
Новичок
Джуниор
 
Аватар для ben95
 
Регистрация: 22.12.2007
Сообщений: 204
По умолчанию

Код:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define RND ((float)rand()/32768.0)
//Функция lg() -> ln(x)
float lg(void)
{ float x, ARG=1e-6;
X=RND; if (x<ARG) x+=ARG;
return log(x);
}
void main()
{
int n[2], np[2], nm[2], nmax, I, j, pp;//3 одномерных массива и три переменные целого типа
float ns[2], nss, TP[2], TW[2], TM, tp[2], tw, t, ts, dt;//3 од.м 6 переменных с плавающий точкой пример (2,3)
static float tqq, tqs[2],tss,tq[2],tqm,st[100] [2],sum[2];
FILE *fp;//переменная файла
fp=fopen(“system.txt”,”w”);//  создаётся файл переменная для записи файл 
//Ввод варианта моделирования
for (i=o;i<2;i++)//цикл пока переменная i <2 цикл работает(3 оборота)
{
printf(“введите TP[%d} : “,i);// вывод на экран теста …….
scanf (“%f”,&TP[i]);//считывание в масив ТР и i+1
printf(“введите TW[%d} : “,i); //вывод на экран теста …….
scanf (“%f”,&TW[i]); //считывание в масив ТW i+1
}//цикл закончен.
printf (“введите время моделирования TW:”)// вывод на экран теста …
scanf(“%f”,&TM);//считывание переменной
//Печать варианта моделирования
fprintf (fp,”\n\n\t\t ИСХОДНЫЕ ДАННЫЕ “)//запись в файл
fprintf (fp,”\n Интервал времени между заявками: TP[0]=%4.2f”
“TP[1]=4.2f”,TP[0],TP[1]); //запись в файл
fprintf (fp,”\n Среднее время выполнения заявок : TW[0]=%4.2f”
“TW[1]=4.2f”,TW[0],TW[1]); //запись в файл
fprintf (fp,”\n Время моделирования: TM[0]=%6.1f”, TM); //запись в файл
fprintf (fp,”\n\n\t\t РЕЗУЛЬТАТЫ МОДЕЛИРОВАНИЯ “);//запись в файл
Продолжение следует
ben95 вне форума Ответить с цитированием
Старый 14.05.2009, 00:10   #5
ben95
Новичок
Джуниор
 
Аватар для ben95
 
Регистрация: 22.12.2007
Сообщений: 204
По умолчанию

Кстате чем C++ исходник не устаивает?
ben95 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конвертер из png в jpg или gif или bmp Квэнди Мультимедиа в Delphi 8 04.10.2011 22:26
C++ или С# r2n Фриланс 2 17.02.2009 11:32
Метод Монте-Карло литература или примеры программ на С++ или С MIKI Помощь студентам 2 09.12.2008 13:33
Требуется программист Delphi или VB или C#. Анна Долбилина Фриланс 11 04.08.2008 10:04