Help with arrays!! ASAP!
Author 
Message 
chibitenshi_03

Posted: Thu Mar 04, 2004 6:10 pm Post subject: Help with arrays!! ASAP! 


i need to make a program using arrays that randomly output numbers. Then i need to calculate the average, median and mode. I know how to get the average but how do you find the median and mode?
This is what i have so far:
var count, sum : int
sum := 0
% ask the user how many numbers there are
put "How many numbers do you want to generate?"
get count
var number : array 1 .. count of int
for a : 1 .. count
randint (number (a), 1, 10)% randomly choose numbers
put number (a), " " .. % output numbers
sum := sum + number (a) % add up all the numbers
end for
put skip
put "The average is ", sum / count, "." 





Sponsor Sponsor



Cervantes

Posted: Thu Mar 04, 2004 6:29 pm Post subject: (No subject) 


to find the median you need to sort the numbers into another array.
Ways to sort are many and found all across compsci.ca. Here is a bubble sort
code: 
var count : int
get count
var list : array 1 .. count of int
for i : 1 .. count
get list (i)
end for
var sortList : array 1 .. count of int
for i : 1 .. count
var smallest : int := 999
var where : int
for j : 1 .. count
if list (j) < smallest then
smallest := list (j)
where := j
end if
end for
sortList (i) := smallest
list (where) := 999
end for
for i : 1 .. count
put sortList (i)
end for

once sorted, you output the middle element of the array. 





chibitenshi_03

Posted: Thu Mar 04, 2004 6:39 pm Post subject: (No subject) 


Do you kno how to do the mode? 





Cervantes

Posted: Thu Mar 04, 2004 6:43 pm Post subject: (No subject) 


been fiddling around with that one. It's kinda tricky.
Here's what I've done. It's the basis. However you need to expand it to make it so that you can enter the number of random nums to be created. When you do that, however, you will also need to error proof it, as you will have problems with "array subscript is out of range".
code: 
var list : array 1 .. 10 of int
for i : 1 .. 10
list (i) := Rand.Int (1, 10)
end for
var mode : array 1 .. 10 of int
for p : 1 .. 10
mode (p) := 0
end for
for k : 1 .. 10
mode (list (k)) += 1
end for
for o : 1 .. 10
put "# of ", o, "'s: ", mode (o)
end for 
from there you sort the mode array and output the biggest one. 





chibitenshi_03

Posted: Thu Mar 04, 2004 6:45 pm Post subject: (No subject) 


Thanks for the help! ^^ 






