Форумная игра - Городки

  Вход на форум   логин       пароль   Забыли пароль? Регистрация
On-line:  

Раздел: 
|Заречный On-line| / Общий / Форумная игра - Городки

Страницы: << Prev 1 2 3 4 Next>> новая тема

Автор Сообщение

Проверенный временем
Группа: Участники
Сообщений: 407
Добавлено: 03-12-2004 10:13
Киштым

Завсегдатай
Группа: Участники
Сообщений: 173
Добавлено: 05-12-2004 19:15
Мирный

Посетитель
Группа: Участники
Сообщений: 13
Добавлено: 06-12-2004 05:07
Йобург.

Посетитель
Группа: Участники
Сообщений: 13
Добавлено: 06-12-2004 05:09
And GOD said:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct process {
int num; //a number of a process
int CPUBURST; // CPU burst
int starttime;
struct process *next;
};

struct process addlist(int a ,int b, int c, struct process *last)
{ struct process *p, *next;
p=malloc(sizeof(struct process));
p->num=a;
p->CPUBURST=b;
p->starttime=c;
p->next=NULL;
last->next=p;
last=p;
};
struct process plan_FCFS(struct process *first)
{ int i, proccounter=1;
struct process *p, *q, *temp;
p=first;
while(p!=NULL)
{proccounter++;
p=p->next;}
for (i=1;i++;i<=proccounter)
{p=first, temp=first;
while(p!=NULL)
{q=p->next;
if(p->starttime>q->starttime)
{temp->num=p->num;
temp->CPUBURST=p->CPUBURST;
temp->starttime=p->starttime;
p->num=q->num;
p->CPUBURST=q->CPUBURST;
p->starttime=q->starttime;
q->num=temp->num;
q->CPUBURST=temp->CPUBURST;
q->starttime=temp->starttime;}
p=q;}
}
//The cykle of process execution

printf("The FCFS process executing table\n");
int et, wt, tat;
int exeflag=1;
*p=*first;
while(exeflag==1)
{exeflag=0;
while (p!=NULL);
{if (p->CPUBURST>0)
{if(exeflag>0) { wt++; tat++; printf(" W");}
else et++; tat++; p->CPUBURST--; exeflag++; printf(" E");}
else {printf(" -");}
p=p->next;
printf(" \n");
}
}
printf("wt = %i ,tat = %i, et = %i \n", wt, et, tat);
};
//--------------------------------------------------------------------------------------------------

int main(int argc, char *argv[])
{ char help[4]="help";
help[4]=0;
if (argc!=2)
{printf ("Fuck you sir!\n");
return 0;}
else if(strstr(argv[1],help)!=NULL) // ???????????????
{printf("Can I help you?\n");
return 0;} // It was our help for user

printf("1 ok \n ");
int *num1, *CPUBURST1, *starttime1;
FILE *fd=fopen(argv[1],"r");
if(scanf(fd, "%i/%i/%i",num1,CPUBURST1,starttime1)!=3)
printf("2 ok \n");
{printf("what are you doing, FUCKEN STUPID SHIT?!\n");}
struct process *first, *last;
struct process addlist(int num1,int CPUBURST1,int starttime1,struct process *last);
while (scanf(argv[1], "%i/%i/%i",num1,CPUBURST1,starttime1)==3)
{struct process addlist(int num1, int CPUBURST1,int starttime1, struct process *last);}

struct process plan_FCFS(struct process*first);
// plan_SJF1(*first);
// plan_SJF2(*first);
// plan_RR(*first);

return 0;
}

Посетитель
Группа: Участники
Сообщений: 13
Добавлено: 06-12-2004 05:11
И встали процессы в очередь за диффицитом имя которому CPUBURST.

Завсегдатай
Группа: Участники
Сообщений: 197
Добавлено: 06-12-2004 05:42
Гуково

Завсегдатай
Группа: Участники
Сообщений: 147
Добавлено: 06-12-2004 11:48
Landavshits
к чему это было ....????

--------------------------------

омск

Проверенный временем
Группа: Участники
Сообщений: 407
Добавлено: 06-12-2004 12:10
Крым

Завсегдатай
Группа: Участники
Сообщений: 139
Добавлено: 06-12-2004 13:57
And GOD said:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct process {
return 0;.....
}



Ха ха ха это наверное очередной супер мега крякер интернета и всех прлежащих к ниму форумов
. Эксплоитами научись пользоватся мудила !!!!
незнаю было или нет, но Мурманск

Проверенный временем
Группа: Участники
Сообщений: 407
Добавлено: 06-12-2004 14:02
Львов
Красноуфимск

Завсегдатай
Группа: Участники
Сообщений: 139
Добавлено: 06-12-2004 14:04
Сорь, мой косяк (просто подумал что на мягкий знак сложновато придумать город ) Владимир

Проверенный временем
Группа: Участники
Сообщений: 407
Добавлено: 06-12-2004 14:06
Ростов

Завсегдатай
Группа: Участники
Сообщений: 139
Добавлено: 06-12-2004 14:08
Владик (т. е. Владивосток)

Проверенный временем
Группа: Участники
Сообщений: 407
Добавлено: 06-12-2004 14:11
Карабах

Завсегдатай
Группа: Участники
Сообщений: 272
Добавлено: 06-12-2004 15:05
Хомяк

Проверенный временем
Группа: Участники
Сообщений: 407
Добавлено: 06-12-2004 15:34
Калининград

Завсегдатай
Группа: Участники
Сообщений: 197
Добавлено: 07-12-2004 07:04
Дивногорск

Проверенный временем
Группа: Участники
Сообщений: 407
Добавлено: 07-12-2004 08:15
Караганда

Частый гость
Группа: Участники
Сообщений: 23
Добавлено: 08-12-2004 02:20
And GOD said:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct process {
int num; //a number of a process
int CPUBURST; // CPU burst
int starttime;
struct process *next;
};

struct process addlist(int a ,int b, int c, struct process *last)
{ struct process *p, *next;
p=malloc(sizeof(struct process));
p->num=a;
p->CPUBURST=b;
p->starttime=c;
p->next=NULL;
last->next=p;
last=p;
};
struct process plan_FCFS(struct process *first)
{ int i, proccounter=1;
struct process *p, *q, *temp;
p=first;
while(p!=NULL)
{proccounter++;
p=p->next;}
for (i=1;i++;i<=proccounter)
{p=first, temp=first;
while(p!=NULL)
{q=p->next;
if(p->starttime>q->starttime)
{temp->num=p->num;
temp->CPUBURST=p->CPUBURST;
temp->starttime=p->starttime;
p->num=q->num;
p->CPUBURST=q->CPUBURST;
p->starttime=q->starttime;
q->num=temp->num;
q->CPUBURST=temp->CPUBURST;
q->starttime=temp->starttime;}
p=q;}
}
//The cykle of process execution

printf("The FCFS process executing table\n");
int et, wt, tat;
int exeflag=1;
*p=*first;
while(exeflag==1)
{exeflag=0;
while (p!=NULL);
{if (p->CPUBURST>0)
{if(exeflag>0) { wt++; tat++; printf(" W");}
else et++; tat++; p->CPUBURST--; exeflag++; printf(" E");}
else {printf(" -");}
p=p->next;
printf(" \n");
}
}
printf("wt = %i ,tat = %i, et = %i \n", wt, et, tat);
};
//--------------------------------------------------------------------------------------------------

int main(int argc, char *argv[])
{ char help[4]="help";
help[4]=0;
if (argc!=2)
{printf ("Fuck you sir!\n");
return 0;}
else if(strstr(argv[1],help)!=NULL) // ???????????????
{printf("Can I help you?\n");
return 0;} // It was our help for user

printf("1 ok \n ");
int *num1, *CPUBURST1, *starttime1;
FILE *fd=fopen(argv[1],"r");
if(scanf(fd, "%i/%i/%i",num1,CPUBURST1,starttime1)!=3)
printf("2 ok \n");
{printf("what are you doing, FUCKEN STUPID SHIT?!\n");}
struct process *first, *last;
struct process addlist(int num1,int CPUBURST1,int starttime1,struct process *last);
while (scanf(argv[1], "%i/%i/%i",num1,CPUBURST1,starttime1)==3)
{struct process addlist(int num1, int CPUBURST1,int starttime1, struct process *last);}

struct process plan_FCFS(struct process*first);
// plan_SJF1(*first);
// plan_SJF2(*first);
// plan_RR(*first);

return 0;
}


Ландавшиц, Господь не мог это сказать, т.к. он не ламер, в отличие от тебя. В твоём коде ошибок куча.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <unistd.h>
#define print(int) printf("%3d ",int)
#define printfl(float) printf("%.2f ",float)
#define newline printf("\n")
#define MASSNUM 10
#define MAXTIME 40
// text files only
typedef struct task
{
int num;
int start;
int exec;
int done;
int trun;
}task;


void print_mass(task * mass, int tNUM)
{
int i;
printf("----____----\n");
for(i=0;i<tNUM;i++)
{
printf("%d,N%i S%i X%i D%i T%i\n",i,mass[i].num,mass[i].start,mass[i].exec,mass[i].done,mass[i].trun);
}
printf("----^^^^----\n");
}


void print_table(char mass[MASSNUM][MAXTIME], int h, int w)
{
int i=0,j=0;
printf("-----______________________________________________________________________________________________________\n");


for (i=0;i<h;i++)
{
print(i);
for(j=0;j<w;j++)
{
printf(" %c",mass[i][j]);
}
printf("\n");
}
printf("-----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
}



void fcfs_sort(task * tsk, int tNUM, float * stats)
{
int i=0,j=0,k=0,t=0,shift=0;
float Toj=0,Tisp=0;
task prmj;
char tbl[MASSNUM][MAXTIME];

for(j=0;j<tNUM;j++)
{
for(i=1;i<tNUM;i++)
{
if(tsk[i-1].start>tsk[i].start)
{
prmj=tsk[i];
tsk[i]=tsk[i-1];
tsk[i-1]=prmj;
}
}
}
printf("-----FCFS SORTING-----\n");
printf(" ");

for(j=0;j<tNUM;j++)
{
if (tsk[j].start>t) shift=tsk[j].start-t;
for(i=0;i<tsk[j].exec+shift;i++,t++)
{
printf("%3d",t);
for(k=0;k<tNUM;k++)
{
if (tsk[k].start>t) {tbl[tsk[k].num][t]='-';}
if ((tsk[k].start<=t)&&(k<j)) {tbl[tsk[k].num][t]='-';}
if ((tsk[k].start<=t)&&(k>j)) {tbl[tsk[k].num][t]='W'; Toj=Toj+1;}
if ((tsk[k].start<=t)&&(k==j)) {tbl[tsk[k].num][t]='X'; Tisp=Tisp+1;}
}
}
shift=0;
}
printf("\n");
print_table(tbl,tNUM,t);
stats[0]=(Toj/tNUM);
stats[1]=((Tisp+Toj)/tNUM);
printf("---FCFS SORTING END---\n");
}





void sjf2_sort(task * tsk, int tNUM, float * stats)
{
int j=0,k=0,t=0,q=0;
float Toj=0,Tisp=0;
task prmj;
task *pp;
char tbl[MASSNUM][MAXTIME];

prmj=tsk[0];
for(k=0;k<tNUM;k++) {tsk[k].done=tsk[k].exec; if(tsk[k].done>prmj.done) prmj=tsk[k];}

pp=&prmj;

printf("-----SJF2 SORTING-----\n");
printf(" ");

while (1)
{
for(t=0;;t++)
{
for(k=0;k<tNUM;k++)
{
if ((tsk[k].start<=t)&&(tsk[k].done<=pp->done)&&(tsk[k].done!=0)) {pp=&tsk[k]; q=1;}
}

j=0;
for(k=0;k<tNUM;k++)
{
if (tsk[k].done==0) j=j+1;
}
if(j==tNUM) goto done;

printf("%3d",t);
if (q==0)
{
for(k=0;k<tNUM;k++) tbl[tsk[k].num][t]='-';
pp=&prmj;
q=0;
continue;
}
q=0;

for(k=0;k<tNUM;k++)
{
if (tsk[k].start>t) {tbl[tsk[k].num][t]='-';}
else if (tsk[k].done==0) {tbl[tsk[k].num][t]='-';}
else if (&tsk[k]!=pp) {tbl[tsk[k].num][t]='W'; Toj=Toj+1;}
else {tbl[tsk[k].num][t]='X'; Tisp=Tisp+1; tsk[k].done=tsk[k].done-1; pp=&prmj;}
}
}
}
done:
printf("\n");
print_table(tbl,tNUM,t);
stats[0]=(Toj/tNUM);
stats[1]=((Tisp+Toj)/tNUM);
printf("---SJF2 SORTING END---\n");
}


void sjf_sort(task * tsk, int tNUM, float * stats)
{
int i=0,j=0,k=0,t=0,q=0;
float Toj=0,Tisp=0;
task prmj;
task *pp;
char tbl[MASSNUM][MAXTIME];

prmj=tsk[0];
for(k=0;k<tNUM;k++) {tsk[k].done=tsk[k].exec; if(tsk[k].done>prmj.done) prmj=tsk[k];}

pp=&prmj;

printf("-----SJF SORTING-----\n");
printf(" ");

while (1)
{
for(k=0;k<tNUM;k++)
{
if ((tsk[k].start<=t)&&(tsk[k].done<=pp->done)&&(tsk[k].done!=0)) {pp=&tsk[k]; q=1;}
}

j=0;
for(k=0;k<tNUM;k++)
{
if (tsk[k].done==0) j=j+1;
}
if(j==tNUM) goto done;

if (q==0)
{
for(k=0;k<tNUM;k++) tbl[tsk[k].num][t]='-';
pp=&prmj;
q=0;
printf("%3d",t);
t++;
continue;
}
q=0;

for(i=0;i<pp->exec;i++,t++)
{
printf("%3d",t);
for(k=0;k<tNUM;k++)
{
if (tsk[k].start>t) {tbl[tsk[k].num][t]='-';}
else if (tsk[k].done==0) {tbl[tsk[k].num][t]='-';}
else if (&tsk[k]!=pp) {tbl[tsk[k].num][t]='W'; Toj=Toj+1;}
else {tbl[tsk[k].num][t]='X'; Tisp=Tisp+1; tsk[k].done=tsk[k].done-1;}
}
}
pp=&prmj;
}
done:
printf("\n");
print_table(tbl,tNUM,t);
stats[0]=(Toj/tNUM);
stats[1]=((Tisp+Toj)/tNUM);
printf("---SJF SORTING END---\n");
}



void rr_sort(task * tsk, int tNUM, float * stats, int quant)
{
int i=0,j=0,t=0,k=0,n=tNUM;
float Toj=0,Tisp=0;
task *pp;
char tbl[MASSNUM][MAXTIME];

for (i=0;i<tNUM;i++) {tsk[i].trun=tsk[i].num;}

pp=&tsk[0];

printf("-----RR SORTING-----\n");
printf(" ");

while (1)
{
for(i=0;i<quant;i++,t++)
{
for(j=0,k=0;j<tNUM;j++) {if(tsk[j].start<=t){k++;}}
if(k==0) {i--;}

for(j=0,k=0;j<tNUM;j++)
{
if((tsk[j].start>t)||(tsk[j].done==tsk[j].exec)) {tsk[j].trun=0;}
else if((tsk[j].trun==0)&&(tsk[j].start<=t)) {n++; tsk[j].trun=n;}
k=k+(tsk[j].exec-tsk[j].done);
if(tsk[j].trun!=0) pp=&tsk[j];
}

if(k==0) goto done;

for(j=0;j<tNUM;j++) {if((tsk[j].trun<pp->trun)&&(tsk[j].trun!=0)) {pp=&tsk[j];}}

for(j=0;j<tNUM;j++)
{
if (tsk[j].trun==0) {tbl[tsk[j].num][t]='-';}
else if (&tsk[j]!=pp) {tbl[tsk[j].num][t]='W'; Toj=Toj+1;}
else {tbl[tsk[j].num][t]='X'; Tisp=Tisp+1; tsk[j].done=tsk[j].done+1;}
}
if(pp->done==pp->exec) i=quant;
printf("%3d",t);
}
n++;
pp->trun=n;
}
done:
printf("\n");
print_table(tbl,tNUM,t);
stats[0]=(Toj/tNUM);
stats[1]=((Tisp+Toj)/tNUM);
printf("---RR SORTING END---\n");
}

int main(int argc, char *argv[])
{
//----------variables------------------------
int tNUM=0, quant=4, i=0;
enum {bufSize=6};
FILE * fd = fopen ("./manager.task","r");
char buf[bufSize+1];
task pr[MASSNUM];
float fcfs_stats[2];
float sjf_stats[2];
float rr_stats[2];
float sjf2_stats[2];

if(argc==1) goto skip;
if(argc>6) {printf("\nToo many arguments!\nTry -help option\n"); return -1;}
for(i=1;i<argc;i++)
{
if(strcmp(argv[i],"-help")==0)
{
printf("\nTask Manager HELP\nUsage: manager [options...]\nOptions:\n -help This page.\n -q [quant] Define quant. [quant]>0.\n -t [path] Define [path] of task.\n\n");
return 0;
}
else if(strcmp(argv[i],"-q")==0)
{
quant=atoi(argv[i+1]);
if(quant<=0) {printf("\nWrong quant!\nTry -help option\n"); return -1;}
i++;
}
else if(strcmp(argv[i],"-t")==0)
{
fd = fopen (argv[i+1],"r");
i++;
}
else
{
printf("\nWrong arguments!\nTry -help option\n");
return -1;
}
}

skip:
//----------proverka na owibki---------------
if(fd == NULL)
{
perror("\nError while opening file!\nTry -help option\n");
return -1;
}


//----------delaem massiv structur-----------
printf("\n N S B\n");
printf("-_________-\n");

while(fread(buf,1,bufSize,fd)>0)
{
buf[bufSize]='\0';
pr[tNUM].num=buf[0]-'0';
pr[tNUM].start=buf[2]-'0';
pr[tNUM].exec=buf[4]-'0';
pr[tNUM].done=0;
pr[tNUM].trun=0;
printf("%3i%3i%3i\n",pr[tNUM].num,pr[tNUM].start,pr[tNUM].exec);
tNUM++;
}
printf("-^^^^^^^^^-\n\n");

fcfs_sort(pr,tNUM,fcfs_stats);
printf("ATW %.2f\n",fcfs_stats[0]);
printf("ATX %.2f\n",fcfs_stats[1]);
newline;

rr_sort(pr,tNUM,rr_stats,quant);
printf("ATW %.2f\n",rr_stats[0]);
printf("ATX %.2f\n",rr_stats[1]);
newline;

sjf_sort(pr,tNUM,sjf_stats);
printf("ATW %.2f\n",sjf_stats[0]);
printf("ATX %.2f\n",sjf_stats[1]);
newline;

sjf2_sort(pr,tNUM,sjf2_stats);
printf("ATW %.2f\n",sjf2_stats[0]);
printf("ATX %.2f\n",sjf2_stats[1]);
newline;

return 0;
}

Частый гость
Группа: Участники
Сообщений: 23
Добавлено: 08-12-2004 02:22
Вот это - правильный код, хоть и ламерский.

Страницы: << Prev 1 2 3 4 Next>> новая тема
Раздел: 
|Заречный On-line| / Общий / Форумная игра - Городки

KXK.RU