Массив с циклом в делфи.

программирование математика Delphi массив цикл

У меня возникла задача создать двумерный безразмерный массив, в который бы записывались данные вычислений с y1, y2, y3 и значение x, которое меняется с шагом в 0.25.
Вот например у меня есть значения, которые нужно поставить массив.
[a1, x, a1, x ... a1, x]
[a2, x, a2, x ... a2, x]
[a3, x, a3, x ... a3, x]
И данные в таком виде должны записываться в mmo1(Memo).
Я набросал код, но он неверный.

var
M: array of array of array of Double;
..
procedure TForm1.btn1Click(Sender: TObject);
var
x:Double;
f1,f2,f3:string;
a1,a2,a3,y1,y2,y3:Double;
StrTmp: string;
i,j,k:Double;
begin
SetLength(M,13,13,13);
i:=0; j:=0; k:=0;
a1:=strtofloat(edt1.text);
a2:=strtofloat(edt2.text);
a3:=strtofloat(edt3.text);
x:=-2;
while x<=1 do begin
y1:=Exp(x*a1);
y2:=Cotan(x+a2);
y3:=Power(a3,x);

M[0,0+i]:=y1;
y1:=;
j:=y2;
k:=y3;
//VarArrayPut(M);
StrTmp:= FloatToStr(M[i+1,j+1,k+1]);
//FloatToStr(M[i+1,j+1,k+1] );
Mmo1.Lines.Add(StrTmp);
x:=x + 0.25;
end;
end;

Кроме того компилировал ранее, чтобы проверить вычисления функций и выводить через ShowMessage('y1='+f1+' y2='+f2+' y3='+f3).
Однако при нажатии кнопки btn1 выдавало ошибку "Invalid Floating point operation.". При положительном а3 не было такой ошибки, но выдавало почему-то это же число.
Подскажите правильный код. Уже 3 дня не могу реализовать как нужно, с ооп ранее не был знаком.

Примечание:
ошибка с "Invalid Floating point operation." была в строке y3:=Power(a3,x), именно с Power.

Примечание:
ну у меня значения a1=3, a2=5, a3=-4
debuger пишет:
[Error] Unit1.pas(138): Incompatible types: 'Integer' and 'Extended'
[Fatal Error] Project2.dpr(5): Could not compile used unit 'Unit1.pas'

Примечание:
причем в "y3:=Power(a3,x)" x нужен именно отрицательный.
Ответы:
По-моему для Power второй операнд должен быть целым числом или как минимум неотрицательным.
1) ООП здесь не причем
2) Power (A,-2) - это корень из A, если A отрицательное, то возникает ошибка, потому что результат комплексный, соответственно и Y3 должент быть комплексным типом, и функция Power должна это поддерживать.
3) Сначала нужно пойти в справку и посмотреть какие типы у функции Power для операндов и результата


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.