home *** CD-ROM | disk | FTP | other *** search
/ back2roots/padua / padua.7z / padua / lang / sgl.lzh / EXAMPLES / EX1.C next >
Encoding:
C/C++ Source or Header  |  1988-10-11  |  2.2 KB  |  77 lines

  1. #include "gfunc.h"
  2. #include <stdio.h>
  3. #include <math.h>
  4.  
  5. void main()
  6.  
  7. {
  8.  int err0,err1,i;
  9.  double x0,step,x[100],y[3][100];
  10.  
  11. /***************************************************
  12.  *Zeichnen der Funktion y = e^x exakt und angenΣhert
  13.  ***************************************************/
  14.  
  15.  step = 1.0/100.0;
  16.  x0   = 0.0;
  17.  for (i=0;i<100;i++)                          /* Stⁿtzpunkte berechnen */
  18.  {
  19.   x[i] = x0;
  20.   y[0][i] = exp(x0);
  21.   y[1][i] = 1.0+x0;             /* Potenzreihe 1 Glied   */
  22.   y[2][i] = y[1][i]+x0*x0/2.0;  /* Potenzreihe 2 Glieder */
  23.   x0  += step;
  24.  }
  25.  
  26.  
  27.  err0 = initialize(0,0);                     /* Initialisierung        */
  28.  if (err0 == 0)
  29.  {
  30.   frame(300.0,210.0);                        /* Rahmen definieren      */
  31.   picture(150.0,140.0,40.0,30.0);            /* Bildbereich definieren */
  32.   err1 = mkwind();                           /* Fenster ÷ffnen         */
  33.   if (err1 != 0) exit(-1);
  34.   region(0.0,1.0,1.0,3.0);                   /* Wertebereich festlegen */
  35.  
  36. /* Nach Aufruf von region ist das Koordinatensystem "region" eingestellt */
  37.  
  38.  
  39.   /* Ma▀stab fⁿr Achsen, Achsen,Ticks,Beschriftung */
  40.  
  41.   setfmt(1,2);                      /* 1 Dezimalstelle  x-Achse */
  42.                                     /* 2 Dezimalstellen y-Axhse */
  43.   linax("XL",1,3.0,0.2,1);
  44.   linax("XU",-1,3.0,0.2,0);
  45.   linax("XL",1,2.0,0.05,0);
  46.   linax("XU",-1,2.0,0.05,0);
  47.   linax("YL",1,3.0,0.25,1);
  48.   linax("YU",-1,3.0,0.25,0);
  49.   linax("YL",1,1.5,0.125,0);
  50.  
  51. /* Kurven interpolieren und zeichnen */
  52.  
  53.   srcurve(100,x,&y[0][0]);
  54.   setdash(2);                       /* Strichlierung */
  55.   setpen(6);
  56.   srcurve(100,x,&y[1][0]);
  57.   setdash(2);                       /* Strichlierung */
  58.   srcurve(100,x,&y[2][0]);
  59.     
  60. /* Texte schreiben */
  61.  
  62.   setpen(8);
  63.   setmode("PIC");             /* Koordinatensystem "picture" anwΣhlen */
  64.   setfont("ruby.font",15);
  65.   htext(75.0,150.0,"MB","Beispiel 1: Exponentialfunktion");
  66.   setpen(5);
  67.   htext(40.0,75.0,"LM","y = exp(x)");
  68.   htext(75.0,-20.0,"LB","x");
  69.   htext(-25.0,70.0,"RM","y");
  70.   setfont("topaz.font",8);
  71.   htext(160.0,100.0,"LB","durchgezogen: exakt");
  72.   htext(160.0,85.0,"LB","gestrichelt: angenΣhert");
  73.   finish();  /* !!WICHTIG!! */
  74.  }
  75.  else printf("initialize failed with error number %d\n",err0);
  76. }
  77.