написал прожку которая строит графики, но только чтоб ввести функцию графика нужно открывать програмный код, и в нём изменять. можно как-то обойтись без этого (не открывая код)
program graphiki;
uses crt,graph;
var gd,gm,xx,yy:integer;
    fun:string;
procedure osicoordinat;
const step=25;
var x1,y1,r:integer;
    s:string;
 begin
   line(0,240,640,240);
   line(320,0,320,480);
  line(630,235,640,240);
  line(630,245,640,240);
  line(315,10,320,0);
  line(325,10,320,0);
   outtextxy(330,5,'Y');
   outtextxy(630,220,'X');
    y1:=240; x1:=320; r:=0;
     while x1+r<640 do
       begin
        line(x1+r,y1-2,x1+r,y1+2);
        line(x1-r,y1-2,x1-r,y1+2);
        r:=r+step;
        str(r div step, S);
        settextjustify (1,1);
        outtextxy(x1+r,y1+10,S);
        s:='-'+S;
        outtextxy(x1-r,y1+10,S);
       end;
        r:=0;
      while y1+r<480 do
        begin
         line(x1+4,y1+r,x1-4,y1+r);
         line(x1+4,y1-r,x1-4,y1-r);
         r:=r+step;
         str(r div step, S);
         settextjustify (1,1);
         outtextxy(x1-10,y1-r,S);
         s:='-'+S;
         outtextxy(x1-10,y1+r,S);
        end;
 end;
procedure gra;
var x,y,a,b:real;
 begin
  setcolor(2);
  x:=-15; y:=0; a:=1; b:=0;
  repeat
  y:=x*x;  {вот эту строчку приходится менять}
  putpixel(round(x*a*25)+320,240-round(y*25)-round(b*25),2);
  x:=x+0.0003;
  until x>15;
 end;
begin
 initgraph(gd,gm,'..\bgi');
 osicoordinat;
 gra;
  readln
end.
 
 
 
  andriano
  13.05.2008 12:12
  
 
  Ту можно идти различными путями в зависимости от того, что требуется получить.
Можно, например, заранее предусмотреть несколько функций и в программе предлагать пользователю выбрать одну из них.
Можно просить пользователя ввести строку (или вводить ее из файла), а в программе осуществлять разбор выражения и по нему строить график. Но последний вариант увеличит суммарный объем (количество строк) твоей программы раз в 10. Впрочем, для этого можно нйти подходящий модуль.
 
 
 
 
  Цитата(andriano @ 13.05.2008 8:12) 

Ту можно идти различными путями в зависимости от того, что требуется получить.
Можно, например, заранее предусмотреть несколько функций и в программе предлагать пользователю выбрать одну из них.
Можно просить пользователя ввести строку (или вводить ее из файла), а в программе осуществлять разбор выражения и по нему строить график. Но последний вариант увеличит суммарный объем (количество строк) твоей программы раз в 10. Впрочем, для этого можно нйти подходящий модуль.
 Первый вариант мне не  подходит так как хочется чтоб прога была универсальной и строила любой график, а не только из предлагаемого. А если по последнему варианту это разбирать в заданой строке-функции по символу?
 
 
 
 
  andriano
  13.05.2008 13:36
  
 
  Совсем любой, боюсь не выйдет - разве только ты реализуешь язык, на котором можно записать любую функцию. В остальных же случаях - любое выражение, содержащее тот набор функций, которые ты предусмотрел заранее, например, любое выражение, содержащее 4 арифметических операции и скобки. Или + набор тригонометрических функций. Или еще + экспонены и логарифмы.
Можно, например, набратьв Google "разбор выражения паскаль" и походить по ссылкам.
Здесть простейший вариант 
http://pascal.sources.ru/parsing/calc_my.htm
  
 
 
 
  как раз то что я искал, спасибо