Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.061 c
15-1274214590
Юрий
2010-05-19 00:29
2010.08.27
С днем рождения ! 19 мая 2010 среда


2-1272385240
skilful
2010-04-27 20:20
2010.08.27
как организовать ввод в edit


3-1242293156
Ega23
2009-05-14 13:25
2010.08.27
Выполнение скрипта под разными учетными записями


2-1267700625
Цукор5
2010-03-04 14:03
2010.08.27
использование TIBSQL


3-1237989734
Евгений Р.
2009-03-25 17:02
2010.08.27
Закрытие БД





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский