Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: Эта возможность может быть недоступна в некоторых браузерах.
Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.
Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.
Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.
case key of
'0'..'9', '-', #8:;
else key := #0;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
W, H : cardinal;
halfW, halfH, x, y : double;
ixPrev, iyPrev, k, b : integer;
ix, iy : cardinal;
begin
repaint;
W := Form1.Width;
H := Form1.Height;
k := StrToIntDef(Form1.LabeledEdit1.Text, 0);
b := StrToIntDef(Form1.LabeledEdit2.Text, 0);
halfW := W / 2;
halfH := H / 2;
Form1.Canvas.MoveTo(round(halfW), 0);
Form1.Canvas.LineTo(round(halfW), H);
Form1.Canvas.MoveTo(0, round(halfH));
Form1.Canvas.LineTo(W, round(halfH));
ixPrev := 0;
iyPrev := round(halfH);
for ix := 0 to W - 1 do
begin
x := (ix - halfW);
y := k * x + b;
iy := round(halfH - y);
Form1.Canvas.MoveTo(ixPrev, iyPrev);
Form1.Canvas.LineTo(ix, iy);
ixPrev := ix;
iyPrev := iy;
end;
end;
Ну, а дальше я застреваю знаю, что надо писать наверное в цикле for и математическую формулу нахождения x:=-b/k. И у меня не получается объявить, что y=0 первоначально, а если честно, то я запутался можете объяснить, где, что я не правильно начал.var k,b,real;
x, y,:integer;
k, b,:integer;
begin
a:=StrToFloat(Edit1.Text);
b:=StrToFloat(Edit2.Text);
(тут задаем цвет и толщену пера)
Image1.Canvas.Pen.Color:=clBlack;
Image1.Canvas.Pen.Width:=2;
(а это закраска цветом фона предедущего графика)
Image1.Canvas.Brush.Color:=clWhite;
Image1.Canvas.Rectangle(0,0,Image1.Width,Image1.Height)
(рисуем оси координат)
Смысла в MoveTo нет, так как перо остается в той точке, куда его переместила LineTo.Код:Form1.Canvas.MoveTo(ixPrev, iyPrev); Form1.Canvas.LineTo(ix, iy);
y:=0;не получается объявить, что y=0 первоначально
Переменные для аргумента, приращения аргумента и значения функции желательно задавать вещественным типом, так как неизвестно, какие значения будет задавать пользователь при использовании вашей программы и что будет получено в результате вычислений.x, y,:integer;
k, b,:integer;
case key of
'0'..'9', '-', #8:;
else key := #0;
end;
И от меня грошик: один раз надо использовать MoveTo. Перед циклом.От себя пять копеек добавлю.
Смысла в MoveTo нет, так как перо остается в той точке, куда его переместила LineTo.
Нет необходимости запоминать координаты пера в переменных ixPrev и iyPrev.
Ну, я писал про то, что происходит внутри циклаИ от меня грошик: один раз надо использовать MoveTo. Перед циклом.
Так я же не в порядке дискуссии, а исключительно в копилку.Ну, я писал про то, что происходит внутри цикла.
Разъясните неучу где какая ошибка? и что неправильно я делаю.procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label3.Caption:=DateToStr(Date);
Label5.Caption:=DateToStr(Date);
Label4.Caption:=TimeToStr(Time);
Label6.Caption:=TimeToStr(Time);
end;
procedure TForm1.N4Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.BitBtn4Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9','-',#9]) then Key:=#0;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text:='';
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Edit2.Text:='';
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var k,b:real;
x,y,i:integer;
begin
k:=StrToFloat(Edit1.Text);
b:=StrToFloat(Edit2.Text);
Image1.Canvas.Pen.Color:=clBlack;
Image1.Canvas.Pen.Width:=1;
Image1.Canvas.Brush.Color:=clWhite;
Image1.Canvas.Rectangle(0,0,Image1.Width,Image1.Height);
for i:=0 to 100 do begin
y:=k*x+b;
x:=-b/k
end;
end.