Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизРешение задач Найти похожие ветки
← →
Инна (2010-02-08 18:49) [0]Помогите! Вычислить значения функции y=(x в квадрате+4x+4)и всё это в квадрате -1 Для x принадлежащего[1;10]Вывести значения функции y<5000 на форму. проверьте что не так:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var x,y:integer;
begin
for x := 1 to 10 do
begin
x:=StrToInt(Form1.Edit1.Text);
y:=(x*x+4*x+4)*(x*x+4*x+4)-1;
if y<5000 then
Label2.Caption:="Некорректно значение"
else
end;
begin
Label2.Caption:="X="+IntToStr(x)+"Y="+IntToStr(y)+#13;
end;
end;
end.
← →
Игорь Шевченко © (2010-02-08 18:58) [1]
> проверьте что не так:
обращение
← →
12 © (2010-02-08 19:01) [2]каша какая то
например
for x := 1 to 10 do
begin
x:=StrToInt(Form1.Edit1.Text);
что тут делается?
← →
Jeer © (2010-02-08 21:40) [3]
> 12 © (08.02.10 19:01) [2]
Ну что ты хочешь от девушки странного ?
Надо предлагать обычное - это помогает.
← →
KilkennyCat © (2010-02-08 22:36) [4]
> 12 © (08.02.10 19:01) [2]
ускоряется работа цикла
← →
Jeer © (2010-02-08 22:48) [5]Мне больше понравились глубокие мысли о заборах:)
for ... do begin
if .. then
..
else
end; // end if
begin
..
end;
end; // end for
← →
oldman © (2010-02-09 11:09) [6]
> if y<5000 then
> Label2.Caption:="Некорректно значение"
> else
> end;
Прям как в учебнике?
← →
NewZ © (2010-02-14 20:27) [7]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure calculate_and_draw;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.calculate_and_draw;
var
i, cX, cY: Integer;
X, Y: Single;
begin
Canvas.Brush.Color := clBlue;
Canvas.Pen.Color := clGreen;
for i := 0 to 10 do
begin
X := i;
Y := (X * X + 4 * X + 4) * (X * X + 4 * X + 4) - 1;
cX := Trunc(X * Form1.Width / 10);
cY := Trunc(Y * Form1.Height / (144 * 144 - 1));
Canvas.Rectangle(cX - 2, cY - 2, cX + 2, cY + 2);
end;
end;
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
calculate_and_draw;
end;
end.
← →
NewZ © (2010-02-14 20:37) [8]
> cY := Trunc(Y * Form1.Height / (144 * 144 - 1));
Правильнее так:
cY := Form1.Height - Trunc(Y * Form1.Height / (144 * 144 - 1));
Чтобы перевернуть ось Y.
← →
KilkennyCat © (2010-02-14 20:37) [9]
> X := i;
это мощно.
>Y := (X * X + 4 * X + 4) * (X * X + 4 * X + 4) - 1;
ну а это еще мощннеее
← →
KilkennyCat © (2010-02-14 20:39) [10]
> 144 * 144 - 1
если уж такая фигня, то есть константы.
← →
NewZ © (2010-02-14 20:45) [11]
> это мощно.
Это пример.
> ну а это еще мощннеее
Сделай проще...Сможеш???
> если уж такая фигня, то есть константы.
Это не константа. Умница. Это максимум этой странной функции.
← →
KilkennyCat © (2010-02-14 21:09) [12]
> Это пример.
толку от примера плохого?
> Сделай проще...Сможеш???
var
z :integer;
...
z := X * X + 4 * X + 4 ;
Y := z * z - 1;
Это навскидку. Можно еще проще.
> Это не константа. Умница. Это максимум этой странной функции.
В сад, умник, в сад...
← →
oldman © (2010-02-14 21:10) [13]
> procedure TForm1.calculate_and_draw;
> ...
> end;
> procedure TForm1.Button1Click(Sender: TObject);
> begin
> calculate_and_draw;
> end;
Тоже мощно!
← →
NewZ © (2010-02-14 21:13) [14]Удалено модератором
← →
Демо © (2010-02-14 22:52) [15]
> procedure TForm1.Button1Click(Sender: TObject);
> var x,y:integer;
> begin
> for x := 1 to 10 do
> begin
> x:=StrToInt(Form1.Edit1.Text);
> y:=(x*x+4*x+4)*(x*x+4*x+4)-1;
> if y<5000 then
> Label2.Caption:="Некорректно значение"
> else
> end;
> begin
> Label2.Caption:="X="+IntToStr(x)+"Y="+IntToStr(y)+#13;
>
> end;
>
1. Переменная цикла изменяется в циклеfor x :=1 to 10 do x :=
. Это
как?
2. Так как выражение возводится в квадрат, то лучше воспользоваться промежуточной переменной.var
x,xt: Integer;
begin
x := StrToInt(Edit1.Text);
xt := x*x + 4*x + 4;
y := xt*xt - 1;
Label2.Caption := "X=" + IntToStr(x) + "Y=" + IntToStr(y) + #13;
> Jeer © (08.02.10 21:40) [3]
>
> > 12 © (08.02.10 19:01) [2]
>
>
> Ну что ты хочешь от девушки странного ?
> Надо предлагать обычное - это помогает.
Может в сад пойти?
← →
Игорь Шевченко © (2010-02-15 01:05) [16]Демо © (14.02.10 22:52) [15]
Не вынуждай меня удалять весь твой пост, завязывай с наездами.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.104 c