1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Задана таблица значений функции в конечном наборе точек. Точки распределены равномерно по заданному отрезку заданным шагом dx. Построить таблицу значений этой же функции в точках, равномерно распределенных по тому же отрезку с шагом dx/2. Значение определить методом интерполяции (в идеале - кубический сплайн).
... ...Яндекс немного помог в определениях но как делать в душе не представляю...Volvo, плиз не ругайся что тему не так создал и т.д. просто Я не знаю как ее назвать так чтобы было информативно, а тем кто знает помогите плиз, хотя бы с алгоритмом на словах...Программу просить уж не буду , но если дадите не обижусь... ... ...
Volvo, Я все понимаю...темы плохо создаю...но ты что смерти моей хочешь? Я как увидел, у мну чуть инфаркт не случился... ... ... Ну лана эт все шутки...по ссылке был, но в душе не представляю как там и чего...тока в принципе на вас надежда...Я бы и сам чего сообразил, но у мну даже т. отсчета нет, с чего начать прогу...постараюсь препода достать, но у нас такой препод что про интегралы то нефига не нает, какие уж там методы... ...млин вот как теперь быть! слать надо...самое интересное что задача помечена как зеленая, т.е. самая легкая... ...
А найти на той странице в разделе "Реализация алгоритма" слово Дельфи и нажать "Открыть в браузере" или "Скачать" - не догадался? Естьже готовая программа, в которой можно разобраться...
///////////////////////////////////////////////////////////////////////// // arrays ///////////////////////////////////////////////////////////////////////// type Complex = record X, Y: Double; end;
TInteger1DArray = array of LongInt; TReal1DArray = array of Double; TComplex1DArray = array of Complex; TBoolean1DArray = array of Boolean;
TInteger2DArray = array of array of LongInt; TReal2DArray = array of array of Double; TComplex2DArray = array of array of Complex; TBoolean2DArray = array of array of Boolean;
///////////////////////////////////////////////////////////////////////// // Functions/procedures ///////////////////////////////////////////////////////////////////////// function AbsReal(X : Extended):Extended; function AbsInt (I : Integer):Integer; function RandomReal():Extended; function RandomInteger(I : Integer):Integer; function Sign(X:Extended):Integer;
function DynamicArrayCopy(const A: TInteger1DArray):TInteger1DArray;overload; function DynamicArrayCopy(const A: TReal1DArray):TReal1DArray;overload; function DynamicArrayCopy(const A: TComplex1DArray):TComplex1DArray;overload; function DynamicArrayCopy(const A: TBoolean1DArray):TBoolean1DArray;overload;
function DynamicArrayCopy(const A: TInteger2DArray):TInteger2DArray;overload; function DynamicArrayCopy(const A: TReal2DArray):TReal2DArray;overload; function DynamicArrayCopy(const A: TComplex2DArray):TComplex2DArray;overload; function DynamicArrayCopy(const A: TBoolean2DArray):TBoolean2DArray;overload;
function AbsComplex(const Z : Complex):Double; function Conj(const Z : Complex):Complex; function CSqr(const Z : Complex):Complex;
function C_Complex(const X : Double):Complex; function C_Opposite(const Z : Complex):Complex; function C_Add(const Z1 : Complex; const Z2 : Complex):Complex; function C_Mul(const Z1 : Complex; const Z2 : Complex):Complex; function C_AddR(const Z1 : Complex; const R : Double):Complex; function C_MulR(const Z1 : Complex; const R : Double):Complex; function C_Sub(const Z1 : Complex; const Z2 : Complex):Complex; function C_SubR(const Z1 : Complex; const R : Double):Complex; function C_RSub(const R : Double; const Z1 : Complex):Complex; function C_Div(const Z1 : Complex; const Z2 : Complex):Complex; function C_DivR(const Z1 : Complex; const R : Double):Complex; function C_RDiv(const R : Double; const Z2 : Complex):Complex; function C_Equal(const Z1 : Complex; const Z2 : Complex):Boolean; function C_NotEqual(const Z1 : Complex; const Z2 : Complex):Boolean; function C_EqualR(const Z1 : Complex; const R : Double):Boolean; function C_NotEqualR(const Z1 : Complex; const R : Double):Boolean;
implementation
///////////////////////////////////////////////////////////////////////// // Functions/procedures ///////////////////////////////////////////////////////////////////////// function AbsReal(X : Extended):Extended; begin Result := Abs(X); end;
function AbsInt (I : Integer):Integer; begin Result := Abs(I); end;
function RandomReal():Extended; begin Result := Random; end;
function RandomInteger(I : Integer):Integer; begin Result := Random(I); end;
function Sign(X:Extended):Integer; begin if X>0 then Result := 1 else if X<0 then Result := -1 else Result := 0; end;
///////////////////////////////////////////////////////////////////////// // dynamical arrays copying ///////////////////////////////////////////////////////////////////////// function DynamicArrayCopy(const A: TInteger1DArray):TInteger1DArray;overload; var I: Integer; begin SetLength(Result, High(A)+1); for I:=Low(A) to High(A) do Result[I]:=A[I]; end;
function DynamicArrayCopy(const A: TReal1DArray):TReal1DArray;overload; var I: Integer; begin SetLength(Result, High(A)+1); for I:=Low(A) to High(A) do Result[I]:=A[I]; end;
function DynamicArrayCopy(const A: TComplex1DArray):TComplex1DArray;overload; var I: Integer; begin SetLength(Result, High(A)+1); for I:=Low(A) to High(A) do Result[I]:=A[I]; end;
function DynamicArrayCopy(const A: TBoolean1DArray):TBoolean1DArray;overload; var I: Integer; begin SetLength(Result, High(A)+1); for I:=Low(A) to High(A) do Result[I]:=A[I]; end;
function DynamicArrayCopy(const A: TInteger2DArray):TInteger2DArray;overload; var I,J: Integer; begin SetLength(Result, High(A)+1); for I:=Low(A) to High(A) do begin SetLength(Result[I], High(A[I])+1); for J:=Low(A[I]) to High(A[I]) do Result[I,J]:=A[I,J]; end; end;
function DynamicArrayCopy(const A: TReal2DArray):TReal2DArray;overload; var I,J: Integer; begin SetLength(Result, High(A)+1); for I:=Low(A) to High(A) do begin SetLength(Result[I], High(A[I])+1); for J:=Low(A[I]) to High(A[I]) do Result[I,J]:=A[I,J]; end; end;
function DynamicArrayCopy(const A: TComplex2DArray):TComplex2DArray;overload; var I,J: Integer; begin SetLength(Result, High(A)+1); for I:=Low(A) to High(A) do begin SetLength(Result[I], High(A[I])+1); for J:=Low(A[I]) to High(A[I]) do Result[I,J]:=A[I,J]; end; end;
function DynamicArrayCopy(const A: TBoolean2DArray):TBoolean2DArray;overload; var I,J: Integer; begin SetLength(Result, High(A)+1); for I:=Low(A) to High(A) do begin SetLength(Result[I], High(A[I])+1); for J:=Low(A[I]) to High(A[I]) do Result[I,J]:=A[I,J]; end; end;
///////////////////////////////////////////////////////////////////////// // complex numbers ///////////////////////////////////////////////////////////////////////// function AbsComplex(const Z : Complex):Double; var W : Double; XABS : Double; YABS : Double; V : Double; begin XABS := AbsReal(Z.X); YABS := AbsReal(Z.Y); W := Max(XABS, YABS); V := Min(XABS, YABS); if V=0 then begin Result := W; end else begin Result := W*SQRT(1+Sqr(V/W)); end; end;
function Conj(const Z : Complex):Complex; begin Result.X := Z.X; Result.Y := -Z.Y; end;
function CSqr(const Z : Complex):Complex; begin Result.X := Sqr(Z.X)-Sqr(Z.Y); Result.Y := 2*Z.X*Z.Y; end;
function C_Complex(const X : Double):Complex; begin Result.X := X; Result.Y := 0; end;
function C_Opposite(const Z : Complex):Complex; begin Result.X := -Z.X; Result.Y := -Z.Y; end;
function C_Add(const Z1 : Complex; const Z2 : Complex):Complex; begin Result.X := Z1.X+Z2.X; Result.Y := Z1.Y+Z2.Y; end;
function C_Mul(const Z1 : Complex; const Z2 : Complex):Complex; begin Result.X := Z1.X*Z2.X-Z1.Y*Z2.Y; Result.Y := Z1.X*Z2.Y+Z1.Y*Z2.X; end;
function C_AddR(const Z1 : Complex; const R : Double):Complex; begin Result.X := Z1.X+R; Result.Y := Z1.Y; end;
function C_MulR(const Z1 : Complex; const R : Double):Complex; begin Result.X := Z1.X*R; Result.Y := Z1.Y*R; end;
function C_Sub(const Z1 : Complex; const Z2 : Complex):Complex; begin Result.X := Z1.X-Z2.X; Result.Y := Z1.Y-Z2.Y; end;
function C_SubR(const Z1 : Complex; const R : Double):Complex; begin Result.X := Z1.X-R; Result.Y := Z1.Y; end;
function C_RSub(const R : Double; const Z1 : Complex):Complex; begin Result.X := R-Z1.X; Result.Y := -Z1.Y; end;