Решил написать прогу для физики, наткнулся на небольшую проблему, прога не делит площадь на 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_CloseWindow
P.S. Извиняюсь за украинский язык.
Отредактировано Foreword (24.12.2012 00:10:49)