Mời các bạn tham khảo code thuật giải FCFS
Trang 1 trong tổng số 1 trang
Mời các bạn tham khảo code thuật giải FCFS
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#define d 10
#define true 1
#define false 0
typedef unsigned char bool;
int td[100],tc[100],kt[100],cpu[100],p[100],luu[100];
int i,j,tam,min,sum;
bool finish[100];
float tong,kq;
int n;
void dq(int k)
{
int i;
min=1000;
for (i=k;i<=n;i++)
if ((!finish[i])&&(td[i]<min)) min=td[i];
for (i=k;i<=n;i++)
{
if ((td[i]<=tam)&&(!finish[i])&&(td[i]==min))
{
kt[i]=tam+cpu[i];
finish[k]=true;
tam=tam+cpu[i];
sum=sum-cpu[i];
cpu[i]=0;
}
if ((i==n)&&(sum>0)) dq(1);
if(sum==0) exit;
if ((i<=n-1)&&(sum>0)) dq(i+1);
}
if(sum>0) dq(1);
}
void nhap()
{
outtextxy(300,5,"THUAT TOAN FCFS ");
outtextxy(200,20,"Thuc Hien Tran Gia Dung CT12A ");
outtextxy(280,30,"&Tran Van Thieu CT12A ");
printf("so tien trinh N= ");scanf("%d",&n);
gotoxy(2,3); printf("Thoi gian den: ");
for (i=1;i<=n;i++)
{
gotoxy(15+3*i,3);
scanf("%d",&td[i]);
}
gotoxy(2,4); printf("Thoi gian CPU: ");
for (i=1;i<=n;i++)
{
gotoxy(15+3*i,4); scanf("%d",&cpu[i]);
luu[i]=cpu[i];
finish[i]=false;
}
}
void inra()
{
tam=1000;sum=0;
for (i=1;i<=n;i++)
{
sum=sum+cpu[i];
if (td[i]<tam) tam=td[i];
}
dq(1);
gotoxy(4,6); printf("process ");
for (i=1;i<=n;i++)
{
gotoxy(4*i+d,6);printf("P%d",i);
}
gotoxy(4,;printf("Tg cho ");
for (i=1;i<=n;i++)
{
tong=tong+kt[i]-(luu[i]+td[i]);
gotoxy(4*i+d,;printf("%d",kt[i]-(luu[i]+td[i]));
}
gotoxy(37,;printf("\\t===>TGTB= %f",tong/n);
gotoxy(4,10);printf("TG Luu ");
for (i=1;i<=n;i++)
{
gotoxy(4*i+d,10);printf("%d",kt[i]-td[i]);
}
gotoxy(4,12);printf("TGKT ");
for (i=1;i<=n;i++)
{
gotoxy(4*i+d,12); printf("%d",kt[i]);
kq=kt[n];
}
gotoxy(37,12);printf("\\t===>Thong luong= %f",kq/n);
}
void main()
{
clrscr();
nhap();
inra();
getch();
}
/*vi du
6
0 2 5 7 8 10
5 7 8 4 6 3 */
#include<stdio.h>
#include<stdlib.h>
#define d 10
#define true 1
#define false 0
typedef unsigned char bool;
int td[100],tc[100],kt[100],cpu[100],p[100],luu[100];
int i,j,tam,min,sum;
bool finish[100];
float tong,kq;
int n;
void dq(int k)
{
int i;
min=1000;
for (i=k;i<=n;i++)
if ((!finish[i])&&(td[i]<min)) min=td[i];
for (i=k;i<=n;i++)
{
if ((td[i]<=tam)&&(!finish[i])&&(td[i]==min))
{
kt[i]=tam+cpu[i];
finish[k]=true;
tam=tam+cpu[i];
sum=sum-cpu[i];
cpu[i]=0;
}
if ((i==n)&&(sum>0)) dq(1);
if(sum==0) exit;
if ((i<=n-1)&&(sum>0)) dq(i+1);
}
if(sum>0) dq(1);
}
void nhap()
{
outtextxy(300,5,"THUAT TOAN FCFS ");
outtextxy(200,20,"Thuc Hien Tran Gia Dung CT12A ");
outtextxy(280,30,"&Tran Van Thieu CT12A ");
printf("so tien trinh N= ");scanf("%d",&n);
gotoxy(2,3); printf("Thoi gian den: ");
for (i=1;i<=n;i++)
{
gotoxy(15+3*i,3);
scanf("%d",&td[i]);
}
gotoxy(2,4); printf("Thoi gian CPU: ");
for (i=1;i<=n;i++)
{
gotoxy(15+3*i,4); scanf("%d",&cpu[i]);
luu[i]=cpu[i];
finish[i]=false;
}
}
void inra()
{
tam=1000;sum=0;
for (i=1;i<=n;i++)
{
sum=sum+cpu[i];
if (td[i]<tam) tam=td[i];
}
dq(1);
gotoxy(4,6); printf("process ");
for (i=1;i<=n;i++)
{
gotoxy(4*i+d,6);printf("P%d",i);
}
gotoxy(4,;printf("Tg cho ");
for (i=1;i<=n;i++)
{
tong=tong+kt[i]-(luu[i]+td[i]);
gotoxy(4*i+d,;printf("%d",kt[i]-(luu[i]+td[i]));
}
gotoxy(37,;printf("\\t===>TGTB= %f",tong/n);
gotoxy(4,10);printf("TG Luu ");
for (i=1;i<=n;i++)
{
gotoxy(4*i+d,10);printf("%d",kt[i]-td[i]);
}
gotoxy(4,12);printf("TGKT ");
for (i=1;i<=n;i++)
{
gotoxy(4*i+d,12); printf("%d",kt[i]);
kq=kt[n];
}
gotoxy(37,12);printf("\\t===>Thong luong= %f",kq/n);
}
void main()
{
clrscr();
nhap();
inra();
getch();
}
/*vi du
6
0 2 5 7 8 10
5 7 8 4 6 3 */
phuong.ntt-08h1010074- Tổng số bài gửi : 137
Join date : 05/05/2009
Similar topics
» Một số đề thi Thuật Giải cũ (tham khảo thoy)
» Giải thích đoạn code (tham khảo)
» Thảo luận Bài 5
» Tham khảo cách giải Định thời CPU qua các thuật giải
» code giai mot so bai tap thuong gap ve ham va mang minh tu viet nhe cac ban co the tham khao cho nao k hieu hay sai cac ban cho y kien nhe
» Giải thích đoạn code (tham khảo)
» Thảo luận Bài 5
» Tham khảo cách giải Định thời CPU qua các thuật giải
» code giai mot so bai tap thuong gap ve ham va mang minh tu viet nhe cac ban co the tham khao cho nao k hieu hay sai cac ban cho y kien nhe
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết