/***************************************************************************** * Diese Datei enthaelt eine Zusammenstellung der 8 Beispielprogramme * * zu BDS-C.DOC. Um die Programme ausfuehren zu koennen, sind sie * * vorher in die Einzeldateien BEI1.C bis BEI8.C zu isolieren! * *****************************************************************************/ BEI1.C #define CLS "\014" main() { int i,j; puts(CLS); puts(" Tabelle des ASCII-Codes/n"); puts("\nDez. Hex. ASCII Dez. Hex. ASCII Dez. Hex. ASCII Dez. Hex. ASCII"); puts("\n------------------------------------------------------------------\n"); for(i=0;i<127;i+=4) { for(j=0;j<4;j++) { printf("%4d %4x ",i+j,i+j); if(i+j>32) printf("%4c ",i+j); else printf(" "); } puts("\n"); } } BEI2.C #define CLS "\014" /* Bildschirm loeschen */ main() { int i,j,v,a; unsigned a2; puts(CLS); puts("Hex/ASCII dump of 256 bytes of memory"); puts("\nAbsolute Adresse(hexadezimal):"); scanf("%x",&a); puts("\n"); for(i=0;i<256;i+=16,a+=16) { printf("%04x: ",a); a2=a; for(j=0;j<16;j++,a2++) printf("%02x ",peek(a2)); puts("\n"); puts(" "); a2=a; for(j=0;j<16;j++,a2++) { v=peek(a2); if( (v<32) || (v>127) ) puts(" . "); else printf("%2c ",v); } puts("\n"); } } BEI3.C main() { printf("\nWortlaenge beim Typ int: %2d Bit",wortlen()); } wortlen() { int i,wort; i=0; wort=-1; while(wort != 0) { wort=wort>>1;i++; } return(i); } BEI4.C /*benchmark-Test Sieb des Eratosthenes von Kyrene *******************************/ #define true 1 #define false 0 #define sizepl 1001 char flags[sizepl]; main() { register int i; char input[6]; int n,size,prime,k,count,iter; puts("\nAnzahl der Durchlaeufe:"); gets(input); if(strlen(input)) n=atoi(input); puts("\nLetzte betrachtete Zahl:"); gets(input); if(strlen(input)) size=atoi(input); for(iter=1;iter<=n;iter++) { count=0; for(i=2;i<=size;i++) flags[i]=true; for(i=2;i<=size;i++) if(flags[i]) { prime=i; k =prime+prime; while(k<=size) { flags[k]=false; k +=prime; } count++; } } printf("\nPRIMZAHLEN: %d",count); } BEI5.C /*benchmark-Test Berechnung der Fibonacci-Zahlen ******************************/ #define NTIMES 10 /* Anzahl der Wiederholungen */ #define NUMBER 24 /* Groesste Zahl bei 16 Bit */ main() { int i; unsigned value,fib(); printf("\nAnzahl der Wiederholungen: %3d",NTIMES); puts("\nENTER-Taste druecken!"); getchar(); for(i=1;i<=NTIMES;i++) value=fib(NUMBER); printf("\nfibonacci(%d)=%u\n",NUMBER,value); exit(); } unsigned fib(x) int x; { if(x>2) return( fib(x-1)+fib(x-2) ); else return(1); } BEI6.C #include "b:BDSCIO.H" main() { int o1,o2,n; char op[2]; n=scanf("%d %s %d",&o1,op,&o2); switch(op[0]) {case '+': o1 +=o2; break; case '-': o1 -=o2; break; case '*': o1 *=o2; break; case '/': o1 /=o2; break; default : printf("\nillegal operator: %c\n",op); } printf("=%d\n",o1); } BEI7.C main(argc,argv) int argc; char *argv[]; { int i; for(i=1;i #define CLS "\014" #define LINES 20 main(argc,argv) int argc; char *argv[]; { char iobuf[BUFSIZ],s[100]; int pages,lines,fd; puts(CLS); puts("\n\tSeitenweise Ausgabe einer Datei"); /*text*/ puts("\n\t*******************************\n"); if(argc !=2 ) { printf("\nAufruf: bei8 filename\n"); exit(); } pause(); fd=fopen(argv[1],iobuf); pages=1; lines=0; puts(CLS); printf("\nSeite: %4d\n",pages); while( (fgets(s,iobuf)) != 0 ) { fputs(s,2); /* Drucker-Ausgabe */ fputs(s,1); /* Bildschirm-Ausgabe */ lines++; if(lines==LINES) { pause(); lines=0; puts(CLS); printf("\nSeite: %4d\n",++pages); } } fclose(iobuf); }