How to resolve the algorithm Greatest common divisor step by step in the FutureBasic programming language

Published on 12 May 2024 09:40 PM

How to resolve the algorithm Greatest common divisor step by step in the FutureBasic programming language

Table of Contents

Problem Statement

Find the greatest common divisor   (GCD)   of two integers.

Greatest common divisor   is also known as   greatest common factor (gcf)   and   greatest common measure.

Let's start with the solution:

Step by Step solution about How to resolve the algorithm Greatest common divisor step by step in the FutureBasic programming language

Source code in the futurebasic programming language

begin enum 1  // Object tags
  _fldA
  _ansA
  _fldB
  _ansB
  _rand
end enum

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

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

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, @"= 0" : textlabel _ansB, @"= 0" : 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

fn BuildMacInterface
on dialog fn doDialog
handleevents

  

You may also check:How to resolve the algorithm Fractran step by step in the Kotlin programming language
You may also check:How to resolve the algorithm Topological sort step by step in the zkl programming language
You may also check:How to resolve the algorithm Exceptions step by step in the Pop11 programming language
You may also check:How to resolve the algorithm Visualize a tree step by step in the Rust programming language
You may also check:How to resolve the algorithm Extend your language step by step in the Factor programming language