home *** CD-ROM | disk | FTP | other *** search
/ The Fred Fish Collection 1.5 / ffcollection-1-5-1992-11.iso / ff_disks / 300-399 / ff376.lzh / Plotter / src / Plotter.h < prev    next >
C/C++ Source or Header  |  1990-10-10  |  8KB  |  228 lines

  1. #define MAXCHARS 500
  2.  
  3. /* Prototypes for functions defined in ram:abl.c */
  4. char * __asm Ableiten(register __a0 char *string);
  5. VOID __asm Umklammern(register __a0 char *string);
  6. VOID Zusammensetzen(char *string,LONG Anzahl,char *ABL,struct Block *Start);
  7. LONG __asm Mit_X(register __a0 struct Block *block);
  8. VOID __asm Umklammern_2(register __a0 char *string);
  9. LONG __asm Vereinfachung(register __a0 char *,
  10.                          register __a1 char *);
  11. char * __asm Ableitung(register __a0 struct Block *Start);
  12.  
  13. /* Prototypes for functions defined in ram:about.c */
  14. void About(void);
  15.  
  16. /* Prototypes for functions defined in ram:berechnungsroutinen.c */
  17. void FehlerAbfrage(VOID);
  18. void DamageOn(void);
  19. void DamageOff(void);
  20. VOID __asm ZeichneFunktion(register __d0 USHORT nr,
  21.                            register __d1 int Ableitung);
  22. void Plotte(unsigned short nr,
  23.             DOUBLE xl,
  24.             DOUBLE xr,
  25.             DOUBLE yl,
  26.             DOUBLE yr,
  27.             int st,
  28.             int Ableitung);
  29. DOUBLE FunktionsWert(unsigned short nr,
  30.                      DOUBLE i,
  31.                      int Ableitung);
  32. void Verbinden(DOUBLE xr,
  33.                DOUBLE yr);
  34. DOUBLE Max(DOUBLE a,
  35.            DOUBLE b);
  36. DOUBLE Min(DOUBLE a,
  37.            DOUBLE b);
  38. void chkabort(void);
  39. VOID MemCleanup(VOID);
  40.  
  41. /* Prototypes for functions defined in ram:diskussion.c */
  42. void discuss(char *string,DOUBLE l,DOUBLE r,int modus,unsigned short sub);
  43. DOUBLE Nullstelle(DOUBLE l,DOUBLE r);
  44. DOUBLE Nullstelle2(DOUBLE l,DOUBLE r);
  45.  VOID TextAusgabe(DOUBLE x,DOUBLE y,char *string);
  46.  VOID TextAusgabe2(char *string);
  47. void __asm Laenge(register __a0 char *string,register __d0 int laenge);
  48. VOID __asm Full_Discussion(register __d0 USHORT sub);
  49.  
  50. /* Prototypes for functions defined in ram:drucken.c */
  51. LONG drucken(VOID);
  52.  
  53. /* Prototypes for functions defined in ram:maus.c */
  54. void AusSchnitt(DOUBLE *x1,
  55.                 DOUBLE *y1,
  56.                 DOUBLE *x2,
  57.                 DOUBLE *y2);
  58. void Grenzen(char *xn,
  59.              char *yn,
  60.              char *xp,
  61.              char *yp);
  62. void __asm Funktionseingabe(register __a0 UBYTE *string);
  63. void Genauigkeit(void);
  64. void TextFuerIntervall(void);
  65. void TextFuerKonstanten(void);
  66.  
  67. /* Prototypes for functions defined in ram:plot.c */
  68. void Pset(DOUBLE x1,
  69.           DOUBLE y1);
  70. void DrawTo(DOUBLE x1,
  71.             DOUBLE y1);
  72. void zeichne(void);
  73. void MenuWahl(void);
  74. void main(void);
  75. void _main(char *);
  76. int oeffne(void);
  77. void ende(void);
  78. void Line(DOUBLE x1,
  79.           DOUBLE y1,
  80.           DOUBLE x2,
  81.           DOUBLE y2);
  82. void Skalierung(DOUBLE x,
  83.                 DOUBLE y,
  84.                 DOUBLE Wert);
  85. void UmwandlungInIntervall(void);
  86. void UmwandlungInKonstanten(void);
  87. void UpdateMenuText(void);
  88. void SetRXOffset(void);
  89. void TastaturAbfrage(void);
  90. void Loeschen(void);
  91. void testtest(void);
  92. VOID SetColor(VOID);
  93. VOID SetNewColor(VOID);
  94.  
  95. VOID __asm ReMakeMenu(register __a0 struct Window *Window);
  96. VOID MakeMenu(VOID);
  97.  
  98. struct IntuiText *GetNewText(char *string);
  99.  
  100.    #define Abstand             15 
  101.    #define RUNDEN              .5001
  102.    #define RUNDEN2             .5001
  103.    #define deltah              .00000005 
  104.    #define deltahh             .0005
  105.    #define KLEIN             0
  106.    #define GROSS             1
  107.    #define MAXLONG             2147483647.0
  108.    #define MAXPIXELY             300
  109.    #define GRENZE1             0.0002
  110.    #define GRENZE2             0.0000002
  111.    #define NONULL              HUGE
  112.    #define WHICH_FLAG            HUGE
  113.    #define W_FLAG_2            1.79769e+307
  114.    #define FARBE0            0
  115.    #define FARBE1            1
  116.    #define FARBE2            2
  117.    #define FARBE3            3
  118.    #define YSCREEN            256
  119.    #define PLOT_Y            223
  120.    
  121.    #define ABOUT_FREEWARE        "Dies ist FreeWare"
  122.    #define PLOT_CONT            "Weiter"
  123.    #define PLOT_QUEST            "Wirklich Ende ?"
  124.    #define PLOT_END            "ENDE"
  125.    #define DISK_NULLST            "Nullstellen   :"
  126.    #define DISK_EXTREMST        "Extremstellen :"
  127.    #define DISK_WENDEST            "Wendestellen  :"
  128.    #define DISK_FOR            "Diskussion für das Intervall ["
  129.    #define MAUS_ENTERFUNC        "Geben Sie die Funktion ein"
  130.    #define BE_ERROR            "In Ihrer Formel ist ein Fehler !"
  131.    #define BE_JA            "Ja"
  132.    #define BE_NEIN            "Nein"
  133.    #define BE_QUEST            "Soll ich unterbrechen ?"
  134.  
  135.    extern APTR                         Konstantenstart;
  136.    extern BOOL                 KoordinatenKreuz_gezeichnet;
  137.    extern char                 AusgabeString[125];
  138.    extern char                 Formeleingabe[27];
  139.    extern char                 Formel[MAXCHARS];
  140.    extern char                 Hilfe[10],Ergebnis[MAXCHARS];
  141.    extern char                 SubMenuTitle[10][16];
  142.    extern char              String1[4];
  143.    extern DOUBLE             BestF,BestX;
  144.    extern double             xmn,xmp,ymn,ymp,xm,ym,x0,y0;
  145.    extern int                 Aufrufe;
  146.    extern char                 flagg;
  147.    extern int                          GE;
  148.    extern int                          Groesse;
  149.    extern LONG                 MatheFehler;
  150.    extern LONG                xx,yy;
  151.    extern LONG                 ypos_Diskussion;
  152.    extern LONG                xpos_Diskussion;
  153.    extern SHORT             Genauigkeiten[3];
  154.    extern SHORT             XOffset,YOffset;
  155.    extern struct BitMap             bitmap;
  156.    extern struct Block                 *StartBlock;
  157.    extern struct GfxBase               *GfxBase;
  158.    extern struct info               msgInfo;
  159.    extern struct IntuitionBase         *IntuitionBase;
  160.    extern struct Konstanten         kon;
  161.    extern struct Layer             *layer;
  162.    extern struct LayersBase            *LayersBase;
  163.    extern struct Layer_Info         *layerinfo;
  164.    extern struct Library         *MathIeeeDoubBasBase;
  165.    extern struct ToolBase              *ToolBase;
  166.    extern struct Library            *MathIeeeDoubTransBase;
  167.    extern struct NewScreen             Schirm;
  168.    extern struct NewWindow             Fenster,Fenster2,Fenster3;
  169.    extern struct RastPort         *RastPort2;
  170.    extern struct RastPort              *RastPort;
  171.    extern struct Rectangle         rect;
  172.    extern struct Region         *rgn,*OFlaeche;
  173.    extern struct Screen                *Screen;
  174.    extern struct View               *View;
  175.    extern struct ViewPort              *viep;
  176.    extern struct Window         *Window2;
  177.    extern struct Window                *Window;
  178.    extern UBYTE                MinXText[8],MaxXText[8],MinYText[8];
  179.    extern UBYTE                MaxYText[8];
  180.    extern UBYTE                Abgeleitet[2][MAXCHARS];
  181.    extern UBYTE                Formeln[11][MAXCHARS];
  182.    extern UBYTE                KonAString[20],KonBString[20];
  183.    extern UBYTE                KonCString[20],KonDString[20];
  184.    extern UBYTE                undo1[20],undoFormel[MAXCHARS];
  185.    extern UBYTE                xmpstring[20],xmnstring[20];
  186.    extern UBYTE                ympstring[20],ymnstring[20];
  187.    extern UWORD                Farb1[4],Farb2[4];
  188.    extern struct Menu             *Menu;
  189.    extern struct MenuItem               *Item[7]; /* Zum Sichern der Zeiger */
  190.  
  191. /* Veränderungen:
  192.  
  193. 22.10.89 Genauigkeit : Nur noch 3 Gadgets, Berechnungsroutinen angepaßt.
  194. 04.11.89 Diskussion angefügt, gibt nur auf dem Schirm aus.
  195. 18.11.89 Diskussion findet jetzt auch Nullstellen, die nur berühren (x^2) 
  196. 19.12.89 Plotter auf Benutzung der Calc-Funktionen umgestellt
  197. 19.12.89 Diskussion : Fehler, wenn Funktion immer NULL ist behoben
  198. 23.12.89 Diskussion : Fehler, wenn Polstellen sind behoben
  199. 11.02.90 Plotter.h mit Compiler autom. erstellt.
  200. 21.02.90 Set(New)Color in C geschrieben und übersetzt. Alles mit -O comp 
  201.          -> 25956 Bytes. Alle math. Funktionen laufen über New.....
  202.          Nullstellen werden jetzt recht genau bestimmt.
  203. 25.02.90 Abl.c ZW1 eingespart. Trotzdem leicht Stack-Overflow bei tan und sqr.
  204. 27.02.90 Fehler bei oeffne, der bei Auftritt eines Fehlers zum Absturz führt, beseitigt
  205. 15.07.90 Fehler in Ableitung beseitig (vertauschte f(x) und g(x) bei x^x
  206.          Ableitung mit AllocMem, SimpleMenu aus Tool.Library
  207. 03.08.90 Stringkonstanten nach Plotter.h , strcmp-Abfragen in Ableitung.c 
  208.          auf SHORT * umgestellt.
  209. */
  210.  
  211.  
  212. #undef Add
  213. #undef Sub
  214. #undef Div
  215. #undef Mul
  216. #undef Fix
  217. #undef Flt
  218. #undef Neg
  219.  
  220. #define Add(a,b)    (a+b)
  221. #define Sub(a,b)    (a-b)
  222. #define Mul(a,b)    (a*b)
  223. #define Div(a,b)    (a/b)
  224. #define Fix(a)        ((LONG)a)
  225. #define Flt(a)        ((DOUBLE)a)
  226. #define Neg(a)        (-a)
  227.  
  228.