int main(int argc, char **argv) { int m = ORDER, fprd = FPERIOD, iprd = IPERIOD, i, j; FILE *fp = stdin, *fpc = NULL; double *c, *inc, *cc, *d, x; Boolean tp = TRANSPOSE, ngain = NGAIN; if ((cmnd = strrchr(argv[0], '/')) == NULL) cmnd = argv[0]; else cmnd++; while (--argc) if (**++argv == '-') { switch (*(*argv + 1)) { case 'm': m = atoi(*++argv); --argc; break; case 'p': fprd = atoi(*++argv); --argc; break; case 'i': iprd = atoi(*++argv); --argc; break; case 't': tp = 1 - tp; break; case 'k': ngain = 1 - ngain; break; case 'h': usage(0); default: fprintf(stderr, "%s : Invalid option '%c'!\n", cmnd, *(*argv + 1)); usage(1); } } else if (fpc == NULL) fpc = getfp(*argv, "rb"); else fp = getfp(*argv, "rb"); if (fpc == NULL) { fprintf(stderr, "%s : Cannot open coefficients file!\n", cmnd); return (1); } if (m < 0) { fprintf(stderr, "%s : Order must be equal to or greater than zero!\n", cmnd); return (1); } c = dgetmem(m + m + m + 3 + m); cc = c + m + 1; inc = cc + m + 1; d = inc + m + 1; if (freadf(c, sizeof(*c), m + 1, fpc) != m + 1) return (1); for (;;) { if (freadf(cc, sizeof(*cc), m + 1, fpc) != m + 1) return (0); for (i = 0; i <= m; i++) inc[i] = (cc[i] - c[i]) * iprd / fprd; for (j = fprd, i = (iprd + 1) / 2; j--;) { if (freadf(&x, sizeof(x), 1, fp) != 1) return (0); if (!ngain) x *= c[0]; if (m > 0) { if (!tp) x = poledf(x, c, m, d); else x = poledft(x, c, m, d); } fwritef(&x, sizeof(x), 1, stdout); if (!--i) { for (i = 0; i <= m; i++) c[i] += inc[i]; i = iprd; } } movem(cc, c, sizeof(*cc), m + 1); } return (0); }
void main() { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int left, top, right, bottom; /* initialize graphics and local variables */ initgraph(&gdriver, &gmode, "E:\TC\BGI"); /* read result of initialization */ errorcode = graphresult(); if (errorcode != grOk) /* an error occurred */ { printf("Graphics error: %s\n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); /* terminate with an error code */ } cleardevice(); create(); /*temp=head; temp=temp->down; for(i=0;i<3;i++) temp=temp->right; temp->data=2; temp=head; temp=temp->down->down; temp=temp->right; temp->data=2; */ setcolor(5); setlinestyle(1,1,3); line(250,100,50,200); line(50,200,250,225); line(250,225,25,325); line(500,100,300,200); line(300,200,500,225); line(500,225,275,325); settextstyle(1,0,6); outtextxy(150,375,"PRESENTS"); getch(); cleardevice(); settextstyle(1,0,6); outtextxy(150,150,"MYSTERIES"); outtextxy(190,250,"OF"); outtextxy(170,350,"1024"); getch(); cleardevice(); setcolor(15); settextstyle(0,0,1); sprintf(s,"RULES=>"); outtextxy(5,5,s); sprintf(s,"You Have To Create The Number 1024"); outtextxy(5,20,s); sprintf(s,"Use arrow Keys to Move"); outtextxy(5,35,s); sprintf(s,"Press N At Any Point To Quit..."); outtextxy(5,45,s); sprintf(s,"Are You Ready...."); outtextxy(5,60,s); getch(); cleardevice(); display(); while(k==0) { y=0; display(); sprintf(s,"Enter Your Move"); outtextxy(5,5,s); ch=getch(); switch(ch) { case 72: move='W'; break; case 80: move='S'; break; case 77: move='D'; break; case 75: move='A'; break; case 'n': k=1; break; default: y=1; } if(k==1) { outtextxy(5,25,"Thanks for playing....."); break; } if(y==1) { outtextxy(5,25,"Wrong Move...."); } else { movem(); // display(); // getch(); check(); movem(); newnum(); k=final_check(); display(); } if(k==2) outtextxy(5,25,"congratulation!!!!! You Have WON THE GAME..."); if(k==1) outtextxy(55,25,"SORRY!!! GAME OVER"); } getch(); //getch(); //getch(); closegraph(); }