Programming C, C++, Java, PHP, Ruby, Turing, VB
Computer Science Canada 
Programming C, C++, Java, PHP, Ruby, Turing, VB  

Username:   Password: 
 RegisterRegister   
 Splitting up digits into var
Index -> Programming, Turing -> Turing Help
View previous topic Printable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
Freakish




PostPosted: Mon Sep 11, 2006 9:45 pm   Post subject: Splitting up digits into var

How can I split up digits into var
Ex.

I type in the number 392175

var digit01 is = to 3
var digit02 is = to 9
var digit03 is = to 2
var digit04 is = to 1
var digit05 is = to 7
var digit06 is = to 5
Sponsor
Sponsor
Sponsor
sponsor
ericfourfour




PostPosted: Mon Sep 11, 2006 10:22 pm   Post subject: (No subject)

I guess you could divide the number by a power of ten. Then, you could truncate the decimal.
TokenHerbz




PostPosted: Tue Sep 12, 2006 2:31 am   Post subject: (No subject)

that, or the long way Smile

code:

var number: string      %%We use a string so we can minipulate it.

    %%This here makes sure the strink that was entered is pure numbers.
loop
    get number      %%get you string
   
    if strintok (number) then   %%basicly means:  if string can convert to int ok then
        exit        %%we leave the loop
    else    %%otherwise we tell them its wrong
        put "Enter numbers only"    %%message.
    end if
end loop

var numbers: array 1 .. length(number) of int   %%make an array to the length of the string (should use flexy)

for i: 1 .. upper (numbers) %%for loop to the amount to the string
    numbers(i) := ord(number(i))    %%we declare the variables to the place in the string
end for

for i: 1 .. upper (numbers)
    put "Number ", i, " is ", number(i)     %%we show that it really works :)
end for
zylum




PostPosted: Tue Sep 12, 2006 7:26 am   Post subject: (No subject)

or you could do it the cool way Laughing (ie the math way)

code:
var number : int := 392175

var digits : array 1 .. ceil (ln (number + 1) / ln (10)) of int

for i : 1 .. upper (digits)
    digits (upper (digits) - i + 1) := (number div (10 ** (i - 1))) mod 10
end for

for i : 1 .. upper (digits)
    put digits (i)..
end for
TokenHerbz




PostPosted: Tue Sep 12, 2006 10:44 am   Post subject: (No subject)

zylum, why did you use "ceil" when your not dealing with decimals?
do_pete




PostPosted: Tue Sep 12, 2006 10:51 am   Post subject: (No subject)

Or you could do it the easy and short way:
code:
var number : int
var stringnumber : string

get number

stringnumber := intstr (number)

for x : 1 .. length (stringnumber)
    put stringnumber (x)
end for
Cervantes




PostPosted: Tue Sep 12, 2006 1:39 pm   Post subject: (No subject)

Short, maybe, but not easy. At least not for the computer. Does it really make sense to turn a number into a string, split it up, then turn it back? It makes far more sense to do it the math way.
zylum




PostPosted: Tue Sep 12, 2006 3:27 pm   Post subject: (No subject)

TokenHerbz wrote:
zylum, why did you use "ceil" when your not dealing with decimals?


where do you not see decimals? i used 2 lns and a divide... looks like plenty of decimals to me Wink
Sponsor
Sponsor
Sponsor
sponsor
richcash




PostPosted: Tue Sep 12, 2006 8:57 pm   Post subject: (No subject)

Quote:
zylum, why did you use "ceil" when your not dealing with decimals?


It's good that you asked, beacuse I say that one should never use an algorithm unless they know fully what it means. I get the feeling that some people won't know what zylum is doing giving such a complex upper bound to his array. Well, maybe it would help if you thought of it like this :
code:
fcn LOG_10 (n : int) : real
    result ln (n) / ln (10)
end LOG_10

var digits : array 1 .. floor (LOG_10 (number)) + 1 of int %floor is the opposite of ceil

The upper bound of this array is equal to the number of digits in number. Now you can see it more easily, if you know what LOG is.
Display posts from previous:   
   Index -> Programming, Turing -> Turing Help
View previous topic Tell A FriendPrintable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic

Page 1 of 1  [ 9 Posts ]
Jump to:   


Style:  
Search: