Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.035 c
14-1077941184
Oyster
2004-02-28 07:06
2004.03.28
Декомпилятор


1-1078775266
xobbit
2004-03-08 22:47
2004.03.28
Окно в качестве фона


6-1074350516
MadGhost
2004-01-17 17:41
2004.03.28
Как подсоединияться к Интернету?


1-1078900964
Лысый
2004-03-10 09:42
2004.03.28
Округление


3-1076332096
Pilot
2004-02-09 16:08
2004.03.28
Работа с EasyTable





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский