Показать сообщение отдельно
Старый 19.11.2007, 08:44   #5
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Re: проблемка с MIDletом

Просто наредкость неряшливая программа, но что-то там считает.
Тут скорее формула косячит, но об этом пусть уже думает автор.
Версия MIDP1.0, плавающая точка стоит в положении Плавающая (Floating-point в английской версии MP)
Для примера 8000, 2000, 2000 результат: 7069.71

program rulon;
var dsID,hsID,d1sID: integer;
i, n: integer;
hi,di,d,d1,l,h,r,d1i:real;
cmdNext: command;
begin
ShowForm; cmdNext := CreateCommand('Считать', CM_OK, 1); AddCommand(cmdNext);
dsID:=FormAddTextField('Введите диаметр рулона в мм', '', 4, TF_NUMERIC);
hsID:=FormAddTextField('Введите толщину материала в мкм', '', 4, TF_NUMERIC);
d1sID:=FormAddTextField('Введите диаметр держателя в мм', '', 10, TF_NUMERIC);
repeat until GetClickedCommand = cmdNext;
di:=StringToInteger(FormGetText(dsID));
d:=di/1000;
hi:=StringToInteger(FormGetText(hsID));
h:=hi/1000000;
d1i:=StringToInteger(FormGetText(d1sID));
d1:=d1i/1000;
ShowCanvas;
n:=trunc((d-d1)/(2*h)); l:=0;
for i:=0 to n do
begin
l:=l+3.14*r;
r:=r+h;
end;
drawText(''+l,5,5);
repaint; Delay(10000);
end.
(Offline)
 
Ответить с цитированием