Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.28;
Скачать: CL | DM;

Вниз

Компилятор выдает ошибку   Найти похожие ветки 

 
VasRog ©   (2004-03-06 18:40) [0]

Тему почему-то потерли, поэтому спрошу еще раз:
uses
...Math...
var
xc1:real;
xp1:array of real;
.......
xc1:= Mean(xp1);
Компилятор выдает: Incompatible types: "Array and Dynamic array" т.е. по-видимому хочет сказать, что xp1 должен быть обычным массивом? Так ли я понимаю и можно ли как-нибудь оставить его динамическим массивом.
И второй вопрос: предусмотрена ли в Дельфи функция возведения числа в произвольную(дробную степень)?


 
Алхимик ©   (2004-03-06 18:59) [1]

1.
Type
  TMyType = array of Double;
...
xp1 : TMyType;

2.
Power F1


 
VasRog ©   (2004-03-08 16:29) [2]

Power F1

А можно поподробнее какие аргументы вписать(куда показатель степени и куда основание)?


 
TUser ©   (2004-03-08 16:42) [3]

Надо хр1 описывать не как array, а как некий тобою определенный тип.


 
VasRog ©   (2004-03-08 17:06) [4]

Да я не про то. Я про функцию возведения числа в произвольную(дробную степень). Как ее прописать?


 
TUser ©   (2004-03-08 17:43) [5]

Так тебе уже 2 раза ответили

Delphi syntax:
function Power(const Base, Exponent: Extended): Extended;

Extended + F1


 
VasRog ©   (2004-03-08 19:29) [6]

Extended + F1

А что это строчка значит?


 
TUser ©   (2004-03-08 19:54) [7]

Это значит, что надо набрать в Editor"е "extended", подвести туда курсор и нажать F1. Ты получишь справку по этому типу, откуда узнаеш, что это как раз и есть что-то "произвольное (дробное)". Конечно, оно не совсем произвольное, есть там свои ограничения, но совсем произвольных числе ни в одном языке программирования нет.


 
VasRog ©   (2004-03-08 20:41) [8]

Пишу
...+(sqr(sqr(x[i,2]))*x[i,4]*(0.2*x[i,1]+x[i,3]/12) - 2.2*Power(8.94*(x[i,1]+sqrt(sqr(x[i,3])-sqr(x[i,2]))),4/3))+...
компилятор все проглатывает, но потом в проге возникает ошибка: "Invalid floating point operation". Неверно написал?


 
TUser ©   (2004-03-08 20:48) [9]

Проверь - скорее всего ты берешь корень из отрицательного числа. Используй try ... except.


 
VasRog ©   (2004-03-08 22:10) [10]

А вот такой вопрос. Имеется:
repeat
.....
until
((...)>0) and ((...)>0) and ...;
Будет ли компилятор проверять все условия until или если какое-нибудь условие не выполняется(например, второе) он последующие условия проигнорирует и проверять не будет(третье и далее)?


 
Jel ©   (2004-03-09 10:06) [11]

Если поставишь  {$B+} то будет проверять все. По умолчанию вычисления идут пока не станет ясен результат выражения.


 
TUser ©   (2004-03-09 10:27) [12]

Про [11] я не знал, но вот точно могу сказать, что на
if (i<length(myarray)) and (myarray[i]<...) then ...
выдается av, если i=length(myarray). Т.е. вычисляются все части логического выражения. Но мб с репитом все как-то по-другому ...


 
Плохиш   (2004-03-09 10:39) [13]

>TUser ©   (09.03.04 10:27) [12]
Обработка операторов не зависит от того где они записаны в if-е или until-е или while


 
VasRog ©   (2004-03-09 12:55) [14]

М-да. Странно все это. У меня в проге встречаются 3 конструкции:
1. if (( [1] )>=0) and (( [2] )>=0) and (( [3] )>=0) and (( [4] )>=0) and (( [5] )>=0) then
2. if (( [1] )<0) or (( [2] )<0) or (( [3] )<0) or (( [4] )<0) or (( [5] )<0) then
3. until ( [1] )>=0) and (( [2] )>=0) and (( [3] )>=0) and (( [4] )>=0) and (( [5] )>=0;
В [2] содержится корень sqrt(sqr(x3) - sqr(x2)). А [5] - это ограничение x3-x2>=0. Когда все было таким образом записано прога в самом начале вычислений выдавала
Invalid floating point operation. Если поменять местами во всех конструкциях [5] и [2], то прога начинает вычислять, но все равно в процессе вычисления
вылазит Invalid floating point operation и облом. Собственно вопрос: как сие пофиксить?


 
Anatoly Podgoretsky ©   (2004-03-09 12:59) [15]

Не использовать недопустимых значений в выражении, например корня квадратного из отричательного числа. Значения должны быть допустимые.


 
VasRog ©   (2004-03-09 21:55) [16]

Ну дык вроде бы это прописано - [5].



Страницы: 1 вся ветка

Текущий архив: 2004.03.28;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.023 c
1-1078944615
zep
2004-03-10 21:50
2004.03.28
окруление


14-1078001008
VID
2004-02-28 23:43
2004.03.28
Мне нужен ваш совет


4-1074046926
EcoloRa
2004-01-14 05:22
2004.03.28
Работа с заголовком окна


1-1078469102
Alex_DM
2004-03-05 09:45
2004.03.28
Вызов модального окна. Возможно ли это?


14-1078064676
blackweber
2004-02-29 17:24
2004.03.28
как загрузить комп без клавиатуры?