Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #NoTrayIcon
- ; Planetary Gravity Calculator
- ; http://redd.it/284mep
- Global $Form, $idInput, $idOutput, $idButton
- $Form = GUICreate("Planetary Gravity Calculator", 640, 360)
- GUISetFont(10, 1000, 0, "Courier New", $Form)
- $idInput = GUICtrlCreateEdit("Input", 20, 20, 300, 300)
- $idOutput = GUICtrlCreateEdit("", 320, 20, 300, 300)
- $idButton = GUICtrlCreateButton("Calculate", 200, 320, 120, 20)
- GUISetState(@SW_SHOW, $Form)
- Do
- Switch GUIGetMsg()
- Case -3
- ExitLoop
- Case $idButton
- GUICtrlSetData($idOutput, Calculate(GUICtrlRead($idInput)))
- EndSwitch
- Until False
- Exit
- Func Calculate($sInput)
- Local Static $pi = ACos(-1)
- Local $sOutput = "", $aInput, $i
- Local $G = 6.67e-11, $nMass
- Local $aPlanet, $nMassP, $nForce
- $aInput = StringSplit($sInput, @CRLF, 1)
- ; $aInput[0] = number of lines
- ; $aInput[1] = M
- ; $aInput[2] = N
- ; $aInput[3] = planet #1
- ; ...
- If ($aInput[0] < 3) Then Return "invalid Input"
- If ($aInput[0] <> $aInput[2]+2) Then Return "invalid Input, please check N"
- $nMass = $aInput[1]
- For $i = 3 To $aInput[0]
- $aPlanet = StringRegExp($aInput[$i], "^\h*(\w+)\h*,\h*(\d+)\h*,\h*(\d+)\h*$", 3)
- If @error Then Return "invalid Input, please check line " & $i
- ; $aPlanet[0] = name
- ; $aPlanet[1] = radius
- ; $aPlanet[2] = density
- $nMassP = 4/3 * $pi * $aPlanet[1]^3 * $aPlanet[2]
- $nForce = $G * ($nMass * $nMassP) / $aPlanet[1]^2
- $sOutput &= $aPlanet[0] & ": " & $nForce & @CRLF
- Next
- Return $sOutput
- EndFunc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement