سلام
اگه موقع ارسال پست، "صفحهی پیشرفته" رو بزنید، یه ادیتور پیشرفتهتر میاره که دکمهی # هم داره. اگه کد رو داخل اون تگها بنویسید تمیزتر دیده میشه.
مهم نیست شما کدتون رو بذارید من اونجاش رو درست میکنم خودم.
سلام
برنامه مربوط الگوریتم زمانبندی SRT هست (این قسمت فقط باقیمانده تمام فرآیندها رو تا موقعی که آخرین فرآیند وارد میشه رو حساب میکنه) که این قسمت قرمز رنگ مربوط به پیداکردن کمترین باقیمانده است که نباید مقادیر صفر رو در نظر بگیره.البته درست عمل می کنه.نمی دونم مشکل از کجاست مثلا یه نمونش مثال زیره که باقیمانده فرآیند 2 رو باید 4 جواب بده ولی اشتباه حساب میکنه.امیدوارم برنامه رو داخل کد درست گذاشته باشم.ممنون
مشاهده پیوست Document1.pdf
[#include<stdio.h>
#include<conio.h>
int main()
{
int i,n,j,k,g=0,ft,m,min=0,d[100],b[100],w[100],r[100],t[100],a[100],l[100],e[100],c[100];
clrscr();
printf("\n\n ******* Algoritm of SRT");
printf("\n\n\nplease enter number of process");
scanf("%d",&n);
printf("\nplease enter burst time of %d process \n",n);
for (i=0;i<n;i++)
scanf("%d",&b
);
printf("please enter arrive time of %d process \n",n);
for(i=0;i<n;i++)
scanf("%d",&a);
ft=a[0];
for(i=0;i<n;i++)
{
r=0;
d=0;
e=b;
l=a;
}
j=0;
k=0;
while (j<n-1){
min=e[k];
i=0;
while(i<=j)
{
if(e>0 && e<=e[k])
{
min=e;
m=i;
}
i=i+1;
}
if(m!=k)
l[m]=ft;
k=m;
e[k]=min;
d[k]=a[j+1]-a[j];
if(e[k]>=d[k])
{
e[k]=e[k]-d[k];
ft=ft+d[k];
j=j+1;
k=k+1; }
else
{
ft=ft+e[k];
e[k]=0;
while(g<=a[j+1])
{
i=0,min=0;
while(i<j)
{
if(e>0)
{
min=e;
m=i;
}
i=i+1;
}
if(m!=k)
l[m]=ft;
e[m]=min;
i=0;
while(i<j)
{
if(e>0&&e<=min)
{
min=e;
m=i;
}
i=i+1;
}
f(m!=k)
l[m]=ft;
k=m;
e[k]=min;
d[m]=a[j+1]-ft;
if(e[m]<=d[m])
{
ft=ft+e[m];
e[m]=0;
}
else
{
ft=ft+d[m];
e[m]=e[m]-d[m];
}
g=g+ft;
}
j=j+1;
k=k+1;
}
}
printf("\n\n\n**************after solution");
for(i=0;i<n;i++)
{
printf("\n e[%d]=%d** l[%d]=%d",i,e,i,l);
}
printf("\nj=%d",j);
getch();
return 0;
}
][/CODE]