Решил написать прогу для физики, наткнулся на небольшую проблему, прога не делит площадь на 0.1, 0.2 и т.д. выбивает +Infinity, и вообще не работает с дробными числами ниже 1.
S.d = 0
l.d = 0
p.d = 0
R.d = 0
OpenWindow(0, 0, 0, 300, 400, "Физика", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
TextGadget(0, 10, 10, 150, 15, "Визначаемо опiр провiдника Ом")
ComboBoxGadget(1, 12, 38, 100, 20, #PB_EventType_Change)
AddGadgetItem(1, 0, "Алюмiнiй")
AddGadgetItem(1, 1, "Вольфрам")
AddGadgetItem(1, 2, "Графiт")
AddGadgetItem(1, 3, "Залiзо")
AddGadgetItem(1, 4, "Золото")
AddGadgetItem(1, 5, "Мiдь")
AddGadgetItem(1, 6, "Нiкелiн")
AddGadgetItem(1, 7, "Срiбло")
AddGadgetItem(1, 8, "Сталь")
AddGadgetItem(1, 9, "Цинк")
TextGadget(3, 130, 40, 150, 20, "- Речовина")
StringGadget(4, 12, 64, 100, 20, "")
TextGadget(5, 130, 64, 150, 20, "- Довжина провiдника в м")
StringGadget(6, 12, 88, 100, 20, "")
TextGadget(7, 130, 88, 150, 20, "- Площа провiдника в мм")
ButtonGadget(8, 12, 130, 100, 20, "Итого")
TextGadget(9, 12, 160, 150, 20, "")
Repeat
Event = WindowEvent()
If EventGadget() = 8
; речовина
If GetGadgetState(1) = 0
p.d = 0.028
EndIf
If GetGadgetState(1) = 1
p.d = 0.055
EndIf
If GetGadgetState(1) = 2
p.d = 0.03
EndIf
If GetGadgetState(1) = 3
p.d = 0.1
EndIf
If GetGadgetState(1) = 4
p.d = 0.024
EndIf
If GetGadgetState(1) = 5
p.d = 0.018
EndIf
If GetGadgetState(1) = 6
p.d = 0.4
EndIf
If GetGadgetState(1) = 7
p.d = 0.016
EndIf
If GetGadgetState(1) = 8
p.d = 0.12
EndIf
If GetGadgetState(1) = 9
p.d = 0.061
EndIf
; речовина
l.d=Val(GetGadgetText(4))
S.d=Val(GetGadgetText(6))
R.d = p.d * l.d / S.d
SetGadgetText(9, "Итого: " + StrD (R))
EndIf
Until Event = #PB_Event_CloseWindowP.S. Извиняюсь за украинский язык.
Отредактировано Foreword (24.12.2012 00:10:49)