Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.06.2010, 18:50
azamatom azamatom вне форума
Прохожий
 
Регистрация: 29.05.2010
Сообщения: 7
Репутация: 10
По умолчанию Как записать решение условий

Подскажите пожалуйста как правильно написать решение условий:
a>0, b>0. или b>=2a, a<b<2a, a>b. Сколько пытался, только не пойму куда можно вывести ответ.Т.е. нужно, чтобы при определенном условии ввода значений 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 в 18:52.
Ответить с цитированием
  #2  
Старый 07.06.2010, 19:46
lmikle lmikle сейчас на форуме
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,088
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, как-то так:
Код:
If (a > 0) And (b > 0) Then
  Begin
    If (b >= 2*a) 
	  Then ShowMessage('Case 1')
	  Else
	    If (a < b) And (b < 2*a)
		   Then ShowMessage('Case 2')
		   Else
		     If (a > b) 
			   Then ShowMessage('Case 3')
			   Else ShowMessage('Out of cases!');
  End;

Случай, когда a < 0 или b < 0 игнорируется.
Или тебе нужно что-то другое?
Ответить с цитированием
  #3  
Старый 07.06.2010, 20:23
azamatom azamatom вне форума
Прохожий
 
Регистрация: 29.05.2010
Сообщения: 7
Репутация: 10
По умолчанию

Вполне прилично.Большое спасибо
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:08.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025