Shop OBEX P1 Docs P2 Docs Learn Events
combining two vars — Parallax Forums

combining two vars

ChupaChupa Posts: 4
edited 2005-08-07 06:29 in BASIC Stamp
im trying to figure out how to combine two variables, and put a . between them. my code is like this:

var1 = united
var2 = states

i want var3 to be

var3 = var1"."var3
or
united.states

i cant figure this out for the life of me....

Comments

  • Paul BakerPaul Baker Posts: 6,351
    edited 2005-08-06 15:27
    Hi Chupa,

    I think your are confused about the basics of variable storage in a BS2. PBASIC variables can be a bit, 4 bits (nib), 8 bits (byte), or 16 bits (word). You haven't provided enough information to indicate whether you are trying to work with numbers or strings (1234 vs. "Hello"). Are you trying to concatonate the actually words "united" and "states", or is united defined to be a number (somewhere in your code appears something like "united = 234")?

    Since a PBASIC variable permits a maximum of 16 bits and each letter in a string takes 8 bits, you could store a maximum of 2 letters in a variable (and you shouldn't do this anyways). To store a string variable you have to use an array of bytes which is group of bytes, each byte holding a letter. Refer to the Stamp User Manual for how to work with arrays. The problem with working with arrays, is the BS2 has a limited amount of varaible space (maximum of 26 bytes) and you will quickly run out of variable space when working with strings. There are ways around this if certain conditions are true, but I won't go into them unless it is clear this is what you are trying to do.

    If you are trying to combine two numbers so that the first part is the integer value and the second part is the fractional part, the BS2 only works in integers. It doesn't understand how to work with fractions. Again there are ways around this if certain conditions are true, but I won't go into them unless it is clear this is what you are trying to do.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    ·1+1=10

    Post Edited (Paul Baker) : 8/6/2005 3:36:26 PM GMT
  • Chris SavageChris Savage Parallax Engineering Posts: 14,406
    edited 2005-08-06 15:44
    Hello,

    ·· About the only option left is to store the data in EEPROM in that order as you create the data.· This would involve using the WRITE and READ commands.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Chris Savage
    Parallax Tech Support
    csavage@parallax.com
  • ChupaChupa Posts: 4
    edited 2005-08-06 16:19
    Humm, if the BS2 cant work in fractions Ill need to come up with a completley new idea. Thanks for the help!
  • NewzedNewzed Posts: 2,503
    edited 2005-08-06 16:25
    The BS2 can work with fractions.· Take a look in the Help file about */ operators.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Sid Weaver
    Do you have a Stamp Tester yet?
    http://hometown.aol.com/newzed/index.html

    ·
  • Paul BakerPaul Baker Posts: 6,351
    edited 2005-08-06 16:36
    There are ways around the fact the BS2 does not natively work in floating point,·frequently you can structure your programs to produce the identical results as if the BS2 does work with floating point. The first question you'll need to answer is: what is the maximum value (integer portion) that you will need to handle, the second is: what is the minimum value (fractional portion) you need to handle, third is: do you need to work with both negative and positive numbers, last is: what mathmatical operations will you be performing on the numbers, just add and subtract or multiply and divide as well?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    ·1+1=10

    Post Edited (Paul Baker) : 8/6/2005 4:40:36 PM GMT
  • Paul BakerPaul Baker Posts: 6,351
    edited 2005-08-07 06:29
    I almost forgot, if you don't want the hassle of dealing with fixed point numbers (the alternative solution I mentioned), you can purchase the uM-FPU that Parallax sells for under $15. It is a floating point co-processor that will perform IEEE floating point operations for you.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    ·1+1=10
Sign In or Register to comment.