Vindicator Posted November 6, 2006 Share Posted November 6, 2006 (edited) Im making a script that will find everything I need to help me get through my math home work... and I need to find how to order 9 numbers from least to greatest (to find the median), would I be able to do it with strings? if so how? EDIT: ALSO, how would I be able to find the number with greatest value (MODE), do I have to use ALL those IF...Then commands? expandcollapse popup#include <GuiConstants.au3> GuiCreate("Math Helper", 351, 163,-1, -1 , BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS)) $Input_1 = GuiCtrlCreateInput("", 10, 10, 30, 20) $Input_2 = GuiCtrlCreateInput("", 40, 10, 30, 20) $Input_3 = GuiCtrlCreateInput("", 70, 10, 30, 20) $Input_4 = GuiCtrlCreateInput("", 100, 10, 30, 20) $Input_5 = GuiCtrlCreateInput("", 130, 10, 30, 20) $Input_6 = GuiCtrlCreateInput("", 160, 10, 30, 20) $Input_7 = GuiCtrlCreateInput("", 190, 10, 30, 20) $Input_8 = GuiCtrlCreateInput("", 220, 10, 30, 20) $Input_9 = GuiCtrlCreateInput("", 250, 10, 30, 20) $Button_10 = GuiCtrlCreateButton("ENTER", 280, 10, 60, 20) $Label_11 = GuiCtrlCreateLabel("Mean:", 10, 40, 40, 20) $Input_12 = GuiCtrlCreateInput("", 70, 40, 90, 20,$ES_READONLY) $Label_13 = GuiCtrlCreateLabel("Median:", 10, 70, 40, 20,$ES_READONLY) $Input_14 = GuiCtrlCreateInput("", 70, 70, 90, 20,$ES_READONLY) $Input_15 = GuiCtrlCreateInput("", 70, 100, 90, 20,$ES_READONLY) $Label_16 = GuiCtrlCreateLabel("Mode", 10, 100, 50, 20) $Label_17 = GuiCtrlCreateLabel("Scale", 190, 40, 40, 20) $Label_18 = GuiCtrlCreateLabel("Interval", 190, 70, 40, 20) $Label_19 = GuiCtrlCreateLabel("Range", 190, 100, 40, 20) $Input_20 = GuiCtrlCreateInput("", 250, 40, 90, 20,$ES_READONLY) $Input_21 = GuiCtrlCreateInput("", 250, 70, 90, 20,$ES_READONLY) $Input_22 = GuiCtrlCreateInput("", 250, 100, 90, 20,$ES_READONLY) $Input_23 = GuiCtrlCreateInput("ORDER", 10, 130, 330, 20,$ES_READONLY) GuiSetState() While 1 $1=GUICtrlRead($Input_1) $2=GUICtrlRead($Input_2) $3=GUICtrlRead($Input_3) $4=GUICtrlRead($Input_4) $5=GUICtrlRead($Input_5) $6=GUICtrlRead($Input_6) $7=GUICtrlRead($Input_7) $8=GUICtrlRead($Input_8) $9=GUICtrlRead($Input_9) $msg = GuiGetMsg() Select Case $msg = $Button_10 $MEAN=$1 + $2 + $3 + $4 + $5 + $6 + $7 + $8 + $9 $MEAN=$MEAN / 9 $MEAN=Round($MEAN,2) GUICtrlSetData($Input_12,$MEAN) ;????????? Case $msg = $GUI_EVENT_CLOSE ExitLoop Case Else ;;; EndSelect WEnd Exit Edited November 6, 2006 by P a R a D o X If I hadn't said thank you yet, and you deserve it, than thank you... Link to comment Share on other sites More sharing options...
Fossil Rock Posted November 6, 2006 Share Posted November 6, 2006 Research this in the help file. #include <Array.au3> _ArraySort ( ByRef $a_Array, [$i_Descending[, $i_Base=0[, $i_Ubound=0[, $i_Dim=1[, $i_SortIndex=0]]]]] ) Agreement is not necessary - thinking for one's self is! Link to comment Share on other sites More sharing options...
Schatten Posted November 6, 2006 Share Posted November 6, 2006 I think it would be the best to use arrays for that job Link to comment Share on other sites More sharing options...
Vindicator Posted November 6, 2006 Author Share Posted November 6, 2006 theres one problem though, it only sorts my numbers by the first number, like: 82342 9347 183 23 453 78832 63 592 399999 it would come out: 9347 82342 78832 63 592 453 399999 23 183 And im using this: $avArray[0]=GUICtrlRead($Input_1) $avArray[1]=GUICtrlRead($Input_2) $avArray[2]=GUICtrlRead($Input_3) $avArray[3]=GUICtrlRead($Input_4) $avArray[4]=GUICtrlRead($Input_5) $avArray[5]=GUICtrlRead($Input_6) $avArray[6]=GUICtrlRead($Input_7) $avArray[7]=GUICtrlRead($Input_8) $avArray[8]=GUICtrlRead($Input_9) _ArraySort( $avArray,1) how do I fix this? If I hadn't said thank you yet, and you deserve it, than thank you... Link to comment Share on other sites More sharing options...
Moderators SmOke_N Posted November 6, 2006 Moderators Share Posted November 6, 2006 and if you do $avArray[0] = Number(GUICtrlRead($Input_X)) how does it sort? If you're still having issues, I wrote something to do this before for Valuater, I'll have to find it. Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer. Link to comment Share on other sites More sharing options...
GaryFrost Posted November 6, 2006 Share Posted November 6, 2006 could just pad with zeros using stringformat and then convert back to numbers using number function which should strip the zeros back off SciTE for AutoItDirections for Submitting Standard UDFs Don't argue with an idiot; people watching may not be able to tell the difference. Link to comment Share on other sites More sharing options...
GaryFrost Posted November 6, 2006 Share Posted November 6, 2006 theres one problem though, it only sorts my numbers by the first number, like: 82342 9347 183 23 453 78832 63 592 399999 it would come out: 9347 82342 78832 63 592 453 399999 23 183 And im using this: $avArray[0]=GUICtrlRead($Input_1) $avArray[1]=GUICtrlRead($Input_2) $avArray[2]=GUICtrlRead($Input_3) $avArray[3]=GUICtrlRead($Input_4) $avArray[4]=GUICtrlRead($Input_5) $avArray[5]=GUICtrlRead($Input_6) $avArray[6]=GUICtrlRead($Input_7) $avArray[7]=GUICtrlRead($Input_8) $avArray[8]=GUICtrlRead($Input_9) _ArraySort( $avArray,1) how do I fix this? I remembered what i did on the old listview sort routine to handle numbers on your read convert it to a number, the read returns a string, the sort should work as wanted then i.e. [autoit] $avArray[0]=Number(GUICtrlRead($Input_1)) $avArray[1]=Number(GUICtrlRead($Input_2)) $avArray[2]=Number(GUICtrlRead($Input_3)) $avArray[3]=Number(GUICtrlRead($Input_4)) $avArray[4]=Number(GUICtrlRead($Input_5)) $avArray[5]=Number(GUICtrlRead($Input_6)) $avArray[6]=Number(GUICtrlRead($Input_7)) $avArray[7]=Number(GUICtrlRead($Input_8)) $avArray[8]=Number(GUICtrlRead($Input_9)) _ArraySort( $avArray,1) SciTE for AutoItDirections for Submitting Standard UDFs Don't argue with an idiot; people watching may not be able to tell the difference. Link to comment Share on other sites More sharing options...
Moderators SmOke_N Posted November 6, 2006 Moderators Share Posted November 6, 2006 I remembered what i did on the old listview sort routine to handle numbers on your read convert it to a number, the read returns a string, the sort should work as wanted then i.e. [autoit] $avArray[0]=Number(GUICtrlRead($Input_1)) $avArray[1]=Number(GUICtrlRead($Input_2)) $avArray[2]=Number(GUICtrlRead($Input_3)) $avArray[3]=Number(GUICtrlRead($Input_4)) $avArray[4]=Number(GUICtrlRead($Input_5)) $avArray[5]=Number(GUICtrlRead($Input_6)) $avArray[6]=Number(GUICtrlRead($Input_7)) $avArray[7]=Number(GUICtrlRead($Input_8)) $avArray[8]=Number(GUICtrlRead($Input_9)) _ArraySort( $avArray,1)hmmm http://www.autoitscript.com/forum/index.ph...st&p=263043 Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer. Link to comment Share on other sites More sharing options...
Vindicator Posted November 7, 2006 Author Share Posted November 7, 2006 Kwah, thanks guys... and wheres that link supposed to go?? it just takes me back here....wait is it supposed to do that?...i am really dull now... well i think i am.. but then... ok what ever nvm, thanks again If I hadn't said thank you yet, and you deserve it, than thank you... Link to comment Share on other sites More sharing options...
GaryFrost Posted November 7, 2006 Share Posted November 7, 2006 Kwah, thanks guys... and wheres that link supposed to go?? it just takes me back here....wait is it supposed to do that?...i am really dull now... well i think i am.. but then... ok what ever nvm, thanks againHe was just messing with me.... SciTE for AutoItDirections for Submitting Standard UDFs Don't argue with an idiot; people watching may not be able to tell the difference. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now