Форум: "Потрепаться";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
ВнизКАК ТАКОЕ МОЖЕТ БЫТЬ????? Найти похожие ветки
← →
x.pro (2005-12-23 19:26) [0]В общем такая штука. Есть код для вычисления интеграла от определенной функци. На форме есть три Edit"a: edLowEdge (нижняя граница интеграрования), edEPS (точность), edRes1 (ответ). Обратите внимания на использование функции integ. У меня в D7 работает. в универе в turbopascal"e тоже раюотает. что это такое? как такое объяснить? Или функция может вызываться как процедура? или может я уже совсем ламер?
procedure TForm1.Button1Click(Sender: TObject);
var x,x1,h,W,W1,W2,Ro:real;
function f(x:real):real;
begin
result:=cos(5*sin(x));
end;
function integ(var W1,W2:real): real;
var n,i: integer;
begin
n:=10;
h:=(pi-StrToCurr(edLowEdge.Text))/n;
for i:= 0 to n-1 do
begin
x:=StrToCurr(edLowEdge.Text)+h*(i+0.5);
W1:=(W1+f(x))
end;
W1:=W1*h;
n:=n*2;
h:=(pi-StrToCurr(edLowEdge.Text))/n;
for i:= 0 to n-1 do
begin
x:=StrToCurr(edLowEdge.Text)+h*(i+0.5);
W2:=(W2+f(x));
end;
W2:=W2*h;
end;
begin
W1:=0;
W2:=0;
repeat
integ(W1,W2);
Ro:=(W2-W1)*4/3;
W:=W1+Ro;
until abs(Ro/W2)<StrToCurr(edEps.Text);
edRes1.Text := CurrToStr((1/pi)*W);
end;
← →
TUser © (2005-12-23 19:30) [1]Может. Кажется это называется "расширенный синтаксис вызова функций". Очень часто применяется для апи.
← →
x.pro (2005-12-23 19:33) [2]Вот чего не знаю, того не знаю. Я не такой крутой программист. Так, пока, учусь. Но как так можно вункцию вызывать? Ума не приложу. И самое главное, оно работает! Наш препод тоже диву дается.
← →
Eraser © (2005-12-23 19:36) [3]
> x.pro (23.12.05 19:26)
> Или функция может вызываться как процедура?
Конечно может. Но так не всегда было...
← →
x.pro (2005-12-23 19:37) [4]> Eraser © (23.12.05 19:36) [3]
Т.е? что вы имеете ввиду? что значит не всегда было?
← →
Eraser © (2005-12-23 19:43) [5]
> x.pro (23.12.05 19:37) [4]
> что значит не всегда было?
если не ошибаюсь в TP нельзя было вызвать функцию "вникуда", т.е. не получив от неё результат в какую-либо переменную, хотя может я что-то путаю...
← →
PZ (2005-12-23 19:45) [6]Все нормально. Параметры функции определены как var, т. е. возвращаются через ссылку. Если определить функцию как
function integ(W1,W2:real): real;, то Ваш загадочный эффект исчезнет.
← →
vvvaaa (2005-12-23 19:48) [7]Разница между функцией и процедурой введена только мнемоникой языков высокого уровня. После компиляции этой разницы не будет. В данном примере все правильно, а так как результат функции не используется ее можно безболезненно переименовать в процедуру.
← →
TUser © (2005-12-23 19:56) [8]
> если не ошибаюсь в TP нельзя было
Можно. По крайней мере в 6-7 было.
← →
x.pro (2005-12-23 20:10) [9]Действительно!
Вот спасибо!
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.044 c