IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> не могу доделать, как записать функцию в програмнній код
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской

Репутация: -  0  +


написал прожку которая строит графики, но только чтоб ввести функцию графика нужно открывать програмный код, и в нём изменять. можно как-то обойтись без этого (не открывая код)

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.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Ту можно идти различными путями в зависимости от того, что требуется получить.
Можно, например, заранее предусмотреть несколько функций и в программе предлагать пользователю выбрать одну из них.
Можно просить пользователя ввести строку (или вводить ее из файла), а в программе осуществлять разбор выражения и по нему строить график. Но последний вариант увеличит суммарный объем (количество строк) твоей программы раз в 10. Впрочем, для этого можно нйти подходящий модуль.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской

Репутация: -  0  +


Цитата(andriano @ 13.05.2008 8:12) *

Ту можно идти различными путями в зависимости от того, что требуется получить.
Можно, например, заранее предусмотреть несколько функций и в программе предлагать пользователю выбрать одну из них.
Можно просить пользователя ввести строку (или вводить ее из файла), а в программе осуществлять разбор выражения и по нему строить график. Но последний вариант увеличит суммарный объем (количество строк) твоей программы раз в 10. Впрочем, для этого можно нйти подходящий модуль.

Первый вариант мне не подходит так как хочется чтоб прога была универсальной и строила любой график, а не только из предлагаемого. А если по последнему варианту это разбирать в заданой строке-функции по символу?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Совсем любой, боюсь не выйдет - разве только ты реализуешь язык, на котором можно записать любую функцию. В остальных же случаях - любое выражение, содержащее тот набор функций, которые ты предусмотрел заранее, например, любое выражение, содержащее 4 арифметических операции и скобки. Или + набор тригонометрических функций. Или еще + экспонены и логарифмы.
Можно, например, набратьв Google "разбор выражения паскаль" и походить по ссылкам.
Здесть простейший вариант http://pascal.sources.ru/parsing/calc_my.htm
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской

Репутация: -  0  +


как раз то что я искал, спасибо
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 27.10.2020 16:48
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name