|
#1
|
|||
|
|||
проблемы с Double
есть проблема:
нужно разделить отрезок длинной L на части, но если L: Double;(не целочисленныя длинна отрека,а скажем 90.5) выдает ошибку:[DCC Error] Project1.dpr(19): E2015 Operator not applicable to this operand type Код:
var X, i, j: Integer; l,a1:Double; begin Write('L = '); ReadLn(L); Write('X = '); ReadLn(X); Write('i = '); ReadLn(i); a1 := L div X - (i * (X - 1)) div 2; for j := 1 to X do begin Write(a1, ' '); a1 := a1 + i; end; ReadLn; end. |
#2
|
|||
|
|||
в какой строчке ошибка?
|
#3
|
|||
|
|||
Правильное а1 это:
a1 := (2*L/X - (i * (X - 1)))/2; И вот тогда и с L проблем не будет. P.S. Просчитался я. Ваша формула тоже верна, только вместо div надо обычное деление делать. Последний раз редактировалось FlyInDream, 30.09.2011 в 13:25. |
#4
|
|||
|
|||
Цитата:
Код:
a1 := L div X - (i * (X - 1)) div 2; |
#5
|
|||
|
|||
Цитата:
7.010000000000Е+0001 и так далее |
#6
|
||||
|
||||
выводи
writeln(floattostr(a1)); |
#7
|
|||
|
|||
Цитата:
|
#8
|
|||
|
|||
Цитата:
только в обеих выводит не с большего к меньшему, а наоборот- от меньшего к большему. как сделать наоборот подскажите? |
#9
|
|||
|
|||
Код:
... a1 := (2*L/X + (i * (X - 1)))/2; for j := 1 to X do begin Write(a1, ' '); a1 := a1 - i; end; Последний раз редактировалось FlyInDream, 30.09.2011 в 16:15. |