ÿpd:�ÙSPLOT - SHAREWARE SIM. EQ. PLOTTING PROGRAM - 12/17/87 update£n:�ÙCopyright 1985,1986,1987,1988 Prowess, Inc.Óx:�ÙThis progem plots simultaneous equationsú‚À:É Ý:’:È ,,:¿ ,:XX$çÖ(N, )&Œ† R(3),U(3),X(3),Y(3),XC(3),YC(3)P–¿ ,:Ê ,:‘ ÿ–(É)éÖ(),Í)éÿ–(»)‚ ‚ Lç Ì :Ê L,:‘ ÿ–(º):Ê L,>:‘ ÿ–(º):ƒ L­ªÊ ,:‘ "PLOT SIMULTANEOUS EQUATIONS"â´Ê ,:‘ "Copyright 1986,1987,1988 Prowess,Inc." ¾¿ ,:Ê ,:‘ ÿ–(È)éÖ(),Í)éÿ–(¼)5È¿ ,:Ê ,:‘ ÿ–(É)éÖ(N,Í)éÿ–(»)UÒÊ ,K:¿ ,:‘ "V2.1":¿ ,dÜ‚ Lç Ì ‡æÊ L,:‘ ÿ–(º):Ê L,P:‘ ÿ–(º)�ðƒ L¹úÊ ,:‘ ÿ–(È)éÖ(N,Í)éÿ–(¼):¿ ,Ì‹ SKIPç Í žß‹ SKIPç Í šÊ  ,:‘ "Do you want to read the instructions? (Y/N/Q)"="Ê  ,>:K$çÞ:‹ K$ç"" Í "x,‹ K$ç"Y" ï K$ç"y" Í Ê  ,:‘ XX$:Ê ,K:‘ " ":‰ t ³6‹ K$ç"N" ï K$ç"n" Í Ê  ,:‘ XX$:Ê ,K:‘ " ":‰ |Ï@‹ K$ç"Q" ï K$ç"q" Í òÙJ‰ "*T:�Ù--------------------------clear field subroutines------------------------Q^‚ LLç Ì :Ê LL,:‘ Ö(L, ):ƒ LL{h‚ LLç Ì :Ê LL,:‘ Ö(L, ):ƒ LL:ŽÌr:�Ù-------------------------------------------------------------------------â|Ê  ,:‘ Ö(K, )B†‹ FLAGçæ Í Ê ,:‘ "Your previous equations were:":Ê ,:‘ "Y = ";EQ1$;" and A = ";EQ2$^ˆ‹ FLAGç ï FLAGç Í šzŠ‹ FLAGç ï FLAGç Í ôÌ�:�Ù------------------------inputs two user defined equations----------------- šÊ ,:‘ "Enter the first equation in the form: y = f(x)"C¤Ê , :¿ ,:‘ "Example: Y = X^3 -(2*X^2) + X - 10"y®W$ ç "2170 Y = ":Ê  ,:¿ ,:‘ "Y = ":Ê  ,¹¸° … EQ1$:‹ ÿ’(EQ1$)ç Í Å:‰ ¸ :�Ùinputs user string----- ÂS$ ç W$éEQ1$ :�Ùadds correct line # to 1st equation string------Z̺ "O",#,"FCT1.BAS" :�Ùwrites 1st equation to the file fct1.bas--------hÖ ‘ #,S$qà» #�ê‹ FLAGç ï FLAGç Í lžôÊ ,:¿ ,ÝþÊ ,:‘ "Enter the second equation in the form A = f(B)"ç¿ ,Ê , :‘ "EXAMPLE: A = 2*EXP(-SIN(B))"7Ê ,:¿ ,:‘ "A = ":Ê ,L&Q$ ç "2190 A = "“0¿ ,:° … EQ2$:‹ ÿ’(EQ2$)ç Í Å:‰ 0 :�Ùinputs 2nd user string-æ:SS$ ç Q$éEQ2$ :�Ùadds correct line# to 2nd equation string--------5Dº "O",#,"FCT2.BAS" :�Ùwrites 2nd equation to the file fct2.bas--------DN ‘ #,SS$MX» # b:�Ù -------------merges fct1.bas and fct2.bas with this pgm ------------------¼lþŒ ½ "FCT1.BAS",v,ALLÙv‹ FLAGç Í FLAG ç:‰ õ€þŒ ½ "FCT2.BAS",”,ALLHŠ:�Ù---------------------user defines plotting range of x-axis-----------------d”‹ FLAGç ï FLAGç Í nž� ^­¨Ê ,:¿ ,:‘ "NOTE: XMIN must be smaller than XMAX !!!" ²Ê  ,:¿ ,:‘ "The X-axis will be scaled + and - whichever (Xmen or Xmax) has the largest",¼Ê ,:‘ "absolute value."‚ÆÊ ,:‘ "Example: If you wish to plot the functions from X = -15 to X = +5, you"ØÐÊ ,:‘ "would enter -15,5. The axis would run from -15 to +15 and the function"!ÚÊ ,:‘ "would be plotted from X = -15 to X = 5, as you requested."räÊ ,:¿ ,:… "Enter RANGE of X over which to plot. (Xmin,Xmax) ",XMIN,XMAX«î‹ XMINæXMAX Í Å:Ê ,4:‘ " ":‰ äþø:�Ù--------evaluates both functions and finds largest value of y and a ------- FLAGç, � ^:• § ‰ ¢:¿ ,:Ê  ,b‘ "FINDING LARGEST VALUES OF Y AND A FOR SCALING"m Ê ,s*‘Å4INC ç (XMAXêXMIN)ìÇ :�Ùsets up plotting increment of x -------------Ù>X ç XMIN:YBIGçæHB ç XMINôR• § ‰ ¢A\‚ XçXMIN Ì XMAX Ï INC :�Ùfinds biggest value of y-----------Nf � zqp ‹ ÿ†(Y)æYBIG Í YBIG ç ÿ†(Y)yzƒ X½„‚ BçXMIN Ì XMAX Ï INC:• § ‰ ¢ :�Ùfinds biggest value of a ---ÉŽ � Ž˜ ‹ ÿ†(A)æYBIG Í YBIG ç ÿ†(A) :�Ùsets YBIG equal to largest y or a--¢ƒ BW¬‹ ÿ†(XMIN)æÿ†(XMAX) Í XBIGçÿ†(XMIN) :¡ XBIGçÿ†(XMAX)¡¶ :�Ù---------------draws and labels plot field----------------------°ÀÅ:È ,,,¶ÊÀøÔ° (‰,ÍÌ„)ê(í,�),,B :�Ùdraws graph field --------- Þ‚ Içö(lƒ Ì š™‡ Ï ö(lƒL è° (;é(Iì�U),ÍÌ„)ê(;é(Iì�U),�),,, ªª‚ ò° (;ê(Iì�U),ÍÌ„)ê(;ê(Iì�U),�),,, ªªª ü° (‰,ff&‡éI)ê(í,ff&‡éI),,, ªªÒ ° (‰,ff&‡êI)ê(í,ff&‡êI),,, ªªÚ ƒ I(!° (;,ÍÌ„)ê(;,�), :�Ùdraws vertical axis -----------------v!$° (‰,ff&‡)ê(í,ff&‡), :�Ùdraws horizontal axis ---------------Æ!.:�Ù -------------------prints axis labels, etc. ---------------------------Ñ!8Ê ,(Û!B‘ "Y"ç!LÊ  ,@ñ!V‘ "X"ü!`Ê ,@"j‹ YBIGèç Í ~2"t‘ × "+#######.###";YBIG:‰ ˆJ"~‘ × "+#.####";YBIG:V"ˆÊ ,Ak"’‹ YBIG#èç Í ¦�"œ‘ × "#######.###";êYBIG:‰ °¤"¦‘ × "#.####";êYBIG¶"°Ê ,A:‘ " "Â"ºÊ , Ö"Ä‹ XBIGèç Í Øø"Α × "#######.###";êXBIG:‰ â#Ø‘ × "#.####";êXBIG!#âÊ , :‘ " "-#ìÊ ,8A#ö‹ XBIGèç Í  c#‘ × "+#######.###";XBIG:‰ z# ‘ × "+#.####";XBIG†#Ê ,(�#‘ "0"œ#(Ê  ,¦#2‘ "0"ì#<:�Ù-------------plot routine for both equations------------------9$FXçXMIN:BçXMIN:U$çÖ(P, ) :�Ùinitializes x and b to same smallest value-V$PÊ ,:‘ "PLOTTING":� z¥$ZÆ ((;é(XMINë±ìXBIG)),(ff&‡ê(Yëš™‡ìYBIG))) :�Ùsets 1st plot pt.---ð$d‚ XçXéINC Ì XMAX Ï INC :�Ùplots 1st equation-----ý$n � z4%x ° ê((;é(Xë±ìXBIG)),(ff&‡ê(Yëš™‡ìYBIG))),<%‚ƒ XF%Œ� Ž•%–Æ ((;é(Bë±ìXBIG)),(ff&‡ê(Aëš™‡ìYBIG))) :�Ùsets 1st pt of 2nd eq.--â% ‚ BçBéINC Ì XMAX Ï INC :�Ùplots 2nd equation -----ì%ª� Ž'&´ ° ê((;é(Bë±ìXBIG)),(ff&‡ê(Aëš™‡ìYBIG))),,, ªª/&¾ƒ B[&ÈÊ ,:‘ " ":Ê ,:‘ U$:Ê ,t&ÒÊ ,:‘ "GRAPH OF:"Œ&ܺ "I",#,"FCT1.BAS"™&æ … #,T$¢&ð» #º&úº "I",#,"FCT2.BAS"Ç& … #,Q$Ð&» #Ü&Ê , <'"‘ ÿƒ(T$,);" AND ";ÿƒ(Q$,):Ê ,:‘ "PRESS ANY KEY":Ê ,:‘ "TO CONTINUE":‚ Iç Ì Ð:ƒ Io',Ê ,:‘ " ":Ê ,:‘ " "Ž'6Ê ,N:A$çÞ:‹ A$ç"" Í 6¢'@È ,,:À:¿ ,­'JÊ  ,ø'T‘ " DISPLAY TABULATED VALUES OF X, Y AND A...............1"þ'^‘I(h‘ " ENTER NEW RANGE OF X ................................2"O(r‘š(|‘ " INPUT TWO NEW FUNCTIONS .............................3" (†‘ë(�‘ " EXIT ................................................4"ñ(š‘()¤‘ " MAKE SELECTION "a)®Ê ,.:SS$çÞ:‹ SS$ç"" ï ÿ”(SS$)è ï ÿ”(SS$)æ Í ®�)¸• ÿ”(SS$) ‰ Ö,Â,Ì,ò˜)ÂSKIPç:� ^:‰ –¯)ÌSKIPç:� ^:‰ –*Ö:�Ù---------------routine for listing calculated values --------------------*àÀ:XçXMINêINC:¿  ,_*ê ‘ " POINT FOR EQ.#1 EQ.#2"¤*ô ‘ " # X & B Y A"É*þÊ ,D:¿  ,:‘ "PRESS ANY KEY"æ*Ê ,D:‘ " TO CONTINUE"ý*Ê ,G:‘ "OR 'Q'"+Ê ,D:‘ "FOR NEXT MENU"1+&¿ ,:Jç:Kç:Lç@+0‚ Iç Ì P+:XçXéINC:BçX`+D� z:� Žn+NÊ I,:‘ LŸ+X:�ÙLIMIT DISPLAY DIGITS FOR SINGLE PRECISION¿+bÊ I, :‘ × "#######.####";Xß+lÊ I,:‘ × "#######.####";Yÿ+vÊ I,3:‘ × "#######.####";A ,€LçLé,Š‹ LçÉ Í Æ",”ƒ I-,žFLAGçL,¨Ê ,J:A$çÞ:‹ A$ç"" Í ¨l,²‹ A$ç"Q" ï A$ç"q" Í À:‰ Ú},¼‹ LèÈ ‰ 0œ,ÆÊ ,J:A$çÞ:‹ A$ç"" Í Æ¢,ÐÀ³,ÚÊ  ,:¿ ,ô,äÊ  ,:‘ "REVIEW TABULAR VALUES .........................1"5-îÊ  ,:‘ "CHANGE RANGE OF X FOR PRESENT FUNCTIONS .......2"v-øÊ ,:‘ "INPUT TWO NEW FUNCTIONS .......................3"·-Ê ,:‘ "EXIT ..........................................4"Þ- Ê ,:‘ "Enter selection number".Ê ,4:GG$çÞ:‹ GG$ç"" ï ÿ”(GG$)è ï ÿ”(GG$)æ Í ". QçQé (.*ÀH.4• ÿ”(GG$) ‰ R,>,H,ò_.>SKIPç:� ^:‰ –v.HSKIPç:� ^:‰ –|.RÀ‘.\‹ IçÈ Í À:‰ Ú�.fÀ:‰ àì.p:�Ù-----------------------------user functions----------------------------û.z Y ç Xíê/„Ž/ŽA ç êBê/˜Že/¢:�Ù---------------------------error trap routine----------------------------Ü/¬‹ Õç î Ôçz Í Å:� ^:Ê ,:¿  ,:‘ "SYNTAX ERROR IN EQUATION #1 - REDO":‚ PPç Ì è:ƒ PP:FLAGç:¿ ,:¨ †S0¶‹ Õç î ÔçŽ Í Å:� ^:Ê ,:¿  ,:‘ "SYSTAX ERROR IN EQUATION #2 - REDO":‚ PPç Ì è:ƒ PP:FLAGç:¿ ,:¨ †Þ0À‹ Õç î Ôçz Í Å:� ^:Ê ,:¿  ,:‘ "IMAGINARY NUMBERS CREATED! - ALTER EQUATION AND/OR LIMITS":‚ Iç Ì è:ƒ I:¿ ,:FLAGç:¨ †i1Ê‹ Õç î ÔçŽ Í Å:� ^:Ê ,:¿  ,:‘ "IMAGINARY NUMBERS CREATED! - ALTER EQUATION AND/OR LIMITS":‚ Iç Ì è:ƒ I:¿ ,:FLAGç:¨ †ô1Ô‹ Õç î Ôçz ï ÔçŽ Í � ^:¿  ,:FLAGç:Ê ,:‘ "DIVISION BY ZERO OCCURED - CHECK YOUR EQUATION AND REDO!":‚ Iç Ì è:ƒ I:¨ †j2Ù‹ Õç Í Å:Ê ,:¿  ,:FLAGç:‘ "AN OVERFLOW HAS OCCURED - ALTER EQUATION AND/OR LIMITS":‚ Iç Ì è:ƒ I:À:¨ †€2Þ• § ‰ :À:‰ dÐ2è:�Ù-----------------------------------quit---------------------------------â2òÈ ,:À:¿ ,3üÊ ,:‘ "RESTART THIS PROGRAM --------------1"K3 Ê  ,:‘ "RETURN TO PLOT MENU ---------------2"€3 Ê  ,:‘ "QUIT ------------------------------3"Ÿ3 Ê ,:‘ "MAKE SELECTION"¾3$ Ê ,2:Q$çÞ:‹ Q$ç"" Í $ Ì3. QTçÿ”(Q$)è38 ‹ QTè ï QTæ Í Å:‰ $ 4B ‹ QTç Í SKIPç:� ^:‰ –4L ‹ QTç Í Š "PLOTM"74V ‹ QTç Í À:þŒ "PLICC4` Å:‰ $ “4j :�Ù----------------------------------help----------------------------------�4t � ^ô4~ Ê ,:‘ "* This program plots two simultaneous equations - one in the form Y=f(X)"'5ˆ Ê ,:‘ "and the other in the form of A=f(B)."~5’ Ê ,:‘ "* After plotting is completed, a tabulation of all plotted points may be"—5œ Ê  ,:‘ "reviewed."í5¦ Ê  ,:‘ "* Since 'Y' axis is scaled to accomodate the largest value from either"D6° Ê  ,:‘ "equation, if one equation produces large values of 'Y' (Y or A) and the"›6º Ê ,:‘ "other produces small values of 'Y' (Y or A), the curve with the smaller"ñ6Ä Ê ,:‘ "values may not show much detail. Curves display best when both produce"G7Î Ê ,:‘ "a similiar range of values. Often, restricting the range of X, to just"œ7Ø Ê ,:‘ "cover a particular point of interest, will keep values of both curves"Ä7â Ê ,:‘ "in a good display range."í7ì Ê ,:‘ "Press any key to continue" 8ö Ê ,:K$çÞ:‹ K$ç"" Í ö (8 ‹ K$ç"Q" ï K$ç"q" Í ò28 � ^‹8 Ê ,:‘ "* Error traps detect syntax errors and provide a chance to recover without"¸8 Ê ,:‘ "having to restart the program."9( Ê ,:‘ "* Error traps exist, in this program, to detect both 'division by zero'"c92 Ê  ,:‘ "and 'floating point overflow' conditions, however IBM BASICA does not"¹9< Ê  ,:‘ "allow trapping these errors and the statements will not function. Some":F Ê  ,:‘ "BASICA 'clones' do not have these restrictions, in which case, the error"e:P Ê  ,:‘ "traps will work. If you get a system generated 'division by zero' or"¬:Z Ê ,:‘ "'overflow' error, you will have to restart the program.";d Ê ,:‘ "* See the HELP file accessable from the PLOT MENU for a more thorough"+;n Ê ,:‘ "discussion of this program.†;x Ê ,:‘ "* For practice, try: Y = X^2-5 AND A = -B -3, FROM X = -4 TO +4 (i.e. -4,4)"¬;‚ Ê ,:‘ "Press any key to begin"Ë;Œ Ê ,:K$çÞ:‹ K$ç"" Í Œ ç;– ‹ K$ç"Q" ï K$ç"q" Í ò÷;  � ^:‰ š