Помогите пожалуйста с задачей delphi
Я вообще с Delphi2 не работал, но тут нужно знать, в каком модуле находится эта функция и подключить его.
А вообще, есть такой аналог:
[syntax='Delphi']
function pow(x,p:real):real;
begin
pow:=exp(p*ln(x));
end;
[/syntax]
А вообще, есть такой аналог:
[syntax='Delphi']
function pow(x,p:real):real;
begin
pow:=exp(p*ln(x));
end;
[/syntax]
Ни что так не ограничивает фантазию программиста, как компилятор...
А степень там не нужна.
[syntax='Delphi']
Progaram lalala
var a,b:integer;
Function first_formula(i,j:real):real;
Begin
first_formula:=sin(3.2*j+4.2)+exp(sin(1.5*i)/cos(1.5*i));
End;
Function second_formula(i,j:real):real;
Begin
second_formula:=sin(j)/cos(j)+exp(cos(i));
End;
Begin
Read(A,B);
Writeln('First:',first_formula(a,b),' Second:',second_formula(a,b));
End.
[/syntax]
[syntax='Delphi']
Progaram lalala
var a,b:integer;
Function first_formula(i,j:real):real;
Begin
first_formula:=sin(3.2*j+4.2)+exp(sin(1.5*i)/cos(1.5*i));
End;
Function second_formula(i,j:real):real;
Begin
second_formula:=sin(j)/cos(j)+exp(cos(i));
End;
Begin
Read(A,B);
Writeln('First:',first_formula(a,b),' Second:',second_formula(a,b));
End.
[/syntax]
Ваши руки совершили идиотскую ошибку и будут оторваны!
[OK]
[OK]
MOTOCoder, Medved спасибо Вам за быстрый ответ! Так что получается не надо возводить по формулам в степень - просто пишешь так exp(sin(1.5*i)/cos(1.5*i)) -и это значит нe в степени tg(i)?
Exp(X)=e^x;
tg(i)=sin(i)/cos(i)
e^x=exp(sin(i)/cos(i))
Так понятней?
tg(i)=sin(i)/cos(i)
e^x=exp(sin(i)/cos(i))
Так понятней?
Ваши руки совершили идиотскую ошибку и будут оторваны!
[OK]
[OK]
Medved, да понятно.. спасибо! Работает, но 2-ю строку матрицы заполняет немного нереальными числами как это исправить можно? препод 100% пристанет.. а я не могу пока исправить.. подскажите..
Код Delphi:[HTML]unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;
type
TForm1 = class(TForm)
Button1: TButton;
StringGrid1: TStringGrid;
Edit1: TEdit;
Edit2: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
B:array of array of real;
i,j:integer;
n,m:integer;
begin
edit1.Text:=inttostr(n);
edit2.Text:=inttostr(m);
n:=8;
m:=15;
setlength(B,n,m);
stringgrid1.RowCount:=n;
stringgrid1.ColCount:=m;
for i:= 0 to n-1 do
for j: to m-1 do
begin
B[i,j]:=sin(3.2*j+4.2)+exp(sin(1.5*i)/cos(1.5*i));;
stringgrid1.Cells[j,i]:=FormatFloat('0.00',B[i,j]);
end;
end;
end.[/HTML]
Код Delphi:[HTML]unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;
type
TForm1 = class(TForm)
Button1: TButton;
StringGrid1: TStringGrid;
Edit1: TEdit;
Edit2: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
B:array of array of real;
i,j:integer;
n,m:integer;
begin
edit1.Text:=inttostr(n);
edit2.Text:=inttostr(m);
n:=8;
m:=15;
setlength(B,n,m);
stringgrid1.RowCount:=n;
stringgrid1.ColCount:=m;
for i:= 0 to n-1 do
for j: to m-1 do
begin
B[i,j]:=sin(3.2*j+4.2)+exp(sin(1.5*i)/cos(1.5*i));;
stringgrid1.Cells[j,i]:=FormatFloat('0.00',B[i,j]);
end;
end;
end.[/HTML]
Если код правильный, а числа нереальные, то исправлять ничего не надо - уж такие и есть эти числа и придраться нельзя. Только вопрос - как у вас код откомпилировался? Ведь в этом участке вообще syntax error:
Код: Выделить всё
for i:= 0 to n-1 do
for j: to m-1 do <===
Ваши руки совершили идиотскую ошибку и будут оторваны!
[OK]
[OK]
Не знаю, но всё работает.. Вот только эти числа у меня сомнения вызывают..везде числа от -100 до 100 де-то, а вот во второй строке 130000! разве это нормально?
Ну, во-первых, возможно все, а во-вторых-в приведенном коде действительно есть ошибка там, где указал Medved.
А если сомневаетесь - попробуйте переписать код через функцию pow.
А если сомневаетесь - попробуйте переписать код через функцию pow.
Ни что так не ограничивает фантазию программиста, как компилятор...
Ребята, спасибо большое вам - буду щас разбираться что к чему.
Доброе утро! Это снова я - опять прошу помощи.. подскажите плиз.. как через power записать формулу e^tg(i)? пишу так- power(exp,tan(i)) - не работает!