Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

из 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]

Ну раз нужно, переводи.


Наверх

Титульная страница Поиск, карта сайта Написать письмо