Текст:
program rulon;
var dsID,hsID,d1sID,stringID: integer;
i, n: integer;
hi,di,d,d1,l,h,r,d1i:real;
cmdCalculate,cmdQuit: command;
begin
ClearForm;
ShowForm;
cmdCalculate := CreateCommand('Считать', CM_OK, 1);
AddCommand(cmdCalculate);
dsID:=FormAddTextField('Введите диаметр рулона в мм', '', 4, TF_NUMERIC);
hsID:=FormAddTextField('Введите толщину материала в мкм', '', 4, TF_NUMERIC);
d1sID:=FormAddTextField('Введите диаметр держателя в мм', '', 4, TF_NUMERIC);
repeat until GetClickedCommand = cmdCalculate;
di:=StringToInteger(FormGetText(dsID));
d:=di;
hi:=StringToInteger(FormGetText(hsID));
h:=hi;
d1i:=StringToInteger(FormGetText(d1sID));
d1:=d1i;
ShowCanvas;
n:=trunc(((d-d1)*1000)/(2*h));
l:=0;
for i:=1 to n do
l:=l+3.14*(d1*1000+2*h*(i));
l:=l/10000;
l:=trunc(l);
l:=l/100;
showForm;
stringID:=FormAddString('Длина рулона: '+l);
removeCommand(cmdCalculate);
cmdQuit := CreateCommand('Выход', CM_EXIT, 1);
AddCommand(cmdQuit);
repeat until GetClickedCommand = cmdQuit;
end.
На входе:
93
100
0
На выходе:
68.3