Mr. Anderson
Новичок
- Сообщения
- 122
- Репутация
- 4
AutoIt: 3.3.6.0
Версия: 1.0
Категория: Разное
Описание: Программа рассчитывает пропорции тела по формуле Джоя Маккалума исходя из обхвата кисти.
Так же считает сколько вам не хватает в обхвате по параметрам грудь, бедра, талия, предплечье, шея, бицепс, икра, бедро. Их значения придется ввести.
Так же некий коэффициент асимметрии тела. (сам придумал, но прикольно)
Программа считает на лету, поэтому кнопки "Посчитать" нету. Однако имеется кнопка "Обнулить" для удобного ввода новых значений.
Код: Исходник
Скриншот(ы):
Источник: Расчет пропорций тела по формуле Джоя Маккалума
Автор: Mr. Anderson
Версия: 1.0
Категория: Разное
Описание: Программа рассчитывает пропорции тела по формуле Джоя Маккалума исходя из обхвата кисти.
Так же считает сколько вам не хватает в обхвате по параметрам грудь, бедра, талия, предплечье, шея, бицепс, икра, бедро. Их значения придется ввести.
Так же некий коэффициент асимметрии тела. (сам придумал, но прикольно)
Программа считает на лету, поэтому кнопки "Посчитать" нету. Однако имеется кнопка "Обнулить" для удобного ввода новых значений.
Код: Исходник
Код:
#include <GUIConstants.au3>
#Region ### START Koda GUI section ### Form=E:\flash 2010.07.08\Koda\Forms\mac.kxf
$Form1 = GUICreate("Формула Джоя Маккалума; кодинг ©дядя Олег", 513, 442, 193, 113)
$Label1 = GUICtrlCreateLabel("Определение пропорций тела по формуле Джоя Маккалума:", 8, 8, 314, 17)
$Label2 = GUICtrlCreateLabel("Объем запястья:", 8, 32, 92, 17)
$Input1 = GUICtrlCreateInput("0", 104, 32, 89, 21)
$Group1 = GUICtrlCreateGroup("Расчет по формуле:", 8, 56, 145, 217)
$Label3 = GUICtrlCreateLabel("Грудь:", 16, 72, 36, 17)
$Input2 = GUICtrlCreateInput("0", 88, 72, 49, 21)
$Label4 = GUICtrlCreateLabel("Таз:", 16, 96, 26, 17)
$Label5 = GUICtrlCreateLabel("Талия:", 16, 120, 38, 17)
$Label6 = GUICtrlCreateLabel("Бедро:", 16, 144, 38, 17)
$Label7 = GUICtrlCreateLabel("Шея:", 16, 168, 28, 17)
$Label8 = GUICtrlCreateLabel("Бицепс:", 16, 192, 44, 17)
$Label9 = GUICtrlCreateLabel("Икра:", 16, 216, 33, 17)
$Label10 = GUICtrlCreateLabel("Предплечье:", 16, 240, 68, 17)
$Input3 = GUICtrlCreateInput("0", 88, 96, 49, 21)
$Input4 = GUICtrlCreateInput("0", 88, 120, 49, 21)
$Input5 = GUICtrlCreateInput("0", 88, 144, 49, 21)
$Input6 = GUICtrlCreateInput("0", 88, 168, 49, 21)
$Input7 = GUICtrlCreateInput("0", 88, 192, 49, 21)
$Input8 = GUICtrlCreateInput("0", 88, 216, 49, 21)
$Input9 = GUICtrlCreateInput("0", 88, 240, 49, 21)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup("Введите ваши данные:", 159, 56, 145, 217)
$Label11 = GUICtrlCreateLabel("Грудь:", 167, 72, 36, 17)
$Input10 = GUICtrlCreateInput("0", 239, 72, 49, 21)
$Label12 = GUICtrlCreateLabel("Таз:", 167, 96, 26, 17)
$Label13 = GUICtrlCreateLabel("Талия:", 167, 120, 38, 17)
$Label14 = GUICtrlCreateLabel("Бедро:", 167, 144, 38, 17)
$Label15 = GUICtrlCreateLabel("Шея:", 167, 168, 28, 17)
$Label16 = GUICtrlCreateLabel("Бицепс:", 167, 192, 44, 17)
$Label17 = GUICtrlCreateLabel("Икра:", 167, 216, 33, 17)
$Label18 = GUICtrlCreateLabel("Предплечье:", 167, 240, 68, 17)
$Input11 = GUICtrlCreateInput("0", 239, 96, 49, 21)
$Input12 = GUICtrlCreateInput("0", 239, 120, 49, 21)
$Input13 = GUICtrlCreateInput("0", 239, 144, 49, 21)
$Input14 = GUICtrlCreateInput("0", 239, 168, 49, 21)
$Input15 = GUICtrlCreateInput("0", 239, 192, 49, 21)
$Input16 = GUICtrlCreateInput("0", 239, 216, 49, 21)
$Input17 = GUICtrlCreateInput("0", 239, 240, 49, 21)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group3 = GUICtrlCreateGroup("Разница в процентах:", 311, 56, 193, 265)
$Label19 = GUICtrlCreateLabel("Грудь:", 319, 72, 36, 17)
$Input18 = GUICtrlCreateInput("0", 391, 72, 49, 21)
$Label20 = GUICtrlCreateLabel("Таз:", 319, 96, 26, 17)
$Label21 = GUICtrlCreateLabel("Талия:", 319, 120, 38, 17)
$Label22 = GUICtrlCreateLabel("Бедро:", 319, 144, 38, 17)
$Label23 = GUICtrlCreateLabel("Шея:", 319, 168, 28, 17)
$Label24 = GUICtrlCreateLabel("Бицепс:", 319, 192, 44, 17)
$Label25 = GUICtrlCreateLabel("Икра:", 319, 216, 33, 17)
$Label26 = GUICtrlCreateLabel("Предплечье:", 319, 240, 68, 17)
$Input19 = GUICtrlCreateInput("0", 391, 96, 49, 21)
$Input20 = GUICtrlCreateInput("0", 391, 120, 49, 21)
$Input21 = GUICtrlCreateInput("0", 391, 144, 49, 21)
$Input22 = GUICtrlCreateInput("0", 391, 168, 49, 21)
$Input23 = GUICtrlCreateInput("0", 391, 192, 49, 21)
$Input24 = GUICtrlCreateInput("0", 391, 216, 49, 21)
$Input25 = GUICtrlCreateInput("0", 391, 240, 49, 21)
$Input26 = GUICtrlCreateInput("0", 448, 72, 49, 21)
$Input27 = GUICtrlCreateInput("0", 448, 96, 49, 21)
$Input28 = GUICtrlCreateInput("0", 448, 120, 49, 21)
$Input29 = GUICtrlCreateInput("0", 448, 144, 49, 21)
$Input30 = GUICtrlCreateInput("0", 448, 168, 49, 21)
$Input31 = GUICtrlCreateInput("0", 448, 192, 49, 21)
$Input32 = GUICtrlCreateInput("0", 448, 216, 49, 21)
$Input33 = GUICtrlCreateInput("0", 448, 240, 49, 21)
$Label27 = GUICtrlCreateLabel("Коэф. ассиметрии:", 320, 272, 101, 17)
$Input34 = GUICtrlCreateInput("0", 424, 272, 73, 21)
$Label28 = GUICtrlCreateLabel("Средняя разница:", 320, 296, 95, 17)
$Button1 = GUICtrlCreateButton("Обнулить!", 160, 280, 145, 17, 0)
$Input35 = GUICtrlCreateInput("0", 424, 296, 73, 21)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Edit1 = GUICtrlCreateEdit("", 8, 328, 497, 105)
GUICtrlSetData(-1, StringFormat("Запястье надо измерять чуть выше косточки, выступающей на нем со стороны мизинца"& @CRLF &"(шиловидного отростка локтевой кости), то есть ближе к локтю - так советует сам"& @CRLF &"Маккалум. Из любого правила есть исключения. В идеале между толщиной запястья"& @CRLF &"и длиной, толщиной всех прочих костей действительно есть статистическая"& @CRLF &"закономерность."& @CRLF &"© Стюарт МакРоберт "&Chr(34)&"Думай 2"&Chr(34)&""))
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlSetState($Input1,$GUI_FOCUS)
GUISetState(@SW_SHOW)
GUIRegisterMsg(0x0111, "ToButton")
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
For $i = 10 to 17 Step 1
GUICtrlSetData(Eval("Input" & $i), 0)
Next
EndSwitch
WEnd
Func ToButton()
DoButton1()
EndFunc
Func DoButton1()
If GUICtrlRead($Input1) > 0 Then
;Расчет сколько должна быть грудь
$iNeedGrud = Round(GUICtrlRead($Input1) * 6.5, 1)
GUICtrlSetData($Input2, $iNeedGrud)
;Расчет таза
$iNeedTaz = Round($iNeedGrud * 0.85, 1)
GUICtrlSetData($Input3, $iNeedTaz)
;Расчет талии
$iNeedTalia = Round($iNeedGrud * 0.7, 1)
GUICtrlSetData($Input4, $iNeedTalia)
;Расчет бедра
$iNeedBedro = Round($iNeedGrud * 0.53, 1)
GUICtrlSetData($Input5, $iNeedBedro)
;Расчет шеи
$iNeedSheia = Round($iNeedGrud * 0.37, 1)
GUICtrlSetData($Input6, $iNeedSheia)
;Расчет бицепса
$iNeedBiceps = Round($iNeedGrud * 0.36, 1)
GUICtrlSetData($Input7, $iNeedBiceps)
;Расчет икры
$iNeedIkra = Round($iNeedGrud * 0.34, 1)
GUICtrlSetData($Input8, $iNeedIkra)
;Расчет предплечье
$iNeedPredp = Round($iNeedGrud * 0.29, 1)
GUICtrlSetData($Input9, $iNeedPredp)
;Разница груди
$iSubGrudCm = Round($iNeedGrud - GUICtrlRead($Input10), 2)
$iSubGrudPr = Round(100 - ((GUICtrlRead($Input10) * 100) / $iNeedGrud),2)
If GUICtrlRead($Input10) > 1 Then
GUICtrlSetData($Input18, $iSubGrudPr)
GUICtrlSetData($Input26, $iSubGrudCm)
EndIf
;Разница таза
$iSubTazCm = Round($iNeedTaz - GUICtrlRead($Input11), 2)
$iSubTazPr = Round(100 - ((GUICtrlRead($Input11) * 100) / $iNeedTaz),2)
If GUICtrlRead($Input11) > 1 Then
GUICtrlSetData($Input19, $iSubTazPr)
GUICtrlSetData($Input27, $iSubTazCm)
EndIf
;Разница талии
$iSubTaliaCm = Round($iNeedTalia - GUICtrlRead($Input12), 2)
$iSubTaliaPr = Round(100 - ((GUICtrlRead($Input12) * 100) / $iNeedTalia),2)
If GUICtrlRead($Input12) > 1 Then
GUICtrlSetData($Input20, $iSubTaliaPr)
GUICtrlSetData($Input28, $iSubTaliaCm)
EndIf
;Разница бедра
$iSubBedroCm = Round($iNeedBedro - GUICtrlRead($Input13), 2)
$iSubBedroPr = Round(100 - ((GUICtrlRead($Input13) * 100) / $iNeedBedro),2)
If GUICtrlRead($Input13) > 1 Then
GUICtrlSetData($Input21, $iSubBedroPr)
GUICtrlSetData($Input29, $iSubBedroCm)
EndIf
;Разница шеи
$iSubSheiaCm = Round($iNeedSheia - GUICtrlRead($Input14), 2)
$iSubSheiaPr = Round(100 - ((GUICtrlRead($Input14) * 100) / $iNeedSheia),2)
If GUICtrlRead($Input14) > 1 Then
GUICtrlSetData($Input22, $iSubSheiaPr)
GUICtrlSetData($Input30, $iSubSheiaCm)
EndIf
;Разница бицепса
$iSubBicepsCm = Round($iNeedBiceps - GUICtrlRead($Input15), 2)
$iSubBicepsPr = Round(100 - ((GUICtrlRead($Input15) * 100) / $iNeedBiceps),2)
If GUICtrlRead($Input15) > 1 Then
GUICtrlSetData($Input23, $iSubBicepsPr)
GUICtrlSetData($Input31, $iSubBicepsCm)
EndIf
;Разница икры
$iSubIkraCm = Round($iNeedIkra - GUICtrlRead($Input16), 2)
$iSubIkraPr = Round(100 - ((GUICtrlRead($Input16) * 100) / $iNeedIkra),2)
If GUICtrlRead($Input16) > 1 Then
GUICtrlSetData($Input24, $iSubIkraPr)
GUICtrlSetData($Input32, $iSubIkraCm)
EndIf
;Разница предплечья
$iSubPredpCm = Round($iNeedPredp - GUICtrlRead($Input17), 2)
$iSubPredpPr = Round(100 - ((GUICtrlRead($Input17) * 100) / $iNeedPredp),2)
If GUICtrlRead($Input17) > 1 Then
GUICtrlSetData($Input25, $iSubPredpPr)
GUICtrlSetData($Input33, $iSubPredpCm)
EndIf
;Коэффициент ассиметрии
$iKoefAssim = Round((($iSubGrudPr + $iSubTazPr + $iSubTaliaPr + $iSubBedroPr + $iSubSheiaPr + $iSubBicepsPr + $iSubIkraPr + $iSubPredpPr) / 8)*10, 4)
GUICtrlSetData($Input34, $iKoefAssim)
$iSredSub = Round((($iSubGrudPr + $iSubTazPr + $iSubTaliaPr + $iSubBedroPr + $iSubSheiaPr + $iSubBicepsPr + $iSubIkraPr + $iSubPredpPr) / 8), 4)
GUICtrlSetData($Input35, $iSredSub)
Else
$iInputKist = InputBox("Введите объем кисти", "Необходимо ввести объем кисти", 0)
GUICtrlSetData($Input1, $iInputKist)
GUICtrlSetState($Input1, $GUI_FOCUS)
EndIf
EndFunc
Func AllInput()
Local $iGoodInput = 1
For $i = 10 to 17 Step 1
If GUICtrlRead(Eval("Input" & $i)) < 1 Then
$iGoodInput = 0
EndIf
Next
Return $iGoodInput
EndFunc
Скриншот(ы):
Источник: Расчет пропорций тела по формуле Джоя Маккалума
Автор: Mr. Anderson