| 005 11.07.2009, 09:06 Uhr
 holm
 
 
   
 
 | Hmm, mit dem Compiler wird das Programmieren etwas kompliziert, der ist noch sehr jung... 
 
 
 
 | Quellcode: |  | #include <stdio.h>#include <math.h>
 
 main()
 {
 
 double pi;
 int i;
 
 pi=4*atan(1.0);
 printf("pi=%f\n",pi);
 
 for(i=0;i<360;i++)
 printf("Grad: %3d, Sinus: %f\n",
 i,sin(((double)i * pi) / (double) 180.0));
 }
 
 
 | 
 und dann ..
 
 
 
 | Quellcode: |  | ...Grad: 329, Sinus: -0.515038
 Grad: 330, Sinus: cvtdl: integer overflow: Result too large
 -0.500000
 Grad: 331, Sinus: -0.484810
 Grad: 332, Sinus: -0.469472
 ...
 
 | 
 Das Selbe bei 210 Grad, auch -0.5 als Ergebnis.
 
 Welcher Integer läuft hier über?
 
 
 Mal ganz abgesehen davon:
 
 #57 /bin/time ./holm >sinlist
 1.76u 33.40s 0:35 100%
 #58 lcc -O -o lholm holm.c -lm
 #59 /bin/time ./lholm >lsinlist
 cvtdl: integer overflow: Result too large
 cvtdl: integer overflow: Result too large
 107.70u 0.50s 1:50 98%
 #60
 
 (das Erste ist mit dem Systemcompiler übersetzt)
 
 Gruß,
 
 Holm
 --
 float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
 {s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
 (r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
 (A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
 Dieser Beitrag wurde am 11.07.2009 um 09:14 Uhr von holm editiert.
 |