Data update
This commit is contained in:
parent
07c7092a52
commit
61b93a2cd1
313 changed files with 6160 additions and 346 deletions
|
|
@ -1,15 +1,56 @@
|
|||
window 1, @"Greatest Common Divisor", (0,0,480,270)
|
||||
begin enum 1 // Object tags
|
||||
_fldA
|
||||
_ansA
|
||||
_fldB
|
||||
_ansB
|
||||
_rand
|
||||
end enum
|
||||
|
||||
local fn gcd( a as short, b as short ) as short
|
||||
short result
|
||||
void local fn BuildMacInterface //15-line GUI
|
||||
window 1, @"Greatest Common Divisor", ( 0, 0, 380, 130 ), NSWindowStyleMaskTitled + NSWindowStyleMaskClosable
|
||||
textfield _fldA,,, ( 20, 89, 156, 21 )
|
||||
ControlSetAlignment( _fldA, NSTextAlignmentRight )
|
||||
ControlSetFormat( _fldA, @"0123456789", Yes, 18, 0 )
|
||||
textfield _fldB,,, ( 20, 57, 156, 24 )
|
||||
ControlSetAlignment( _fldB, NSTextAlignmentRight )
|
||||
ControlSetFormat( _fldB, @"0123456789", Yes, 18, 0 )
|
||||
textlabel _ansA, @"= ", ( 182, 91, 185, 16 )
|
||||
textlabel _ansB, @"= ", ( 182, 62, 185, 16 )
|
||||
button _rand,,,@"Random demo", ( 129, 13, 122, 32 )
|
||||
menu 1,,, @"File" : menu 1,0,, @"Close", @"w" : MenuItemSetAction(1,0,@"performClose:")
|
||||
editmenu 2
|
||||
WindowMakeFirstResponder( 1, _fldA )
|
||||
end fn
|
||||
|
||||
if ( b != 0 )
|
||||
result = fn gcd( b, a mod b)
|
||||
else
|
||||
result = abs(a)
|
||||
end if
|
||||
end fn = result
|
||||
local fn GCD( a as long, b as long ) as long //the requested function
|
||||
while b
|
||||
long c = a mod b
|
||||
a = b : b = c
|
||||
wend
|
||||
end fn = a
|
||||
|
||||
print fn gcd( 6, 9 )
|
||||
void local fn DoDialog( ev as Long, tag as long ) //This makes it interactive
|
||||
long a, b, c
|
||||
select ev
|
||||
case _textFieldDidchange //Find GCD of edit fields' contents
|
||||
a = fn ControlIntegerValue( _fldA )
|
||||
b = fn ControlIntegerValue( _fldB )
|
||||
if a + b == 0 then textlabel _ansA, @"=" : textlabel _ansB, @"=" : exit fn
|
||||
c = fn GCD( a, b )
|
||||
textlabel _ansA, fn stringwithformat(@"= %ld x %ld", c, a / c )
|
||||
textlabel _ansB, fn stringwithformat(@"= %ld x %ld", c, b / c )
|
||||
case _btnclick //Fill edit fields with random content, then process
|
||||
select tag
|
||||
case _rand
|
||||
c = rnd(65536)
|
||||
textfield _fldA,,str( c * rnd(65536) )
|
||||
textfield _fldB,,str( c * rnd(65536) )
|
||||
fn DoDialog( _textFieldDidchange, 0 )
|
||||
end select
|
||||
case _windowWillClose : end
|
||||
end select
|
||||
end fn
|
||||
|
||||
HandleEvents
|
||||
fn BuildMacInterface
|
||||
on dialog fn doDialog
|
||||
handleevents
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue