![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
из pascal в delphi [D7]
deniss © (2011-06-16 13:45:00)Здравствуйте! Имеется код написанный в pasca,l нужно перенести его в delphi только не консольное приложение, а с формой.
Интервал [0.2:1] и точность задается с клавиатуры.
Вот код:
Program kr;
uses crt;
function F(x:real):real;
begin
F:=x*tan(x)-1/3;
end;
function F1(x:real):real;
begin
F1:=tan(x)+x*power(1/cos(x),2);
end;
var x1,x2,eps,b:real;
k:integer;
begin
clrscr;
repeat
write('Vvedite nachalnoe priblizenie [0,2;1] a=');
readln(x1);
until(x1>=0.2)and(x1<=1);
eps:=0.001;
x2:=x1;
k:=0;
repeat
b:=x2;
k:=k+1;
x2:=b-F(b)/F1(b);
until abs(x2-b)<eps;
write('X=',x2:0:5,' iteracij=',k);
readln
end.
Ega23 (2011-06-17 10:49:00) [1]
> за имя метода, разумеется
а..
Игорь Шевченко (2011-06-17 10:37:00) [2]
> Но ты обоснуй, за что?
за имя метода, разумеется
Ega23 (2011-06-17 00:41:00) [3]
> За одно только это выводить в чистое поле, ставить лицом
> к стенке и пулю в лоб тремя очередями.
Не, я всяко стебался, когда писал. Но ты обоснуй, за что?
> Но как-то не педагогично это, имхо.
Весь код не педадогичен, ИМХО.
Anatoly Podgoretsky (2011-06-16 23:13:00) [4]> Игорь Шевченко (16.06.2011 22:45:16) [16]
Нет там стенки, но можно обойтись выдиранием рук и ног.
Игорь Шевченко (2011-06-16 22:45:00) [5]
> function TMyClass.GetPriblizhenie(var Value: Extended):
> Boolean;
За одно только это выводить в чистое поле, ставить лицом к стенке и пулю в лоб тремя очередями.
Сергей М. (2011-06-16 22:40:00) [6]
> а курсовую дали на делфи.
Ага. Вчера после обеда дали. И времени у тебя на самостоятельноеосвоение азов совсем не было.
> я нече не понял
Ну так немудрено, коль про Делфи ты услышал вчера после обеда)
Palladin (2011-06-16 22:39:00) [7]спокуха ) все нормуль, провернуто все изящно
Loginov Dmitry (2011-06-16 22:21:00) [8]
> with TMyClass.Create do
> try
> Application.Run;
> finally
> Free;
> end;
Оригинально! :)
Но как-то не педагогично это, имхо.
Ega23 (2011-06-16 22:10:00) [9]
> Кстати да я нече не понял:D
ТЗ из [0] выполнено.
Palladin (2011-06-16 21:52:00) [10]
> deniss (16.06.11 21:45) [10]
ну ты НЧМ, пипетко нашло код в интернете к делфе применить не смогло...
deniss (2011-06-16 21:45:00) [11]Да что же вы разругались то сразу, просто в школе паскаль изучал, а курсовую дали на делфи. Кстати да я нече не понял:D
Sergey (2011-06-16 17:19:00) [12]> [7] Ega23 © (16.06.11 15:25)
>
> > "неуд." не глядя :)
>
> Ну почему? Если разберётся - вполне себе "уд". Даже "хор".
> А то и "отл."
Берегись, если человек не разберется.
Ему НУЖНО а тут непонятно все написано. Почему не прокоментирована каждая строка? :)
Dennis I. Komarov (2011-06-16 15:31:00) [13]Ну да, разберется... Если на форму эдит и батон бросить, да код скопипастить не могет...
Зато пришел: "Имеется", "Нужно" - $100 не меньше...
Ega23 (2011-06-16 15:25:00) [14]
> "неуд." не глядя :)
Ну почему? Если разберётся - вполне себе "уд". Даже "хор". А то и "отл."
Dennis I. Komarov (2011-06-16 15:08:00) [15]
> Ega23 © (16.06.11 14:46) [5]
"неуд." не глядя :)
Ega23 (2011-06-16 14:46:00) [16]Да ладно вам издеваться-то.
На, держи:
program Project18;
uses
SysUtils, Math, StdCtrls, Forms;
{$R *.res}
type
TMyClass = class (TObject)
private
FForm: TForm;
btn: TButton;
lbl, lblRes: TLabel;
ed: TEdit;
procedure CreateControls;
function GetPriblizhenie(var Value: Extended): Boolean;
procedure ButtonClick(Sender: TObject);
function F(x: Extended): Extended;
function F1(x: Extended): Extended;
public
constructor Create;
end;
{ TMyClass }
procedure TMyClass.ButtonClick(Sender: TObject);
var
eps, x1, x2, b: Extended;
k: Integer;
begin
x1 := 0;
if not GetPriblizhenie(x1) then
begin
lblRes.Caption := 'nevernoe nachalnoe priblizenie! Poprobujte esche raz';
Exit;
end;
eps := 0.001;
x2 := x1;
k := 0;
repeat
b := x2;
Inc(k);
x2 := b - F(b) / F1(b);
until abs(x2 - b) < eps;
lblRes.Caption := 'X=' + FloatToStr(x2) + ' iteracij=' + IntToStr(k);
end;
constructor TMyClass.Create;
begin
inherited;
FForm := TForm.Create(Application);
FForm.BorderStyle := bsDialog;
FForm.Width := 310;
FForm.Height := 300;
FForm.Position := poScreenCenter;
CreateControls;
FForm.ShowModal;
end;
procedure TMyClass.CreateControls;
begin
lbl := TLabel.Create(FForm);
with lbl do
begin
Parent := FForm;
SetBounds(10, 30, 200, 25);
Caption := 'Vvedite nachalnoe priblizenie [0,2;1] a=';
end;
ed := TEdit.Create(FForm);
with ed do
begin
Parent := FForm;
SetBounds(220, 27, 60, 25);
end;
btn := TButton.Create(FForm);
with btn do
begin
Parent := FForm;
SetBounds(220, 60, 60, 25);
Caption := 'Start!';
OnClick := ButtonClick;
end;
lblRes := TLabel.Create(FForm);
with lblRes do
begin
Parent := FForm;
SetBounds(10, 100, 300, 25);
Caption := '';
end;
end;
function TMyClass.F(x: Extended): Extended;
begin
Result := x * Tan(x) - 1/3;
end;
function TMyClass.F1(x: Extended): Extended;
begin
Result := Tan(x) + x * Power(1/Cos(x), 2);
end;
function TMyClass.GetPriblizhenie(var Value: Extended): Boolean;
begin
Result := TryStrToFloat(ed.Text, Value) and (Value >= 0.2) and (Value <= 1);
end;
begin
Application.Initialize;
with TMyClass.Create do
try
Application.Run;
finally
Free;
end;
end.
Dennis I. Komarov (2011-06-16 14:38:00) [17]$100 за использование моей библиотеки
Dennis I. Komarov (2011-06-16 14:19:00) [18]В чем твои проблемы? Лень или brain.dll not exist?
Sergey (2011-06-16 13:58:00) [19]Хотя... сколько платишь (WebMoney)?
Sergey (2011-06-16 13:57:00) [20]Ну раз нужно, переводи.