| Home CBM ASCII-X BASIC Disk Commands Enter RUN mode Program Format Secret Variables Variable Format Expressions Keywords (divide) (equal) (less) (minus) (more) (multiply) (plus) (power) Abs And Append Asc Atn Auto Backup Bank Begin Bend Bload Boot Box Bsave Bump Catalog Char Chr Circle Close Clr Cmd Collect Collision Color Concat Cont Copy Cos Data Dclear Dclose Dec Def Delete Dim Directory Dispose Dload Do Dopen Draw Ds Ds string Dsave Dverify El Else End Envelope Er Err Exit Exp Fast Fetch Filter Fn For Fre Get Get num Getkey Go Gosub Goto Graphic Gshape Header Help Hex If Input Input num Instr Int Joy Key Left Len Let List Load Locate Log Loop Mid Monitor Movspr New Next Not Off On Open Or Paint Peek Pen Pi Play Pointer Poke Pos Pot Print num Pudef Quit Rclr Rdot Read Record Rem Rename Renumber Restore Resume Return Rgr Right Rlum Rnd Rreg Rspcolor Rsppos Rsprite Run Rwindow Save Scale Scnclr Scratch Sgn Sin Sleep Slow Sound Spc Sprcolor Sprdef Sprite Sprsav Sqr Sshape St Stash Step Stop Str Swap Sys Tab Tan Tempo Then Ti Ti string To Trap Troff Tron Until Using Usr Val Verify Vol Wait While Width Window Xor Syntax Tokens C128 D64plus Disk Escape Codes Hardware PCxface PETSCII Pet2asc Futurama IBM PC-AT Contact Games Glossary Hall of fame Hall of shame Miscellaneous Privacy policy Programming Twisty puzzles |
dividend / divisor
Calculate an arithmetic expression.
The divide operator calculates the quotient of any two real numbers, except for a zero divisor. I'm not going to explain how division works; take a class in Elementry School if you need help. Attempting to use zero for the divisor generates a DIVISION BY ZERO ERROR. If the absolute value of the result is greater than 1.70141183e+38 then an OVERLOW ERROR occurs. If the absolute value of the result is less than 2.93873588e-39 then it silently underflows to zero. The divide operator has the second-highest fixed priority (the same as mulitply, but lower than power). The user of course may over-ride the built-in operator priorities by using parentheses "(" and ")". Like all operators, the result may be printed, stored in an appropriate variable, or combined with other operators in a larger expression. In this case, a numeric variable is required for storage. But if the variable is an integer, the minimum result that can be stored is -32768 and the maximum is +32767; otherwise an ILLEGAL QUANTITY ERROR is generated. Some versions of BASIC, and many other languages, include a handy operator called something like modulus. That value is just the remainder after dividing to integer accuracy. CBM BASIC does not have this feature, so here's how you can do it:
With that code, R will be an integer if both N and D are integers. Otherwise, R will probably not be an integer either. In any case, R should be less than D. CBM BASIC (nor any langauge now that I think about) really has a "string division" operator. But CBM BASIC v3.5 and v7.0 offer the INSTR function which at least gives you the answer of "does it go into"...
© H2Obsession, 2014 |