Что нового

[Математика] Заполнение полей GUI с помощью функций сложения и вычитания

Rakim

Новичок
Сообщения
85
Репутация
4
Скрин:
735397b4c06f.png


Обьясню в кратции что мне нужно:
Пишу в inprut1 число 36 и жму button1.
От 36 отнимаеться 2 и ответ выводиться в inprut2.
От 36 отнимаеться 10 и ответ выводиться в inprut3.
К 36 прибавляеться 30 и ответ выводиться в inprut4.

Помогите если не сложно )
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Re: [Математика] Сложение и вычитание

Код:
GUICreate("Form1", 410, 159, 192, 124)
$Input1 = GUICtrlCreateInput("", 16, 32, 377, 21)
$Input2 = GUICtrlCreateInput("", 272, 80, 121, 21)
$Input3 = GUICtrlCreateInput("", 144, 80, 121, 21)
$Input4 = GUICtrlCreateInput("", 16, 80, 121, 21)
GUICtrlCreateLabel("Input1", 16, 16, 34, 14)
GUICtrlCreateLabel("Input4", 16, 64, 34, 14)
GUICtrlCreateLabel("Input3", 144, 64, 34, 14)
GUICtrlCreateLabel("Input2", 272, 64, 34, 14)
$Button1 = GUICtrlCreateButton("Button1", 16, 112, 379, 25)
GUISetState()

While 1
	Switch GUIGetMsg()
		Case -3
			Exit
		Case $Button1
			$Input1_Text = GUICtrlRead($Input1)
			GUICtrlSetData($Input2,  $Input1_Text - 2)
			GUICtrlSetData($Input3,  $Input1_Text - 10)
			GUICtrlSetData($Input4,  $Input1_Text + 30)
	EndSwitch
WEnd
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Re: [Математика] Сложение и вычитание

Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"[Математика] Сложение и вычитание" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Глобальный модератор.
 
Автор
R

Rakim

Новичок
Сообщения
85
Репутация
4
Re: [Математика] Сложение и вычитание

Zaramot: А если у меня такое число 86103D и от него нужно отнять 2A.
Просто твой код с этими числами не работает )
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,486
Rakim [?]
А если у меня такое число 86103D и от него нужно отнять 2A.
Что то я такого числа не видел, может как то так:

Код:
While 1
    Switch GUIGetMsg()
        Case -3
            Exit
        Case $Button1
            $Input1_Text = GUICtrlRead($Input1)
			
			If StringIsDigit($Input1_Text) Then
				GUICtrlSetData($Input2, $Input1_Text - 2)
				GUICtrlSetData($Input3, $Input1_Text - 10)
				GUICtrlSetData($Input4, $Input1_Text + 30)
			Else
				$Input1_Text = Dec($Input1_Text)
				
				GUICtrlSetData($Input2, $Input1_Text - Dec('2A'))
				GUICtrlSetData($Input3, $Input1_Text - Dec('10A'))
				GUICtrlSetData($Input4, $Input1_Text + Dec('30A'))
			EndIf
    EndSwitch
WEnd


:scratch:
 
Автор
R

Rakim

Новичок
Сообщения
85
Репутация
4
Неа.... Не правельно работает. В калькуляторе на этот пример (86103D - 10A) даёт ответ 860F33.
 

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Rakim, это потому что на калькуляторе Вы производите вычисление в Hex режиме, а в примере CreatoR'а вычисления в Dec


Добавлено:
Сообщение автоматически объединено:

Код:
GUICreate("Form1", 410, 159, 192, 124)
$Input1 = GUICtrlCreateInput("", 16, 32, 377, 21)
$Input2 = GUICtrlCreateInput("", 272, 80, 121, 21)
$Input3 = GUICtrlCreateInput("", 144, 80, 121, 21)
$Input4 = GUICtrlCreateInput("", 16, 80, 121, 21)
GUICtrlCreateLabel("Input1", 16, 16, 34, 14)
GUICtrlCreateLabel("Input4", 16, 64, 34, 14)
GUICtrlCreateLabel("Input3", 144, 64, 34, 14)
GUICtrlCreateLabel("Input2", 272, 64, 34, 14)
$Button1 = GUICtrlCreateButton("Button1", 16, 112, 379, 25)
GUISetState()

While 1
    Switch GUIGetMsg()
        Case -3
            Exit
        Case $Button1
            $Input1_Text = GUICtrlRead($Input1)
            
            If StringIsDigit($Input1_Text) Then
                GUICtrlSetData($Input2, $Input1_Text - 2)
                GUICtrlSetData($Input3, $Input1_Text - 10)
                GUICtrlSetData($Input4, $Input1_Text + 30)
            Else
                $Input1_Text = Dec($Input1_Text)
                
                GUICtrlSetData($Input2, Hex($Input1_Text - Dec('2A'), 6))
                GUICtrlSetData($Input3, Hex($Input1_Text - Dec('10A'), 6))
                GUICtrlSetData($Input4, Hex($Input1_Text + Dec('30A'), 6))
            EndIf
    EndSwitch
WEnd
 
Автор
R

Rakim

Новичок
Сообщения
85
Репутация
4
Всё работает. Огромное спасибо всем )))
 
Автор
R

Rakim

Новичок
Сообщения
85
Репутация
4
Теперь проблема в другом )
Код который вы мне дали работает, но он считает в Hex режиме только если грубо говоря есть в цифре буква.
А если вычислять с цифр, то он работает в режиме Dec.
Как это исправить ???
 
Автор
R

Rakim

Новичок
Сообщения
85
Репутация
4
Всё. Я сам понел )))
Код кому нужно:

Код:
$Input1_Text = GUICtrlRead($Input1)
$Input1_Text = Dec($Input1_Text)

                GUICtrlSetData($Input2, Hex($Input1_Text + Dec('686'), 6))
                GUICtrlSetData($Input3, Hex($Input1_Text + Dec('CD2'), 6))
                GUICtrlSetData($Input4, Hex($Input1_Text - Dec('74'), 6))
				GUICtrlSetData($Input5, Hex($Input1_Text - Dec('3C4'), 6))
				GUICtrlSetData($Input6, Hex($Input1_Text - Dec('2C4'), 6))
				GUICtrlSetData($Input7, Hex($Input1_Text + Dec('22B20'), 6))
				GUICtrlSetData($Input8, Hex($Input1_Text + Dec('31DC2'), 6))
				GUICtrlSetData($Input9, Hex($Input1_Text - Dec('457A'), 6))
				GUICtrlSetData($Input10, Hex($Input1_Text - Dec('5A4'), 6))
				GUICtrlSetData($Input11, Hex($Input1_Text - Dec('1DC5'), 6))
 
Верх