Страница 2 из 3

Re: Помогите пожалуйста с задачей delphi

Добавлено: 11 апр 2008, 20:25
MOTOCoder
Я вообще с Delphi2 не работал, но тут нужно знать, в каком модуле находится эта функция и подключить его.
А вообще, есть такой аналог:
[syntax='Delphi']
function pow(x,p:real):real;
begin
pow:=exp(p*ln(x));
end;
[/syntax]

Re: Помогите пожалуйста с задачей delphi

Добавлено: 11 апр 2008, 20:47
Medved
А степень там не нужна.
[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]

Re: Помогите пожалуйста с задачей delphi

Добавлено: 11 апр 2008, 21:24
Violina
MOTOCoder, Medved спасибо Вам за быстрый ответ! Так что получается не надо возводить по формулам в степень - просто пишешь так exp(sin(1.5*i)/cos(1.5*i)) -и это значит нe в степени tg(i)?

Re: Помогите пожалуйста с задачей delphi

Добавлено: 11 апр 2008, 21:27
Medved
Exp(X)=e^x;
tg(i)=sin(i)/cos(i)
e^x=exp(sin(i)/cos(i))
Так понятней?

Re: Помогите пожалуйста с задачей delphi

Добавлено: 11 апр 2008, 22:06
Violina
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]

Re: Помогите пожалуйста с задачей delphi

Добавлено: 11 апр 2008, 22:39
Medved
Если код правильный, а числа нереальные, то исправлять ничего не надо - уж такие и есть эти числа и придраться нельзя. Только вопрос - как у вас код откомпилировался? Ведь в этом участке вообще syntax error:

Код: Выделить всё

for i:= 0 to n-1 do
 for j: to m-1 do    <===

Re: Помогите пожалуйста с задачей delphi

Добавлено: 11 апр 2008, 22:49
Violina
Не знаю, но всё работает.. Вот только эти числа у меня сомнения вызывают..везде числа от -100 до 100 де-то, а вот во второй строке 130000! разве это нормально?

Re: Помогите пожалуйста с задачей delphi

Добавлено: 11 апр 2008, 22:55
MOTOCoder
Ну, во-первых, возможно все, а во-вторых-в приведенном коде действительно есть ошибка там, где указал Medved.

А если сомневаетесь - попробуйте переписать код через функцию pow.

Re: Помогите пожалуйста с задачей delphi

Добавлено: 11 апр 2008, 23:46
Violina
Ребята, спасибо большое вам - буду щас разбираться что к чему.

Re: Помогите пожалуйста с задачей delphi

Добавлено: 12 апр 2008, 10:39
Violina
Доброе утро! Это снова я - опять прошу помощи.. подскажите плиз.. как через power записать формулу e^tg(i)? пишу так- power(exp,tan(i)) - не работает!