Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 03.06.2010, 17:52   #1 (permalink)
azamatom
Новичок
 
Регистрация: 03.06.2010
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Подскажите с задачей

Построить окружность радиуса R c центром в начале координат по заданному параметрическому представлению X=R*Cos(t); Y=R*Sin(t) 0 <= t < 2*Pi.
правильно ли я вообще начал?
procedure
var
x,y,r,t:real;
begin
r:=StrToFloat(Edit1.text);//радиус
If t>=0 and (t<(2*pi)) then
x:=r*cos(t);
y:=r*sin(t);

with Image1.Canvas do
ellipse(FloatToStrF(x,ffGeneral,6,3),y,0,0);
azamatom вне форума   Ответить с цитированием

Старый 03.06.2010, 17:52
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Возможно, ваш вопрос уже получил решение на форуме

Помогите пожалуйста с задачей по C++
Помогите с задачей на php-код
Помогите с задачей в Паскале
Помогите с задачей. Ряд Тейлора.

Старый 07.06.2010, 19:38   #2 (permalink)
azamatom
Новичок
 
Регистрация: 03.06.2010
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Подскажите пожалуйста как правильно написать решение условий:
a>0, b>0. или b>=2a, a<b<2a, a>b. Сколько пытался, только не пойму куда можно вывести решение.
Улитка Паскаля :
x = a*cos(t)2 +b*cos(t), y = a*cos(t)*sin(t) + b*sin(t),
a>0, b>0, t  [0,2pi). Рассмотреть случаи, когда b>=2a, a<b<2a, a>b.
Код:
procedure TForm1.Button4Click(Sender: TObject);
var
 l,bb: integer;  
 w: integer;   
 x0,y0: integer; 
 g: Integer;
 t: Real;
 x, y: Real;
 a,b:integer;
 st:string;
begin
  l := 150;  
  bb := Form1.ClientHeight-270;  
  w := Form1.Width-200;        
  x0 :=l;
  y0:= bb - Abs(Round(bb / 2));
  a:=StrToInt(Edit4.Text);
  b:=StrToInt(Edit5.Text);
With Image1.Canvas do
begin
  MoveTo(l, 20); LineTo(l, bb-20);
  Font.Size := 14;
  MoveTo(x0, y0); LineTo(x0 + w - l, y0);
  MoveTo(x0, y0); LineTo(x0 - w + l, y0);
  Font.Size := 14;
  TextOut(l + w - l - 20, y0 + 20, 'x');
  MoveTo(150,0);LineTo(150,400);
  Textout(152,165,'0');//öåíòð
  Textout(270,165,'0');
  Textout(20,165,'PI');
  Textout(110,20,'PI/2');
  Textout(95,270,'3*PI/2');
  Pen.Color := clRed;
For g := 0 to 360 do
begin
  t := g * Pi / 180;
If (a>0) and (b>0) then
  x := x0 + a * sqr(cos(t)) + b * cos(t);
  y := y0 + a * cos(t) * sin(t) + b * sin(t);
If g = 0 then
  MoveTo(Round(x), Round(y))
else
  LineTo(Round(x), Round(y));
end;
begin
If (a>b) then
  x := x0 + a * sqr(cos(t)) + b * cos(t);
  y := y0 + a * cos(t) * sin(t) + b * sin(t);
  Showmessage('x='+floattostrf(x,fffixed,9,2));
end;
end;
end;
end.

Последний раз редактировалось azamatom; 07.06.2010 в 19:56
azamatom вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 10:47.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.