درخواست راهنمایی

a_saeide

New Member
سلام من توی تابع Task_Generation میخوام با هر بار اجرا شدنش A, P, S مقدار رو برگردونه باید چه کاری انجام بدم هم در تابع main و هم در تابع Task_Generation
int main()
{
int j; // j denotes the index of processor
int i,RO;
int lost[1000];
int number;
int numberOfProcessors=0;
int tasksPeriods[1000];
double alpha;
int start_time , end_time , MTTF;
double UB; /* UB denotes backup utilization */
// double lost_sum, lost_average;
fstream wf;
wf.open(
"D:/writefile.txt",ios::eek:ut);
fstream wft;
wft.open(
"D:/writeTasks.txt",ios::in);
 
 
for(alpha=0.1;alpha<=0.1;alpha+=0.05)
{
//for a
 
 
int num=100;
number=200;
RO=1;
j =0;
start_time = 0;
MTTF = 5;
UB = 0;
for (i=0; i<1000; i++)
{
lost=0;
black_list=-1;
}
for(number;number<=200;number+=num)
{
end_time = LCM;
initial_Processors(LCM);
numberOfProcessors=assignTaskToProessors( number);
//assign created tasks to processors
wf<<"alpha= "<<alpha<<" MTTF= "<<MTTF<< " "<< "lcm="<< LCM<< "\n";
wf<<
" number task= "<<number<<" "<<" number of proc= "<<numberOfProcessors<<"\n";
cout<<
"alpha= "<<alpha<<" MTTF= "<<MTTF<< " "<< "lcm="<< LCM<< "\n";
cout<<
" number task= "<<number<<" "<<" number of proc= "<<numberOfProcessors<<"\n";
}
 
 
initial_time_of_faults();
for(int pCount=0;pCount<numberOfProcessors;pCount++)
{
Fault_Generation( end_time , MTTF, pCount);
}
Schedule_tasks (start_time ,end_time , numberOfProcessors );
BackupCount=0;
}
//for a
 
// cout<<"\nreserved= "<<reserved_time<<"\n";
int ch2;
cout<<
"enter ch2: ";
cin>>ch2;
for(int i=0;i<1000;i++)
//wf<<black_list<<"---";
wf.close();
wft.close();
//wff.close();
return 0;
}






int Task_Generation(double alpha, int number,long int LCM)
{
double r; /* random value in range [0,1) */
long int M=50; /* user supplied upper boundary */
int a,p,s ; /* n denotes index and number of tasks */
double p,c; /* p denotes period that generated and c denotes computation time generated*/
double d ; /* d denotes deadline */
double u ; /* u denotes utilization of task */
double U ; /* U denotes utlization of processor */
double v;
 
srand((
unsigned) time(NULL)); /*initialize random number generator*/
/* Choose M. Upper bound */
p=0;
a=0;
s=0;
for(int counter=0;counter<number;counter++)
{
srand (time(NULL));
double x= typetask ( 0,1,2);
if (x==0)
{
r = ( (
double)rand() / (double)(RAND_MAX+1) ); /* r is a random value in the range [0,1) */
double p = (r * M); /* p is a random value in the range [0,M) */
p =(
int) p + 1 ;
if(p>M)
p=M;
p++;
}
else if (x==1)
{
 
double landa = ( (double)rand() / (double)(RAND_MAX+1) ); /* r is a random value in the range [0,1) */
landa = (landa * LCM);
/* p is a random value in the range [0,M) */
landa =(
int) landa + 1 ;
p=landa;
a++;
}
else
{
p=LCM;
s++;
}
 
 
int d=p; /* deadline = period */
//r = ( (double)rand() / (double)(RAND_MAX+1) );
double c = (double)p*alpha; /* c is a random value in the range [0,M) */
c=(
int)c+1;
double u= c/p;
double z=2.0;
double v=((log10((double) T[counter].p)/log10(z))- floor((log10((double) T[counter].p)/log10(z))));
Ready_Task( p, d, c, u, v, counter);
}
/* for*/
}
 

the_king

مدیرکل انجمن
سلام من توی تابع Task_Generation میخوام با هر بار اجرا شدنش A, P, S مقدار رو برگردونه باید چه کاری انجام بدم هم در تابع main و هم در تابع Task_Generation
مقدار به چی برگردونه؟ متغیر محلی تابع ئه. علاوه بر اینکه کد ناقصه، موقع درج کردن کد بین تگ های مناسب مثل (
c++.png
) قرارش ندادید و حروف کوچک و بزرگ متغیر ها ریخته بهم.
 

a_saeide

New Member
توی تابع main مقدار برگردونه مثلا بریزش توی یه ارایه ولی نمیدونم دقیقا باید چیکار کنم که همچین خروجی بده
 

a_saeide

New Member
و اینگهاین مال یه قطعه کد 2000 خطی بقیشو چون زیاد بود نذاشتم
 

the_king

مدیرکل انجمن
توی تابع main مقدار برگردونه مثلا بریزش توی یه ارایه ولی نمیدونم دقیقا باید چیکار کنم که همچین خروجی بده

شما خارج از بدنه اون تابع Task_Generation، یعنی داخل main یا قبل از main آرایه ها و یک شماره اندیس تعریف کنید :
کد:
int array_a[10], array_p[10], array_s[10], index = 0;

و جایی که مقادیر جدیدی برای ثبت شدن در آرایه ها وجود داره، اول مقادیر داخل آرایه ها رو بنویسید و سپس یکبار اندیس رو افزایش بدهید :
کد:
	array_a[index] = ... ;
	array_p[index] = ... ;
	array_s[index] = ... ;
	index++;

در نهایت همیشه index تعداد مقادیر ثبت شده است.
 

جدیدترین ارسال ها

بالا