Help me with my inability to see a simple solution

Ken Ray kray at sonsothunder.com
Tue Dec 21 21:44:39 EST 2010


I know I'm kind of late, but here's another way to accomplish the same thing
(it's also a bit shorter):

on mouseUp
  put "3,4,5,6,6,7,8,9,10,12,13,13,14" into tData
  put MissingAndDupes(tData) into tResult
  -- line 1 of tResult will be empty or have a list of missing numbers
  -- line 2 of tResult will be empty or have a list of duped numbers
end mouseUp

function MissingAndDupes pData
  repeat for each item tItem in pData
    add 1 to tCount[tItem]
  end repeat
  repeat with x = 1 to max(pData)
    if tCount[x] = "" then put (x & ",") after tMissing
    if tCount[x] > 1 then put (x & ",") after tDupes
  end repeat
  delete char -1 of tMissing
  delete char -1 of tDupes
  return tMissing & cr & tDupes
end MissingAndDupes

Ken

On 12/17/10 1:47 PM, "william humphrey" <bill at bluewatermaritime.com> wrote:

> That's exactly what I did. A day doesn't go by that I find another way to
> make a mistake.
> 
> Thanks for all your help.
> 
> On Fri, Dec 17, 2010 at 3:00 PM, Robert Brenstein <rjb at robelko.com> wrote:
> 
>> On 16.12.2010 at 20:36 Uhr -0400 william humphrey apparently wrote:
>> 
>>> function getMissingNumbers pNumberList
>>>  put empty into vOccurences
>>>  repeat for each item vNumber in pNumberList
>>>   add 1 to vOccurences[vNumber]
>>>  end repeat
>>>  get the keys of vOccurences
>>>  sort lines of it numeric
>>>  put line -1 of it into vLargestNumber
>>>  put empty into vMissing
>>>  repeat with i=1 to vLargestNumber
>>>   if vOccurences[i] is empty then put i & comma after vMissing
>>>  end repeat
>>>  delete char -1 of vMissing
>>>  return vMissing
>>> end getMissingNumbers
>>> 
>>> this returns a sequential list of all numbers, not just the missing
>>> numbers
>>> 
>> 
>> Just tested this and it works for me. May be you passed the data as
>> multiple parameters instead of one. I mean sth like
>> 
>>  answer getMissingNumbers(3,4,5,6,6,7,8,9,10,12,13,13,14)
>> 
>> instead of
>> 
>>  answer getMissingNumbers("3,4,5,6,6,7,8,9,10,12,13,13,14")
>> 
>> This algorithm makes no assumption on the order of data except that it
>> should contain numbers from 1 to the largest number in the set. Their order
>> or repetition are irrelevant.
>> 
>> 
>> Robert
>> 
>> _______________________________________________
>> use-livecode mailing list
>> use-livecode at lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your
>> subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
>> 
> 
> 

Ken Ray
Sons of Thunder Software, Inc.
Email: kray at sonsothunder.com
Web Site: http://www.sonsothunder.com/






More information about the Use-livecode mailing list