Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2014, 13:35   #1
LiVilman
Новичок
Джуниор
 
Регистрация: 29.04.2014
Сообщений: 1
По умолчанию Заданы уравнения трех кривых на плоскости. Pascal

Заданы уравнения трех кривых на плоскости. Одно из уравнений содержит переменный коэффициент k. Кривые, пересекаясь, ограничивают замкнутую область D, размеры которой зависят от значения коэффициента k. задано начальное значение k нач , конечное значение k кон и шаг изменения k;

На той же плоскости заданы декартовы координаты точек, образующих множество М (координаты задаются произвольно, n не больше 20).

Для каждого из заданных значений k сформировать P - подмножество M, содержащее точки, которые находятся внутри замкнутой области D.



Уравниния линий:
y2=0,75x
y=ln(x-0,2)
y=0,2x-k

k нач 0,1
k кон 0,5
шаг изменения k 0,1

Прошу помощи в решении. Что то пытался сделать сам но не до конца.

PHP код:
uses crtgraph;

type
TPoint 
record x,Realend;

var
Pts : array [1..20of TPoint;
drvmode      Integer;
RangeXRangeY Real;
chch1        Char;
ks             : Array[1..10of Real;
curK           Integer;

procedure InitK;
var 
Integer;
begin
for := 1 to 10 do ks[x] := Random * (2.2 1) + 1;
end;

procedure InitPoints;
var 
Integer;
begin
for := 1 to 20 do
        
begin
        pts
[x].:= RangeX*random/2;
        
pts[x].:= RangeY*random/2;
        
end;
end;

Function 
gFunc1(x:Real):Real;
begin
gFunc1 
:= x*1;
end;

Function 
gFunc2(xk:Real):Real;
begin
gFunc2 
:= cos(0.25);
end;

Function 
gFunc3(x:Real):Real;
begin
if x>=0 then gFunc3 := sqrt(1.5*x)
    else 
gFunc3 := 0;
end;

procedure PointToScreen(X,Y:Real;color Integer);
begin
PutPixel
(trunc((X+RangeX/2)/RangeX*GetMaxX), trunc((RangeY/2-Y)/RangeY*GetMaxY), color);
end;

procedure Solve;
var 
x    Integer;
    
aInteger;
begin
For := 1 to 20 do
    
begin
    
if (gFunc1(pts[x].X) < pts[x].Y)
    and (
gFunc2(pts[x].Xks[CurK]) < pts[x].Y)
    and (
gFunc3(pts[x].X) > pts[x].Y)
    and (
pts[x].>= 0then
        begin
        a 
:= trunc((pts[x].X+RangeX/2)/RangeX*GetMaxX);
        
:= trunc((RangeY/2-pts[x].Y)/RangeY*GetMaxY);
        
SetColor(13);
        
Circle(ab4);
        
end;
    
end;
end;

procedure Repaint;
var 
x   Integer;
    
r,Real;
begin
ClearViewPort
;
SetColor(11);
Moveto(0GetMaxY div 2);
LineTo(GetMaxXGetMaxY div 2);
MoveTo(GetMaxX div 20);
LineTo(GetMaxX div 2GetMaxY);
for 
:= 0 to GetMaxx-do
    
begin
    a 
:= X/GetMaxX*RangeX RangeX/2;
    
PutPixel(xtrunc((RangeY/gFunc1(a))/RangeY GetMaxY), 15);
    
PutPixel(xtrunc((RangeY/gFunc2(aks[CurK]))/RangeY GetMaxY), 15);
    
PutPixel(xtrunc((RangeY/gFunc3(a))/RangeY GetMaxY), 15);
    
end;
For 
:= 1 to 20 do
    
PointToScreen(pts[x].Xpts[x].Y14);
Solve;
end;

begin
Randomize
;
CurK := 1;
RangeX := 6;
RangeY := 4;
drv := detect;
mode := 2;
InitGraph(drvmode'');
InitPoints;
InitK;
Repaint;
repeat
ch 
:= UpCase(Readkey);
ch1:= #0;
if ch=#0 then ch1 := Readkey;
if ch1='H' then
        begin
        RangeX 
:= RangeX/1.1;
        
RangeY := RangeY/1.1;
        
Repaint;
        
end;
if 
ch1='P' then
        begin
        RangeX 
:= RangeX*1.1;
        
RangeY := RangeY*1.1;
        
Repaint;
        
end;
if 
ch ='A' then
        begin
        
if CurK 10 then inc(CurK);
        
Repaint;
        
end;
if 
ch ='Z' then
        begin
        
if CurK 1 then dec(CurK);
        
Repaint;
        
end;
if 
ch ='Q' then
        begin
        InitPoints
;
        
Repaint;
        
end;
until (ch=#27) or (ch=#13);
CloseGraph;
end
LiVilman вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi. На плоскости заданы n точек своими координатами.Построить квадрат Allexey Помощь студентам 4 18.06.2013 13:46
Заданы уравнения пересекающихся прямых на плоскости Shonny94 Помощь студентам 9 15.09.2012 23:41
На плоскости заданы своими координатами n точек. Создать массив Евгешаа Помощь студентам 0 29.03.2012 00:03
На плоскости заданы своими координатами n точек. Создать массив Евгешаа C# (си шарп) 0 28.03.2012 21:12