Четверг, 09.01.2025
Pascal 4 All
[ · Новые сообщения · Участники · Правила форума · Поиск · RSS ]

 

  • Страница 1 из 1
  • 1
Модератор форума: Seqular, Pavel  

Построить график функции ...
ZimANДата: Четверг, 08.05.2008, 07:02 | Сообщение # 1
Знакомый
Группа: Пользователи
Сообщений: 24
Репутация: 2
Замечания: 0%
Статус: Offline
Построить на экране компьютера график следующей функции:

как такое сделать ???

 
PavelДата: Четверг, 08.05.2008, 09:27 | Сообщение # 2
Приближенный
Группа: Модераторы
Сообщений: 210
Репутация: 17
Замечания: 0%
Статус: Offline
У тебя график будет состоять из двух частей. Одна часть, если x > 3, будет прямая -3x+9, вторая - та дробь.
И, например, с -10 начинаешь рисовать график до 3, и с 3 до 10 скажем, с шагом 0,01. Шаг выберешь опытным путем, чтоб красиво смотрелось. Т.е. сначала moveTo, затем LineTo. Вот и все.
 
ZimANДата: Четверг, 08.05.2008, 18:44 | Сообщение # 3
Знакомый
Группа: Пользователи
Сообщений: 24
Репутация: 2
Замечания: 0%
Статус: Offline
а можно, чтобы Вы мне немного помогли КОДОМ !?!??! , а то я графику вообще не понимаю... Учить буду (это долго), а задачу надо преподу поскорее отдать ... help
 
AlexanderДата: Суббота, 10.05.2008, 20:23 | Сообщение # 4
Всевышний
Группа: Модераторы
Сообщений: 475
Репутация: 16
Замечания: 0%
Статус: Offline
В разделе "теория" есть две небольшие книги по графике в TP. Книжка "Графика в TP" на половину посвящена построению графиков, исходников там хоть отбавляй.

Скажем дружно- нафиг нужно!
 
ZimANДата: Вторник, 13.05.2008, 01:49 | Сообщение # 5
Знакомый
Группа: Пользователи
Сообщений: 24
Репутация: 2
Замечания: 0%
Статус: Offline
Вот , сделал !
Может у кого-то тоже будет вопрос по Графиках, то привожу свой код , типа как образец будет...

Code
Program Lab;
uses Graph;
const
step=25;
var GraphDriver, GraphMode:integer;
     XX,YY:integer;
     r:integer;
     S:string;

{- Formula -}
Function f(x:real):real;
begin
      if x<=3 then f:=(sqr(x)*x)/(sqr(x)+8) else
      begin
        f:=(-3)*x+9;
        SetColor(2);
      end;
end;

{- OSI -}
procedure OSI;
begin
     SetColor(8);
     Line (XX,0,XX,GetMaxY);
     Line (0,YY,GetMaxX,YY);

     Line (GetMaxX-10,(YY)-5,GetMaxX,YY);
     Line (GetMaxX-10,(YY)+5,GetMaxX,YY);

     Line(XX,0,(XX)-5,10);
     Line(XX,0,(XX)+5,10);

     OutTextXY(GetMaxX-10,YY+20,'X');
     OutTextXY(XX+10,10,'Y');
end;

{- Grafik -}
Procedure GRP;
var x0,y0,x1,y1:integer;
     x:real;
begin
      for x0:=0 to GetMaxX do
        begin
        x:=(x0-XX)/step;
        y0:=Round(YY-step*f(x));

        Line(x0,y0,x1,y1);
        x1:=x0; y1:=y0;
        end;
end;

{- Razmetka Osei -}
Procedure PDL;
var i,j: integer;
     s:string[7];
begin
     SetColor(8);
     j:=0;
     repeat
     i:=XX+(-j)*step;
     Line (Round(i),YY-5,Round(i),YY+5);
     if j<>0 then
   begin
     str(-j:2,s);
     OutTextXY(Round(i)-10,YY+10,s);
   end;
     i:=XX+j*step;
     Line(Round(i),YY-5,Round(i),YY+5);
     if j<>0 then
   begin
     str (j:2,s);
     OutTextXY(Round(i)-10,YY+10,s);
   end;
     j:=j+1;
     until j=23;
     j:=0;
     repeat
     i:=YY-j*step;
     Line (XX+3,Round(i),XX-3,Round(i));
     if j<>0 then
   begin
     str(j:1,s);
     OutTextXY(XX-20,Round(i)-2,s);
   end;
     i:=YY+j*step;
     Line(XX+3,Round(i),XX-3,Round(i));
     if j<>0 then
   begin
     str(-j:1,s);
     OutTextXY(XX-30,Round(i)-2,s);
   end;
     j:=j+1;
     until j=16;
   end;

{- Osnovnaya Programma -}
begin
GraphDriver:=detect;
InitGraph(GraphDriver, GraphMode,'');
XX:=GetMaxX div 2;
YY:=GetMaxY div 2;
SetBkColor (15);
SetColor (1);
ClearDevice;
OSI;
PDL;
SetColor(1);
GRP;
SetColor(1);
OutTextXY(10,30,'Esli x<=3, togda f=(sqr(x)*x)/(sqr(x)+8) ');
SetColor(2);
OutTextXY(10,60,'Esli x>3, togda f=(-3)*x+9');
readln;
end.
 
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2025
Используются технологии uCoz
javascript:;" rel="nofollow" onclick="loginPopupForm(); return false;